]> granicus.if.org Git - re2c/commitdiff
Added full another test for bug #57.
authorUlya Trofimovich <skvadrik@gmail.com>
Thu, 26 Mar 2015 12:00:58 +0000 (12:00 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Thu, 26 Mar 2015 12:00:58 +0000 (12:00 +0000)
re2c/test/bug57_original.bi--case-insensitive.c [new file with mode: 0644]
re2c/test/bug57_original.bi--case-insensitive.re [new file with mode: 0644]

diff --git a/re2c/test/bug57_original.bi--case-insensitive.c b/re2c/test/bug57_original.bi--case-insensitive.c
new file mode 100644 (file)
index 0000000..9984dc4
--- /dev/null
@@ -0,0 +1,12397 @@
+/* Generated by re2c */
+#include <stdlib.h>
+#include "chunk.h"
+#include "scanners.h"
+
+int _scan_at(int (*scanner)(const unsigned char *), cmark_chunk *c, int offset)
+{
+    int 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 URI autolink after first <, returning number of chars matched.
+int _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, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+               128, 128, 128, 128, 128, 128, 128, 128, 
+       };
+
+       yych = *p;
+       switch (yych) {
+       case '\n':      goto yy2;
+       case 'A':
+       case 'a':       goto yy6;
+       case 'B':
+       case 'b':       goto yy24;
+       case 'C':
+       case 'c':       goto yy3;
+       case 'D':
+       case 'd':       goto yy4;
+       case 'E':
+       case 'e':       goto yy25;
+       case 'F':
+       case 'f':       goto yy7;
+       case 'G':
+       case 'g':       goto yy8;
+       case 'H':
+       case 'h':       goto yy9;
+       case 'I':
+       case 'i':       goto yy10;
+       case 'J':
+       case 'j':       goto yy5;
+       case 'K':
+       case 'k':       goto yy26;
+       case 'L':
+       case 'l':       goto yy11;
+       case 'M':
+       case 'm':       goto yy12;
+       case 'N':
+       case 'n':       goto yy13;
+       case 'O':
+       case 'o':       goto yy14;
+       case 'P':
+       case 'p':       goto yy15;
+       case 'Q':
+       case 'q':       goto yy27;
+       case 'R':
+       case 'r':       goto yy16;
+       case 'S':
+       case 's':       goto yy17;
+       case 'T':
+       case 't':       goto yy18;
+       case 'U':
+       case 'u':       goto yy19;
+       case 'V':
+       case 'v':       goto yy20;
+       case 'W':
+       case 'w':       goto yy21;
+       case 'X':
+       case 'x':       goto yy22;
+       case 'Y':
+       case 'y':       goto yy28;
+       case 'Z':
+       case 'z':       goto yy23;
+       default:        goto yy29;
+       }
+yy2:
+       { return 0; }
+yy3:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy442;
+       case 'H':
+       case 'h':       goto yy441;
+       case 'I':
+       case 'i':       goto yy444;
+       case 'O':
+       case 'o':       goto yy440;
+       case 'R':
+       case 'r':       goto yy443;
+       case 'V':
+       case 'v':       goto yy439;
+       default:        goto yy2;
+       }
+yy4:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy415;
+       case 'I':
+       case 'i':       goto yy414;
+       case 'L':
+       case 'l':       goto yy412;
+       case 'N':
+       case 'n':       goto yy413;
+       case 'O':
+       case 'o':       goto yy416;
+       case 'T':
+       case 't':       goto yy411;
+       case 'V':
+       case 'v':       goto yy410;
+       default:        goto yy2;
+       }
+yy5:
+       yych = *(marker = ++p);
+       if (yych <= 'M') {
+               if (yych == 'A') goto yy402;
+               if (yych <= 'L') goto yy2;
+               goto yy401;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy2;
+                       goto yy402;
+               } else {
+                       if (yych == 'm') goto yy401;
+                       goto yy2;
+               }
+       }
+yy6:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy383;
+       case 'B':
+       case 'b':       goto yy382;
+       case 'C':
+       case 'c':       goto yy381;
+       case 'D':
+       case 'd':       goto yy380;
+       case 'F':
+       case 'f':       goto yy379;
+       case 'I':
+       case 'i':       goto yy378;
+       case 'P':
+       case 'p':       goto yy377;
+       case 'T':
+       case 't':       goto yy376;
+       case 'W':
+       case 'w':       goto yy34;
+       default:        goto yy2;
+       }
+yy7:
+       yych = *(marker = ++p);
+       if (yych <= 'T') {
+               if (yych <= 'E') {
+                       if (yych == 'A') goto yy363;
+                       if (yych <= 'D') goto yy2;
+                       goto yy362;
+               } else {
+                       if (yych == 'I') goto yy361;
+                       if (yych <= 'S') goto yy2;
+                       goto yy364;
+               }
+       } else {
+               if (yych <= 'e') {
+                       if (yych == 'a') goto yy363;
+                       if (yych <= 'd') goto yy2;
+                       goto yy362;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy2;
+                               goto yy361;
+                       } else {
+                               if (yych == 't') goto yy364;
+                               goto yy2;
+                       }
+               }
+       }
+yy8:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'E':
+       case 'e':       goto yy346;
+       case 'G':
+       case 'g':       goto yy34;
+       case 'I':
+       case 'i':       goto yy344;
+       case 'O':
+       case 'o':       goto yy345;
+       case 'T':
+       case 't':       goto yy343;
+       default:        goto yy2;
+       }
+yy9:
+       yych = *(marker = ++p);
+       if (yych <= 'S') {
+               if (yych <= '3') {
+                       if (yych <= '2') goto yy2;
+                       goto yy339;
+               } else {
+                       if (yych == 'C') goto yy337;
+                       goto yy2;
+               }
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= 'T') goto yy338;
+                       if (yych <= 'b') goto yy2;
+                       goto yy337;
+               } else {
+                       if (yych == 't') goto yy338;
+                       goto yy2;
+               }
+       }
+yy10:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy319;
+       case 'C':
+       case 'c':       goto yy316;
+       case 'M':
+       case 'm':       goto yy318;
+       case 'N':
+       case 'n':       goto yy317;
+       case 'P':
+       case 'p':       goto yy315;
+       case 'R':
+       case 'r':       goto yy314;
+       case 'T':
+       case 't':       goto yy313;
+       default:        goto yy2;
+       }
+yy11:
+       yych = *(marker = ++p);
+       if (yych <= 'D') {
+               if (yych == 'A') goto yy307;
+               if (yych <= 'C') goto yy2;
+               goto yy306;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy2;
+                       goto yy307;
+               } else {
+                       if (yych == 'd') goto yy306;
+                       goto yy2;
+               }
+       }
+yy12:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy273;
+       case 'E':
+       case 'e':       goto yy272;
+       case 'I':
+       case 'i':       goto yy275;
+       case 'M':
+       case 'm':       goto yy271;
+       case 'S':
+       case 's':       goto yy270;
+       case 'T':
+       case 't':       goto yy274;
+       case 'U':
+       case 'u':       goto yy269;
+       case 'V':
+       case 'v':       goto yy268;
+       default:        goto yy2;
+       }
+yy13:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'E':
+       case 'e':       goto yy263;
+       case 'F':
+       case 'f':       goto yy262;
+       case 'I':
+       case 'i':       goto yy261;
+       case 'N':
+       case 'n':       goto yy260;
+       case 'O':
+       case 'o':       goto yy259;
+       default:        goto yy2;
+       }
+yy14:
+       yych = *(marker = ++p);
+       if (yych <= 'P') {
+               if (yych == 'I') goto yy245;
+               if (yych <= 'O') goto yy2;
+               goto yy246;
+       } else {
+               if (yych <= 'i') {
+                       if (yych <= 'h') goto yy2;
+                       goto yy245;
+               } else {
+                       if (yych == 'p') goto yy246;
+                       goto yy2;
+               }
+       }
+yy15:
+       yych = *(marker = ++p);
+       if (yych <= 'S') {
+               if (yych <= 'L') {
+                       if (yych == 'A') goto yy227;
+                       if (yych <= 'K') goto yy2;
+                       goto yy226;
+               } else {
+                       if (yych <= 'O') {
+                               if (yych <= 'N') goto yy2;
+                               goto yy228;
+                       } else {
+                               if (yych <= 'Q') goto yy2;
+                               if (yych <= 'R') goto yy225;
+                               goto yy224;
+                       }
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'a') {
+                               if (yych <= '`') goto yy2;
+                               goto yy227;
+                       } else {
+                               if (yych == 'l') goto yy226;
+                               goto yy2;
+                       }
+               } else {
+                       if (yych <= 'q') {
+                               if (yych <= 'o') goto yy228;
+                               goto yy2;
+                       } else {
+                               if (yych <= 'r') goto yy225;
+                               if (yych <= 's') goto yy224;
+                               goto yy2;
+                       }
+               }
+       }
+yy16:
+       yych = *(marker = ++p);
+       if (yych <= 'T') {
+               if (yych <= 'L') {
+                       if (yych == 'E') goto yy214;
+                       goto yy2;
+               } else {
+                       if (yych <= 'M') goto yy213;
+                       if (yych <= 'R') goto yy2;
+                       if (yych <= 'S') goto yy212;
+                       goto yy211;
+               }
+       } else {
+               if (yych <= 'm') {
+                       if (yych == 'e') goto yy214;
+                       if (yych <= 'l') goto yy2;
+                       goto yy213;
+               } else {
+                       if (yych <= 'r') goto yy2;
+                       if (yych <= 's') goto yy212;
+                       if (yych <= 't') goto yy211;
+                       goto yy2;
+               }
+       }
+yy17:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'E':
+       case 'e':       goto yy167;
+       case 'F':
+       case 'f':       goto yy166;
+       case 'G':
+       case 'g':       goto yy165;
+       case 'H':
+       case 'h':       goto yy170;
+       case 'I':
+       case 'i':       goto yy169;
+       case 'K':
+       case 'k':       goto yy164;
+       case 'M':
+       case 'm':       goto yy163;
+       case 'N':
+       case 'n':       goto yy168;
+       case 'O':
+       case 'o':       goto yy162;
+       case 'P':
+       case 'p':       goto yy161;
+       case 'S':
+       case 's':       goto yy160;
+       case 'T':
+       case 't':       goto yy159;
+       case 'V':
+       case 'v':       goto yy158;
+       default:        goto yy2;
+       }
+yy18:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy134;
+       case 'E':
+       case 'e':       goto yy130;
+       case 'F':
+       case 'f':       goto yy133;
+       case 'H':
+       case 'h':       goto yy129;
+       case 'I':
+       case 'i':       goto yy131;
+       case 'N':
+       case 'n':       goto yy132;
+       case 'V':
+       case 'v':       goto yy34;
+       default:        goto yy2;
+       }
+yy19:
+       yych = *(marker = ++p);
+       if (yych <= 'T') {
+               if (yych <= 'N') {
+                       if (yych == 'D') goto yy121;
+                       if (yych <= 'M') goto yy2;
+                       goto yy120;
+               } else {
+                       if (yych == 'R') goto yy122;
+                       if (yych <= 'S') goto yy2;
+                       goto yy119;
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych == 'd') goto yy121;
+                       if (yych <= 'm') goto yy2;
+                       goto yy120;
+               } else {
+                       if (yych <= 'r') {
+                               if (yych <= 'q') goto yy2;
+                               goto yy122;
+                       } else {
+                               if (yych == 't') goto yy119;
+                               goto yy2;
+                       }
+               }
+       }
+yy20:
+       yych = *(marker = ++p);
+       if (yych <= 'I') {
+               if (yych == 'E') goto yy103;
+               if (yych <= 'H') goto yy2;
+               goto yy102;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy2;
+                       goto yy103;
+               } else {
+                       if (yych == 'i') goto yy102;
+                       goto yy2;
+               }
+       }
+yy21:
+       yych = *(marker = ++p);
+       if (yych <= 'Y') {
+               if (yych <= 'R') {
+                       if (yych == 'E') goto yy92;
+                       goto yy2;
+               } else {
+                       if (yych <= 'S') goto yy93;
+                       if (yych <= 'T') goto yy91;
+                       if (yych <= 'X') goto yy2;
+                       goto yy90;
+               }
+       } else {
+               if (yych <= 's') {
+                       if (yych == 'e') goto yy92;
+                       if (yych <= 'r') goto yy2;
+                       goto yy93;
+               } else {
+                       if (yych <= 't') goto yy91;
+                       if (yych == 'y') goto yy90;
+                       goto yy2;
+               }
+       }
+yy22:
+       yych = *(marker = ++p);
+       if (yych <= 'R') {
+               if (yych <= 'F') {
+                       if (yych == 'C') goto yy69;
+                       if (yych <= 'E') goto yy2;
+                       goto yy67;
+               } else {
+                       if (yych == 'M') goto yy68;
+                       if (yych <= 'Q') goto yy2;
+                       goto yy66;
+               }
+       } else {
+               if (yych <= 'f') {
+                       if (yych == 'c') goto yy69;
+                       if (yych <= 'e') goto yy2;
+                       goto yy67;
+               } else {
+                       if (yych <= 'm') {
+                               if (yych <= 'l') goto yy2;
+                               goto yy68;
+                       } else {
+                               if (yych == 'r') goto yy66;
+                               goto yy2;
+                       }
+               }
+       }
+yy23:
+       yych = *(marker = ++p);
+       if (yych == '3') goto yy61;
+       goto yy2;
+yy24:
+       yych = *(marker = ++p);
+       if (yych <= 'O') {
+               if (yych <= 'H') {
+                       if (yych == 'E') goto yy51;
+                       goto yy2;
+               } else {
+                       if (yych <= 'I') goto yy50;
+                       if (yych <= 'N') goto yy2;
+                       goto yy49;
+               }
+       } else {
+               if (yych <= 'h') {
+                       if (yych == 'e') goto yy51;
+                       goto yy2;
+               } else {
+                       if (yych <= 'i') goto yy50;
+                       if (yych == 'o') goto yy49;
+                       goto yy2;
+               }
+       }
+yy25:
+       yych = *(marker = ++p);
+       if (yych == 'D') goto yy47;
+       if (yych == 'd') goto yy47;
+       goto yy2;
+yy26:
+       yych = *(marker = ++p);
+       if (yych == 'E') goto yy42;
+       if (yych == 'e') goto yy42;
+       goto yy2;
+yy27:
+       yych = *(marker = ++p);
+       if (yych == 'U') goto yy39;
+       if (yych == 'u') goto yy39;
+       goto yy2;
+yy28:
+       yych = *(marker = ++p);
+       if (yych == 'M') goto yy30;
+       if (yych == 'm') goto yy30;
+       goto yy2;
+yy29:
+       yych = *++p;
+       goto yy2;
+yy30:
+       yych = *++p;
+       if (yych == 'S') goto yy32;
+       if (yych == 's') goto yy32;
+yy31:
+       p = marker;
+       goto yy2;
+yy32:
+       yych = *++p;
+       if (yych == 'G') goto yy33;
+       if (yych != 'g') goto yy31;
+yy33:
+       yych = *++p;
+       if (yych == 'R') goto yy34;
+       if (yych != 'r') goto yy31;
+yy34:
+       yych = *++p;
+       if (yych != ':') goto yy31;
+yy35:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy35;
+       }
+       if (yych <= '<') goto yy31;
+       ++p;
+       { return (p - start); }
+yy39:
+       yych = *++p;
+       if (yych == 'E') goto yy40;
+       if (yych != 'e') goto yy31;
+yy40:
+       yych = *++p;
+       if (yych == 'R') goto yy41;
+       if (yych != 'r') goto yy31;
+yy41:
+       yych = *++p;
+       if (yych == 'Y') goto yy34;
+       if (yych == 'y') goto yy34;
+       goto yy31;
+yy42:
+       yych = *++p;
+       if (yych == 'Y') goto yy43;
+       if (yych != 'y') goto yy31;
+yy43:
+       yych = *++p;
+       if (yych == 'P') goto yy44;
+       if (yych != 'p') goto yy31;
+yy44:
+       yych = *++p;
+       if (yych == 'A') goto yy45;
+       if (yych != 'a') goto yy31;
+yy45:
+       yych = *++p;
+       if (yych == 'R') goto yy46;
+       if (yych != 'r') goto yy31;
+yy46:
+       yych = *++p;
+       if (yych == 'C') goto yy34;
+       if (yych == 'c') goto yy34;
+       goto yy31;
+yy47:
+       yych = *++p;
+       if (yych != '2') goto yy31;
+       yych = *++p;
+       if (yych == 'K') goto yy34;
+       if (yych == 'k') goto yy34;
+       goto yy31;
+yy49:
+       yych = *++p;
+       if (yych == 'L') goto yy60;
+       if (yych == 'l') goto yy60;
+       goto yy31;
+yy50:
+       yych = *++p;
+       if (yych == 'T') goto yy56;
+       if (yych == 't') goto yy56;
+       goto yy31;
+yy51:
+       yych = *++p;
+       if (yych == 'S') goto yy52;
+       if (yych != 's') goto yy31;
+yy52:
+       yych = *++p;
+       if (yych == 'H') goto yy53;
+       if (yych != 'h') goto yy31;
+yy53:
+       yych = *++p;
+       if (yych == 'A') goto yy54;
+       if (yych != 'a') goto yy31;
+yy54:
+       yych = *++p;
+       if (yych == 'R') goto yy55;
+       if (yych != 'r') goto yy31;
+yy55:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy56:
+       yych = *++p;
+       if (yych == 'C') goto yy57;
+       if (yych != 'c') goto yy31;
+yy57:
+       yych = *++p;
+       if (yych == 'O') goto yy58;
+       if (yych != 'o') goto yy31;
+yy58:
+       yych = *++p;
+       if (yych == 'I') goto yy59;
+       if (yych != 'i') goto yy31;
+yy59:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy60:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy61:
+       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 yy34;
+       if (yych <= 'q') goto yy31;
+       if (yych <= 's') goto yy34;
+       goto yy31;
+yy66:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy67:
+       yych = *++p;
+       if (yych == 'I') goto yy88;
+       if (yych == 'i') goto yy88;
+       goto yy31;
+yy68:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'L') goto yy78;
+               if (yych <= 'O') goto yy31;
+               goto yy79;
+       } else {
+               if (yych <= 'l') {
+                       if (yych <= 'k') goto yy31;
+                       goto yy78;
+               } else {
+                       if (yych == 'p') goto yy79;
+                       goto yy31;
+               }
+       }
+yy69:
+       yych = *++p;
+       if (yych == 'O') goto yy70;
+       if (yych != 'o') goto yy31;
+yy70:
+       yych = *++p;
+       if (yych == 'N') goto yy71;
+       if (yych != 'n') goto yy31;
+yy71:
+       yych = *++p;
+       if (yych == '-') goto yy72;
+       if (yych == ':') goto yy35;
+       goto yy31;
+yy72:
+       yych = *++p;
+       if (yych == 'U') goto yy73;
+       if (yych != 'u') goto yy31;
+yy73:
+       yych = *++p;
+       if (yych == 'S') goto yy74;
+       if (yych != 's') goto yy31;
+yy74:
+       yych = *++p;
+       if (yych == 'E') goto yy75;
+       if (yych != 'e') goto yy31;
+yy75:
+       yych = *++p;
+       if (yych == 'R') goto yy76;
+       if (yych != 'r') goto yy31;
+yy76:
+       yych = *++p;
+       if (yych == 'I') goto yy77;
+       if (yych != 'i') goto yy31;
+yy77:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy78:
+       yych = *++p;
+       if (yych == 'R') goto yy80;
+       if (yych == 'r') goto yy80;
+       goto yy31;
+yy79:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy80:
+       yych = *++p;
+       if (yych == 'P') goto yy81;
+       if (yych != 'p') goto yy31;
+yy81:
+       yych = *++p;
+       if (yych == 'C') goto yy82;
+       if (yych != 'c') goto yy31;
+yy82:
+       yych = *++p;
+       if (yych != '.') goto yy31;
+       yych = *++p;
+       if (yych == 'B') goto yy84;
+       if (yych != 'b') goto yy31;
+yy84:
+       yych = *++p;
+       if (yych == 'E') goto yy85;
+       if (yych != 'e') goto yy31;
+yy85:
+       yych = *++p;
+       if (yych == 'E') goto yy86;
+       if (yych != 'e') goto yy31;
+yy86:
+       yych = *++p;
+       if (yych == 'P') goto yy87;
+       if (yych != 'p') goto yy31;
+yy87:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy88:
+       yych = *++p;
+       if (yych == 'R') goto yy89;
+       if (yych != 'r') goto yy31;
+yy89:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy90:
+       yych = *++p;
+       if (yych == 'C') goto yy98;
+       if (yych == 'c') goto yy98;
+       goto yy31;
+yy91:
+       yych = *++p;
+       if (yych == 'A') goto yy97;
+       if (yych == 'a') goto yy97;
+       goto yy31;
+yy92:
+       yych = *++p;
+       if (yych == 'B') goto yy94;
+       if (yych == 'b') goto yy94;
+       goto yy31;
+yy93:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy94:
+       yych = *++p;
+       if (yych == 'C') goto yy95;
+       if (yych != 'c') goto yy31;
+yy95:
+       yych = *++p;
+       if (yych == 'A') goto yy96;
+       if (yych != 'a') goto yy31;
+yy96:
+       yych = *++p;
+       if (yych == 'L') goto yy34;
+       if (yych == 'l') goto yy34;
+       goto yy31;
+yy97:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy98:
+       yych = *++p;
+       if (yych == 'I') goto yy99;
+       if (yych != 'i') goto yy31;
+yy99:
+       yych = *++p;
+       if (yych == 'W') goto yy100;
+       if (yych != 'w') goto yy31;
+yy100:
+       yych = *++p;
+       if (yych == 'Y') goto yy101;
+       if (yych != 'y') goto yy31;
+yy101:
+       yych = *++p;
+       if (yych == 'G') goto yy34;
+       if (yych == 'g') goto yy34;
+       goto yy31;
+yy102:
+       yych = *++p;
+       if (yych == 'E') goto yy111;
+       if (yych == 'e') goto yy111;
+       goto yy31;
+yy103:
+       yych = *++p;
+       if (yych <= 'N') {
+               if (yych <= 'L') goto yy31;
+               if (yych >= 'N') goto yy105;
+       } else {
+               if (yych <= 'l') goto yy31;
+               if (yych <= 'm') goto yy104;
+               if (yych <= 'n') goto yy105;
+               goto yy31;
+       }
+yy104:
+       yych = *++p;
+       if (yych == 'M') goto yy110;
+       if (yych == 'm') goto yy110;
+       goto yy31;
+yy105:
+       yych = *++p;
+       if (yych == 'T') goto yy106;
+       if (yych != 't') goto yy31;
+yy106:
+       yych = *++p;
+       if (yych == 'R') goto yy107;
+       if (yych != 'r') goto yy31;
+yy107:
+       yych = *++p;
+       if (yych == 'I') goto yy108;
+       if (yych != 'i') goto yy31;
+yy108:
+       yych = *++p;
+       if (yych == 'L') goto yy109;
+       if (yych != 'l') goto yy31;
+yy109:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy110:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy111:
+       yych = *++p;
+       if (yych == 'W') goto yy112;
+       if (yych != 'w') goto yy31;
+yy112:
+       yych = *++p;
+       if (yych != '-') goto yy31;
+       yych = *++p;
+       if (yych == 'S') goto yy114;
+       if (yych != 's') goto yy31;
+yy114:
+       yych = *++p;
+       if (yych == 'O') goto yy115;
+       if (yych != 'o') goto yy31;
+yy115:
+       yych = *++p;
+       if (yych == 'U') goto yy116;
+       if (yych != 'u') goto yy31;
+yy116:
+       yych = *++p;
+       if (yych == 'R') goto yy117;
+       if (yych != 'r') goto yy31;
+yy117:
+       yych = *++p;
+       if (yych == 'C') goto yy118;
+       if (yych != 'c') goto yy31;
+yy118:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy119:
+       yych = *++p;
+       if (yych == '2') goto yy126;
+       goto yy31;
+yy120:
+       yych = *++p;
+       if (yych == 'R') goto yy123;
+       if (yych == 'r') goto yy123;
+       goto yy31;
+yy121:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy122:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy123:
+       yych = *++p;
+       if (yych == 'E') goto yy124;
+       if (yych != 'e') goto yy31;
+yy124:
+       yych = *++p;
+       if (yych == 'A') goto yy125;
+       if (yych != 'a') goto yy31;
+yy125:
+       yych = *++p;
+       if (yych == 'L') goto yy34;
+       if (yych == 'l') goto yy34;
+       goto yy31;
+yy126:
+       yych = *++p;
+       if (yych != '0') goto yy31;
+       yych = *++p;
+       if (yych != '0') goto yy31;
+       yych = *++p;
+       if (yych == '4') goto yy34;
+       goto yy31;
+yy129:
+       yych = *++p;
+       if (yych == 'I') goto yy148;
+       if (yych == 'i') goto yy148;
+       goto yy31;
+yy130:
+       yych = *++p;
+       if (yych <= 'L') {
+               if (yych == 'A') goto yy140;
+               if (yych <= 'K') goto yy31;
+               goto yy139;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy31;
+                       goto yy140;
+               } else {
+                       if (yych == 'l') goto yy139;
+                       goto yy31;
+               }
+       }
+yy131:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy132:
+       yych = *++p;
+       if (yych == '3') goto yy136;
+       goto yy31;
+yy133:
+       yych = *++p;
+       if (yych == 'T') goto yy135;
+       if (yych == 't') goto yy135;
+       goto yy31;
+yy134:
+       yych = *++p;
+       if (yych == 'G') goto yy34;
+       if (yych == 'g') goto yy34;
+       goto yy31;
+yy135:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy136:
+       yych = *++p;
+       if (yych != '2') goto yy31;
+       yych = *++p;
+       if (yych != '7') goto yy31;
+       yych = *++p;
+       if (yych == '0') goto yy34;
+       goto yy31;
+yy139:
+       yych = *++p;
+       if (yych <= 'M') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'N') goto yy146;
+               if (yych == 'n') goto yy146;
+               goto yy31;
+       }
+yy140:
+       yych = *++p;
+       if (yych == 'M') goto yy141;
+       if (yych != 'm') goto yy31;
+yy141:
+       yych = *++p;
+       if (yych == 'S') goto yy142;
+       if (yych != 's') goto yy31;
+yy142:
+       yych = *++p;
+       if (yych == 'P') goto yy143;
+       if (yych != 'p') goto yy31;
+yy143:
+       yych = *++p;
+       if (yych == 'E') goto yy144;
+       if (yych != 'e') goto yy31;
+yy144:
+       yych = *++p;
+       if (yych == 'A') goto yy145;
+       if (yych != 'a') goto yy31;
+yy145:
+       yych = *++p;
+       if (yych == 'K') goto yy34;
+       if (yych == 'k') goto yy34;
+       goto yy31;
+yy146:
+       yych = *++p;
+       if (yych == 'E') goto yy147;
+       if (yych != 'e') goto yy31;
+yy147:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy148:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych == 'N') goto yy149;
+               if (yych <= 'R') goto yy31;
+               goto yy150;
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'm') goto yy31;
+               } else {
+                       if (yych == 's') goto yy150;
+                       goto yy31;
+               }
+       }
+yy149:
+       yych = *++p;
+       if (yych == 'G') goto yy157;
+       if (yych == 'g') goto yy157;
+       goto yy31;
+yy150:
+       yych = *++p;
+       if (yych == 'M') goto yy151;
+       if (yych != 'm') goto yy31;
+yy151:
+       yych = *++p;
+       if (yych == 'E') goto yy152;
+       if (yych != 'e') goto yy31;
+yy152:
+       yych = *++p;
+       if (yych == 'S') goto yy153;
+       if (yych != 's') goto yy31;
+yy153:
+       yych = *++p;
+       if (yych == 'S') goto yy154;
+       if (yych != 's') goto yy31;
+yy154:
+       yych = *++p;
+       if (yych == 'A') goto yy155;
+       if (yych != 'a') goto yy31;
+yy155:
+       yych = *++p;
+       if (yych == 'G') goto yy156;
+       if (yych != 'g') goto yy31;
+yy156:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy157:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy158:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy159:
+       yych = *++p;
+       if (yych == 'E') goto yy209;
+       if (yych == 'e') goto yy209;
+       goto yy31;
+yy160:
+       yych = *++p;
+       if (yych == 'H') goto yy34;
+       if (yych == 'h') goto yy34;
+       goto yy31;
+yy161:
+       yych = *++p;
+       if (yych == 'O') goto yy205;
+       if (yych == 'o') goto yy205;
+       goto yy31;
+yy162:
+       yych = *++p;
+       if (yych <= 'L') {
+               if (yych == 'A') goto yy195;
+               if (yych <= 'K') goto yy31;
+               goto yy196;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy31;
+                       goto yy195;
+               } else {
+                       if (yych == 'l') goto yy196;
+                       goto yy31;
+               }
+       }
+yy163:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych == 'B') goto yy34;
+               if (yych <= 'R') goto yy31;
+               goto yy34;
+       } else {
+               if (yych <= 'b') {
+                       if (yych <= 'a') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych == 's') goto yy34;
+                       goto yy31;
+               }
+       }
+yy164:
+       yych = *++p;
+       if (yych == 'Y') goto yy193;
+       if (yych == 'y') goto yy193;
+       goto yy31;
+yy165:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy166:
+       yych = *++p;
+       if (yych == 'T') goto yy192;
+       if (yych == 't') goto yy192;
+       goto yy31;
+yy167:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych <= 'C') {
+                       if (yych <= 'B') goto yy31;
+                       goto yy179;
+               } else {
+                       if (yych <= 'Q') goto yy31;
+                       if (yych <= 'R') goto yy177;
+                       goto yy178;
+               }
+       } else {
+               if (yych <= 'q') {
+                       if (yych == 'c') goto yy179;
+                       goto yy31;
+               } else {
+                       if (yych <= 'r') goto yy177;
+                       if (yych <= 's') goto yy178;
+                       goto yy31;
+               }
+       }
+yy168:
+       yych = *++p;
+       if (yych == 'M') goto yy176;
+       if (yych == 'm') goto yy176;
+       goto yy31;
+yy169:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'E') goto yy173;
+               if (yych <= 'O') goto yy31;
+               goto yy174;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy31;
+                       goto yy173;
+               } else {
+                       if (yych == 'p') goto yy174;
+                       goto yy31;
+               }
+       }
+yy170:
+       yych = *++p;
+       if (yych == 'T') goto yy171;
+       if (yych != 't') goto yy31;
+yy171:
+       yych = *++p;
+       if (yych == 'T') goto yy172;
+       if (yych != 't') goto yy31;
+yy172:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy173:
+       yych = *++p;
+       if (yych == 'V') goto yy175;
+       if (yych == 'v') goto yy175;
+       goto yy31;
+yy174:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy175:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy176:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy177:
+       yych = *++p;
+       if (yych == 'V') goto yy189;
+       if (yych == 'v') goto yy189;
+       goto yy31;
+yy178:
+       yych = *++p;
+       if (yych == 'S') goto yy186;
+       if (yych == 's') goto yy186;
+       goto yy31;
+yy179:
+       yych = *++p;
+       if (yych == 'O') goto yy180;
+       if (yych != 'o') goto yy31;
+yy180:
+       yych = *++p;
+       if (yych == 'N') goto yy181;
+       if (yych != 'n') goto yy31;
+yy181:
+       yych = *++p;
+       if (yych == 'D') goto yy182;
+       if (yych != 'd') goto yy31;
+yy182:
+       yych = *++p;
+       if (yych == 'L') goto yy183;
+       if (yych != 'l') goto yy31;
+yy183:
+       yych = *++p;
+       if (yych == 'I') goto yy184;
+       if (yych != 'i') goto yy31;
+yy184:
+       yych = *++p;
+       if (yych == 'F') goto yy185;
+       if (yych != 'f') goto yy31;
+yy185:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy186:
+       yych = *++p;
+       if (yych == 'I') goto yy187;
+       if (yych != 'i') goto yy31;
+yy187:
+       yych = *++p;
+       if (yych == 'O') goto yy188;
+       if (yych != 'o') goto yy31;
+yy188:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy189:
+       yych = *++p;
+       if (yych == 'I') goto yy190;
+       if (yych != 'i') goto yy31;
+yy190:
+       yych = *++p;
+       if (yych == 'C') goto yy191;
+       if (yych != 'c') goto yy31;
+yy191:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy192:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy193:
+       yych = *++p;
+       if (yych == 'P') goto yy194;
+       if (yych != 'p') goto yy31;
+yy194:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy195:
+       yych = *++p;
+       if (yych == 'P') goto yy199;
+       if (yych == 'p') goto yy199;
+       goto yy31;
+yy196:
+       yych = *++p;
+       if (yych == 'D') goto yy197;
+       if (yych != 'd') goto yy31;
+yy197:
+       yych = *++p;
+       if (yych == 'A') goto yy198;
+       if (yych != 'a') goto yy31;
+yy198:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy199:
+       yych = *++p;
+       if (yych != '.') goto yy31;
+       yych = *++p;
+       if (yych == 'B') goto yy201;
+       if (yych != 'b') goto yy31;
+yy201:
+       yych = *++p;
+       if (yych == 'E') goto yy202;
+       if (yych != 'e') goto yy31;
+yy202:
+       yych = *++p;
+       if (yych == 'E') goto yy203;
+       if (yych != 'e') goto yy31;
+yy203:
+       yych = *++p;
+       if (yych == 'P') goto yy204;
+       if (yych != 'p') goto yy31;
+yy204:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy205:
+       yych = *++p;
+       if (yych == 'T') goto yy206;
+       if (yych != 't') goto yy31;
+yy206:
+       yych = *++p;
+       if (yych == 'I') goto yy207;
+       if (yych != 'i') goto yy31;
+yy207:
+       yych = *++p;
+       if (yych == 'F') goto yy208;
+       if (yych != 'f') goto yy31;
+yy208:
+       yych = *++p;
+       if (yych == 'Y') goto yy34;
+       if (yych == 'y') goto yy34;
+       goto yy31;
+yy209:
+       yych = *++p;
+       if (yych == 'A') goto yy210;
+       if (yych != 'a') goto yy31;
+yy210:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy211:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych == 'M') goto yy223;
+               if (yych <= 'R') goto yy31;
+               goto yy222;
+       } else {
+               if (yych <= 'm') {
+                       if (yych <= 'l') goto yy31;
+                       goto yy223;
+               } else {
+                       if (yych == 's') goto yy222;
+                       goto yy31;
+               }
+       }
+yy212:
+       yych = *++p;
+       if (yych == 'Y') goto yy220;
+       if (yych == 'y') goto yy220;
+       goto yy31;
+yy213:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy214:
+       yych = *++p;
+       if (yych == 'S') goto yy215;
+       if (yych != 's') goto yy31;
+yy215:
+       yych = *++p;
+       if (yych <= 'N') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'O') goto yy216;
+               if (yych != 'o') goto yy31;
+       }
+yy216:
+       yych = *++p;
+       if (yych == 'U') goto yy217;
+       if (yych != 'u') goto yy31;
+yy217:
+       yych = *++p;
+       if (yych == 'R') goto yy218;
+       if (yych != 'r') goto yy31;
+yy218:
+       yych = *++p;
+       if (yych == 'C') goto yy219;
+       if (yych != 'c') goto yy31;
+yy219:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy220:
+       yych = *++p;
+       if (yych == 'N') goto yy221;
+       if (yych != 'n') goto yy31;
+yy221:
+       yych = *++p;
+       if (yych == 'C') goto yy34;
+       if (yych == 'c') goto yy34;
+       goto yy31;
+yy222:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy223:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy224:
+       yych = *++p;
+       if (yych == 'Y') goto yy244;
+       if (yych == 'y') goto yy244;
+       goto yy31;
+yy225:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'E') goto yy241;
+               if (yych <= 'N') goto yy31;
+               goto yy242;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy31;
+                       goto yy241;
+               } else {
+                       if (yych == 'o') goto yy242;
+                       goto yy31;
+               }
+       }
+yy226:
+       yych = *++p;
+       if (yych == 'A') goto yy236;
+       if (yych == 'a') goto yy236;
+       goto yy31;
+yy227:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'L') goto yy229;
+               if (yych <= 'O') goto yy31;
+               goto yy230;
+       } else {
+               if (yych <= 'l') {
+                       if (yych <= 'k') goto yy31;
+                       goto yy229;
+               } else {
+                       if (yych == 'p') goto yy230;
+                       goto yy31;
+               }
+       }
+yy228:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy229:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy230:
+       yych = *++p;
+       if (yych == 'A') goto yy231;
+       if (yych != 'a') goto yy31;
+yy231:
+       yych = *++p;
+       if (yych == 'R') goto yy232;
+       if (yych != 'r') goto yy31;
+yy232:
+       yych = *++p;
+       if (yych == 'A') goto yy233;
+       if (yych != 'a') goto yy31;
+yy233:
+       yych = *++p;
+       if (yych == 'Z') goto yy234;
+       if (yych != 'z') goto yy31;
+yy234:
+       yych = *++p;
+       if (yych == 'Z') goto yy235;
+       if (yych != 'z') goto yy31;
+yy235:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy236:
+       yych = *++p;
+       if (yych == 'T') goto yy237;
+       if (yych != 't') goto yy31;
+yy237:
+       yych = *++p;
+       if (yych == 'F') goto yy238;
+       if (yych != 'f') goto yy31;
+yy238:
+       yych = *++p;
+       if (yych == 'O') goto yy239;
+       if (yych != 'o') goto yy31;
+yy239:
+       yych = *++p;
+       if (yych == 'R') goto yy240;
+       if (yych != 'r') goto yy31;
+yy240:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy241:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy242:
+       yych = *++p;
+       if (yych == 'X') goto yy243;
+       if (yych != 'x') goto yy31;
+yy243:
+       yych = *++p;
+       if (yych == 'Y') goto yy34;
+       if (yych == 'y') goto yy34;
+       goto yy31;
+yy244:
+       yych = *++p;
+       if (yych == 'C') goto yy34;
+       if (yych == 'c') goto yy34;
+       goto yy31;
+yy245:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy246:
+       yych = *++p;
+       if (yych == 'A') goto yy247;
+       if (yych != 'a') goto yy31;
+yy247:
+       yych = *++p;
+       if (yych == 'Q') goto yy248;
+       if (yych != 'q') goto yy31;
+yy248:
+       yych = *++p;
+       if (yych == 'U') goto yy249;
+       if (yych != 'u') goto yy31;
+yy249:
+       yych = *++p;
+       if (yych == 'E') goto yy250;
+       if (yych != 'e') goto yy31;
+yy250:
+       yych = *++p;
+       if (yych == 'L') goto yy251;
+       if (yych != 'l') goto yy31;
+yy251:
+       yych = *++p;
+       if (yych == 'O') goto yy252;
+       if (yych != 'o') goto yy31;
+yy252:
+       yych = *++p;
+       if (yych == 'C') goto yy253;
+       if (yych != 'c') goto yy31;
+yy253:
+       yych = *++p;
+       if (yych == 'K') goto yy254;
+       if (yych != 'k') goto yy31;
+yy254:
+       yych = *++p;
+       if (yych == 'T') goto yy255;
+       if (yych != 't') goto yy31;
+yy255:
+       yych = *++p;
+       if (yych == 'O') goto yy256;
+       if (yych != 'o') goto yy31;
+yy256:
+       yych = *++p;
+       if (yych == 'K') goto yy257;
+       if (yych != 'k') goto yy31;
+yy257:
+       yych = *++p;
+       if (yych == 'E') goto yy258;
+       if (yych != 'e') goto yy31;
+yy258:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy259:
+       yych = *++p;
+       if (yych == 'T') goto yy266;
+       if (yych == 't') goto yy266;
+       goto yy31;
+yy260:
+       yych = *++p;
+       if (yych == 'T') goto yy265;
+       if (yych == 't') goto yy265;
+       goto yy31;
+yy261:
+       yych = *++p;
+       if (yych <= 'G') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'H') goto yy34;
+               if (yych == 'h') goto yy34;
+               goto yy31;
+       }
+yy262:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy263:
+       yych = *++p;
+       if (yych == 'W') goto yy264;
+       if (yych != 'w') goto yy31;
+yy264:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy265:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy266:
+       yych = *++p;
+       if (yych == 'E') goto yy267;
+       if (yych != 'e') goto yy31;
+yy267:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy268:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy269:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'M') goto yy300;
+               if (yych <= 'O') goto yy31;
+               goto yy299;
+       } else {
+               if (yych <= 'm') {
+                       if (yych <= 'l') goto yy31;
+                       goto yy300;
+               } else {
+                       if (yych == 'p') goto yy299;
+                       goto yy31;
+               }
+       }
+yy270:
+       yych = *++p;
+       if (yych <= 'Q') {
+               if (yych <= '-') {
+                       if (yych <= ',') goto yy31;
+                       goto yy292;
+               } else {
+                       if (yych == 'N') goto yy293;
+                       goto yy31;
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'R') goto yy291;
+                       if (yych <= 'm') goto yy31;
+                       goto yy293;
+               } else {
+                       if (yych == 'r') goto yy291;
+                       goto yy31;
+               }
+       }
+yy271:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy272:
+       yych = *++p;
+       if (yych == 'S') goto yy287;
+       if (yych == 's') goto yy287;
+       goto yy31;
+yy273:
+       yych = *++p;
+       switch (yych) {
+       case 'G':
+       case 'g':       goto yy278;
+       case 'I':
+       case 'i':       goto yy277;
+       case 'P':
+       case 'p':       goto yy279;
+       case 'R':
+       case 'r':       goto yy280;
+       default:        goto yy31;
+       }
+yy274:
+       yych = *++p;
+       if (yych == 'Q') goto yy276;
+       if (yych == 'q') goto yy276;
+       goto yy31;
+yy275:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy276:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy277:
+       yych = *++p;
+       if (yych == 'L') goto yy285;
+       if (yych == 'l') goto yy285;
+       goto yy31;
+yy278:
+       yych = *++p;
+       if (yych == 'N') goto yy283;
+       if (yych == 'n') goto yy283;
+       goto yy31;
+yy279:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy280:
+       yych = *++p;
+       if (yych == 'K') goto yy281;
+       if (yych != 'k') goto yy31;
+yy281:
+       yych = *++p;
+       if (yych == 'E') goto yy282;
+       if (yych != 'e') goto yy31;
+yy282:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy283:
+       yych = *++p;
+       if (yych == 'E') goto yy284;
+       if (yych != 'e') goto yy31;
+yy284:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy285:
+       yych = *++p;
+       if (yych == 'T') goto yy286;
+       if (yych != 't') goto yy31;
+yy286:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy287:
+       yych = *++p;
+       if (yych == 'S') goto yy288;
+       if (yych != 's') goto yy31;
+yy288:
+       yych = *++p;
+       if (yych == 'A') goto yy289;
+       if (yych != 'a') goto yy31;
+yy289:
+       yych = *++p;
+       if (yych == 'G') goto yy290;
+       if (yych != 'g') goto yy31;
+yy290:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy291:
+       yych = *++p;
+       if (yych == 'P') goto yy298;
+       if (yych == 'p') goto yy298;
+       goto yy31;
+yy292:
+       yych = *++p;
+       if (yych == 'H') goto yy295;
+       if (yych == 'h') goto yy295;
+       goto yy31;
+yy293:
+       yych = *++p;
+       if (yych == 'I') goto yy294;
+       if (yych != 'i') goto yy31;
+yy294:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy295:
+       yych = *++p;
+       if (yych == 'E') goto yy296;
+       if (yych != 'e') goto yy31;
+yy296:
+       yych = *++p;
+       if (yych == 'L') goto yy297;
+       if (yych != 'l') goto yy31;
+yy297:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy298:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy299:
+       yych = *++p;
+       if (yych == 'D') goto yy303;
+       if (yych == 'd') goto yy303;
+       goto yy31;
+yy300:
+       yych = *++p;
+       if (yych == 'B') goto yy301;
+       if (yych != 'b') goto yy31;
+yy301:
+       yych = *++p;
+       if (yych == 'L') goto yy302;
+       if (yych != 'l') goto yy31;
+yy302:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy303:
+       yych = *++p;
+       if (yych == 'A') goto yy304;
+       if (yych != 'a') goto yy31;
+yy304:
+       yych = *++p;
+       if (yych == 'T') goto yy305;
+       if (yych != 't') goto yy31;
+yy305:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy306:
+       yych = *++p;
+       if (yych == 'A') goto yy311;
+       if (yych == 'a') goto yy311;
+       goto yy31;
+yy307:
+       yych = *++p;
+       if (yych == 'S') goto yy308;
+       if (yych != 's') goto yy31;
+yy308:
+       yych = *++p;
+       if (yych == 'T') goto yy309;
+       if (yych != 't') goto yy31;
+yy309:
+       yych = *++p;
+       if (yych == 'F') goto yy310;
+       if (yych != 'f') goto yy31;
+yy310:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy311:
+       yych = *++p;
+       if (yych == 'P') goto yy312;
+       if (yych != 'p') goto yy31;
+yy312:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy313:
+       yych = *++p;
+       if (yych == 'M') goto yy336;
+       if (yych == 'm') goto yy336;
+       goto yy31;
+yy314:
+       yych = *++p;
+       if (yych <= 'I') {
+               if (yych == 'C') goto yy325;
+               if (yych <= 'H') goto yy31;
+               goto yy324;
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= 'b') goto yy31;
+                       goto yy325;
+               } else {
+                       if (yych == 'i') goto yy324;
+                       goto yy31;
+               }
+       }
+yy315:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'N') goto yy34;
+               if (yych <= 'O') goto yy31;
+               goto yy34;
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'm') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych == 'p') goto yy34;
+                       goto yy31;
+               }
+       }
+yy316:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'A') goto yy322;
+               if (yych <= 'N') goto yy31;
+               goto yy323;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy31;
+                       goto yy322;
+               } else {
+                       if (yych == 'o') goto yy323;
+                       goto yy31;
+               }
+       }
+yy317:
+       yych = *++p;
+       if (yych == 'F') goto yy321;
+       if (yych == 'f') goto yy321;
+       goto yy31;
+yy318:
+       yych = *++p;
+       if (yych <= '@') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'A') goto yy320;
+               if (yych == 'a') goto yy320;
+               goto yy31;
+       }
+yy319:
+       yych = *++p;
+       if (yych == 'X') goto yy34;
+       if (yych == 'x') goto yy34;
+       goto yy31;
+yy320:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy321:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy322:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy323:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy324:
+       yych = *++p;
+       if (yych == 'S') goto yy326;
+       if (yych == 's') goto yy326;
+       goto yy31;
+yy325:
+       yych = *++p;
+       if (yych <= ':') {
+               if (yych == '6') goto yy34;
+               if (yych <= '9') goto yy31;
+               goto yy35;
+       } else {
+               if (yych <= 'S') {
+                       if (yych <= 'R') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych == 's') goto yy34;
+                       goto yy31;
+               }
+       }
+yy326:
+       yych = *++p;
+       if (yych == '.') goto yy327;
+       if (yych == ':') goto yy35;
+       goto yy31;
+yy327:
+       yych = *++p;
+       if (yych <= 'X') {
+               if (yych <= 'K') {
+                       if (yych == 'B') goto yy330;
+                       goto yy31;
+               } else {
+                       if (yych <= 'L') goto yy328;
+                       if (yych <= 'W') goto yy31;
+                       goto yy329;
+               }
+       } else {
+               if (yych <= 'k') {
+                       if (yych == 'b') goto yy330;
+                       goto yy31;
+               } else {
+                       if (yych <= 'l') goto yy328;
+                       if (yych == 'x') goto yy329;
+                       goto yy31;
+               }
+       }
+yy328:
+       yych = *++p;
+       if (yych == 'W') goto yy335;
+       if (yych == 'w') goto yy335;
+       goto yy31;
+yy329:
+       yych = *++p;
+       if (yych == 'P') goto yy333;
+       if (yych == 'p') goto yy333;
+       goto yy31;
+yy330:
+       yych = *++p;
+       if (yych == 'E') goto yy331;
+       if (yych != 'e') goto yy31;
+yy331:
+       yych = *++p;
+       if (yych == 'E') goto yy332;
+       if (yych != 'e') goto yy31;
+yy332:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy333:
+       yych = *++p;
+       if (yych == 'C') goto yy334;
+       if (yych != 'c') goto yy31;
+yy334:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy335:
+       yych = *++p;
+       if (yych == 'Z') goto yy34;
+       if (yych == 'z') goto yy34;
+       goto yy31;
+yy336:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy337:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy338:
+       yych = *++p;
+       if (yych == 'T') goto yy341;
+       if (yych == 't') goto yy341;
+       goto yy31;
+yy339:
+       yych = *++p;
+       if (yych != '2') goto yy31;
+       yych = *++p;
+       if (yych == '3') goto yy34;
+       goto yy31;
+yy341:
+       yych = *++p;
+       if (yych == 'P') goto yy342;
+       if (yych != 'p') goto yy31;
+yy342:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy343:
+       yych = *++p;
+       if (yych == 'A') goto yy359;
+       if (yych == 'a') goto yy359;
+       goto yy31;
+yy344:
+       yych = *++p;
+       if (yych <= 'Z') {
+               if (yych == 'T') goto yy34;
+               if (yych <= 'Y') goto yy31;
+               goto yy350;
+       } else {
+               if (yych <= 't') {
+                       if (yych <= 's') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych == 'z') goto yy350;
+                       goto yy31;
+               }
+       }
+yy345:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'P') goto yy347;
+               if (yych == 'p') goto yy347;
+               goto yy31;
+       }
+yy346:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy347:
+       yych = *++p;
+       if (yych == 'H') goto yy348;
+       if (yych != 'h') goto yy31;
+yy348:
+       yych = *++p;
+       if (yych == 'E') goto yy349;
+       if (yych != 'e') goto yy31;
+yy349:
+       yych = *++p;
+       if (yych == 'R') goto yy34;
+       if (yych == 'r') goto yy34;
+       goto yy31;
+yy350:
+       yych = *++p;
+       if (yych == 'M') goto yy351;
+       if (yych != 'm') goto yy31;
+yy351:
+       yych = *++p;
+       if (yych == 'O') goto yy352;
+       if (yych != 'o') goto yy31;
+yy352:
+       yych = *++p;
+       if (yych == 'P') goto yy353;
+       if (yych != 'p') goto yy31;
+yy353:
+       yych = *++p;
+       if (yych == 'R') goto yy354;
+       if (yych != 'r') goto yy31;
+yy354:
+       yych = *++p;
+       if (yych == 'O') goto yy355;
+       if (yych != 'o') goto yy31;
+yy355:
+       yych = *++p;
+       if (yych == 'J') goto yy356;
+       if (yych != 'j') goto yy31;
+yy356:
+       yych = *++p;
+       if (yych == 'E') goto yy357;
+       if (yych != 'e') goto yy31;
+yy357:
+       yych = *++p;
+       if (yych == 'C') goto yy358;
+       if (yych != 'c') goto yy31;
+yy358:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy359:
+       yych = *++p;
+       if (yych == 'L') goto yy360;
+       if (yych != 'l') goto yy31;
+yy360:
+       yych = *++p;
+       if (yych == 'K') goto yy34;
+       if (yych == 'k') goto yy34;
+       goto yy31;
+yy361:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych <= 'M') {
+                       if (yych == 'L') goto yy371;
+                       goto yy31;
+               } else {
+                       if (yych <= 'N') goto yy372;
+                       if (yych <= 'R') goto yy31;
+                       goto yy373;
+               }
+       } else {
+               if (yych <= 'm') {
+                       if (yych == 'l') goto yy371;
+                       goto yy31;
+               } else {
+                       if (yych <= 'n') goto yy372;
+                       if (yych == 's') goto yy373;
+                       goto yy31;
+               }
+       }
+yy362:
+       yych = *++p;
+       if (yych == 'E') goto yy370;
+       if (yych == 'e') goto yy370;
+       goto yy31;
+yy363:
+       yych = *++p;
+       if (yych == 'C') goto yy365;
+       if (yych == 'c') goto yy365;
+       goto yy31;
+yy364:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy365:
+       yych = *++p;
+       if (yych == 'E') goto yy366;
+       if (yych != 'e') goto yy31;
+yy366:
+       yych = *++p;
+       if (yych == 'T') goto yy367;
+       if (yych != 't') goto yy31;
+yy367:
+       yych = *++p;
+       if (yych == 'I') goto yy368;
+       if (yych != 'i') goto yy31;
+yy368:
+       yych = *++p;
+       if (yych == 'M') goto yy369;
+       if (yych != 'm') goto yy31;
+yy369:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy370:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy371:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy372:
+       yych = *++p;
+       if (yych == 'G') goto yy374;
+       if (yych == 'g') goto yy374;
+       goto yy31;
+yy373:
+       yych = *++p;
+       if (yych == 'H') goto yy34;
+       if (yych == 'h') goto yy34;
+       goto yy31;
+yy374:
+       yych = *++p;
+       if (yych == 'E') goto yy375;
+       if (yych != 'e') goto yy31;
+yy375:
+       yych = *++p;
+       if (yych == 'R') goto yy34;
+       if (yych == 'r') goto yy34;
+       goto yy31;
+yy376:
+       yych = *++p;
+       if (yych == 'T') goto yy394;
+       if (yych == 't') goto yy394;
+       goto yy31;
+yy377:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy378:
+       yych = *++p;
+       if (yych == 'M') goto yy34;
+       if (yych == 'm') goto yy34;
+       goto yy31;
+yy379:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych == 'P') goto yy34;
+               if (yych <= 'R') goto yy31;
+               goto yy34;
+       } else {
+               if (yych <= 'p') {
+                       if (yych <= 'o') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych == 's') goto yy34;
+                       goto yy31;
+               }
+       }
+yy380:
+       yych = *++p;
+       if (yych == 'I') goto yy388;
+       if (yych == 'i') goto yy388;
+       goto yy31;
+yy381:
+       yych = *++p;
+       if (yych == 'A') goto yy387;
+       if (yych == 'a') goto yy387;
+       goto yy31;
+yy382:
+       yych = *++p;
+       if (yych == 'O') goto yy385;
+       if (yych == 'o') goto yy385;
+       goto yy31;
+yy383:
+       yych = *++p;
+       if (yych == 'A') goto yy384;
+       if (yych != 'a') goto yy31;
+yy384:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == ':') goto yy35;
+               goto yy31;
+       } else {
+               if (yych <= 'S') goto yy34;
+               if (yych == 's') goto yy34;
+               goto yy31;
+       }
+yy385:
+       yych = *++p;
+       if (yych == 'U') goto yy386;
+       if (yych != 'u') goto yy31;
+yy386:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy387:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy388:
+       yych = *++p;
+       if (yych == 'U') goto yy389;
+       if (yych != 'u') goto yy31;
+yy389:
+       yych = *++p;
+       if (yych == 'M') goto yy390;
+       if (yych != 'm') goto yy31;
+yy390:
+       yych = *++p;
+       if (yych == 'X') goto yy391;
+       if (yych != 'x') goto yy31;
+yy391:
+       yych = *++p;
+       if (yych == 'T') goto yy392;
+       if (yych != 't') goto yy31;
+yy392:
+       yych = *++p;
+       if (yych == 'R') goto yy393;
+       if (yych != 'r') goto yy31;
+yy393:
+       yych = *++p;
+       if (yych == 'A') goto yy34;
+       if (yych == 'a') goto yy34;
+       goto yy31;
+yy394:
+       yych = *++p;
+       if (yych == 'A') goto yy395;
+       if (yych != 'a') goto yy31;
+yy395:
+       yych = *++p;
+       if (yych == 'C') goto yy396;
+       if (yych != 'c') goto yy31;
+yy396:
+       yych = *++p;
+       if (yych == 'H') goto yy397;
+       if (yych != 'h') goto yy31;
+yy397:
+       yych = *++p;
+       if (yych == 'M') goto yy398;
+       if (yych != 'm') goto yy31;
+yy398:
+       yych = *++p;
+       if (yych == 'E') goto yy399;
+       if (yych != 'e') goto yy31;
+yy399:
+       yych = *++p;
+       if (yych == 'N') goto yy400;
+       if (yych != 'n') goto yy31;
+yy400:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy401:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy402:
+       yych = *++p;
+       if (yych <= 'V') {
+               if (yych == 'R') goto yy34;
+               if (yych <= 'U') goto yy31;
+       } else {
+               if (yych <= 'r') {
+                       if (yych <= 'q') goto yy31;
+                       goto yy34;
+               } else {
+                       if (yych != 'v') goto yy31;
+               }
+       }
+       yych = *++p;
+       if (yych == 'A') goto yy404;
+       if (yych != 'a') goto yy31;
+yy404:
+       yych = *++p;
+       if (yych == 'S') goto yy405;
+       if (yych != 's') goto yy31;
+yy405:
+       yych = *++p;
+       if (yych == 'C') goto yy406;
+       if (yych != 'c') goto yy31;
+yy406:
+       yych = *++p;
+       if (yych == 'R') goto yy407;
+       if (yych != 'r') goto yy31;
+yy407:
+       yych = *++p;
+       if (yych == 'I') goto yy408;
+       if (yych != 'i') goto yy31;
+yy408:
+       yych = *++p;
+       if (yych == 'P') goto yy409;
+       if (yych != 'p') goto yy31;
+yy409:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy410:
+       yych = *++p;
+       if (yych == 'B') goto yy34;
+       if (yych == 'b') goto yy34;
+       goto yy31;
+yy411:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy412:
+       yych = *++p;
+       if (yych == 'N') goto yy419;
+       if (yych == 'n') goto yy419;
+       goto yy31;
+yy413:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy414:
+       yych = *++p;
+       if (yych == 'C') goto yy418;
+       if (yych == 'c') goto yy418;
+       goto yy31;
+yy415:
+       yych = *++p;
+       if (yych <= 'V') {
+               if (yych == 'T') goto yy417;
+               if (yych <= 'U') goto yy31;
+               goto yy34;
+       } else {
+               if (yych <= 't') {
+                       if (yych <= 's') goto yy31;
+                       goto yy417;
+               } else {
+                       if (yych == 'v') goto yy34;
+                       goto yy31;
+               }
+       }
+yy416:
+       yych = *++p;
+       if (yych == 'I') goto yy34;
+       if (yych == 'i') goto yy34;
+       goto yy31;
+yy417:
+       yych = *++p;
+       if (yych == 'A') goto yy34;
+       if (yych == 'a') goto yy34;
+       goto yy31;
+yy418:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy419:
+       yych = *++p;
+       if (yych == 'A') goto yy420;
+       if (yych != 'a') goto yy31;
+yy420:
+       yych = *++p;
+       if (yych != '-') goto yy31;
+       yych = *++p;
+       if (yych == 'P') goto yy422;
+       if (yych != 'p') goto yy31;
+yy422:
+       yych = *++p;
+       if (yych == 'L') goto yy423;
+       if (yych != 'l') goto yy31;
+yy423:
+       yych = *++p;
+       if (yych == 'A') goto yy424;
+       if (yych != 'a') goto yy31;
+yy424:
+       yych = *++p;
+       if (yych == 'Y') goto yy425;
+       if (yych != 'y') goto yy31;
+yy425:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych == 'C') goto yy426;
+               if (yych <= 'R') goto yy31;
+               goto yy427;
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= 'b') goto yy31;
+               } else {
+                       if (yych == 's') goto yy427;
+                       goto yy31;
+               }
+       }
+yy426:
+       yych = *++p;
+       if (yych == 'O') goto yy432;
+       if (yych == 'o') goto yy432;
+       goto yy31;
+yy427:
+       yych = *++p;
+       if (yych == 'I') goto yy428;
+       if (yych != 'i') goto yy31;
+yy428:
+       yych = *++p;
+       if (yych == 'N') goto yy429;
+       if (yych != 'n') goto yy31;
+yy429:
+       yych = *++p;
+       if (yych == 'G') goto yy430;
+       if (yych != 'g') goto yy31;
+yy430:
+       yych = *++p;
+       if (yych == 'L') goto yy431;
+       if (yych != 'l') goto yy31;
+yy431:
+       yych = *++p;
+       if (yych == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+yy432:
+       yych = *++p;
+       if (yych == 'N') goto yy433;
+       if (yych != 'n') goto yy31;
+yy433:
+       yych = *++p;
+       if (yych == 'T') goto yy434;
+       if (yych != 't') goto yy31;
+yy434:
+       yych = *++p;
+       if (yych == 'A') goto yy435;
+       if (yych != 'a') goto yy31;
+yy435:
+       yych = *++p;
+       if (yych == 'I') goto yy436;
+       if (yych != 'i') goto yy31;
+yy436:
+       yych = *++p;
+       if (yych == 'N') goto yy437;
+       if (yych != 'n') goto yy31;
+yy437:
+       yych = *++p;
+       if (yych == 'E') goto yy438;
+       if (yych != 'e') goto yy31;
+yy438:
+       yych = *++p;
+       if (yych == 'R') goto yy34;
+       if (yych == 'r') goto yy34;
+       goto yy31;
+yy439:
+       yych = *++p;
+       if (yych == 'S') goto yy34;
+       if (yych == 's') goto yy34;
+       goto yy31;
+yy440:
+       yych = *++p;
+       if (yych <= 'N') {
+               if (yych <= 'A') {
+                       if (yych <= '@') goto yy31;
+                       goto yy462;
+               } else {
+                       if (yych <= 'L') goto yy31;
+                       if (yych <= 'M') goto yy463;
+                       goto yy464;
+               }
+       } else {
+               if (yych <= 'l') {
+                       if (yych == 'a') goto yy462;
+                       goto yy31;
+               } else {
+                       if (yych <= 'm') goto yy463;
+                       if (yych <= 'n') goto yy464;
+                       goto yy31;
+               }
+       }
+yy441:
+       yych = *++p;
+       if (yych == 'R') goto yy449;
+       if (yych == 'r') goto yy449;
+       goto yy31;
+yy442:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'L') goto yy446;
+               if (yych <= 'O') goto yy31;
+               goto yy34;
+       } else {
+               if (yych <= 'l') {
+                       if (yych <= 'k') goto yy31;
+                       goto yy446;
+               } else {
+                       if (yych == 'p') goto yy34;
+                       goto yy31;
+               }
+       }
+yy443:
+       yych = *++p;
+       if (yych == 'I') goto yy445;
+       if (yych == 'i') goto yy445;
+       goto yy31;
+yy444:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy445:
+       yych = *++p;
+       if (yych == 'D') goto yy34;
+       if (yych == 'd') goto yy34;
+       goto yy31;
+yy446:
+       yych = *++p;
+       if (yych == 'L') goto yy447;
+       if (yych != 'l') goto yy31;
+yy447:
+       yych = *++p;
+       if (yych == 'T') goto yy448;
+       if (yych != 't') goto yy31;
+yy448:
+       yych = *++p;
+       if (yych == 'O') goto yy34;
+       if (yych == 'o') goto yy34;
+       goto yy31;
+yy449:
+       yych = *++p;
+       if (yych == 'O') goto yy450;
+       if (yych != 'o') goto yy31;
+yy450:
+       yych = *++p;
+       if (yych == 'M') goto yy451;
+       if (yych != 'm') goto yy31;
+yy451:
+       yych = *++p;
+       if (yych == 'E') goto yy452;
+       if (yych != 'e') goto yy31;
+yy452:
+       yych = *++p;
+       if (yych == '-') goto yy453;
+       if (yych == ':') goto yy35;
+       goto yy31;
+yy453:
+       yych = *++p;
+       if (yych == 'E') goto yy454;
+       if (yych != 'e') goto yy31;
+yy454:
+       yych = *++p;
+       if (yych == 'X') goto yy455;
+       if (yych != 'x') goto yy31;
+yy455:
+       yych = *++p;
+       if (yych == 'T') goto yy456;
+       if (yych != 't') goto yy31;
+yy456:
+       yych = *++p;
+       if (yych == 'E') goto yy457;
+       if (yych != 'e') goto yy31;
+yy457:
+       yych = *++p;
+       if (yych == 'N') goto yy458;
+       if (yych != 'n') goto yy31;
+yy458:
+       yych = *++p;
+       if (yych == 'S') goto yy459;
+       if (yych != 's') goto yy31;
+yy459:
+       yych = *++p;
+       if (yych == 'I') goto yy460;
+       if (yych != 'i') goto yy31;
+yy460:
+       yych = *++p;
+       if (yych == 'O') goto yy461;
+       if (yych != 'o') goto yy31;
+yy461:
+       yych = *++p;
+       if (yych == 'N') goto yy34;
+       if (yych == 'n') goto yy34;
+       goto yy31;
+yy462:
+       yych = *++p;
+       if (yych == 'P') goto yy34;
+       if (yych == 'p') goto yy34;
+       goto yy31;
+yy463:
+       yych = *++p;
+       if (yych == '-') goto yy468;
+       goto yy31;
+yy464:
+       yych = *++p;
+       if (yych == 'T') goto yy465;
+       if (yych != 't') goto yy31;
+yy465:
+       yych = *++p;
+       if (yych == 'E') goto yy466;
+       if (yych != 'e') goto yy31;
+yy466:
+       yych = *++p;
+       if (yych == 'N') goto yy467;
+       if (yych != 'n') goto yy31;
+yy467:
+       yych = *++p;
+       if (yych == 'T') goto yy34;
+       if (yych == 't') goto yy34;
+       goto yy31;
+yy468:
+       yych = *++p;
+       if (yych == 'E') goto yy469;
+       if (yych != 'e') goto yy31;
+yy469:
+       yych = *++p;
+       if (yych == 'V') goto yy470;
+       if (yych != 'v') 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 yy473;
+       if (yych != 't') goto yy31;
+yy473:
+       yych = *++p;
+       if (yych == 'B') goto yy474;
+       if (yych != 'b') goto yy31;
+yy474:
+       yych = *++p;
+       if (yych == 'R') goto yy475;
+       if (yych != 'r') goto yy31;
+yy475:
+       yych = *++p;
+       if (yych == 'I') goto yy476;
+       if (yych != 'i') goto yy31;
+yy476:
+       yych = *++p;
+       if (yych == 'T') goto yy477;
+       if (yych != 't') goto yy31;
+yy477:
+       yych = *++p;
+       if (yych == 'E') goto yy478;
+       if (yych != 'e') goto yy31;
+yy478:
+       yych = *++p;
+       if (yych != '-') goto yy31;
+       yych = *++p;
+       if (yych == 'A') goto yy480;
+       if (yych != 'a') goto yy31;
+yy480:
+       yych = *++p;
+       if (yych == 'T') goto yy481;
+       if (yych != 't') 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 == 'N') goto yy484;
+       if (yych != 'n') goto yy31;
+yy484:
+       yych = *++p;
+       if (yych == 'D') goto yy485;
+       if (yych != 'd') goto yy31;
+yy485:
+       yych = *++p;
+       if (yych == 'E') goto yy486;
+       if (yych != 'e') goto yy31;
+yy486:
+       ++p;
+       if ((yych = *p) == 'E') goto yy34;
+       if (yych == 'e') goto yy34;
+       goto yy31;
+}
+
+}
+
+// Try to match email autolink after first <, returning num of chars matched.
+int _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 = *p;
+       if (yych <= ',') {
+               if (yych <= '!') {
+                       if (yych == '\n') goto yy489;
+                       if (yych <= ' ') goto yy491;
+                       goto yy490;
+               } else {
+                       if (yych <= '\'') {
+                               if (yych <= '"') goto yy491;
+                               goto yy490;
+                       } else {
+                               if (yych <= ')') goto yy491;
+                               if (yych <= '+') goto yy490;
+                               goto yy491;
+                       }
+               }
+       } else {
+               if (yych <= '?') {
+                       if (yych <= '<') {
+                               if (yych <= '9') goto yy490;
+                               goto yy491;
+                       } else {
+                               if (yych == '>') goto yy491;
+                               goto yy490;
+                       }
+               } else {
+                       if (yych <= 'Z') {
+                               if (yych <= '@') goto yy491;
+                               goto yy490;
+                       } else {
+                               if (yych <= ']') goto yy491;
+                               if (yych <= '~') goto yy490;
+                               goto yy491;
+                       }
+               }
+       }
+yy489:
+       { return 0; }
+yy490:
+       yych = *(marker = ++p);
+       if (yych <= ',') {
+               if (yych <= '"') {
+                       if (yych == '!') goto yy495;
+                       goto yy489;
+               } else {
+                       if (yych <= '\'') goto yy495;
+                       if (yych <= ')') goto yy489;
+                       if (yych <= '+') goto yy495;
+                       goto yy489;
+               }
+       } else {
+               if (yych <= '>') {
+                       if (yych <= '9') goto yy495;
+                       if (yych == '=') goto yy495;
+                       goto yy489;
+               } else {
+                       if (yych <= 'Z') goto yy495;
+                       if (yych <= ']') goto yy489;
+                       if (yych <= '~') goto yy495;
+                       goto yy489;
+               }
+       }
+yy491:
+       yych = *++p;
+       goto yy489;
+yy492:
+       yych = *++p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy493;
+               if (yych <= '9') goto yy496;
+       } else {
+               if (yych <= 'Z') goto yy496;
+               if (yych <= '`') goto yy493;
+               if (yych <= 'z') goto yy496;
+       }
+yy493:
+       p = marker;
+       goto yy489;
+yy494:
+       ++p;
+       yych = *p;
+yy495:
+       if (yybm[0+yych] & 128) {
+               goto yy494;
+       }
+       if (yych <= '>') goto yy493;
+       if (yych <= '@') goto yy492;
+       goto yy493;
+yy496:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy498;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy498;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy498;
+                       goto yy493;
+               }
+       }
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy626;
+               if (yych <= '/') goto yy493;
+               goto yy627;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy627;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy627;
+                       goto yy493;
+               }
+       }
+yy498:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych <= '-') goto yy626;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy627;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy627;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy627;
+                       goto yy493;
+               }
+       }
+yy499:
+       ++p;
+       yych = *p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy493;
+               if (yych <= '9') goto yy502;
+               goto yy493;
+       } else {
+               if (yych <= 'Z') goto yy502;
+               if (yych <= '`') goto yy493;
+               if (yych <= 'z') goto yy502;
+               goto yy493;
+       }
+yy500:
+       ++p;
+       { return (p - start); }
+yy502:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy504;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy504;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy504;
+                       goto yy493;
+               }
+       }
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy505;
+               if (yych <= '/') goto yy493;
+               goto yy506;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy506;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy506;
+                       goto yy493;
+               }
+       }
+yy504:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy506;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy506;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy506;
+                       goto yy493;
+               }
+       }
+yy505:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy507;
+               if (yych <= '/') goto yy493;
+               goto yy508;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy508;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy508;
+                       goto yy493;
+               }
+       }
+yy506:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy508;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy508;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy508;
+                       goto yy493;
+               }
+       }
+yy507:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy509;
+               if (yych <= '/') goto yy493;
+               goto yy510;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy510;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy510;
+                       goto yy493;
+               }
+       }
+yy508:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy510;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy510;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy510;
+                       goto yy493;
+               }
+       }
+yy509:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy511;
+               if (yych <= '/') goto yy493;
+               goto yy512;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy512;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy512;
+                       goto yy493;
+               }
+       }
+yy510:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy512;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy512;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy512;
+                       goto yy493;
+               }
+       }
+yy511:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy513;
+               if (yych <= '/') goto yy493;
+               goto yy514;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy514;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy514;
+                       goto yy493;
+               }
+       }
+yy512:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy514;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy514;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy514;
+                       goto yy493;
+               }
+       }
+yy513:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy515;
+               if (yych <= '/') goto yy493;
+               goto yy516;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy516;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy516;
+                       goto yy493;
+               }
+       }
+yy514:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy516;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy516;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy516;
+                       goto yy493;
+               }
+       }
+yy515:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy517;
+               if (yych <= '/') goto yy493;
+               goto yy518;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy518;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy518;
+                       goto yy493;
+               }
+       }
+yy516:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy518;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy518;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy518;
+                       goto yy493;
+               }
+       }
+yy517:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy519;
+               if (yych <= '/') goto yy493;
+               goto yy520;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy520;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy520;
+                       goto yy493;
+               }
+       }
+yy518:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy520;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy520;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy520;
+                       goto yy493;
+               }
+       }
+yy519:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy521;
+               if (yych <= '/') goto yy493;
+               goto yy522;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy522;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy522;
+                       goto yy493;
+               }
+       }
+yy520:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy522;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy522;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy522;
+                       goto yy493;
+               }
+       }
+yy521:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy523;
+               if (yych <= '/') goto yy493;
+               goto yy524;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy524;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy524;
+                       goto yy493;
+               }
+       }
+yy522:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy524;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy524;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy524;
+                       goto yy493;
+               }
+       }
+yy523:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy525;
+               if (yych <= '/') goto yy493;
+               goto yy526;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy526;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy526;
+                       goto yy493;
+               }
+       }
+yy524:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy526;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy526;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy526;
+                       goto yy493;
+               }
+       }
+yy525:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy527;
+               if (yych <= '/') goto yy493;
+               goto yy528;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy528;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy528;
+                       goto yy493;
+               }
+       }
+yy526:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy528;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy528;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy528;
+                       goto yy493;
+               }
+       }
+yy527:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy529;
+               if (yych <= '/') goto yy493;
+               goto yy530;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy530;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy530;
+                       goto yy493;
+               }
+       }
+yy528:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy530;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy530;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy530;
+                       goto yy493;
+               }
+       }
+yy529:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy531;
+               if (yych <= '/') goto yy493;
+               goto yy532;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy532;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy532;
+                       goto yy493;
+               }
+       }
+yy530:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy532;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy532;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy532;
+                       goto yy493;
+               }
+       }
+yy531:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy533;
+               if (yych <= '/') goto yy493;
+               goto yy534;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy534;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy534;
+                       goto yy493;
+               }
+       }
+yy532:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy534;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy534;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy534;
+                       goto yy493;
+               }
+       }
+yy533:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy535;
+               if (yych <= '/') goto yy493;
+               goto yy536;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy536;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy536;
+                       goto yy493;
+               }
+       }
+yy534:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy536;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy536;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy536;
+                       goto yy493;
+               }
+       }
+yy535:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy537;
+               if (yych <= '/') goto yy493;
+               goto yy538;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy538;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy538;
+                       goto yy493;
+               }
+       }
+yy536:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy538;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy538;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy538;
+                       goto yy493;
+               }
+       }
+yy537:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy539;
+               if (yych <= '/') goto yy493;
+               goto yy540;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy540;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy540;
+                       goto yy493;
+               }
+       }
+yy538:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy540;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy540;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy540;
+                       goto yy493;
+               }
+       }
+yy539:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy541;
+               if (yych <= '/') goto yy493;
+               goto yy542;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy542;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy542;
+                       goto yy493;
+               }
+       }
+yy540:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy542;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy542;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy542;
+                       goto yy493;
+               }
+       }
+yy541:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy543;
+               if (yych <= '/') goto yy493;
+               goto yy544;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy544;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy544;
+                       goto yy493;
+               }
+       }
+yy542:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy544;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy544;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy544;
+                       goto yy493;
+               }
+       }
+yy543:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy545;
+               if (yych <= '/') goto yy493;
+               goto yy546;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy546;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy546;
+                       goto yy493;
+               }
+       }
+yy544:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy546;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy546;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy546;
+                       goto yy493;
+               }
+       }
+yy545:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy547;
+               if (yych <= '/') goto yy493;
+               goto yy548;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy548;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy548;
+                       goto yy493;
+               }
+       }
+yy546:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy548;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy548;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy548;
+                       goto yy493;
+               }
+       }
+yy547:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy549;
+               if (yych <= '/') goto yy493;
+               goto yy550;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy550;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy550;
+                       goto yy493;
+               }
+       }
+yy548:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy550;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy550;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy550;
+                       goto yy493;
+               }
+       }
+yy549:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy551;
+               if (yych <= '/') goto yy493;
+               goto yy552;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy552;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy552;
+                       goto yy493;
+               }
+       }
+yy550:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy552;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy552;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy552;
+                       goto yy493;
+               }
+       }
+yy551:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy553;
+               if (yych <= '/') goto yy493;
+               goto yy554;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy554;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy554;
+                       goto yy493;
+               }
+       }
+yy552:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy554;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy554;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy554;
+                       goto yy493;
+               }
+       }
+yy553:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy555;
+               if (yych <= '/') goto yy493;
+               goto yy556;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy556;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy556;
+                       goto yy493;
+               }
+       }
+yy554:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy556;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy556;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy556;
+                       goto yy493;
+               }
+       }
+yy555:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy557;
+               if (yych <= '/') goto yy493;
+               goto yy558;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy558;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy558;
+                       goto yy493;
+               }
+       }
+yy556:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy558;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy558;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy558;
+                       goto yy493;
+               }
+       }
+yy557:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy559;
+               if (yych <= '/') goto yy493;
+               goto yy560;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy560;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy560;
+                       goto yy493;
+               }
+       }
+yy558:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy560;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy560;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy560;
+                       goto yy493;
+               }
+       }
+yy559:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy561;
+               if (yych <= '/') goto yy493;
+               goto yy562;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy562;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy562;
+                       goto yy493;
+               }
+       }
+yy560:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy562;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy562;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy562;
+                       goto yy493;
+               }
+       }
+yy561:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy563;
+               if (yych <= '/') goto yy493;
+               goto yy564;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy564;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy564;
+                       goto yy493;
+               }
+       }
+yy562:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy564;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy564;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy564;
+                       goto yy493;
+               }
+       }
+yy563:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy565;
+               if (yych <= '/') goto yy493;
+               goto yy566;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy566;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy566;
+                       goto yy493;
+               }
+       }
+yy564:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy566;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy566;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy566;
+                       goto yy493;
+               }
+       }
+yy565:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy567;
+               if (yych <= '/') goto yy493;
+               goto yy568;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy568;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy568;
+                       goto yy493;
+               }
+       }
+yy566:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy568;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy568;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy568;
+                       goto yy493;
+               }
+       }
+yy567:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy569;
+               if (yych <= '/') goto yy493;
+               goto yy570;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy570;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy570;
+                       goto yy493;
+               }
+       }
+yy568:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy570;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy570;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy570;
+                       goto yy493;
+               }
+       }
+yy569:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy571;
+               if (yych <= '/') goto yy493;
+               goto yy572;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy572;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy572;
+                       goto yy493;
+               }
+       }
+yy570:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy572;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy572;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy572;
+                       goto yy493;
+               }
+       }
+yy571:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy573;
+               if (yych <= '/') goto yy493;
+               goto yy574;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy574;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy574;
+                       goto yy493;
+               }
+       }
+yy572:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy574;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy574;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy574;
+                       goto yy493;
+               }
+       }
+yy573:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy575;
+               if (yych <= '/') goto yy493;
+               goto yy576;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy576;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy576;
+                       goto yy493;
+               }
+       }
+yy574:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy576;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy576;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy576;
+                       goto yy493;
+               }
+       }
+yy575:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy577;
+               if (yych <= '/') goto yy493;
+               goto yy578;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy578;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy578;
+                       goto yy493;
+               }
+       }
+yy576:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy578;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy578;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy578;
+                       goto yy493;
+               }
+       }
+yy577:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy579;
+               if (yych <= '/') goto yy493;
+               goto yy580;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy580;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy580;
+                       goto yy493;
+               }
+       }
+yy578:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy580;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy580;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy580;
+                       goto yy493;
+               }
+       }
+yy579:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy581;
+               if (yych <= '/') goto yy493;
+               goto yy582;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy582;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy582;
+                       goto yy493;
+               }
+       }
+yy580:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy582;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy582;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy582;
+                       goto yy493;
+               }
+       }
+yy581:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy583;
+               if (yych <= '/') goto yy493;
+               goto yy584;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy584;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy584;
+                       goto yy493;
+               }
+       }
+yy582:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy584;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy584;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy584;
+                       goto yy493;
+               }
+       }
+yy583:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy585;
+               if (yych <= '/') goto yy493;
+               goto yy586;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy586;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy586;
+                       goto yy493;
+               }
+       }
+yy584:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy586;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy586;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy586;
+                       goto yy493;
+               }
+       }
+yy585:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy587;
+               if (yych <= '/') goto yy493;
+               goto yy588;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy588;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy588;
+                       goto yy493;
+               }
+       }
+yy586:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy588;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy588;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy588;
+                       goto yy493;
+               }
+       }
+yy587:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy589;
+               if (yych <= '/') goto yy493;
+               goto yy590;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy590;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy590;
+                       goto yy493;
+               }
+       }
+yy588:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy590;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy590;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy590;
+                       goto yy493;
+               }
+       }
+yy589:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy591;
+               if (yych <= '/') goto yy493;
+               goto yy592;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy592;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy592;
+                       goto yy493;
+               }
+       }
+yy590:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy592;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy592;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy592;
+                       goto yy493;
+               }
+       }
+yy591:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy593;
+               if (yych <= '/') goto yy493;
+               goto yy594;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy594;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy594;
+                       goto yy493;
+               }
+       }
+yy592:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy594;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy594;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy594;
+                       goto yy493;
+               }
+       }
+yy593:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy595;
+               if (yych <= '/') goto yy493;
+               goto yy596;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy596;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy596;
+                       goto yy493;
+               }
+       }
+yy594:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy596;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy596;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy596;
+                       goto yy493;
+               }
+       }
+yy595:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy597;
+               if (yych <= '/') goto yy493;
+               goto yy598;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy598;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy598;
+                       goto yy493;
+               }
+       }
+yy596:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy598;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy598;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy598;
+                       goto yy493;
+               }
+       }
+yy597:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy599;
+               if (yych <= '/') goto yy493;
+               goto yy600;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy600;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy600;
+                       goto yy493;
+               }
+       }
+yy598:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy600;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy600;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy600;
+                       goto yy493;
+               }
+       }
+yy599:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy601;
+               if (yych <= '/') goto yy493;
+               goto yy602;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy602;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy602;
+                       goto yy493;
+               }
+       }
+yy600:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy602;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy602;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy602;
+                       goto yy493;
+               }
+       }
+yy601:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy603;
+               if (yych <= '/') goto yy493;
+               goto yy604;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy604;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy604;
+                       goto yy493;
+               }
+       }
+yy602:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy604;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy604;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy604;
+                       goto yy493;
+               }
+       }
+yy603:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy605;
+               if (yych <= '/') goto yy493;
+               goto yy606;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy606;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy606;
+                       goto yy493;
+               }
+       }
+yy604:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy606;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy606;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy606;
+                       goto yy493;
+               }
+       }
+yy605:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy607;
+               if (yych <= '/') goto yy493;
+               goto yy608;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy608;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy608;
+                       goto yy493;
+               }
+       }
+yy606:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy608;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy608;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy608;
+                       goto yy493;
+               }
+       }
+yy607:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy609;
+               if (yych <= '/') goto yy493;
+               goto yy610;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy610;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy610;
+                       goto yy493;
+               }
+       }
+yy608:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy610;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy610;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy610;
+                       goto yy493;
+               }
+       }
+yy609:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy611;
+               if (yych <= '/') goto yy493;
+               goto yy612;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy612;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy612;
+                       goto yy493;
+               }
+       }
+yy610:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy612;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy612;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy612;
+                       goto yy493;
+               }
+       }
+yy611:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy613;
+               if (yych <= '/') goto yy493;
+               goto yy614;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy614;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy614;
+                       goto yy493;
+               }
+       }
+yy612:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy614;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy614;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy614;
+                       goto yy493;
+               }
+       }
+yy613:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy615;
+               if (yych <= '/') goto yy493;
+               goto yy616;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy616;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy616;
+                       goto yy493;
+               }
+       }
+yy614:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy616;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy616;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy616;
+                       goto yy493;
+               }
+       }
+yy615:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy617;
+               if (yych <= '/') goto yy493;
+               goto yy618;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy618;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy618;
+                       goto yy493;
+               }
+       }
+yy616:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy618;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy618;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy618;
+                       goto yy493;
+               }
+       }
+yy617:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy619;
+               if (yych <= '/') goto yy493;
+               goto yy620;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy620;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy620;
+                       goto yy493;
+               }
+       }
+yy618:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy620;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy620;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy620;
+                       goto yy493;
+               }
+       }
+yy619:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy621;
+               if (yych <= '/') goto yy493;
+               goto yy622;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy622;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy622;
+                       goto yy493;
+               }
+       }
+yy620:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy622;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy622;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy622;
+                       goto yy493;
+               }
+       }
+yy621:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy623;
+               if (yych <= '/') goto yy493;
+               goto yy624;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy624;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy624;
+                       goto yy493;
+               }
+       }
+yy622:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy624;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy624;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy624;
+                       goto yy493;
+               }
+       }
+yy623:
+       ++p;
+       yych = *p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy493;
+               if (yych <= '9') goto yy625;
+               goto yy493;
+       } else {
+               if (yych <= 'Z') goto yy625;
+               if (yych <= '`') goto yy493;
+               if (yych <= 'z') goto yy625;
+               goto yy493;
+       }
+yy624:
+       ++p;
+       yych = *p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= '-') goto yy493;
+                       goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych >= ':') goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych >= '{') goto yy493;
+               }
+       }
+yy625:
+       ++p;
+       yych = *p;
+       if (yych == '.') goto yy499;
+       if (yych == '>') goto yy500;
+       goto yy493;
+yy626:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy628;
+               if (yych <= '/') goto yy493;
+               goto yy629;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy629;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy629;
+                       goto yy493;
+               }
+       }
+yy627:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy629;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy629;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy629;
+                       goto yy493;
+               }
+       }
+yy628:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy630;
+               if (yych <= '/') goto yy493;
+               goto yy631;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy631;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy631;
+                       goto yy493;
+               }
+       }
+yy629:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy631;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy631;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy631;
+                       goto yy493;
+               }
+       }
+yy630:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy632;
+               if (yych <= '/') goto yy493;
+               goto yy633;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy633;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy633;
+                       goto yy493;
+               }
+       }
+yy631:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy633;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy633;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy633;
+                       goto yy493;
+               }
+       }
+yy632:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy634;
+               if (yych <= '/') goto yy493;
+               goto yy635;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy635;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy635;
+                       goto yy493;
+               }
+       }
+yy633:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy635;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy635;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy635;
+                       goto yy493;
+               }
+       }
+yy634:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy636;
+               if (yych <= '/') goto yy493;
+               goto yy637;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy637;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy637;
+                       goto yy493;
+               }
+       }
+yy635:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy637;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy637;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy637;
+                       goto yy493;
+               }
+       }
+yy636:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy638;
+               if (yych <= '/') goto yy493;
+               goto yy639;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy639;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy639;
+                       goto yy493;
+               }
+       }
+yy637:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy639;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy639;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy639;
+                       goto yy493;
+               }
+       }
+yy638:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy640;
+               if (yych <= '/') goto yy493;
+               goto yy641;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy641;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy641;
+                       goto yy493;
+               }
+       }
+yy639:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy641;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy641;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy641;
+                       goto yy493;
+               }
+       }
+yy640:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy642;
+               if (yych <= '/') goto yy493;
+               goto yy643;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy643;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy643;
+                       goto yy493;
+               }
+       }
+yy641:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy643;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy643;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy643;
+                       goto yy493;
+               }
+       }
+yy642:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy644;
+               if (yych <= '/') goto yy493;
+               goto yy645;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy645;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy645;
+                       goto yy493;
+               }
+       }
+yy643:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy645;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy645;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy645;
+                       goto yy493;
+               }
+       }
+yy644:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy646;
+               if (yych <= '/') goto yy493;
+               goto yy647;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy647;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy647;
+                       goto yy493;
+               }
+       }
+yy645:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy647;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy647;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy647;
+                       goto yy493;
+               }
+       }
+yy646:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy648;
+               if (yych <= '/') goto yy493;
+               goto yy649;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy649;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy649;
+                       goto yy493;
+               }
+       }
+yy647:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy649;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy649;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy649;
+                       goto yy493;
+               }
+       }
+yy648:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy650;
+               if (yych <= '/') goto yy493;
+               goto yy651;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy651;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy651;
+                       goto yy493;
+               }
+       }
+yy649:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy651;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy651;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy651;
+                       goto yy493;
+               }
+       }
+yy650:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy652;
+               if (yych <= '/') goto yy493;
+               goto yy653;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy653;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy653;
+                       goto yy493;
+               }
+       }
+yy651:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy653;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy653;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy653;
+                       goto yy493;
+               }
+       }
+yy652:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy654;
+               if (yych <= '/') goto yy493;
+               goto yy655;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy655;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy655;
+                       goto yy493;
+               }
+       }
+yy653:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy655;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy655;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy655;
+                       goto yy493;
+               }
+       }
+yy654:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy656;
+               if (yych <= '/') goto yy493;
+               goto yy657;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy657;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy657;
+                       goto yy493;
+               }
+       }
+yy655:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy657;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy657;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy657;
+                       goto yy493;
+               }
+       }
+yy656:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy658;
+               if (yych <= '/') goto yy493;
+               goto yy659;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy659;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy659;
+                       goto yy493;
+               }
+       }
+yy657:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy659;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy659;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy659;
+                       goto yy493;
+               }
+       }
+yy658:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy660;
+               if (yych <= '/') goto yy493;
+               goto yy661;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy661;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy661;
+                       goto yy493;
+               }
+       }
+yy659:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy661;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy661;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy661;
+                       goto yy493;
+               }
+       }
+yy660:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy662;
+               if (yych <= '/') goto yy493;
+               goto yy663;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy663;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy663;
+                       goto yy493;
+               }
+       }
+yy661:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy663;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy663;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy663;
+                       goto yy493;
+               }
+       }
+yy662:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy664;
+               if (yych <= '/') goto yy493;
+               goto yy665;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy665;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy665;
+                       goto yy493;
+               }
+       }
+yy663:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy665;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy665;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy665;
+                       goto yy493;
+               }
+       }
+yy664:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy666;
+               if (yych <= '/') goto yy493;
+               goto yy667;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy667;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy667;
+                       goto yy493;
+               }
+       }
+yy665:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy667;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy667;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy667;
+                       goto yy493;
+               }
+       }
+yy666:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy668;
+               if (yych <= '/') goto yy493;
+               goto yy669;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy669;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy669;
+                       goto yy493;
+               }
+       }
+yy667:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy669;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy669;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy669;
+                       goto yy493;
+               }
+       }
+yy668:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy670;
+               if (yych <= '/') goto yy493;
+               goto yy671;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy671;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy671;
+                       goto yy493;
+               }
+       }
+yy669:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy671;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy671;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy671;
+                       goto yy493;
+               }
+       }
+yy670:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy672;
+               if (yych <= '/') goto yy493;
+               goto yy673;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy673;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy673;
+                       goto yy493;
+               }
+       }
+yy671:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy673;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy673;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy673;
+                       goto yy493;
+               }
+       }
+yy672:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy674;
+               if (yych <= '/') goto yy493;
+               goto yy675;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy675;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy675;
+                       goto yy493;
+               }
+       }
+yy673:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy675;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy675;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy675;
+                       goto yy493;
+               }
+       }
+yy674:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy676;
+               if (yych <= '/') goto yy493;
+               goto yy677;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy677;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy677;
+                       goto yy493;
+               }
+       }
+yy675:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy677;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy677;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy677;
+                       goto yy493;
+               }
+       }
+yy676:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy678;
+               if (yych <= '/') goto yy493;
+               goto yy679;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy679;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy679;
+                       goto yy493;
+               }
+       }
+yy677:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy679;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy679;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy679;
+                       goto yy493;
+               }
+       }
+yy678:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy680;
+               if (yych <= '/') goto yy493;
+               goto yy681;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy681;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy681;
+                       goto yy493;
+               }
+       }
+yy679:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy681;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy681;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy681;
+                       goto yy493;
+               }
+       }
+yy680:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy682;
+               if (yych <= '/') goto yy493;
+               goto yy683;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy683;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy683;
+                       goto yy493;
+               }
+       }
+yy681:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy683;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy683;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy683;
+                       goto yy493;
+               }
+       }
+yy682:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy684;
+               if (yych <= '/') goto yy493;
+               goto yy685;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy685;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy685;
+                       goto yy493;
+               }
+       }
+yy683:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy685;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy685;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy685;
+                       goto yy493;
+               }
+       }
+yy684:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy686;
+               if (yych <= '/') goto yy493;
+               goto yy687;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy687;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy687;
+                       goto yy493;
+               }
+       }
+yy685:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy687;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy687;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy687;
+                       goto yy493;
+               }
+       }
+yy686:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy688;
+               if (yych <= '/') goto yy493;
+               goto yy689;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy689;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy689;
+                       goto yy493;
+               }
+       }
+yy687:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy689;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy689;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy689;
+                       goto yy493;
+               }
+       }
+yy688:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy690;
+               if (yych <= '/') goto yy493;
+               goto yy691;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy691;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy691;
+                       goto yy493;
+               }
+       }
+yy689:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy691;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy691;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy691;
+                       goto yy493;
+               }
+       }
+yy690:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy692;
+               if (yych <= '/') goto yy493;
+               goto yy693;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy693;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy693;
+                       goto yy493;
+               }
+       }
+yy691:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy693;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy693;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy693;
+                       goto yy493;
+               }
+       }
+yy692:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy694;
+               if (yych <= '/') goto yy493;
+               goto yy695;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy695;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy695;
+                       goto yy493;
+               }
+       }
+yy693:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy695;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy695;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy695;
+                       goto yy493;
+               }
+       }
+yy694:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy696;
+               if (yych <= '/') goto yy493;
+               goto yy697;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy697;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy697;
+                       goto yy493;
+               }
+       }
+yy695:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy697;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy697;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy697;
+                       goto yy493;
+               }
+       }
+yy696:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy698;
+               if (yych <= '/') goto yy493;
+               goto yy699;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy699;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy699;
+                       goto yy493;
+               }
+       }
+yy697:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy699;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy699;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy699;
+                       goto yy493;
+               }
+       }
+yy698:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy700;
+               if (yych <= '/') goto yy493;
+               goto yy701;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy701;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy701;
+                       goto yy493;
+               }
+       }
+yy699:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy701;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy701;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy701;
+                       goto yy493;
+               }
+       }
+yy700:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy702;
+               if (yych <= '/') goto yy493;
+               goto yy703;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy703;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy703;
+                       goto yy493;
+               }
+       }
+yy701:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy703;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy703;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy703;
+                       goto yy493;
+               }
+       }
+yy702:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy704;
+               if (yych <= '/') goto yy493;
+               goto yy705;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy705;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy705;
+                       goto yy493;
+               }
+       }
+yy703:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy705;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy705;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy705;
+                       goto yy493;
+               }
+       }
+yy704:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy706;
+               if (yych <= '/') goto yy493;
+               goto yy707;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy707;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy707;
+                       goto yy493;
+               }
+       }
+yy705:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy707;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy707;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy707;
+                       goto yy493;
+               }
+       }
+yy706:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy708;
+               if (yych <= '/') goto yy493;
+               goto yy709;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy709;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy709;
+                       goto yy493;
+               }
+       }
+yy707:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy709;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy709;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy709;
+                       goto yy493;
+               }
+       }
+yy708:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy710;
+               if (yych <= '/') goto yy493;
+               goto yy711;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy711;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy711;
+                       goto yy493;
+               }
+       }
+yy709:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy711;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy711;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy711;
+                       goto yy493;
+               }
+       }
+yy710:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy712;
+               if (yych <= '/') goto yy493;
+               goto yy713;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy713;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy713;
+                       goto yy493;
+               }
+       }
+yy711:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy713;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy713;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy713;
+                       goto yy493;
+               }
+       }
+yy712:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy714;
+               if (yych <= '/') goto yy493;
+               goto yy715;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy715;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy715;
+                       goto yy493;
+               }
+       }
+yy713:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy715;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy715;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy715;
+                       goto yy493;
+               }
+       }
+yy714:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy716;
+               if (yych <= '/') goto yy493;
+               goto yy717;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy717;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy717;
+                       goto yy493;
+               }
+       }
+yy715:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy717;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy717;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy717;
+                       goto yy493;
+               }
+       }
+yy716:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy718;
+               if (yych <= '/') goto yy493;
+               goto yy719;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy719;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy719;
+                       goto yy493;
+               }
+       }
+yy717:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy719;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy719;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy719;
+                       goto yy493;
+               }
+       }
+yy718:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy720;
+               if (yych <= '/') goto yy493;
+               goto yy721;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy721;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy721;
+                       goto yy493;
+               }
+       }
+yy719:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy721;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy721;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy721;
+                       goto yy493;
+               }
+       }
+yy720:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy722;
+               if (yych <= '/') goto yy493;
+               goto yy723;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy723;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy723;
+                       goto yy493;
+               }
+       }
+yy721:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy723;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy723;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy723;
+                       goto yy493;
+               }
+       }
+yy722:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy724;
+               if (yych <= '/') goto yy493;
+               goto yy725;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy725;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy725;
+                       goto yy493;
+               }
+       }
+yy723:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy725;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy725;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy725;
+                       goto yy493;
+               }
+       }
+yy724:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy726;
+               if (yych <= '/') goto yy493;
+               goto yy727;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy727;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy727;
+                       goto yy493;
+               }
+       }
+yy725:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy727;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy727;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy727;
+                       goto yy493;
+               }
+       }
+yy726:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy728;
+               if (yych <= '/') goto yy493;
+               goto yy729;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy729;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy729;
+                       goto yy493;
+               }
+       }
+yy727:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy729;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy729;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy729;
+                       goto yy493;
+               }
+       }
+yy728:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy730;
+               if (yych <= '/') goto yy493;
+               goto yy731;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy731;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy731;
+                       goto yy493;
+               }
+       }
+yy729:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy731;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy731;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy731;
+                       goto yy493;
+               }
+       }
+yy730:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy732;
+               if (yych <= '/') goto yy493;
+               goto yy733;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy733;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy733;
+                       goto yy493;
+               }
+       }
+yy731:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy733;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy733;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy733;
+                       goto yy493;
+               }
+       }
+yy732:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy734;
+               if (yych <= '/') goto yy493;
+               goto yy735;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy735;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy735;
+                       goto yy493;
+               }
+       }
+yy733:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy735;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy735;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy735;
+                       goto yy493;
+               }
+       }
+yy734:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy736;
+               if (yych <= '/') goto yy493;
+               goto yy737;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy737;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy737;
+                       goto yy493;
+               }
+       }
+yy735:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy737;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy737;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy737;
+                       goto yy493;
+               }
+       }
+yy736:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy738;
+               if (yych <= '/') goto yy493;
+               goto yy739;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy739;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy739;
+                       goto yy493;
+               }
+       }
+yy737:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy739;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy739;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy739;
+                       goto yy493;
+               }
+       }
+yy738:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy740;
+               if (yych <= '/') goto yy493;
+               goto yy741;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy741;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy741;
+                       goto yy493;
+               }
+       }
+yy739:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy741;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy741;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy741;
+                       goto yy493;
+               }
+       }
+yy740:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy742;
+               if (yych <= '/') goto yy493;
+               goto yy743;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy743;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy743;
+                       goto yy493;
+               }
+       }
+yy741:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy743;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy743;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy743;
+                       goto yy493;
+               }
+       }
+yy742:
+       yych = *++p;
+       if (yych <= '9') {
+               if (yych == '-') goto yy744;
+               if (yych <= '/') goto yy493;
+               goto yy745;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy493;
+                       goto yy745;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy745;
+                       goto yy493;
+               }
+       }
+yy743:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '.') {
+                       if (yych <= ',') goto yy493;
+                       if (yych >= '.') goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy745;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy745;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy745;
+                       goto yy493;
+               }
+       }
+yy744:
+       yych = *++p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy493;
+               if (yych <= '9') goto yy625;
+               goto yy493;
+       } else {
+               if (yych <= 'Z') goto yy625;
+               if (yych <= '`') goto yy493;
+               if (yych <= 'z') goto yy625;
+               goto yy493;
+       }
+yy745:
+       ++p;
+       if ((yych = *p) <= '=') {
+               if (yych <= '.') {
+                       if (yych <= '-') goto yy493;
+                       goto yy499;
+               } else {
+                       if (yych <= '/') goto yy493;
+                       if (yych <= '9') goto yy625;
+                       goto yy493;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '>') goto yy500;
+                       if (yych <= '@') goto yy493;
+                       goto yy625;
+               } else {
+                       if (yych <= '`') goto yy493;
+                       if (yych <= 'z') goto yy625;
+                       goto yy493;
+               }
+       }
+}
+
+}
+
+// Try to match an HTML tag after first <, returning num of chars matched.
+int _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, 246, 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, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               230, 230, 230, 230, 230, 230, 230, 230, 
+               /* 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, 
+               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, 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, 
+       };
+       yych = *p;
+       if (yych <= '/') {
+               if (yych <= ' ') {
+                       if (yych != '\n') goto yy753;
+               } else {
+                       if (yych <= '!') goto yy751;
+                       if (yych <= '.') goto yy753;
+                       goto yy750;
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych == '?') goto yy752;
+                       goto yy753;
+               } else {
+                       if (yych <= 'Z') goto yy749;
+                       if (yych <= '`') goto yy753;
+                       if (yych <= 'z') goto yy749;
+                       goto yy753;
+               }
+       }
+yy748:
+       { return 0; }
+yy749:
+       yych = *(marker = ++p);
+       if (yych <= '9') {
+               if (yych <= 0x1F) {
+                       if (yych <= 0x08) goto yy748;
+                       if (yych <= '\r') goto yy790;
+                       goto yy748;
+               } else {
+                       if (yych <= ' ') goto yy790;
+                       if (yych <= '.') goto yy748;
+                       if (yych <= '/') goto yy792;
+                       goto yy788;
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych == '>') goto yy758;
+                       goto yy748;
+               } else {
+                       if (yych <= 'Z') goto yy788;
+                       if (yych <= '`') goto yy748;
+                       if (yych <= 'z') goto yy788;
+                       goto yy748;
+               }
+       }
+yy750:
+       yych = *(marker = ++p);
+       if (yych <= '@') goto yy748;
+       if (yych <= 'Z') goto yy784;
+       if (yych <= '`') goto yy748;
+       if (yych <= 'z') goto yy784;
+       goto yy748;
+yy751:
+       yych = *(marker = ++p);
+       if (yybm[256+yych] & 64) {
+               goto yy761;
+       }
+       if (yych == '-') goto yy763;
+       if (yych <= '@') goto yy748;
+       if (yych <= '[') goto yy760;
+       goto yy748;
+yy752:
+       yych = *(marker = ++p);
+       if (yych <= 0x00) goto yy748;
+       goto yy755;
+yy753:
+       yych = *++p;
+       goto yy748;
+yy754:
+       ++p;
+       yych = *p;
+yy755:
+       if (yybm[256+yych] & 32) {
+               goto yy754;
+       }
+       if (yych >= 0x01) goto yy757;
+yy756:
+       p = marker;
+       goto yy748;
+yy757:
+       ++p;
+       yych = *p;
+       if (yych <= 0x00) goto yy756;
+       if (yych != '>') goto yy754;
+yy758:
+       ++p;
+       { return (p - start); }
+yy760:
+       yych = *++p;
+       if (yych == 'C') goto yy775;
+       if (yych == 'c') goto yy775;
+       goto yy756;
+yy761:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 1) {
+               goto yy771;
+       }
+       if (yych <= '@') goto yy756;
+       if (yych <= 'Z') goto yy761;
+       goto yy756;
+yy763:
+       yych = *++p;
+       if (yych != '-') goto yy756;
+       yych = *++p;
+       if (yych == '-') goto yy765;
+       if (yych == '>') goto yy756;
+       goto yy767;
+yy765:
+       yych = *++p;
+       if (yych == '-') goto yy770;
+       if (yych == '>') goto yy756;
+       goto yy767;
+yy766:
+       ++p;
+       yych = *p;
+yy767:
+       if (yybm[256+yych] & 128) {
+               goto yy766;
+       }
+       if (yych <= 0x00) goto yy756;
+       ++p;
+       yych = *p;
+       if (yybm[256+yych] & 128) {
+               goto yy766;
+       }
+       if (yych <= 0x00) goto yy756;
+       yych = *++p;
+       if (yych == '>') goto yy758;
+       goto yy756;
+yy770:
+       yych = *++p;
+       if (yych == '>') goto yy758;
+       goto yy756;
+yy771:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 1) {
+               goto yy771;
+       }
+       if (yych <= 0x00) goto yy756;
+       if (yych == '>') goto yy758;
+yy773:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 2) {
+               goto yy773;
+       }
+       if (yych <= 0x00) goto yy756;
+       goto yy758;
+yy775:
+       yych = *++p;
+       if (yych == 'D') goto yy776;
+       if (yych != 'd') goto yy756;
+yy776:
+       yych = *++p;
+       if (yych == 'A') goto yy777;
+       if (yych != 'a') goto yy756;
+yy777:
+       yych = *++p;
+       if (yych == 'T') goto yy778;
+       if (yych != 't') goto yy756;
+yy778:
+       yych = *++p;
+       if (yych == 'A') goto yy779;
+       if (yych != 'a') goto yy756;
+yy779:
+       yych = *++p;
+       if (yych != '[') goto yy756;
+yy780:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 4) {
+               goto yy780;
+       }
+       if (yych <= 0x00) goto yy756;
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 4) {
+               goto yy780;
+       }
+       if (yych <= 0x00) goto yy756;
+       ++p;
+       yych = *p;
+       if (yych <= 0x00) goto yy756;
+       if (yych == '>') goto yy758;
+       goto yy780;
+yy784:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 8) {
+               goto yy784;
+       }
+       if (yych <= 0x1F) {
+               if (yych <= 0x08) goto yy756;
+               if (yych >= 0x0E) goto yy756;
+       } else {
+               if (yych <= ' ') goto yy786;
+               if (yych == '>') goto yy758;
+               goto yy756;
+       }
+yy786:
+       ++p;
+       yych = *p;
+       if (yych <= 0x1F) {
+               if (yych <= 0x08) goto yy756;
+               if (yych <= '\r') goto yy786;
+               goto yy756;
+       } else {
+               if (yych <= ' ') goto yy786;
+               if (yych == '>') goto yy758;
+               goto yy756;
+       }
+yy788:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych <= 0x1F) {
+                       if (yych <= 0x08) goto yy756;
+                       if (yych >= 0x0E) goto yy756;
+               } else {
+                       if (yych <= ' ') goto yy790;
+                       if (yych <= '.') goto yy756;
+                       if (yych <= '/') goto yy792;
+                       goto yy788;
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych == '>') goto yy758;
+                       goto yy756;
+               } else {
+                       if (yych <= 'Z') goto yy788;
+                       if (yych <= '`') goto yy756;
+                       if (yych <= 'z') goto yy788;
+                       goto yy756;
+               }
+       }
+yy790:
+       ++p;
+       yych = *p;
+       if (yych <= ':') {
+               if (yych <= ' ') {
+                       if (yych <= 0x08) goto yy756;
+                       if (yych <= '\r') goto yy790;
+                       if (yych <= 0x1F) goto yy756;
+                       goto yy790;
+               } else {
+                       if (yych == '/') goto yy792;
+                       if (yych <= '9') goto yy756;
+                       goto yy793;
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych == '>') goto yy758;
+                       if (yych <= '@') goto yy756;
+                       goto yy793;
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= '^') goto yy756;
+                               goto yy793;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych <= 'z') goto yy793;
+                               goto yy756;
+                       }
+               }
+       }
+yy792:
+       yych = *++p;
+       if (yych == '>') goto yy758;
+       goto yy756;
+yy793:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 16) {
+               goto yy793;
+       }
+       if (yych <= ',') {
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy756;
+               } else {
+                       if (yych != ' ') goto yy756;
+               }
+       } else {
+               if (yych <= '<') {
+                       if (yych <= '/') goto yy792;
+                       goto yy756;
+               } else {
+                       if (yych <= '=') goto yy797;
+                       if (yych <= '>') goto yy758;
+                       goto yy756;
+               }
+       }
+yy795:
+       ++p;
+       yych = *p;
+       if (yych <= '<') {
+               if (yych <= ' ') {
+                       if (yych <= 0x08) goto yy756;
+                       if (yych <= '\r') goto yy795;
+                       if (yych <= 0x1F) goto yy756;
+                       goto yy795;
+               } else {
+                       if (yych <= '/') {
+                               if (yych <= '.') goto yy756;
+                               goto yy792;
+                       } else {
+                               if (yych == ':') goto yy793;
+                               goto yy756;
+                       }
+               }
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '=') goto yy797;
+                       if (yych <= '>') goto yy758;
+                       if (yych <= '@') goto yy756;
+                       goto yy793;
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= '^') goto yy756;
+                               goto yy793;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych <= 'z') goto yy793;
+                               goto yy756;
+                       }
+               }
+       }
+yy797:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy799;
+       }
+       if (yych <= 0x00) goto yy756;
+       if (yych <= ' ') goto yy798;
+       if (yych <= '"') goto yy803;
+       if (yych <= '\'') goto yy801;
+       goto yy756;
+yy798:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy799;
+       }
+       if (yych <= '"') {
+               if (yych <= 0x00) goto yy756;
+               if (yych <= ' ') goto yy812;
+               goto yy803;
+       } else {
+               if (yych <= '\'') goto yy801;
+               if (yych == '>') goto yy758;
+               goto yy756;
+       }
+yy799:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy799;
+       }
+       if (yych <= 0x00) goto yy756;
+       if (yych <= ' ') goto yy806;
+       if (yych == '>') goto yy758;
+       goto yy756;
+yy801:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy801;
+       }
+       if (yych <= 0x00) goto yy756;
+       goto yy805;
+yy803:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy803;
+       }
+       if (yych <= 0x00) goto yy756;
+yy805:
+       ++p;
+       yych = *p;
+       if (yych <= ' ') {
+               if (yych <= 0x08) goto yy756;
+               if (yych <= '\r') goto yy790;
+               if (yych <= 0x1F) goto yy756;
+               goto yy790;
+       } else {
+               if (yych <= '/') {
+                       if (yych <= '.') goto yy756;
+                       goto yy792;
+               } else {
+                       if (yych == '>') goto yy758;
+                       goto yy756;
+               }
+       }
+yy806:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych <= ' ') {
+                       if (yych <= 0x08) {
+                               if (yych <= 0x00) goto yy756;
+                               goto yy799;
+                       } else {
+                               if (yych <= '\r') goto yy806;
+                               if (yych <= 0x1F) goto yy799;
+                               goto yy806;
+                       }
+               } else {
+                       if (yych <= '"') {
+                               if (yych <= '!') goto yy799;
+                               goto yy756;
+                       } else {
+                               if (yych == '\'') goto yy756;
+                               goto yy799;
+                       }
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych <= ';') {
+                               if (yych >= ';') goto yy799;
+                       } else {
+                               if (yych <= '=') goto yy756;
+                               if (yych <= '>') goto yy758;
+                               goto yy799;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy808;
+                               if (yych <= '^') goto yy799;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych >= '{') goto yy799;
+                       }
+               }
+       }
+yy808:
+       ++p;
+       yych = *p;
+       if (yych <= '/') {
+               if (yych <= '!') {
+                       if (yych <= '\r') {
+                               if (yych <= 0x00) goto yy756;
+                               if (yych <= 0x08) goto yy799;
+                       } else {
+                               if (yych != ' ') goto yy799;
+                       }
+               } else {
+                       if (yych <= '\'') {
+                               if (yych <= '"') goto yy756;
+                               if (yych <= '&') goto yy799;
+                               goto yy756;
+                       } else {
+                               if (yych <= ',') goto yy799;
+                               if (yych <= '.') goto yy808;
+                               goto yy799;
+                       }
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych <= '<') {
+                               if (yych <= ':') goto yy808;
+                               if (yych <= ';') goto yy799;
+                               goto yy756;
+                       } else {
+                               if (yych <= '=') goto yy797;
+                               if (yych <= '>') goto yy758;
+                               goto yy799;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy808;
+                               if (yych <= '^') goto yy799;
+                               goto yy808;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych <= 'z') goto yy808;
+                               goto yy799;
+                       }
+               }
+       }
+yy810:
+       ++p;
+       yych = *p;
+       if (yych <= ':') {
+               if (yych <= ' ') {
+                       if (yych <= 0x08) {
+                               if (yych <= 0x00) goto yy756;
+                               goto yy799;
+                       } else {
+                               if (yych <= '\r') goto yy810;
+                               if (yych <= 0x1F) goto yy799;
+                               goto yy810;
+                       }
+               } else {
+                       if (yych <= '&') {
+                               if (yych == '"') goto yy756;
+                               goto yy799;
+                       } else {
+                               if (yych <= '\'') goto yy756;
+                               if (yych <= '9') goto yy799;
+                               goto yy808;
+                       }
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych <= '<') {
+                               if (yych <= ';') goto yy799;
+                               goto yy756;
+                       } else {
+                               if (yych <= '=') goto yy797;
+                               if (yych <= '>') goto yy758;
+                               goto yy799;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy808;
+                               if (yych <= '^') goto yy799;
+                               goto yy808;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych <= 'z') goto yy808;
+                               goto yy799;
+                       }
+               }
+       }
+yy812:
+       ++p;
+       yych = *p;
+       if (yych <= '9') {
+               if (yych <= ' ') {
+                       if (yych <= 0x08) {
+                               if (yych <= 0x00) goto yy756;
+                               goto yy799;
+                       } else {
+                               if (yych <= '\r') goto yy812;
+                               if (yych <= 0x1F) goto yy799;
+                               goto yy812;
+                       }
+               } else {
+                       if (yych <= '"') {
+                               if (yych <= '!') goto yy799;
+                               goto yy803;
+                       } else {
+                               if (yych == '\'') goto yy801;
+                               goto yy799;
+                       }
+               }
+       } else {
+               if (yych <= '@') {
+                       if (yych <= ';') {
+                               if (yych <= ':') goto yy808;
+                               goto yy799;
+                       } else {
+                               if (yych <= '=') goto yy756;
+                               if (yych <= '>') goto yy758;
+                               goto yy799;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy808;
+                               if (yych <= '^') goto yy799;
+                               goto yy808;
+                       } else {
+                               if (yych <= '`') goto yy756;
+                               if (yych <= 'z') goto yy808;
+                               goto yy799;
+                       }
+               }
+       }
+}
+
+}
+
+// Try to match an HTML block tag including first <,
+// returning num of chars matched.
+int _scan_html_block_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+       unsigned char yych;
+       yych = *p;
+       if (yych == '\n') goto yy816;
+       if (yych == '<') goto yy817;
+       goto yy818;
+yy816:
+       { return 0; }
+yy817:
+       yych = *(marker = ++p);
+       switch (yych) {
+       case '!':
+       case '?':       goto yy819;
+       case '/':       goto yy838;
+       case 'A':
+       case 'a':       goto yy823;
+       case 'B':
+       case 'b':       goto yy826;
+       case 'C':
+       case 'c':       goto yy830;
+       case 'D':
+       case 'd':       goto yy831;
+       case 'E':
+       case 'e':       goto yy834;
+       case 'F':
+       case 'f':       goto yy835;
+       case 'H':
+       case 'h':       goto yy824;
+       case 'I':
+       case 'i':       goto yy825;
+       case 'L':
+       case 'l':       goto yy827;
+       case 'M':
+       case 'm':       goto yy828;
+       case 'O':
+       case 'o':       goto yy829;
+       case 'P':
+       case 'p':       goto yy821;
+       case 'S':
+       case 's':       goto yy832;
+       case 'T':
+       case 't':       goto yy833;
+       case 'U':
+       case 'u':       goto yy836;
+       case 'V':
+       case 'v':       goto yy837;
+       default:        goto yy816;
+       }
+yy818:
+       yych = *++p;
+       goto yy816;
+yy819:
+       ++p;
+       { return (p - start); }
+yy821:
+       yych = *++p;
+       if (yych <= '/') {
+               if (yych <= 0x1F) {
+                       if (yych <= 0x08) goto yy822;
+                       if (yych <= '\r') goto yy982;
+               } else {
+                       if (yych <= ' ') goto yy982;
+                       if (yych >= '/') goto yy982;
+               }
+       } else {
+               if (yych <= 'Q') {
+                       if (yych == '>') goto yy982;
+               } else {
+                       if (yych <= 'R') goto yy1095;
+                       if (yych == 'r') goto yy1095;
+               }
+       }
+yy822:
+       p = marker;
+       goto yy816;
+yy823:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych <= 'Q') goto yy822;
+               if (yych <= 'R') goto yy1088;
+               goto yy1087;
+       } else {
+               if (yych <= 'q') goto yy822;
+               if (yych <= 'r') goto yy1088;
+               if (yych <= 's') goto yy1087;
+               goto yy822;
+       }
+yy824:
+       yych = *++p;
+       if (yych <= 'Q') {
+               if (yych <= 'D') {
+                       if (yych <= '0') goto yy822;
+                       if (yych <= '6') goto yy981;
+                       goto yy822;
+               } else {
+                       if (yych <= 'E') goto yy1080;
+                       if (yych == 'G') goto yy1079;
+                       goto yy822;
+               }
+       } else {
+               if (yych <= 'f') {
+                       if (yych <= 'R') goto yy981;
+                       if (yych == 'e') goto yy1080;
+                       goto yy822;
+               } else {
+                       if (yych <= 'g') goto yy1079;
+                       if (yych == 'r') goto yy981;
+                       goto yy822;
+               }
+       }
+yy825:
+       yych = *++p;
+       if (yych == 'F') goto yy1075;
+       if (yych == 'f') goto yy1075;
+       goto yy822;
+yy826:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych <= 'N') {
+                       if (yych == 'L') goto yy1063;
+                       goto yy822;
+               } else {
+                       if (yych <= 'O') goto yy1062;
+                       if (yych <= 'T') goto yy822;
+                       goto yy1061;
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych == 'l') goto yy1063;
+                       goto yy822;
+               } else {
+                       if (yych <= 'o') goto yy1062;
+                       if (yych == 'u') goto yy1061;
+                       goto yy822;
+               }
+       }
+yy827:
+       yych = *++p;
+       if (yych == 'I') goto yy981;
+       if (yych == 'i') goto yy981;
+       goto yy822;
+yy828:
+       yych = *++p;
+       if (yych == 'A') goto yy1060;
+       if (yych == 'a') goto yy1060;
+       goto yy822;
+yy829:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych <= 'K') {
+                       if (yych == 'B') goto yy1053;
+                       goto yy822;
+               } else {
+                       if (yych <= 'L') goto yy981;
+                       if (yych <= 'T') goto yy822;
+                       goto yy1052;
+               }
+       } else {
+               if (yych <= 'k') {
+                       if (yych == 'b') goto yy1053;
+                       goto yy822;
+               } else {
+                       if (yych <= 'l') goto yy981;
+                       if (yych == 'u') goto yy1052;
+                       goto yy822;
+               }
+       }
+yy830:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'A') goto yy1039;
+               if (yych <= 'N') goto yy822;
+               goto yy1038;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy822;
+                       goto yy1039;
+               } else {
+                       if (yych == 'o') goto yy1038;
+                       goto yy822;
+               }
+       }
+yy831:
+       yych = *++p;
+       if (yych <= 'T') {
+               if (yych <= 'I') {
+                       if (yych == 'D') goto yy981;
+                       if (yych <= 'H') goto yy822;
+                       goto yy1037;
+               } else {
+                       if (yych == 'L') goto yy981;
+                       if (yych <= 'S') goto yy822;
+                       goto yy981;
+               }
+       } else {
+               if (yych <= 'i') {
+                       if (yych == 'd') goto yy981;
+                       if (yych <= 'h') goto yy822;
+                       goto yy1037;
+               } else {
+                       if (yych <= 'l') {
+                               if (yych <= 'k') goto yy822;
+                               goto yy981;
+                       } else {
+                               if (yych == 't') goto yy981;
+                               goto yy822;
+                       }
+               }
+       }
+yy832:
+       yych = *++p;
+       if (yych <= 'T') {
+               if (yych <= 'D') {
+                       if (yych == 'C') goto yy1026;
+                       goto yy822;
+               } else {
+                       if (yych <= 'E') goto yy1027;
+                       if (yych <= 'S') goto yy822;
+                       goto yy1025;
+               }
+       } else {
+               if (yych <= 'd') {
+                       if (yych == 'c') goto yy1026;
+                       goto yy822;
+               } else {
+                       if (yych <= 'e') goto yy1027;
+                       if (yych == 't') goto yy1025;
+                       goto yy822;
+               }
+       }
+yy833:
+       yych = *++p;
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy1011;
+       case 'B':
+       case 'b':       goto yy1010;
+       case 'D':
+       case 'R':
+       case 'd':
+       case 'r':       goto yy981;
+       case 'E':
+       case 'e':       goto yy1009;
+       case 'F':
+       case 'f':       goto yy1008;
+       case 'H':
+       case 'h':       goto yy1007;
+       default:        goto yy822;
+       }
+yy834:
+       yych = *++p;
+       if (yych == 'M') goto yy1004;
+       if (yych == 'm') goto yy1004;
+       goto yy822;
+yy835:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'I') goto yy985;
+               if (yych <= 'N') goto yy822;
+               goto yy984;
+       } else {
+               if (yych <= 'i') {
+                       if (yych <= 'h') goto yy822;
+                       goto yy985;
+               } else {
+                       if (yych == 'o') goto yy984;
+                       goto yy822;
+               }
+       }
+yy836:
+       yych = *++p;
+       if (yych == 'L') goto yy981;
+       if (yych == 'l') goto yy981;
+       goto yy822;
+yy837:
+       yych = *++p;
+       if (yych == 'I') goto yy978;
+       if (yych == 'i') goto yy978;
+       goto yy822;
+yy838:
+       yych = *++p;
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy840;
+       case 'B':
+       case 'b':       goto yy843;
+       case 'C':
+       case 'c':       goto yy847;
+       case 'D':
+       case 'd':       goto yy848;
+       case 'E':
+       case 'e':       goto yy851;
+       case 'F':
+       case 'f':       goto yy852;
+       case 'H':
+       case 'h':       goto yy841;
+       case 'I':
+       case 'i':       goto yy842;
+       case 'L':
+       case 'l':       goto yy844;
+       case 'M':
+       case 'm':       goto yy845;
+       case 'O':
+       case 'o':       goto yy846;
+       case 'P':
+       case 'p':       goto yy839;
+       case 'S':
+       case 's':       goto yy849;
+       case 'T':
+       case 't':       goto yy850;
+       case 'U':
+       case 'u':       goto yy853;
+       case 'V':
+       case 'v':       goto yy854;
+       default:        goto yy822;
+       }
+yy839:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy822;
+                       goto yy859;
+               } else {
+                       if (yych == ' ') goto yy859;
+                       goto yy822;
+               }
+       } else {
+               if (yych <= 'R') {
+                       if (yych <= '>') goto yy859;
+                       if (yych <= 'Q') goto yy822;
+                       goto yy972;
+               } else {
+                       if (yych == 'r') goto yy972;
+                       goto yy822;
+               }
+       }
+yy840:
+       yych = *++p;
+       if (yych <= 'S') {
+               if (yych <= 'Q') goto yy822;
+               if (yych <= 'R') goto yy965;
+               goto yy964;
+       } else {
+               if (yych <= 'q') goto yy822;
+               if (yych <= 'r') goto yy965;
+               if (yych <= 's') goto yy964;
+               goto yy822;
+       }
+yy841:
+       yych = *++p;
+       if (yych <= 'Q') {
+               if (yych <= 'D') {
+                       if (yych <= '0') goto yy822;
+                       if (yych <= '6') goto yy858;
+                       goto yy822;
+               } else {
+                       if (yych <= 'E') goto yy957;
+                       if (yych == 'G') goto yy956;
+                       goto yy822;
+               }
+       } else {
+               if (yych <= 'f') {
+                       if (yych <= 'R') goto yy858;
+                       if (yych == 'e') goto yy957;
+                       goto yy822;
+               } else {
+                       if (yych <= 'g') goto yy956;
+                       if (yych == 'r') goto yy858;
+                       goto yy822;
+               }
+       }
+yy842:
+       yych = *++p;
+       if (yych == 'F') goto yy952;
+       if (yych == 'f') goto yy952;
+       goto yy822;
+yy843:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych <= 'N') {
+                       if (yych == 'L') goto yy940;
+                       goto yy822;
+               } else {
+                       if (yych <= 'O') goto yy939;
+                       if (yych <= 'T') goto yy822;
+                       goto yy938;
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych == 'l') goto yy940;
+                       goto yy822;
+               } else {
+                       if (yych <= 'o') goto yy939;
+                       if (yych == 'u') goto yy938;
+                       goto yy822;
+               }
+       }
+yy844:
+       yych = *++p;
+       if (yych == 'I') goto yy858;
+       if (yych == 'i') goto yy858;
+       goto yy822;
+yy845:
+       yych = *++p;
+       if (yych == 'A') goto yy937;
+       if (yych == 'a') goto yy937;
+       goto yy822;
+yy846:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych <= 'K') {
+                       if (yych == 'B') goto yy930;
+                       goto yy822;
+               } else {
+                       if (yych <= 'L') goto yy858;
+                       if (yych <= 'T') goto yy822;
+                       goto yy929;
+               }
+       } else {
+               if (yych <= 'k') {
+                       if (yych == 'b') goto yy930;
+                       goto yy822;
+               } else {
+                       if (yych <= 'l') goto yy858;
+                       if (yych == 'u') goto yy929;
+                       goto yy822;
+               }
+       }
+yy847:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'A') goto yy916;
+               if (yych <= 'N') goto yy822;
+               goto yy915;
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '`') goto yy822;
+                       goto yy916;
+               } else {
+                       if (yych == 'o') goto yy915;
+                       goto yy822;
+               }
+       }
+yy848:
+       yych = *++p;
+       if (yych <= 'T') {
+               if (yych <= 'I') {
+                       if (yych == 'D') goto yy858;
+                       if (yych <= 'H') goto yy822;
+                       goto yy914;
+               } else {
+                       if (yych == 'L') goto yy858;
+                       if (yych <= 'S') goto yy822;
+                       goto yy858;
+               }
+       } else {
+               if (yych <= 'i') {
+                       if (yych == 'd') goto yy858;
+                       if (yych <= 'h') goto yy822;
+                       goto yy914;
+               } else {
+                       if (yych <= 'l') {
+                               if (yych <= 'k') goto yy822;
+                               goto yy858;
+                       } else {
+                               if (yych == 't') goto yy858;
+                               goto yy822;
+                       }
+               }
+       }
+yy849:
+       yych = *++p;
+       if (yych <= 'T') {
+               if (yych <= 'D') {
+                       if (yych == 'C') goto yy903;
+                       goto yy822;
+               } else {
+                       if (yych <= 'E') goto yy904;
+                       if (yych <= 'S') goto yy822;
+                       goto yy902;
+               }
+       } else {
+               if (yych <= 'd') {
+                       if (yych == 'c') goto yy903;
+                       goto yy822;
+               } else {
+                       if (yych <= 'e') goto yy904;
+                       if (yych == 't') goto yy902;
+                       goto yy822;
+               }
+       }
+yy850:
+       yych = *++p;
+       switch (yych) {
+       case 'A':
+       case 'a':       goto yy888;
+       case 'B':
+       case 'b':       goto yy887;
+       case 'D':
+       case 'R':
+       case 'd':
+       case 'r':       goto yy858;
+       case 'E':
+       case 'e':       goto yy886;
+       case 'F':
+       case 'f':       goto yy885;
+       case 'H':
+       case 'h':       goto yy884;
+       default:        goto yy822;
+       }
+yy851:
+       yych = *++p;
+       if (yych == 'M') goto yy881;
+       if (yych == 'm') goto yy881;
+       goto yy822;
+yy852:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'I') goto yy862;
+               if (yych <= 'N') goto yy822;
+               goto yy861;
+       } else {
+               if (yych <= 'i') {
+                       if (yych <= 'h') goto yy822;
+                       goto yy862;
+               } else {
+                       if (yych == 'o') goto yy861;
+                       goto yy822;
+               }
+       }
+yy853:
+       yych = *++p;
+       if (yych == 'L') goto yy858;
+       if (yych == 'l') goto yy858;
+       goto yy822;
+yy854:
+       yych = *++p;
+       if (yych == 'I') goto yy855;
+       if (yych != 'i') goto yy822;
+yy855:
+       yych = *++p;
+       if (yych == 'D') goto yy856;
+       if (yych != 'd') goto yy822;
+yy856:
+       yych = *++p;
+       if (yych == 'E') goto yy857;
+       if (yych != 'e') goto yy822;
+yy857:
+       yych = *++p;
+       if (yych == 'O') goto yy858;
+       if (yych != 'o') goto yy822;
+yy858:
+       yych = *++p;
+       if (yych <= 0x1F) {
+               if (yych <= 0x08) goto yy822;
+               if (yych >= 0x0E) goto yy822;
+       } else {
+               if (yych <= ' ') goto yy859;
+               if (yych != '>') goto yy822;
+       }
+yy859:
+       ++p;
+       { return (p - start); }
+yy861:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == 'O') goto yy877;
+               if (yych <= 'Q') goto yy822;
+               goto yy878;
+       } else {
+               if (yych <= 'o') {
+                       if (yych <= 'n') goto yy822;
+                       goto yy877;
+               } else {
+                       if (yych == 'r') goto yy878;
+                       goto yy822;
+               }
+       }
+yy862:
+       yych = *++p;
+       if (yych <= 'G') {
+               if (yych == 'E') goto yy863;
+               if (yych <= 'F') goto yy822;
+               goto yy864;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy822;
+               } else {
+                       if (yych == 'g') goto yy864;
+                       goto yy822;
+               }
+       }
+yy863:
+       yych = *++p;
+       if (yych == 'L') goto yy873;
+       if (yych == 'l') goto yy873;
+       goto yy822;
+yy864:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych == 'C') goto yy866;
+               if (yych <= 'T') goto yy822;
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= 'b') goto yy822;
+                       goto yy866;
+               } else {
+                       if (yych != 'u') goto yy822;
+               }
+       }
+       yych = *++p;
+       if (yych == 'R') goto yy872;
+       if (yych == 'r') goto yy872;
+       goto yy822;
+yy866:
+       yych = *++p;
+       if (yych == 'A') goto yy867;
+       if (yych != 'a') goto yy822;
+yy867:
+       yych = *++p;
+       if (yych == 'P') goto yy868;
+       if (yych != 'p') goto yy822;
+yy868:
+       yych = *++p;
+       if (yych == 'T') goto yy869;
+       if (yych != 't') goto yy822;
+yy869:
+       yych = *++p;
+       if (yych == 'I') goto yy870;
+       if (yych != 'i') goto yy822;
+yy870:
+       yych = *++p;
+       if (yych == 'O') goto yy871;
+       if (yych != 'o') goto yy822;
+yy871:
+       yych = *++p;
+       if (yych == 'N') goto yy858;
+       if (yych == 'n') goto yy858;
+       goto yy822;
+yy872:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy873:
+       yych = *++p;
+       if (yych == 'D') goto yy874;
+       if (yych != 'd') goto yy822;
+yy874:
+       yych = *++p;
+       if (yych == 'S') goto yy875;
+       if (yych != 's') goto yy822;
+yy875:
+       yych = *++p;
+       if (yych == 'E') goto yy876;
+       if (yych != 'e') goto yy822;
+yy876:
+       yych = *++p;
+       if (yych == 'T') goto yy858;
+       if (yych == 't') goto yy858;
+       goto yy822;
+yy877:
+       yych = *++p;
+       if (yych == 'T') goto yy879;
+       if (yych == 't') goto yy879;
+       goto yy822;
+yy878:
+       yych = *++p;
+       if (yych == 'M') goto yy858;
+       if (yych == 'm') goto yy858;
+       goto yy822;
+yy879:
+       yych = *++p;
+       if (yych == 'E') goto yy880;
+       if (yych != 'e') goto yy822;
+yy880:
+       yych = *++p;
+       if (yych == 'R') goto yy858;
+       if (yych == 'r') goto yy858;
+       goto yy822;
+yy881:
+       yych = *++p;
+       if (yych == 'B') goto yy882;
+       if (yych != 'b') goto yy822;
+yy882:
+       yych = *++p;
+       if (yych == 'E') goto yy883;
+       if (yych != 'e') goto yy822;
+yy883:
+       yych = *++p;
+       if (yych == 'D') goto yy858;
+       if (yych == 'd') goto yy858;
+       goto yy822;
+yy884:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy822;
+                       goto yy859;
+               } else {
+                       if (yych == ' ') goto yy859;
+                       goto yy822;
+               }
+       } else {
+               if (yych <= 'E') {
+                       if (yych <= '>') goto yy859;
+                       if (yych <= 'D') goto yy822;
+                       goto yy900;
+               } else {
+                       if (yych == 'e') goto yy900;
+                       goto yy822;
+               }
+       }
+yy885:
+       yych = *++p;
+       if (yych == 'O') goto yy898;
+       if (yych == 'o') goto yy898;
+       goto yy822;
+yy886:
+       yych = *++p;
+       if (yych == 'X') goto yy893;
+       if (yych == 'x') goto yy893;
+       goto yy822;
+yy887:
+       yych = *++p;
+       if (yych == 'O') goto yy891;
+       if (yych == 'o') goto yy891;
+       goto yy822;
+yy888:
+       yych = *++p;
+       if (yych == 'B') goto yy889;
+       if (yych != 'b') goto yy822;
+yy889:
+       yych = *++p;
+       if (yych == 'L') goto yy890;
+       if (yych != 'l') goto yy822;
+yy890:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy891:
+       yych = *++p;
+       if (yych == 'D') goto yy892;
+       if (yych != 'd') goto yy822;
+yy892:
+       yych = *++p;
+       if (yych == 'Y') goto yy858;
+       if (yych == 'y') goto yy858;
+       goto yy822;
+yy893:
+       yych = *++p;
+       if (yych == 'T') goto yy894;
+       if (yych != 't') goto yy822;
+yy894:
+       yych = *++p;
+       if (yych == 'A') goto yy895;
+       if (yych != 'a') goto yy822;
+yy895:
+       yych = *++p;
+       if (yych == 'R') goto yy896;
+       if (yych != 'r') goto yy822;
+yy896:
+       yych = *++p;
+       if (yych == 'E') goto yy897;
+       if (yych != 'e') goto yy822;
+yy897:
+       yych = *++p;
+       if (yych == 'A') goto yy858;
+       if (yych == 'a') goto yy858;
+       goto yy822;
+yy898:
+       yych = *++p;
+       if (yych == 'O') goto yy899;
+       if (yych != 'o') goto yy822;
+yy899:
+       yych = *++p;
+       if (yych == 'T') goto yy858;
+       if (yych == 't') goto yy858;
+       goto yy822;
+yy900:
+       yych = *++p;
+       if (yych == 'A') goto yy901;
+       if (yych != 'a') goto yy822;
+yy901:
+       yych = *++p;
+       if (yych == 'D') goto yy858;
+       if (yych == 'd') goto yy858;
+       goto yy822;
+yy902:
+       yych = *++p;
+       if (yych == 'Y') goto yy912;
+       if (yych == 'y') goto yy912;
+       goto yy822;
+yy903:
+       yych = *++p;
+       if (yych == 'R') goto yy909;
+       if (yych == 'r') goto yy909;
+       goto yy822;
+yy904:
+       yych = *++p;
+       if (yych == 'C') goto yy905;
+       if (yych != 'c') goto yy822;
+yy905:
+       yych = *++p;
+       if (yych == 'T') goto yy906;
+       if (yych != 't') goto yy822;
+yy906:
+       yych = *++p;
+       if (yych == 'I') goto yy907;
+       if (yych != 'i') goto yy822;
+yy907:
+       yych = *++p;
+       if (yych == 'O') goto yy908;
+       if (yych != 'o') goto yy822;
+yy908:
+       yych = *++p;
+       if (yych == 'N') goto yy858;
+       if (yych == 'n') goto yy858;
+       goto yy822;
+yy909:
+       yych = *++p;
+       if (yych == 'I') goto yy910;
+       if (yych != 'i') goto yy822;
+yy910:
+       yych = *++p;
+       if (yych == 'P') goto yy911;
+       if (yych != 'p') goto yy822;
+yy911:
+       yych = *++p;
+       if (yych == 'T') goto yy858;
+       if (yych == 't') goto yy858;
+       goto yy822;
+yy912:
+       yych = *++p;
+       if (yych == 'L') goto yy913;
+       if (yych != 'l') goto yy822;
+yy913:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy914:
+       yych = *++p;
+       if (yych == 'V') goto yy858;
+       if (yych == 'v') goto yy858;
+       goto yy822;
+yy915:
+       yych = *++p;
+       if (yych == 'L') goto yy924;
+       if (yych == 'l') goto yy924;
+       goto yy822;
+yy916:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'N') goto yy917;
+               if (yych <= 'O') goto yy822;
+               goto yy918;
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'm') goto yy822;
+               } else {
+                       if (yych == 'p') goto yy918;
+                       goto yy822;
+               }
+       }
+yy917:
+       yych = *++p;
+       if (yych == 'V') goto yy922;
+       if (yych == 'v') goto yy922;
+       goto yy822;
+yy918:
+       yych = *++p;
+       if (yych == 'T') goto yy919;
+       if (yych != 't') goto yy822;
+yy919:
+       yych = *++p;
+       if (yych == 'I') goto yy920;
+       if (yych != 'i') goto yy822;
+yy920:
+       yych = *++p;
+       if (yych == 'O') goto yy921;
+       if (yych != 'o') goto yy822;
+yy921:
+       yych = *++p;
+       if (yych == 'N') goto yy858;
+       if (yych == 'n') goto yy858;
+       goto yy822;
+yy922:
+       yych = *++p;
+       if (yych == 'A') goto yy923;
+       if (yych != 'a') goto yy822;
+yy923:
+       yych = *++p;
+       if (yych == 'S') goto yy858;
+       if (yych == 's') goto yy858;
+       goto yy822;
+yy924:
+       yych = *++p;
+       if (yych <= '=') {
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy822;
+                       goto yy859;
+               } else {
+                       if (yych == ' ') goto yy859;
+                       goto yy822;
+               }
+       } else {
+               if (yych <= 'G') {
+                       if (yych <= '>') goto yy859;
+                       if (yych <= 'F') goto yy822;
+               } else {
+                       if (yych != 'g') goto yy822;
+               }
+       }
+       yych = *++p;
+       if (yych == 'R') goto yy926;
+       if (yych != 'r') goto yy822;
+yy926:
+       yych = *++p;
+       if (yych == 'O') goto yy927;
+       if (yych != 'o') goto yy822;
+yy927:
+       yych = *++p;
+       if (yych == 'U') goto yy928;
+       if (yych != 'u') goto yy822;
+yy928:
+       yych = *++p;
+       if (yych == 'P') goto yy858;
+       if (yych == 'p') goto yy858;
+       goto yy822;
+yy929:
+       yych = *++p;
+       if (yych == 'T') goto yy934;
+       if (yych == 't') goto yy934;
+       goto yy822;
+yy930:
+       yych = *++p;
+       if (yych == 'J') goto yy931;
+       if (yych != 'j') goto yy822;
+yy931:
+       yych = *++p;
+       if (yych == 'E') goto yy932;
+       if (yych != 'e') goto yy822;
+yy932:
+       yych = *++p;
+       if (yych == 'C') goto yy933;
+       if (yych != 'c') goto yy822;
+yy933:
+       yych = *++p;
+       if (yych == 'T') goto yy858;
+       if (yych == 't') goto yy858;
+       goto yy822;
+yy934:
+       yych = *++p;
+       if (yych == 'P') goto yy935;
+       if (yych != 'p') goto yy822;
+yy935:
+       yych = *++p;
+       if (yych == 'U') goto yy936;
+       if (yych != 'u') goto yy822;
+yy936:
+       yych = *++p;
+       if (yych == 'T') goto yy858;
+       if (yych == 't') goto yy858;
+       goto yy822;
+yy937:
+       yych = *++p;
+       if (yych == 'P') goto yy858;
+       if (yych == 'p') goto yy858;
+       goto yy822;
+yy938:
+       yych = *++p;
+       if (yych == 'T') goto yy949;
+       if (yych == 't') goto yy949;
+       goto yy822;
+yy939:
+       yych = *++p;
+       if (yych == 'D') goto yy948;
+       if (yych == 'd') goto yy948;
+       goto yy822;
+yy940:
+       yych = *++p;
+       if (yych == 'O') goto yy941;
+       if (yych != 'o') goto yy822;
+yy941:
+       yych = *++p;
+       if (yych == 'C') goto yy942;
+       if (yych != 'c') goto yy822;
+yy942:
+       yych = *++p;
+       if (yych == 'K') goto yy943;
+       if (yych != 'k') goto yy822;
+yy943:
+       yych = *++p;
+       if (yych == 'Q') goto yy944;
+       if (yych != 'q') goto yy822;
+yy944:
+       yych = *++p;
+       if (yych == 'U') goto yy945;
+       if (yych != 'u') goto yy822;
+yy945:
+       yych = *++p;
+       if (yych == 'O') goto yy946;
+       if (yych != 'o') goto yy822;
+yy946:
+       yych = *++p;
+       if (yych == 'T') goto yy947;
+       if (yych != 't') goto yy822;
+yy947:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy948:
+       yych = *++p;
+       if (yych == 'Y') goto yy858;
+       if (yych == 'y') goto yy858;
+       goto yy822;
+yy949:
+       yych = *++p;
+       if (yych == 'T') goto yy950;
+       if (yych != 't') goto yy822;
+yy950:
+       yych = *++p;
+       if (yych == 'O') goto yy951;
+       if (yych != 'o') goto yy822;
+yy951:
+       yych = *++p;
+       if (yych == 'N') goto yy858;
+       if (yych == 'n') goto yy858;
+       goto yy822;
+yy952:
+       yych = *++p;
+       if (yych == 'R') goto yy953;
+       if (yych != 'r') goto yy822;
+yy953:
+       yych = *++p;
+       if (yych == 'A') goto yy954;
+       if (yych != 'a') goto yy822;
+yy954:
+       yych = *++p;
+       if (yych == 'M') goto yy955;
+       if (yych != 'm') goto yy822;
+yy955:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy956:
+       yych = *++p;
+       if (yych == 'R') goto yy961;
+       if (yych == 'r') goto yy961;
+       goto yy822;
+yy957:
+       yych = *++p;
+       if (yych == 'A') goto yy958;
+       if (yych != 'a') goto yy822;
+yy958:
+       yych = *++p;
+       if (yych == 'D') goto yy959;
+       if (yych != 'd') goto yy822;
+yy959:
+       yych = *++p;
+       if (yych == 'E') goto yy960;
+       if (yych != 'e') goto yy822;
+yy960:
+       yych = *++p;
+       if (yych == 'R') goto yy858;
+       if (yych == 'r') goto yy858;
+       goto yy822;
+yy961:
+       yych = *++p;
+       if (yych == 'O') goto yy962;
+       if (yych != 'o') goto yy822;
+yy962:
+       yych = *++p;
+       if (yych == 'U') goto yy963;
+       if (yych != 'u') goto yy822;
+yy963:
+       yych = *++p;
+       if (yych == 'P') goto yy858;
+       if (yych == 'p') goto yy858;
+       goto yy822;
+yy964:
+       yych = *++p;
+       if (yych == 'I') goto yy970;
+       if (yych == 'i') goto yy970;
+       goto yy822;
+yy965:
+       yych = *++p;
+       if (yych == 'T') goto yy966;
+       if (yych != 't') goto yy822;
+yy966:
+       yych = *++p;
+       if (yych == 'I') goto yy967;
+       if (yych != 'i') goto yy822;
+yy967:
+       yych = *++p;
+       if (yych == 'C') goto yy968;
+       if (yych != 'c') goto yy822;
+yy968:
+       yych = *++p;
+       if (yych == 'L') goto yy969;
+       if (yych != 'l') goto yy822;
+yy969:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy970:
+       yych = *++p;
+       if (yych == 'D') goto yy971;
+       if (yych != 'd') goto yy822;
+yy971:
+       yych = *++p;
+       if (yych == 'E') goto yy858;
+       if (yych == 'e') goto yy858;
+       goto yy822;
+yy972:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'E') goto yy858;
+               if (yych <= 'N') goto yy822;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy822;
+                       goto yy858;
+               } else {
+                       if (yych != 'o') goto yy822;
+               }
+       }
+       yych = *++p;
+       if (yych == 'G') goto yy974;
+       if (yych != 'g') goto yy822;
+yy974:
+       yych = *++p;
+       if (yych == 'R') goto yy975;
+       if (yych != 'r') goto yy822;
+yy975:
+       yych = *++p;
+       if (yych == 'E') goto yy976;
+       if (yych != 'e') goto yy822;
+yy976:
+       yych = *++p;
+       if (yych == 'S') goto yy977;
+       if (yych != 's') goto yy822;
+yy977:
+       yych = *++p;
+       if (yych == 'S') goto yy858;
+       if (yych == 's') goto yy858;
+       goto yy822;
+yy978:
+       yych = *++p;
+       if (yych == 'D') goto yy979;
+       if (yych != 'd') goto yy822;
+yy979:
+       yych = *++p;
+       if (yych == 'E') goto yy980;
+       if (yych != 'e') goto yy822;
+yy980:
+       yych = *++p;
+       if (yych == 'O') goto yy981;
+       if (yych != 'o') goto yy822;
+yy981:
+       yych = *++p;
+       if (yych <= ' ') {
+               if (yych <= 0x08) goto yy822;
+               if (yych <= '\r') goto yy982;
+               if (yych <= 0x1F) goto yy822;
+       } else {
+               if (yych <= '/') {
+                       if (yych <= '.') goto yy822;
+               } else {
+                       if (yych != '>') goto yy822;
+               }
+       }
+yy982:
+       ++p;
+       { return (p - start); }
+yy984:
+       yych = *++p;
+       if (yych <= 'R') {
+               if (yych == 'O') goto yy1000;
+               if (yych <= 'Q') goto yy822;
+               goto yy1001;
+       } else {
+               if (yych <= 'o') {
+                       if (yych <= 'n') goto yy822;
+                       goto yy1000;
+               } else {
+                       if (yych == 'r') goto yy1001;
+                       goto yy822;
+               }
+       }
+yy985:
+       yych = *++p;
+       if (yych <= 'G') {
+               if (yych == 'E') goto yy986;
+               if (yych <= 'F') goto yy822;
+               goto yy987;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy822;
+               } else {
+                       if (yych == 'g') goto yy987;
+                       goto yy822;
+               }
+       }
+yy986:
+       yych = *++p;
+       if (yych == 'L') goto yy996;
+       if (yych == 'l') goto yy996;
+       goto yy822;
+yy987:
+       yych = *++p;
+       if (yych <= 'U') {
+               if (yych == 'C') goto yy989;
+               if (yych <= 'T') goto yy822;
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= 'b') goto yy822;
+                       goto yy989;
+               } else {
+                       if (yych != 'u') goto yy822;
+               }
+       }
+       yych = *++p;
+       if (yych == 'R') goto yy995;
+       if (yych == 'r') goto yy995;
+       goto yy822;
+yy989:
+       yych = *++p;
+       if (yych == 'A') goto yy990;
+       if (yych != 'a') goto yy822;
+yy990:
+       yych = *++p;
+       if (yych == 'P') goto yy991;
+       if (yych != 'p') goto yy822;
+yy991:
+       yych = *++p;
+       if (yych == 'T') goto yy992;
+       if (yych != 't') goto yy822;
+yy992:
+       yych = *++p;
+       if (yych == 'I') goto yy993;
+       if (yych != 'i') goto yy822;
+yy993:
+       yych = *++p;
+       if (yych == 'O') goto yy994;
+       if (yych != 'o') goto yy822;
+yy994:
+       yych = *++p;
+       if (yych == 'N') goto yy981;
+       if (yych == 'n') goto yy981;
+       goto yy822;
+yy995:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy996:
+       yych = *++p;
+       if (yych == 'D') goto yy997;
+       if (yych != 'd') goto yy822;
+yy997:
+       yych = *++p;
+       if (yych == 'S') goto yy998;
+       if (yych != 's') goto yy822;
+yy998:
+       yych = *++p;
+       if (yych == 'E') goto yy999;
+       if (yych != 'e') goto yy822;
+yy999:
+       yych = *++p;
+       if (yych == 'T') goto yy981;
+       if (yych == 't') goto yy981;
+       goto yy822;
+yy1000:
+       yych = *++p;
+       if (yych == 'T') goto yy1002;
+       if (yych == 't') goto yy1002;
+       goto yy822;
+yy1001:
+       yych = *++p;
+       if (yych == 'M') goto yy981;
+       if (yych == 'm') goto yy981;
+       goto yy822;
+yy1002:
+       yych = *++p;
+       if (yych == 'E') goto yy1003;
+       if (yych != 'e') goto yy822;
+yy1003:
+       yych = *++p;
+       if (yych == 'R') goto yy981;
+       if (yych == 'r') goto yy981;
+       goto yy822;
+yy1004:
+       yych = *++p;
+       if (yych == 'B') goto yy1005;
+       if (yych != 'b') goto yy822;
+yy1005:
+       yych = *++p;
+       if (yych == 'E') goto yy1006;
+       if (yych != 'e') goto yy822;
+yy1006:
+       yych = *++p;
+       if (yych == 'D') goto yy981;
+       if (yych == 'd') goto yy981;
+       goto yy822;
+yy1007:
+       yych = *++p;
+       if (yych <= '/') {
+               if (yych <= 0x1F) {
+                       if (yych <= 0x08) goto yy822;
+                       if (yych <= '\r') goto yy982;
+                       goto yy822;
+               } else {
+                       if (yych <= ' ') goto yy982;
+                       if (yych <= '.') goto yy822;
+                       goto yy982;
+               }
+       } else {
+               if (yych <= 'D') {
+                       if (yych == '>') goto yy982;
+                       goto yy822;
+               } else {
+                       if (yych <= 'E') goto yy1023;
+                       if (yych == 'e') goto yy1023;
+                       goto yy822;
+               }
+       }
+yy1008:
+       yych = *++p;
+       if (yych == 'O') goto yy1021;
+       if (yych == 'o') goto yy1021;
+       goto yy822;
+yy1009:
+       yych = *++p;
+       if (yych == 'X') goto yy1016;
+       if (yych == 'x') goto yy1016;
+       goto yy822;
+yy1010:
+       yych = *++p;
+       if (yych == 'O') goto yy1014;
+       if (yych == 'o') goto yy1014;
+       goto yy822;
+yy1011:
+       yych = *++p;
+       if (yych == 'B') goto yy1012;
+       if (yych != 'b') goto yy822;
+yy1012:
+       yych = *++p;
+       if (yych == 'L') goto yy1013;
+       if (yych != 'l') goto yy822;
+yy1013:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1014:
+       yych = *++p;
+       if (yych == 'D') goto yy1015;
+       if (yych != 'd') goto yy822;
+yy1015:
+       yych = *++p;
+       if (yych == 'Y') goto yy981;
+       if (yych == 'y') goto yy981;
+       goto yy822;
+yy1016:
+       yych = *++p;
+       if (yych == 'T') goto yy1017;
+       if (yych != 't') goto yy822;
+yy1017:
+       yych = *++p;
+       if (yych == 'A') goto yy1018;
+       if (yych != 'a') goto yy822;
+yy1018:
+       yych = *++p;
+       if (yych == 'R') goto yy1019;
+       if (yych != 'r') goto yy822;
+yy1019:
+       yych = *++p;
+       if (yych == 'E') goto yy1020;
+       if (yych != 'e') goto yy822;
+yy1020:
+       yych = *++p;
+       if (yych == 'A') goto yy981;
+       if (yych == 'a') goto yy981;
+       goto yy822;
+yy1021:
+       yych = *++p;
+       if (yych == 'O') goto yy1022;
+       if (yych != 'o') goto yy822;
+yy1022:
+       yych = *++p;
+       if (yych == 'T') goto yy981;
+       if (yych == 't') goto yy981;
+       goto yy822;
+yy1023:
+       yych = *++p;
+       if (yych == 'A') goto yy1024;
+       if (yych != 'a') goto yy822;
+yy1024:
+       yych = *++p;
+       if (yych == 'D') goto yy981;
+       if (yych == 'd') goto yy981;
+       goto yy822;
+yy1025:
+       yych = *++p;
+       if (yych == 'Y') goto yy1035;
+       if (yych == 'y') goto yy1035;
+       goto yy822;
+yy1026:
+       yych = *++p;
+       if (yych == 'R') goto yy1032;
+       if (yych == 'r') goto yy1032;
+       goto yy822;
+yy1027:
+       yych = *++p;
+       if (yych == 'C') goto yy1028;
+       if (yych != 'c') goto yy822;
+yy1028:
+       yych = *++p;
+       if (yych == 'T') goto yy1029;
+       if (yych != 't') goto yy822;
+yy1029:
+       yych = *++p;
+       if (yych == 'I') goto yy1030;
+       if (yych != 'i') goto yy822;
+yy1030:
+       yych = *++p;
+       if (yych == 'O') goto yy1031;
+       if (yych != 'o') goto yy822;
+yy1031:
+       yych = *++p;
+       if (yych == 'N') goto yy981;
+       if (yych == 'n') goto yy981;
+       goto yy822;
+yy1032:
+       yych = *++p;
+       if (yych == 'I') goto yy1033;
+       if (yych != 'i') goto yy822;
+yy1033:
+       yych = *++p;
+       if (yych == 'P') goto yy1034;
+       if (yych != 'p') goto yy822;
+yy1034:
+       yych = *++p;
+       if (yych == 'T') goto yy981;
+       if (yych == 't') goto yy981;
+       goto yy822;
+yy1035:
+       yych = *++p;
+       if (yych == 'L') goto yy1036;
+       if (yych != 'l') goto yy822;
+yy1036:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1037:
+       yych = *++p;
+       if (yych == 'V') goto yy981;
+       if (yych == 'v') goto yy981;
+       goto yy822;
+yy1038:
+       yych = *++p;
+       if (yych == 'L') goto yy1047;
+       if (yych == 'l') goto yy1047;
+       goto yy822;
+yy1039:
+       yych = *++p;
+       if (yych <= 'P') {
+               if (yych == 'N') goto yy1040;
+               if (yych <= 'O') goto yy822;
+               goto yy1041;
+       } else {
+               if (yych <= 'n') {
+                       if (yych <= 'm') goto yy822;
+               } else {
+                       if (yych == 'p') goto yy1041;
+                       goto yy822;
+               }
+       }
+yy1040:
+       yych = *++p;
+       if (yych == 'V') goto yy1045;
+       if (yych == 'v') goto yy1045;
+       goto yy822;
+yy1041:
+       yych = *++p;
+       if (yych == 'T') goto yy1042;
+       if (yych != 't') goto yy822;
+yy1042:
+       yych = *++p;
+       if (yych == 'I') goto yy1043;
+       if (yych != 'i') goto yy822;
+yy1043:
+       yych = *++p;
+       if (yych == 'O') goto yy1044;
+       if (yych != 'o') goto yy822;
+yy1044:
+       yych = *++p;
+       if (yych == 'N') goto yy981;
+       if (yych == 'n') goto yy981;
+       goto yy822;
+yy1045:
+       yych = *++p;
+       if (yych == 'A') goto yy1046;
+       if (yych != 'a') goto yy822;
+yy1046:
+       yych = *++p;
+       if (yych == 'S') goto yy981;
+       if (yych == 's') goto yy981;
+       goto yy822;
+yy1047:
+       yych = *++p;
+       if (yych <= '/') {
+               if (yych <= 0x1F) {
+                       if (yych <= 0x08) goto yy822;
+                       if (yych <= '\r') goto yy982;
+                       goto yy822;
+               } else {
+                       if (yych <= ' ') goto yy982;
+                       if (yych <= '.') goto yy822;
+                       goto yy982;
+               }
+       } else {
+               if (yych <= 'F') {
+                       if (yych == '>') goto yy982;
+                       goto yy822;
+               } else {
+                       if (yych <= 'G') goto yy1048;
+                       if (yych != 'g') goto yy822;
+               }
+       }
+yy1048:
+       yych = *++p;
+       if (yych == 'R') goto yy1049;
+       if (yych != 'r') goto yy822;
+yy1049:
+       yych = *++p;
+       if (yych == 'O') goto yy1050;
+       if (yych != 'o') goto yy822;
+yy1050:
+       yych = *++p;
+       if (yych == 'U') goto yy1051;
+       if (yych != 'u') goto yy822;
+yy1051:
+       yych = *++p;
+       if (yych == 'P') goto yy981;
+       if (yych == 'p') goto yy981;
+       goto yy822;
+yy1052:
+       yych = *++p;
+       if (yych == 'T') goto yy1057;
+       if (yych == 't') goto yy1057;
+       goto yy822;
+yy1053:
+       yych = *++p;
+       if (yych == 'J') goto yy1054;
+       if (yych != 'j') goto yy822;
+yy1054:
+       yych = *++p;
+       if (yych == 'E') goto yy1055;
+       if (yych != 'e') goto yy822;
+yy1055:
+       yych = *++p;
+       if (yych == 'C') goto yy1056;
+       if (yych != 'c') goto yy822;
+yy1056:
+       yych = *++p;
+       if (yych == 'T') goto yy981;
+       if (yych == 't') goto yy981;
+       goto yy822;
+yy1057:
+       yych = *++p;
+       if (yych == 'P') goto yy1058;
+       if (yych != 'p') goto yy822;
+yy1058:
+       yych = *++p;
+       if (yych == 'U') goto yy1059;
+       if (yych != 'u') goto yy822;
+yy1059:
+       yych = *++p;
+       if (yych == 'T') goto yy981;
+       if (yych == 't') goto yy981;
+       goto yy822;
+yy1060:
+       yych = *++p;
+       if (yych == 'P') goto yy981;
+       if (yych == 'p') goto yy981;
+       goto yy822;
+yy1061:
+       yych = *++p;
+       if (yych == 'T') goto yy1072;
+       if (yych == 't') goto yy1072;
+       goto yy822;
+yy1062:
+       yych = *++p;
+       if (yych == 'D') goto yy1071;
+       if (yych == 'd') goto yy1071;
+       goto yy822;
+yy1063:
+       yych = *++p;
+       if (yych == 'O') goto yy1064;
+       if (yych != 'o') goto yy822;
+yy1064:
+       yych = *++p;
+       if (yych == 'C') goto yy1065;
+       if (yych != 'c') goto yy822;
+yy1065:
+       yych = *++p;
+       if (yych == 'K') goto yy1066;
+       if (yych != 'k') goto yy822;
+yy1066:
+       yych = *++p;
+       if (yych == 'Q') goto yy1067;
+       if (yych != 'q') goto yy822;
+yy1067:
+       yych = *++p;
+       if (yych == 'U') goto yy1068;
+       if (yych != 'u') goto yy822;
+yy1068:
+       yych = *++p;
+       if (yych == 'O') goto yy1069;
+       if (yych != 'o') goto yy822;
+yy1069:
+       yych = *++p;
+       if (yych == 'T') goto yy1070;
+       if (yych != 't') goto yy822;
+yy1070:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1071:
+       yych = *++p;
+       if (yych == 'Y') goto yy981;
+       if (yych == 'y') goto yy981;
+       goto yy822;
+yy1072:
+       yych = *++p;
+       if (yych == 'T') goto yy1073;
+       if (yych != 't') goto yy822;
+yy1073:
+       yych = *++p;
+       if (yych == 'O') goto yy1074;
+       if (yych != 'o') goto yy822;
+yy1074:
+       yych = *++p;
+       if (yych == 'N') goto yy981;
+       if (yych == 'n') goto yy981;
+       goto yy822;
+yy1075:
+       yych = *++p;
+       if (yych == 'R') goto yy1076;
+       if (yych != 'r') goto yy822;
+yy1076:
+       yych = *++p;
+       if (yych == 'A') goto yy1077;
+       if (yych != 'a') goto yy822;
+yy1077:
+       yych = *++p;
+       if (yych == 'M') goto yy1078;
+       if (yych != 'm') goto yy822;
+yy1078:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1079:
+       yych = *++p;
+       if (yych == 'R') goto yy1084;
+       if (yych == 'r') goto yy1084;
+       goto yy822;
+yy1080:
+       yych = *++p;
+       if (yych == 'A') goto yy1081;
+       if (yych != 'a') goto yy822;
+yy1081:
+       yych = *++p;
+       if (yych == 'D') goto yy1082;
+       if (yych != 'd') goto yy822;
+yy1082:
+       yych = *++p;
+       if (yych == 'E') goto yy1083;
+       if (yych != 'e') goto yy822;
+yy1083:
+       yych = *++p;
+       if (yych == 'R') goto yy981;
+       if (yych == 'r') goto yy981;
+       goto yy822;
+yy1084:
+       yych = *++p;
+       if (yych == 'O') goto yy1085;
+       if (yych != 'o') goto yy822;
+yy1085:
+       yych = *++p;
+       if (yych == 'U') goto yy1086;
+       if (yych != 'u') goto yy822;
+yy1086:
+       yych = *++p;
+       if (yych == 'P') goto yy981;
+       if (yych == 'p') goto yy981;
+       goto yy822;
+yy1087:
+       yych = *++p;
+       if (yych == 'I') goto yy1093;
+       if (yych == 'i') goto yy1093;
+       goto yy822;
+yy1088:
+       yych = *++p;
+       if (yych == 'T') goto yy1089;
+       if (yych != 't') goto yy822;
+yy1089:
+       yych = *++p;
+       if (yych == 'I') goto yy1090;
+       if (yych != 'i') goto yy822;
+yy1090:
+       yych = *++p;
+       if (yych == 'C') goto yy1091;
+       if (yych != 'c') goto yy822;
+yy1091:
+       yych = *++p;
+       if (yych == 'L') goto yy1092;
+       if (yych != 'l') goto yy822;
+yy1092:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1093:
+       yych = *++p;
+       if (yych == 'D') goto yy1094;
+       if (yych != 'd') goto yy822;
+yy1094:
+       yych = *++p;
+       if (yych == 'E') goto yy981;
+       if (yych == 'e') goto yy981;
+       goto yy822;
+yy1095:
+       yych = *++p;
+       if (yych <= 'O') {
+               if (yych == 'E') goto yy981;
+               if (yych <= 'N') goto yy822;
+       } else {
+               if (yych <= 'e') {
+                       if (yych <= 'd') goto yy822;
+                       goto yy981;
+               } else {
+                       if (yych != 'o') goto yy822;
+               }
+       }
+       yych = *++p;
+       if (yych == 'G') goto yy1097;
+       if (yych != 'g') goto yy822;
+yy1097:
+       yych = *++p;
+       if (yych == 'R') goto yy1098;
+       if (yych != 'r') goto yy822;
+yy1098:
+       yych = *++p;
+       if (yych == 'E') goto yy1099;
+       if (yych != 'e') goto yy822;
+yy1099:
+       yych = *++p;
+       if (yych == 'S') goto yy1100;
+       if (yych != 's') goto yy822;
+yy1100:
+       ++p;
+       if ((yych = *p) == 'S') goto yy981;
+       if (yych == 's') goto yy981;
+       goto yy822;
+}
+
+}
+
+// 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.
+int _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,  64,  64,  64,  64,  64,  64,  64, 
+                64,  64,   8,  64,  64,  64,  64,  64, 
+                64,  64,  64,  64,  64,  64,  64,  64, 
+                64,  64,  64,  64,  64,  64,  64,  64, 
+                72, 112, 112, 112, 112, 112, 112, 112, 
+                64,  64, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112,  16, 112,  16, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 128, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+               112, 112, 112, 112, 112, 112, 112, 112, 
+       };
+       yych = *p;
+       if (yych <= '(') {
+               if (yych <= 0x1F) {
+                       if (yych == '\n') goto yy1104;
+                       goto yy1112;
+               } else {
+                       if (yych <= ' ') goto yy1106;
+                       if (yych <= '\'') goto yy1108;
+                       goto yy1111;
+               }
+       } else {
+               if (yych <= '<') {
+                       if (yych <= ')') goto yy1112;
+                       if (yych <= ';') goto yy1108;
+                       goto yy1107;
+               } else {
+                       if (yych == '\\') goto yy1109;
+                       goto yy1108;
+               }
+       }
+yy1103:
+       { return (p - start); }
+yy1104:
+       yyaccept = 0;
+       marker = ++p;
+       yych = *p;
+yy1105:
+       if (yybm[0+yych] & 8) {
+               goto yy1104;
+       }
+       if (yych <= ')') {
+               if (yych <= 0x1F) goto yy1103;
+               if (yych <= '\'') goto yy1117;
+               if (yych <= '(') goto yy1113;
+               goto yy1103;
+       } else {
+               if (yych <= '<') {
+                       if (yych <= ';') goto yy1117;
+                       goto yy1120;
+               } else {
+                       if (yych == '\\') goto yy1119;
+                       goto yy1117;
+               }
+       }
+yy1106:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       goto yy1105;
+yy1107:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       if (yybm[0+yych] & 32) {
+               goto yy1120;
+       }
+       if (yych <= ' ') {
+               if (yych <= 0x00) goto yy1103;
+               if (yych == '\n') goto yy1103;
+               goto yy1127;
+       } else {
+               if (yych <= ')') {
+                       if (yych <= '(') goto yy1125;
+                       goto yy1127;
+               } else {
+                       if (yych <= '<') goto yy1117;
+                       if (yych <= '>') goto yy1122;
+                       goto yy1124;
+               }
+       }
+yy1108:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       goto yy1118;
+yy1109:
+       ++p;
+       if ((yych = *p) <= '@') {
+               if (yych <= ' ') goto yy1110;
+               if (yych <= '/') goto yy1117;
+               if (yych >= ':') goto yy1117;
+       } else {
+               if (yych <= '`') {
+                       if (yych >= '[') goto yy1117;
+               } else {
+                       if (yych <= 'z') goto yy1110;
+                       if (yych <= '~') goto yy1117;
+               }
+       }
+yy1110:
+       { return 0; }
+yy1111:
+       yyaccept = 1;
+       yych = *(marker = ++p);
+       if (yych <= ' ') goto yy1110;
+       if (yych == '(') goto yy1110;
+       goto yy1114;
+yy1112:
+       yych = *++p;
+       goto yy1110;
+yy1113:
+       ++p;
+       yych = *p;
+yy1114:
+       if (yybm[0+yych] & 16) {
+               goto yy1113;
+       }
+       if (yych <= '(') goto yy1115;
+       if (yych <= ')') goto yy1117;
+       goto yy1116;
+yy1115:
+       p = marker;
+       if (yyaccept <= 1) {
+               if (yyaccept == 0) {
+                       goto yy1103;
+               } else {
+                       goto yy1110;
+               }
+       } else {
+               goto yy1123;
+       }
+yy1116:
+       ++p;
+       yych = *p;
+       if (yych <= '@') {
+               if (yych <= ' ') goto yy1115;
+               if (yych <= '/') goto yy1113;
+               if (yych <= '9') goto yy1115;
+               goto yy1113;
+       } else {
+               if (yych <= '`') {
+                       if (yych <= 'Z') goto yy1115;
+                       goto yy1113;
+               } else {
+                       if (yych <= 'z') goto yy1115;
+                       if (yych <= '~') goto yy1113;
+                       goto yy1115;
+               }
+       }
+yy1117:
+       yyaccept = 0;
+       marker = ++p;
+       yych = *p;
+yy1118:
+       if (yych <= '(') {
+               if (yych <= ' ') goto yy1103;
+               if (yych <= '\'') goto yy1117;
+               goto yy1113;
+       } else {
+               if (yych <= ')') goto yy1103;
+               if (yych != '\\') goto yy1117;
+       }
+yy1119:
+       ++p;
+       yych = *p;
+       if (yych <= '@') {
+               if (yych <= ' ') goto yy1115;
+               if (yych <= '/') goto yy1117;
+               if (yych <= '9') goto yy1115;
+               goto yy1117;
+       } else {
+               if (yych <= '`') {
+                       if (yych <= 'Z') goto yy1115;
+                       goto yy1117;
+               } else {
+                       if (yych <= 'z') goto yy1115;
+                       if (yych <= '~') goto yy1117;
+                       goto yy1115;
+               }
+       }
+yy1120:
+       yyaccept = 0;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1120;
+       }
+       if (yych <= ' ') {
+               if (yych <= 0x00) goto yy1103;
+               if (yych == '\n') goto yy1103;
+               goto yy1127;
+       } else {
+               if (yych <= ')') {
+                       if (yych <= '(') goto yy1125;
+                       goto yy1127;
+               } else {
+                       if (yych <= '<') goto yy1117;
+                       if (yych >= '?') goto yy1124;
+               }
+       }
+yy1122:
+       yyaccept = 2;
+       yych = *(marker = ++p);
+       if (yych <= ' ') goto yy1123;
+       if (yych != ')') goto yy1118;
+yy1123:
+       { return (p - start); }
+yy1124:
+       ++p;
+       yych = *p;
+       if (yych <= '>') {
+               if (yych <= ' ') {
+                       if (yych <= 0x00) goto yy1115;
+                       if (yych == '\n') goto yy1115;
+                       goto yy1127;
+               } else {
+                       if (yych <= '/') goto yy1120;
+                       if (yych <= '9') goto yy1127;
+                       if (yych <= '=') goto yy1120;
+                       goto yy1137;
+               }
+       } else {
+               if (yych <= '\\') {
+                       if (yych <= '@') goto yy1120;
+                       if (yych <= 'Z') goto yy1127;
+                       if (yych <= '[') goto yy1120;
+                       goto yy1138;
+               } else {
+                       if (yych <= '`') goto yy1120;
+                       if (yych <= 'z') goto yy1127;
+                       if (yych <= '~') goto yy1120;
+                       goto yy1127;
+               }
+       }
+yy1125:
+       ++p;
+       yych = *p;
+       if (yych <= ')') {
+               if (yych <= '\n') {
+                       if (yych <= 0x00) goto yy1115;
+                       if (yych >= '\n') goto yy1115;
+               } else {
+                       if (yych <= ' ') goto yy1127;
+                       if (yych <= '\'') goto yy1125;
+                       if (yych >= ')') goto yy1120;
+               }
+       } else {
+               if (yych <= '=') {
+                       if (yych == '<') goto yy1113;
+                       goto yy1125;
+               } else {
+                       if (yych <= '>') goto yy1133;
+                       if (yych == '\\') goto yy1134;
+                       goto yy1125;
+               }
+       }
+yy1127:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1127;
+       }
+       if (yych <= '<') goto yy1115;
+       if (yych >= '?') goto yy1130;
+yy1129:
+       yych = *++p;
+       goto yy1123;
+yy1130:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1130;
+       }
+       if (yych <= '\n') {
+               if (yych <= 0x00) goto yy1115;
+               if (yych <= '\t') goto yy1127;
+               goto yy1115;
+       } else {
+               if (yych != '>') goto yy1127;
+       }
+       yyaccept = 2;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1127;
+       }
+       if (yych <= '<') goto yy1123;
+       if (yych <= '>') goto yy1129;
+       goto yy1130;
+yy1133:
+       yyaccept = 2;
+       yych = *(marker = ++p);
+       if (yych <= ' ') goto yy1123;
+       if (yych == '(') goto yy1123;
+       goto yy1114;
+yy1134:
+       ++p;
+       yych = *p;
+       if (yych <= '>') {
+               if (yych <= ' ') {
+                       if (yych <= 0x00) goto yy1115;
+                       if (yych == '\n') goto yy1115;
+                       goto yy1127;
+               } else {
+                       if (yych <= '/') goto yy1125;
+                       if (yych <= '9') goto yy1127;
+                       if (yych <= '=') goto yy1125;
+               }
+       } else {
+               if (yych <= '\\') {
+                       if (yych <= '@') goto yy1125;
+                       if (yych <= 'Z') goto yy1127;
+                       if (yych <= '[') goto yy1125;
+                       goto yy1136;
+               } else {
+                       if (yych <= '`') goto yy1125;
+                       if (yych <= 'z') goto yy1127;
+                       if (yych <= '~') goto yy1125;
+                       goto yy1127;
+               }
+       }
+yy1135:
+       yyaccept = 2;
+       marker = ++p;
+       yych = *p;
+       if (yych <= ')') {
+               if (yych <= '\n') {
+                       if (yych <= 0x00) goto yy1123;
+                       if (yych <= '\t') goto yy1127;
+                       goto yy1123;
+               } else {
+                       if (yych <= ' ') goto yy1127;
+                       if (yych <= '\'') goto yy1125;
+                       if (yych <= '(') goto yy1127;
+                       goto yy1120;
+               }
+       } else {
+               if (yych <= '=') {
+                       if (yych == '<') goto yy1113;
+                       goto yy1125;
+               } else {
+                       if (yych <= '>') goto yy1133;
+                       if (yych == '\\') goto yy1134;
+                       goto yy1125;
+               }
+       }
+yy1136:
+       ++p;
+       yych = *p;
+       if (yych <= '(') {
+               if (yych <= '\n') {
+                       if (yych <= 0x00) goto yy1115;
+                       if (yych <= '\t') goto yy1127;
+                       goto yy1115;
+               } else {
+                       if (yych <= ' ') goto yy1127;
+                       if (yych <= '\'') goto yy1125;
+                       goto yy1127;
+               }
+       } else {
+               if (yych <= '>') {
+                       if (yych <= ')') goto yy1120;
+                       if (yych <= '=') goto yy1125;
+                       goto yy1135;
+               } else {
+                       if (yych == '\\') goto yy1134;
+                       goto yy1125;
+               }
+       }
+yy1137:
+       yyaccept = 2;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1120;
+       }
+       if (yych <= ' ') {
+               if (yych <= 0x00) goto yy1123;
+               if (yych == '\n') goto yy1123;
+               goto yy1127;
+       } else {
+               if (yych <= ')') {
+                       if (yych <= '(') goto yy1125;
+                       goto yy1127;
+               } else {
+                       if (yych <= '<') goto yy1117;
+                       if (yych <= '>') goto yy1122;
+                       goto yy1124;
+               }
+       }
+yy1138:
+       yyaccept = 0;
+       marker = ++p;
+       yych = *p;
+       if (yych <= '(') {
+               if (yych <= '\n') {
+                       if (yych <= 0x00) goto yy1103;
+                       if (yych <= '\t') goto yy1127;
+                       goto yy1103;
+               } else {
+                       if (yych <= ' ') goto yy1127;
+                       if (yych <= '\'') goto yy1120;
+                       goto yy1125;
+               }
+       } else {
+               if (yych <= '>') {
+                       if (yych <= ')') goto yy1127;
+                       if (yych <= '=') goto yy1120;
+                       goto yy1137;
+               } else {
+                       if (yych == '\\') goto yy1124;
+                       goto yy1120;
+               }
+       }
+}
+
+}
+
+// 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).
+int _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, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208,  80, 208, 208, 208, 208, 144, 
+               208, 192, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208,  32, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+               208, 208, 208, 208, 208, 208, 208, 208, 
+       };
+       yych = *p;
+       if (yych <= '"') {
+               if (yych == '\n') goto yy1141;
+               if (yych <= '!') goto yy1145;
+               goto yy1142;
+       } else {
+               if (yych <= '&') goto yy1145;
+               if (yych <= '\'') goto yy1143;
+               if (yych <= '(') goto yy1144;
+               goto yy1145;
+       }
+yy1141:
+       { return 0; }
+yy1142:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       if (yych <= 0x00) goto yy1141;
+       goto yy1162;
+yy1143:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       if (yych <= 0x00) goto yy1141;
+       goto yy1155;
+yy1144:
+       yyaccept = 0;
+       yych = *(marker = ++p);
+       if (yych <= 0x00) goto yy1141;
+       goto yy1147;
+yy1145:
+       yych = *++p;
+       goto yy1141;
+yy1146:
+       ++p;
+       yych = *p;
+yy1147:
+       if (yybm[0+yych] & 16) {
+               goto yy1146;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= ')') goto yy1151;
+       goto yy1149;
+yy1148:
+       p = marker;
+       if (yyaccept <= 1) {
+               if (yyaccept == 0) {
+                       goto yy1141;
+               } else {
+                       goto yy1152;
+               }
+       } else {
+               if (yyaccept == 2) {
+                       goto yy1159;
+               } else {
+                       goto yy1166;
+               }
+       }
+yy1149:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 16) {
+               goto yy1146;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= ')') goto yy1153;
+       goto yy1149;
+yy1151:
+       ++p;
+yy1152:
+       { return (p - start); }
+yy1153:
+       yyaccept = 1;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 16) {
+               goto yy1146;
+       }
+       if (yych <= 0x00) goto yy1152;
+       if (yych <= ')') goto yy1151;
+       goto yy1149;
+yy1154:
+       ++p;
+       yych = *p;
+yy1155:
+       if (yybm[0+yych] & 64) {
+               goto yy1154;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= '\'') goto yy1158;
+yy1156:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1154;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= '\'') goto yy1160;
+       goto yy1156;
+yy1158:
+       ++p;
+yy1159:
+       { return (p - start); }
+yy1160:
+       yyaccept = 2;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1154;
+       }
+       if (yych <= 0x00) goto yy1159;
+       if (yych <= '\'') goto yy1158;
+       goto yy1156;
+yy1161:
+       ++p;
+       yych = *p;
+yy1162:
+       if (yybm[0+yych] & 128) {
+               goto yy1161;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= '"') goto yy1165;
+yy1163:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1161;
+       }
+       if (yych <= 0x00) goto yy1148;
+       if (yych <= '"') goto yy1167;
+       goto yy1163;
+yy1165:
+       ++p;
+yy1166:
+       { return (p - start); }
+yy1167:
+       yyaccept = 3;
+       marker = ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1161;
+       }
+       if (yych <= 0x00) goto yy1166;
+       if (yych <= '"') goto yy1165;
+       goto yy1163;
+}
+
+}
+
+// Match space characters, including newlines.
+int _scan_spacechars(const unsigned char *p)
+{
+  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 = *p;
+       if (yych <= '\n') {
+               if (yych <= 0x08) goto yy1174;
+               if (yych <= '\t') goto yy1171;
+               goto yy1172;
+       } else {
+               if (yych <= '\r') goto yy1171;
+               if (yych == ' ') goto yy1171;
+               goto yy1174;
+       }
+yy1170:
+       { return (p - start); }
+yy1171:
+       yych = *++p;
+       goto yy1173;
+yy1172:
+       ++p;
+       yych = *p;
+yy1173:
+       if (yybm[0+yych] & 128) {
+               goto yy1172;
+       }
+       goto yy1170;
+yy1174:
+       ++p;
+       { return 0; }
+}
+
+}
+
+// Match ATX header start.
+int _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 = *p;
+       if (yych == '\n') goto yy1178;
+       if (yych == '#') goto yy1179;
+       goto yy1180;
+yy1178:
+       { return 0; }
+yy1179:
+       yych = *(marker = ++p);
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       if (yych == '#') goto yy1185;
+       goto yy1178;
+yy1180:
+       yych = *++p;
+       goto yy1178;
+yy1181:
+       ++p;
+yy1182:
+       { return (p - start); }
+yy1183:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       goto yy1182;
+yy1185:
+       yych = *++p;
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       if (yych == '#') goto yy1187;
+yy1186:
+       p = marker;
+       goto yy1178;
+yy1187:
+       yych = *++p;
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       if (yych != '#') goto yy1186;
+       yych = *++p;
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       if (yych != '#') goto yy1186;
+       yych = *++p;
+       if (yybm[0+yych] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       if (yych != '#') goto yy1186;
+       ++p;
+       if (yybm[0+(yych = *p)] & 128) {
+               goto yy1183;
+       }
+       if (yych == '\n') goto yy1181;
+       goto yy1186;
+}
+
+}
+
+// Match sexext header line.  Return 1 for level-1 header,
+// 2 for level-2, 0 for no match.
+int _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 = *p;
+       if (yych <= ',') {
+               if (yych != '\n') goto yy1196;
+       } else {
+               if (yych <= '-') goto yy1195;
+               if (yych == '=') goto yy1194;
+               goto yy1196;
+       }
+yy1193:
+       { return 0; }
+yy1194:
+       yych = *(marker = ++p);
+       if (yybm[0+yych] & 128) {
+               goto yy1208;
+       }
+       if (yych == '\n') goto yy1206;
+       if (yych == ' ') goto yy1204;
+       goto yy1193;
+yy1195:
+       yych = *(marker = ++p);
+       if (yybm[0+yych] & 32) {
+               goto yy1197;
+       }
+       if (yych == '\n') goto yy1200;
+       if (yych == '-') goto yy1202;
+       goto yy1193;
+yy1196:
+       yych = *++p;
+       goto yy1193;
+yy1197:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1197;
+       }
+       if (yych == '\n') goto yy1200;
+yy1199:
+       p = marker;
+       goto yy1193;
+yy1200:
+       ++p;
+       { return 2; }
+yy1202:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1197;
+       }
+       if (yych == '\n') goto yy1200;
+       if (yych == '-') goto yy1202;
+       goto yy1199;
+yy1204:
+       ++p;
+       yych = *p;
+       if (yych == '\n') goto yy1206;
+       if (yych == ' ') goto yy1204;
+       goto yy1199;
+yy1206:
+       ++p;
+       { return 1; }
+yy1208:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1208;
+       }
+       if (yych == '\n') goto yy1206;
+       if (yych == ' ') goto yy1204;
+       goto yy1199;
+}
+
+}
+
+// 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."
+int _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 = *p;
+       if (yych <= '*') {
+               if (yych == '\n') goto yy1212;
+               if (yych <= ')') goto yy1216;
+               goto yy1213;
+       } else {
+               if (yych <= '-') {
+                       if (yych <= ',') goto yy1216;
+                       goto yy1215;
+               } else {
+                       if (yych == '_') goto yy1214;
+                       goto yy1216;
+               }
+       }
+yy1212:
+       { return 0; }
+yy1213:
+       yych = *(marker = ++p);
+       if (yych == ' ') goto yy1238;
+       if (yych == '*') goto yy1240;
+       goto yy1212;
+yy1214:
+       yych = *(marker = ++p);
+       if (yych == ' ') goto yy1228;
+       if (yych == '_') goto yy1230;
+       goto yy1212;
+yy1215:
+       yych = *(marker = ++p);
+       if (yybm[0+yych] & 8) {
+               goto yy1217;
+       }
+       if (yych == '-') goto yy1220;
+       goto yy1212;
+yy1216:
+       yych = *++p;
+       goto yy1212;
+yy1217:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 8) {
+               goto yy1217;
+       }
+       if (yych == '-') goto yy1220;
+yy1219:
+       p = marker;
+       goto yy1212;
+yy1220:
+       ++p;
+       yych = *p;
+       if (yych == ' ') goto yy1220;
+       if (yych != '-') goto yy1219;
+yy1222:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 16) {
+               goto yy1222;
+       }
+       if (yych <= 0x08) goto yy1219;
+       if (yych <= '\t') goto yy1224;
+       if (yych <= '\n') goto yy1226;
+       goto yy1219;
+yy1224:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1224;
+       }
+       if (yych <= 0x08) goto yy1219;
+       if (yych >= '\v') goto yy1219;
+yy1226:
+       ++p;
+       { return (p - start); }
+yy1228:
+       ++p;
+       yych = *p;
+       if (yych == ' ') goto yy1228;
+       if (yych != '_') goto yy1219;
+yy1230:
+       ++p;
+       yych = *p;
+       if (yych == ' ') goto yy1230;
+       if (yych != '_') goto yy1219;
+yy1232:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1232;
+       }
+       if (yych <= 0x08) goto yy1219;
+       if (yych <= '\t') goto yy1234;
+       if (yych <= '\n') goto yy1236;
+       goto yy1219;
+yy1234:
+       ++p;
+       yych = *p;
+       if (yych <= '\n') {
+               if (yych <= 0x08) goto yy1219;
+               if (yych <= '\t') goto yy1234;
+       } else {
+               if (yych == ' ') goto yy1234;
+               goto yy1219;
+       }
+yy1236:
+       ++p;
+       { return (p - start); }
+yy1238:
+       ++p;
+       yych = *p;
+       if (yych == ' ') goto yy1238;
+       if (yych != '*') goto yy1219;
+yy1240:
+       ++p;
+       yych = *p;
+       if (yych == ' ') goto yy1240;
+       if (yych != '*') goto yy1219;
+yy1242:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1242;
+       }
+       if (yych <= 0x08) goto yy1219;
+       if (yych <= '\t') goto yy1244;
+       if (yych <= '\n') goto yy1246;
+       goto yy1219;
+yy1244:
+       ++p;
+       yych = *p;
+       if (yych <= '\n') {
+               if (yych <= 0x08) goto yy1219;
+               if (yych <= '\t') goto yy1244;
+       } else {
+               if (yych == ' ') goto yy1244;
+               goto yy1219;
+       }
+yy1246:
+       ++p;
+       { return (p - start); }
+}
+
+}
+
+// Scan an opening code fence.
+int _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, 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, 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, 
+               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, 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, 
+       };
+       yych = *p;
+       if (yych <= '_') {
+               if (yych != '\n') goto yy1253;
+       } else {
+               if (yych <= '`') goto yy1251;
+               if (yych == '~') goto yy1252;
+               goto yy1253;
+       }
+yy1250:
+       { return 0; }
+yy1251:
+       yych = *(marker = ++p);
+       if (yych == '`') goto yy1262;
+       goto yy1250;
+yy1252:
+       yych = *(marker = ++p);
+       if (yych == '~') goto yy1254;
+       goto yy1250;
+yy1253:
+       yych = *++p;
+       goto yy1250;
+yy1254:
+       yych = *++p;
+       if (yybm[0+yych] & 16) {
+               goto yy1256;
+       }
+yy1255:
+       p = marker;
+       goto yy1250;
+yy1256:
+       marker = p + 1;
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1258;
+       }
+       if (yych <= 0x00) goto yy1255;
+       if (yych <= '\n') goto yy1260;
+       goto yy1256;
+yy1258:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 32) {
+               goto yy1258;
+       }
+       if (yych <= 0x00) goto yy1255;
+       if (yych >= '\v') goto yy1255;
+yy1260:
+       ++p;
+       p = marker;
+       { return (p - start); }
+yy1262:
+       yych = *++p;
+       if (yybm[0+yych] & 64) {
+               goto yy1263;
+       }
+       goto yy1255;
+yy1263:
+       marker = p + 1;
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1265;
+       }
+       if (yych <= 0x00) goto yy1255;
+       if (yych <= '\n') goto yy1267;
+       goto yy1263;
+yy1265:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1265;
+       }
+       if (yych <= 0x00) goto yy1255;
+       if (yych >= '\v') goto yy1255;
+yy1267:
+       ++p;
+       p = marker;
+       { return (p - start); }
+}
+
+}
+
+// Scan a closing code fence with length at least len.
+int _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 = *p;
+       if (yych <= '_') {
+               if (yych != '\n') goto yy1274;
+       } else {
+               if (yych <= '`') goto yy1272;
+               if (yych == '~') goto yy1273;
+               goto yy1274;
+       }
+yy1271:
+       { return 0; }
+yy1272:
+       yych = *(marker = ++p);
+       if (yych == '`') goto yy1283;
+       goto yy1271;
+yy1273:
+       yych = *(marker = ++p);
+       if (yych == '~') goto yy1275;
+       goto yy1271;
+yy1274:
+       yych = *++p;
+       goto yy1271;
+yy1275:
+       yych = *++p;
+       if (yybm[0+yych] & 32) {
+               goto yy1277;
+       }
+yy1276:
+       p = marker;
+       goto yy1271;
+yy1277:
+       marker = p + 1;
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1279;
+       }
+       if (yych <= 0x08) goto yy1276;
+       if (yych <= '\n') goto yy1281;
+       if (yych == '~') goto yy1277;
+       goto yy1276;
+yy1279:
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 64) {
+               goto yy1279;
+       }
+       if (yych <= 0x08) goto yy1276;
+       if (yych >= '\v') goto yy1276;
+yy1281:
+       ++p;
+       p = marker;
+       { return (p - start); }
+yy1283:
+       yych = *++p;
+       if (yybm[0+yych] & 128) {
+               goto yy1284;
+       }
+       goto yy1276;
+yy1284:
+       marker = p + 1;
+       ++p;
+       yych = *p;
+       if (yybm[0+yych] & 128) {
+               goto yy1284;
+       }
+       if (yych <= '\n') {
+               if (yych <= 0x08) goto yy1276;
+               if (yych >= '\n') goto yy1288;
+       } else {
+               if (yych != ' ') goto yy1276;
+       }
+yy1286:
+       ++p;
+       yych = *p;
+       if (yych <= '\n') {
+               if (yych <= 0x08) goto yy1276;
+               if (yych <= '\t') goto yy1286;
+       } else {
+               if (yych == ' ') goto yy1286;
+               goto yy1276;
+       }
+yy1288:
+       ++p;
+       p = marker;
+       { return (p - start); }
+}
+
+}
+
+// Scans an entity.
+// Returns number of chars matched.
+int _scan_entity(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+       unsigned char yych;
+       yych = *p;
+       if (yych == '\n') goto yy1292;
+       if (yych == '&') goto yy1293;
+       goto yy1294;
+yy1292:
+       { return 0; }
+yy1293:
+       yych = *(marker = ++p);
+       if (yych <= '@') {
+               if (yych == '#') goto yy1295;
+               goto yy1292;
+       } else {
+               if (yych <= 'Z') goto yy1297;
+               if (yych <= '`') goto yy1292;
+               if (yych <= 'z') goto yy1297;
+               goto yy1292;
+       }
+yy1294:
+       yych = *++p;
+       goto yy1292;
+yy1295:
+       yych = *++p;
+       if (yych <= 'W') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1332;
+       } else {
+               if (yych <= 'X') goto yy1331;
+               if (yych == 'x') goto yy1331;
+       }
+yy1296:
+       p = marker;
+       goto yy1292;
+yy1297:
+       yych = *++p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy1296;
+               if (yych >= ':') goto yy1296;
+       } else {
+               if (yych <= 'Z') goto yy1298;
+               if (yych <= '`') goto yy1296;
+               if (yych >= '{') goto yy1296;
+       }
+yy1298:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1301;
+               if (yych <= ':') goto yy1296;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+                       goto yy1301;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych <= 'z') goto yy1301;
+                       goto yy1296;
+               }
+       }
+yy1299:
+       ++p;
+       { return (p - start); }
+yy1301:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1302;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1302:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1303;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1303:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1304;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1304:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1305;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1305:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1306;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1306:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1307;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1307:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1308;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1308:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1309;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1309:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1310;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1310:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1311;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1311:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1312;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1312:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1313;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1313:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1314;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1314:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1315;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1315:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1316;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1316:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1317;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1317:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1318;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1318:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1319;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1319:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1320;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1320:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1321;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1321:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1322;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1322:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1323;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1323:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1324;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1324:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1325;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1325:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1326;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1326:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1327;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1327:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1328;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1328:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1329;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1329:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1330;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'Z') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= '{') goto yy1296;
+               }
+       }
+yy1330:
+       yych = *++p;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1331:
+       yych = *++p;
+       if (yych <= '@') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1339;
+               goto yy1296;
+       } else {
+               if (yych <= 'F') goto yy1339;
+               if (yych <= '`') goto yy1296;
+               if (yych <= 'f') goto yy1339;
+               goto yy1296;
+       }
+yy1332:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1333;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1333:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1334;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1334:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1335;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1335:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1336;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1336:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1337;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1337:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1338;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1338:
+       yych = *++p;
+       if (yych <= '/') goto yy1296;
+       if (yych <= '9') goto yy1330;
+       if (yych == ';') goto yy1299;
+       goto yy1296;
+yy1339:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1340;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1340:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1341;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1341:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1342;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1342:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1343;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1343:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1344;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1344:
+       yych = *++p;
+       if (yych <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1345;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych >= 'g') goto yy1296;
+               }
+       }
+yy1345:
+       ++p;
+       if ((yych = *p) <= ';') {
+               if (yych <= '/') goto yy1296;
+               if (yych <= '9') goto yy1330;
+               if (yych <= ':') goto yy1296;
+               goto yy1299;
+       } else {
+               if (yych <= 'F') {
+                       if (yych <= '@') goto yy1296;
+                       goto yy1330;
+               } else {
+                       if (yych <= '`') goto yy1296;
+                       if (yych <= 'f') goto yy1330;
+                       goto yy1296;
+               }
+       }
+}
+
+}
diff --git a/re2c/test/bug57_original.bi--case-insensitive.re b/re2c/test/bug57_original.bi--case-insensitive.re
new file mode 100644 (file)
index 0000000..a1f3c0b
--- /dev/null
@@ -0,0 +1,236 @@
+#include <stdlib.h>
+#include "chunk.h"
+#include "scanners.h"
+
+int _scan_at(int (*scanner)(const unsigned char *), cmark_chunk *c, int offset)
+{
+    int 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;
+}
+
+/*!re2c
+  re2c:define:YYCTYPE  = "unsigned char";
+  re2c:define:YYCURSOR = p;
+  re2c:define:YYMARKER = marker;
+  re2c:define:YYCTXMARKER = marker;
+  re2c:yyfill:enable = 0;
+
+  wordchar = [^\x00-\x20];
+
+  spacechar = [ \t\v\f\r\n];
+
+  reg_char     = [^\\()\x00-\x20];
+
+  escaped_char = [\\][!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-];
+
+  tagname = [A-Za-z][A-Za-z0-9]*;
+
+  blocktagname = 'article'|'header'|'aside'|'hgroup'|'iframe'|'blockquote'|'hr'|'body'|'li'|'map'|'button'|'object'|'canvas'|'ol'|'caption'|'output'|'col'|'p'|'colgroup'|'pre'|'dd'|'progress'|'div'|'section'|'dl'|'table'|'td'|'dt'|'tbody'|'embed'|'textarea'|'fieldset'|'tfoot'|'figcaption'|'th'|'figure'|'thead'|'footer'|'footer'|'tr'|'form'|'ul'|'h1'|'h2'|'h3'|'h4'|'h5'|'h6'|'video'|'script'|'style';
+
+  attributename = [a-zA-Z_:][a-zA-Z0-9:._-]*;
+
+  unquotedvalue = [^\"'=<>`\x00]+;
+  singlequotedvalue = ['][^'\x00]*['];
+  doublequotedvalue = [\"][^\"\x00]*[\"];
+
+  attributevalue = unquotedvalue | singlequotedvalue | doublequotedvalue;
+
+  attributevaluespec = spacechar* [=] spacechar* attributevalue;
+
+  attribute = spacechar+ attributename attributevaluespec?;
+
+  opentag = tagname attribute* spacechar* [/]? [>];
+  closetag = [/] tagname spacechar* [>];
+
+  htmlcomment = "!---->" | ("!--" ([-]? [^\x00>-]) ([-]? [^\x00-])* "-->");
+
+  processinginstruction = "?" ([^?>\x00]+ | [?][^>\x00] | [>])* "?>";
+
+  declaration = "!" [A-Z]+ spacechar+ [^>\x00]* ">";
+
+  cdata = "![CDATA[" ([^\]\x00]+ | "]" [^\]\x00] | "]]" [^>\x00])* "]]>";
+
+  htmltag = opentag | closetag | htmlcomment | processinginstruction |
+            declaration | cdata;
+
+  in_parens_nosp   = [(] (reg_char|escaped_char)* [)];
+
+  in_double_quotes = ["] (escaped_char|[^"\x00])* ["];
+  in_single_quotes = ['] (escaped_char|[^'\x00])* ['];
+  in_parens        = [(] (escaped_char|[^)\x00])* [)];
+
+  scheme = 'coap'|'doi'|'javascript'|'aaa'|'aaas'|'about'|'acap'|'cap'|'cid'|'crid'|'data'|'dav'|'dict'|'dns'|'file'|'ftp'|'geo'|'go'|'gopher'|'h323'|'http'|'https'|'iax'|'icap'|'im'|'imap'|'info'|'ipp'|'iris'|'iris.beep'|'iris.xpc'|'iris.xpcs'|'iris.lwz'|'ldap'|'mailto'|'mid'|'msrp'|'msrps'|'mtqp'|'mupdate'|'news'|'nfs'|'ni'|'nih'|'nntp'|'opaquelocktoken'|'pop'|'pres'|'rtsp'|'service'|'session'|'shttp'|'sieve'|'sip'|'sips'|'sms'|'snmp'|'soap.beep'|'soap.beeps'|'tag'|'tel'|'telnet'|'tftp'|'thismessage'|'tn3270'|'tip'|'tv'|'urn'|'vemmi'|'ws'|'wss'|'xcon'|'xcon-userid'|'xmlrpc.beep'|'xmlrpc.beeps'|'xmpp'|'z39.50r'|'z39.50s'|'adiumxtra'|'afp'|'afs'|'aim'|'apt'|'attachment'|'aw'|'beshare'|'bitcoin'|'bolo'|'callto'|'chrome'|'chrome-extension'|'com-eventbrite-attendee'|'content'|'cvs'|'dlna-playsingle'|'dlna-playcontainer'|'dtn'|'dvb'|'ed2k'|'facetime'|'feed'|'finger'|'fish'|'gg'|'git'|'gizmoproject'|'gtalk'|'hcp'|'icon'|'ipn'|'irc'|'irc6'|'ircs'|'itms'|'jar'|'jms'|'keyparc'|'lastfm'|'ldaps'|'magnet'|'maps'|'market'|'message'|'mms'|'ms-help'|'msnim'|'mumble'|'mvn'|'notes'|'oid'|'palm'|'paparazzi'|'platform'|'proxy'|'psyc'|'query'|'res'|'resource'|'rmi'|'rsync'|'rtmp'|'secondlife'|'sftp'|'sgn'|'skype'|'smb'|'soldat'|'spotify'|'ssh'|'steam'|'svn'|'teamspeak'|'things'|'udp'|'unreal'|'ut2004'|'ventrilo'|'view-source'|'webcal'|'wtai'|'wyciwyg'|'xfire'|'xri'|'ymsgr';
+*/
+
+// Try to match URI autolink after first <, returning number of chars matched.
+int _scan_autolink_uri(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  scheme [:][^\x00-\x20<>]*[>]  { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Try to match email autolink after first <, returning num of chars matched.
+int _scan_autolink_email(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+
+    [@]
+    [a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?
+    ([.][a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*
+    [>] { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Try to match an HTML tag after first <, returning num of chars matched.
+int _scan_html_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  htmltag { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Try to match an HTML block tag including first <,
+// returning num of chars matched.
+int _scan_html_block_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [<] [/] blocktagname (spacechar | [>])  { return (p - start); }
+  [<] blocktagname (spacechar | [/>]) { return (p - start); }
+  [<] [!?] { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// 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.
+int _scan_link_url(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [ \n]* [<] ([^<>\n\\\x00] | escaped_char | [\\])* [>] { return (p - start); }
+  [ \n]* (reg_char+ | escaped_char | in_parens_nosp)* { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// 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).
+int _scan_link_title(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  ["] (escaped_char|[^"\x00])* ["]   { return (p - start); }
+  ['] (escaped_char|[^'\x00])* ['] { return (p - start); }
+  [(] (escaped_char|[^)\x00])* [)]  { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Match space characters, including newlines.
+int _scan_spacechars(const unsigned char *p)
+{
+  const unsigned char *start = p; \
+/*!re2c
+  [ \t\v\f\r\n]* { return (p - start); }
+  . { return 0; }
+*/
+}
+
+// Match ATX header start.
+int _scan_atx_header_start(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [#]{1,6} ([ ]+|[\n])  { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Match sexext header line.  Return 1 for level-1 header,
+// 2 for level-2, 0 for no match.
+int _scan_setext_header_line(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+/*!re2c
+  [=]+ [ ]* [\n] { return 1; }
+  [-]+ [ ]* [\n] { return 2; }
+  .? { return 0; }
+*/
+}
+
+// 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."
+int _scan_hrule(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  ([*][ ]*){3,} [ \t]* [\n] { return (p - start); }
+  ([_][ ]*){3,} [ \t]* [\n] { return (p - start); }
+  ([-][ ]*){3,} [ \t]* [\n] { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Scan an opening code fence.
+int _scan_open_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [`]{3,} / [^`\n\x00]*[\n] { return (p - start); }
+  [~]{3,} / [^~\n\x00]*[\n] { return (p - start); }
+  .?                        { return 0; }
+*/
+}
+
+// Scan a closing code fence with length at least len.
+int _scan_close_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [`]{3,} / [ \t]*[\n] { return (p - start); }
+  [~]{3,} / [ \t]*[\n] { return (p - start); }
+  .? { return 0; }
+*/
+}
+
+// Scans an entity.
+// Returns number of chars matched.
+int _scan_entity(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+/*!re2c
+  [&] ([#] ([Xx][A-Fa-f0-9]{1,8}|[0-9]{1,8}) |[A-Za-z][A-Za-z0-9]{1,31} ) [;]
+     { return (p - start); }
+  .? { return 0; }
+*/
+}