/* Generated by re2c 0.14.3 */
#include <stdlib.h>
#include "chunk.h"
#include "scanners.h"

bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
                   bufsize_t offset) {
  bufsize_t res;
  unsigned char *ptr = (unsigned char *)c->data;
  unsigned char zero = '\0';

  if (ptr == NULL) {
    res = scanner(&zero);
  } else {
    unsigned char lim = ptr[c->len];

    ptr[c->len] = '\0';
    res = scanner(ptr + offset);
    ptr[c->len] = lim;
  }

  return res;
}

// Try to match a scheme including colon.
bufsize_t _scan_scheme(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;

    yych = *(marker = p);
    if (yych <= 'c') {
      if (yych <= 'M') {
        if (yych <= 'E') {
          if (yych <= 'A') {
            if (yych == '\n')
              goto yy2;
            if (yych <= '@')
              goto yy29;
            goto yy6;
          } else {
            if (yych <= 'B')
              goto yy24;
            if (yych <= 'C')
              goto yy3;
            if (yych <= 'D')
              goto yy4;
            goto yy25;
          }
        } else {
          if (yych <= 'I') {
            if (yych <= 'F')
              goto yy7;
            if (yych <= 'G')
              goto yy8;
            if (yych <= 'H')
              goto yy9;
            goto yy10;
          } else {
            if (yych <= 'J')
              goto yy5;
            if (yych <= 'K')
              goto yy26;
            if (yych <= 'L')
              goto yy11;
            goto yy12;
          }
        }
      } else {
        if (yych <= 'U') {
          if (yych <= 'Q') {
            if (yych <= 'N')
              goto yy13;
            if (yych <= 'O')
              goto yy14;
            if (yych <= 'P')
              goto yy15;
            goto yy27;
          } else {
            if (yych <= 'R')
              goto yy16;
            if (yych <= 'S')
              goto yy17;
            if (yych <= 'T')
              goto yy18;
            goto yy19;
          }
        } else {
          if (yych <= 'Y') {
            if (yych <= 'V')
              goto yy20;
            if (yych <= 'W')
              goto yy21;
            if (yych <= 'X')
              goto yy22;
            goto yy28;
          } else {
            if (yych <= '`') {
              if (yych <= 'Z')
                goto yy23;
              goto yy29;
            } else {
              if (yych <= 'a')
                goto yy6;
              if (yych <= 'b')
                goto yy24;
              goto yy3;
            }
          }
        }
      }
    } else {
      if (yych <= 't') {
        if (yych <= 'k') {
          if (yych <= 'g') {
            if (yych <= 'd')
              goto yy4;
            if (yych <= 'e')
              goto yy25;
            if (yych <= 'f')
              goto yy7;
            goto yy8;
          } else {
            if (yych <= 'h')
              goto yy9;
            if (yych <= 'i')
              goto yy10;
            if (yych <= 'j')
              goto yy5;
            goto yy26;
          }
        } else {
          if (yych <= 'o') {
            if (yych <= 'l')
              goto yy11;
            if (yych <= 'm')
              goto yy12;
            if (yych <= 'n')
              goto yy13;
            goto yy14;
          } else {
            if (yych <= 'q') {
              if (yych <= 'p')
                goto yy15;
              goto yy27;
            } else {
              if (yych <= 'r')
                goto yy16;
              if (yych <= 's')
                goto yy17;
              goto yy18;
            }
          }
        }
      } else {
        if (yych <= 0xC1) {
          if (yych <= 'x') {
            if (yych <= 'u')
              goto yy19;
            if (yych <= 'v')
              goto yy20;
            if (yych <= 'w')
              goto yy21;
            goto yy22;
          } else {
            if (yych <= 'y')
              goto yy28;
            if (yych <= 'z')
              goto yy23;
            if (yych <= 0x7F)
              goto yy29;
          }
        } else {
          if (yych <= 0xED) {
            if (yych <= 0xDF)
              goto yy30;
            if (yych <= 0xE0)
              goto yy32;
            if (yych <= 0xEC)
              goto yy33;
            goto yy37;
          } else {
            if (yych <= 0xF0) {
              if (yych <= 0xEF)
                goto yy33;
              goto yy34;
            } else {
              if (yych <= 0xF3)
                goto yy35;
              if (yych <= 0xF4)
                goto yy36;
            }
          }
        }
      }
    }
  yy2 : { return 0; }
  yy3:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy447;
    case 'H':
    case 'h':
      goto yy446;
    case 'I':
    case 'i':
      goto yy449;
    case 'O':
    case 'o':
      goto yy445;
    case 'R':
    case 'r':
      goto yy448;
    case 'V':
    case 'v':
      goto yy444;
    default:
      goto yy2;
    }
  yy4:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy420;
    case 'I':
    case 'i':
      goto yy419;
    case 'L':
    case 'l':
      goto yy417;
    case 'N':
    case 'n':
      goto yy418;
    case 'O':
    case 'o':
      goto yy421;
    case 'T':
    case 't':
      goto yy416;
    case 'V':
    case 'v':
      goto yy415;
    default:
      goto yy2;
    }
  yy5:
    yych = *(marker = ++p);
    if (yych <= 'M') {
      if (yych == 'A')
        goto yy407;
      if (yych <= 'L')
        goto yy2;
      goto yy406;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy2;
        goto yy407;
      } else {
        if (yych == 'm')
          goto yy406;
        goto yy2;
      }
    }
  yy6:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy388;
    case 'B':
    case 'b':
      goto yy387;
    case 'C':
    case 'c':
      goto yy386;
    case 'D':
    case 'd':
      goto yy385;
    case 'F':
    case 'f':
      goto yy384;
    case 'I':
    case 'i':
      goto yy383;
    case 'P':
    case 'p':
      goto yy382;
    case 'T':
    case 't':
      goto yy381;
    case 'W':
    case 'w':
      goto yy41;
    default:
      goto yy2;
    }
  yy7:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'E') {
        if (yych == 'A')
          goto yy368;
        if (yych <= 'D')
          goto yy2;
        goto yy367;
      } else {
        if (yych == 'I')
          goto yy366;
        if (yych <= 'S')
          goto yy2;
        goto yy369;
      }
    } else {
      if (yych <= 'e') {
        if (yych == 'a')
          goto yy368;
        if (yych <= 'd')
          goto yy2;
        goto yy367;
      } else {
        if (yych <= 'i') {
          if (yych <= 'h')
            goto yy2;
          goto yy366;
        } else {
          if (yych == 't')
            goto yy369;
          goto yy2;
        }
      }
    }
  yy8:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy351;
    case 'G':
    case 'g':
      goto yy41;
    case 'I':
    case 'i':
      goto yy349;
    case 'O':
    case 'o':
      goto yy350;
    case 'T':
    case 't':
      goto yy348;
    default:
      goto yy2;
    }
  yy9:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= '3') {
        if (yych <= '2')
          goto yy2;
        goto yy344;
      } else {
        if (yych == 'C')
          goto yy342;
        goto yy2;
      }
    } else {
      if (yych <= 'c') {
        if (yych <= 'T')
          goto yy343;
        if (yych <= 'b')
          goto yy2;
        goto yy342;
      } else {
        if (yych == 't')
          goto yy343;
        goto yy2;
      }
    }
  yy10:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy324;
    case 'C':
    case 'c':
      goto yy321;
    case 'M':
    case 'm':
      goto yy323;
    case 'N':
    case 'n':
      goto yy322;
    case 'P':
    case 'p':
      goto yy320;
    case 'R':
    case 'r':
      goto yy319;
    case 'T':
    case 't':
      goto yy318;
    default:
      goto yy2;
    }
  yy11:
    yych = *(marker = ++p);
    if (yych <= 'D') {
      if (yych == 'A')
        goto yy312;
      if (yych <= 'C')
        goto yy2;
      goto yy311;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy2;
        goto yy312;
      } else {
        if (yych == 'd')
          goto yy311;
        goto yy2;
      }
    }
  yy12:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy278;
    case 'E':
    case 'e':
      goto yy277;
    case 'I':
    case 'i':
      goto yy280;
    case 'M':
    case 'm':
      goto yy276;
    case 'S':
    case 's':
      goto yy275;
    case 'T':
    case 't':
      goto yy279;
    case 'U':
    case 'u':
      goto yy274;
    case 'V':
    case 'v':
      goto yy273;
    default:
      goto yy2;
    }
  yy13:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy268;
    case 'F':
    case 'f':
      goto yy267;
    case 'I':
    case 'i':
      goto yy266;
    case 'N':
    case 'n':
      goto yy265;
    case 'O':
    case 'o':
      goto yy264;
    default:
      goto yy2;
    }
  yy14:
    yych = *(marker = ++p);
    if (yych <= 'P') {
      if (yych == 'I')
        goto yy250;
      if (yych <= 'O')
        goto yy2;
      goto yy251;
    } else {
      if (yych <= 'i') {
        if (yych <= 'h')
          goto yy2;
        goto yy250;
      } else {
        if (yych == 'p')
          goto yy251;
        goto yy2;
      }
    }
  yy15:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= 'L') {
        if (yych == 'A')
          goto yy232;
        if (yych <= 'K')
          goto yy2;
        goto yy231;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy2;
          goto yy233;
        } else {
          if (yych <= 'Q')
            goto yy2;
          if (yych <= 'R')
            goto yy230;
          goto yy229;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy2;
          goto yy232;
        } else {
          if (yych == 'l')
            goto yy231;
          goto yy2;
        }
      } else {
        if (yych <= 'q') {
          if (yych <= 'o')
            goto yy233;
          goto yy2;
        } else {
          if (yych <= 'r')
            goto yy230;
          if (yych <= 's')
            goto yy229;
          goto yy2;
        }
      }
    }
  yy16:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'L') {
        if (yych == 'E')
          goto yy219;
        goto yy2;
      } else {
        if (yych <= 'M')
          goto yy218;
        if (yych <= 'R')
          goto yy2;
        if (yych <= 'S')
          goto yy217;
        goto yy216;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'e')
          goto yy219;
        if (yych <= 'l')
          goto yy2;
        goto yy218;
      } else {
        if (yych <= 'r')
          goto yy2;
        if (yych <= 's')
          goto yy217;
        if (yych <= 't')
          goto yy216;
        goto yy2;
      }
    }
  yy17:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy172;
    case 'F':
    case 'f':
      goto yy171;
    case 'G':
    case 'g':
      goto yy170;
    case 'H':
    case 'h':
      goto yy175;
    case 'I':
    case 'i':
      goto yy174;
    case 'K':
    case 'k':
      goto yy169;
    case 'M':
    case 'm':
      goto yy168;
    case 'N':
    case 'n':
      goto yy173;
    case 'O':
    case 'o':
      goto yy167;
    case 'P':
    case 'p':
      goto yy166;
    case 'S':
    case 's':
      goto yy165;
    case 'T':
    case 't':
      goto yy164;
    case 'V':
    case 'v':
      goto yy163;
    default:
      goto yy2;
    }
  yy18:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy139;
    case 'E':
    case 'e':
      goto yy135;
    case 'F':
    case 'f':
      goto yy138;
    case 'H':
    case 'h':
      goto yy134;
    case 'I':
    case 'i':
      goto yy136;
    case 'N':
    case 'n':
      goto yy137;
    case 'V':
    case 'v':
      goto yy41;
    default:
      goto yy2;
    }
  yy19:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'N') {
        if (yych == 'D')
          goto yy126;
        if (yych <= 'M')
          goto yy2;
        goto yy125;
      } else {
        if (yych == 'R')
          goto yy127;
        if (yych <= 'S')
          goto yy2;
        goto yy124;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'd')
          goto yy126;
        if (yych <= 'm')
          goto yy2;
        goto yy125;
      } else {
        if (yych <= 'r') {
          if (yych <= 'q')
            goto yy2;
          goto yy127;
        } else {
          if (yych == 't')
            goto yy124;
          goto yy2;
        }
      }
    }
  yy20:
    yych = *(marker = ++p);
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy108;
      if (yych <= 'H')
        goto yy2;
      goto yy107;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy2;
        goto yy108;
      } else {
        if (yych == 'i')
          goto yy107;
        goto yy2;
      }
    }
  yy21:
    yych = *(marker = ++p);
    if (yych <= 'Y') {
      if (yych <= 'R') {
        if (yych == 'E')
          goto yy97;
        goto yy2;
      } else {
        if (yych <= 'S')
          goto yy98;
        if (yych <= 'T')
          goto yy96;
        if (yych <= 'X')
          goto yy2;
        goto yy95;
      }
    } else {
      if (yych <= 's') {
        if (yych == 'e')
          goto yy97;
        if (yych <= 'r')
          goto yy2;
        goto yy98;
      } else {
        if (yych <= 't')
          goto yy96;
        if (yych == 'y')
          goto yy95;
        goto yy2;
      }
    }
  yy22:
    yych = *(marker = ++p);
    if (yych <= 'R') {
      if (yych <= 'F') {
        if (yych == 'C')
          goto yy74;
        if (yych <= 'E')
          goto yy2;
        goto yy72;
      } else {
        if (yych == 'M')
          goto yy73;
        if (yych <= 'Q')
          goto yy2;
        goto yy71;
      }
    } else {
      if (yych <= 'f') {
        if (yych == 'c')
          goto yy74;
        if (yych <= 'e')
          goto yy2;
        goto yy72;
      } else {
        if (yych <= 'm') {
          if (yych <= 'l')
            goto yy2;
          goto yy73;
        } else {
          if (yych == 'r')
            goto yy71;
          goto yy2;
        }
      }
    }
  yy23:
    yych = *(marker = ++p);
    if (yych == '3')
      goto yy66;
    goto yy2;
  yy24:
    yych = *(marker = ++p);
    if (yych <= 'O') {
      if (yych <= 'H') {
        if (yych == 'E')
          goto yy56;
        goto yy2;
      } else {
        if (yych <= 'I')
          goto yy55;
        if (yych <= 'N')
          goto yy2;
        goto yy54;
      }
    } else {
      if (yych <= 'h') {
        if (yych == 'e')
          goto yy56;
        goto yy2;
      } else {
        if (yych <= 'i')
          goto yy55;
        if (yych == 'o')
          goto yy54;
        goto yy2;
      }
    }
  yy25:
    yych = *(marker = ++p);
    if (yych == 'D')
      goto yy52;
    if (yych == 'd')
      goto yy52;
    goto yy2;
  yy26:
    yych = *(marker = ++p);
    if (yych == 'E')
      goto yy47;
    if (yych == 'e')
      goto yy47;
    goto yy2;
  yy27:
    yych = *(marker = ++p);
    if (yych == 'U')
      goto yy44;
    if (yych == 'u')
      goto yy44;
    goto yy2;
  yy28:
    yych = *(marker = ++p);
    if (yych == 'M')
      goto yy38;
    if (yych == 'm')
      goto yy38;
    goto yy2;
  yy29:
    yych = *++p;
    goto yy2;
  yy30:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy29;
  yy31:
    p = marker;
    goto yy2;
  yy32:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy30;
    goto yy31;
  yy33:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy30;
    goto yy31;
  yy34:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy33;
    goto yy31;
  yy35:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy33;
    goto yy31;
  yy36:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0x8F)
      goto yy33;
    goto yy31;
  yy37:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0x9F)
      goto yy30;
    goto yy31;
  yy38:
    yych = *++p;
    if (yych == 'S')
      goto yy39;
    if (yych != 's')
      goto yy31;
  yy39:
    yych = *++p;
    if (yych == 'G')
      goto yy40;
    if (yych != 'g')
      goto yy31;
  yy40:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych != 'r')
      goto yy31;
  yy41:
    yych = *++p;
    if (yych != ':')
      goto yy31;
  yy42:
    ++p;
    { return (bufsize_t)(p - start); }
  yy44:
    yych = *++p;
    if (yych == 'E')
      goto yy45;
    if (yych != 'e')
      goto yy31;
  yy45:
    yych = *++p;
    if (yych == 'R')
      goto yy46;
    if (yych != 'r')
      goto yy31;
  yy46:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy47:
    yych = *++p;
    if (yych == 'Y')
      goto yy48;
    if (yych != 'y')
      goto yy31;
  yy48:
    yych = *++p;
    if (yych == 'P')
      goto yy49;
    if (yych != 'p')
      goto yy31;
  yy49:
    yych = *++p;
    if (yych == 'A')
      goto yy50;
    if (yych != 'a')
      goto yy31;
  yy50:
    yych = *++p;
    if (yych == 'R')
      goto yy51;
    if (yych != 'r')
      goto yy31;
  yy51:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy52:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy54:
    yych = *++p;
    if (yych == 'L')
      goto yy65;
    if (yych == 'l')
      goto yy65;
    goto yy31;
  yy55:
    yych = *++p;
    if (yych == 'T')
      goto yy61;
    if (yych == 't')
      goto yy61;
    goto yy31;
  yy56:
    yych = *++p;
    if (yych == 'S')
      goto yy57;
    if (yych != 's')
      goto yy31;
  yy57:
    yych = *++p;
    if (yych == 'H')
      goto yy58;
    if (yych != 'h')
      goto yy31;
  yy58:
    yych = *++p;
    if (yych == 'A')
      goto yy59;
    if (yych != 'a')
      goto yy31;
  yy59:
    yych = *++p;
    if (yych == 'R')
      goto yy60;
    if (yych != 'r')
      goto yy31;
  yy60:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy61:
    yych = *++p;
    if (yych == 'C')
      goto yy62;
    if (yych != 'c')
      goto yy31;
  yy62:
    yych = *++p;
    if (yych == 'O')
      goto yy63;
    if (yych != 'o')
      goto yy31;
  yy63:
    yych = *++p;
    if (yych == 'I')
      goto yy64;
    if (yych != 'i')
      goto yy31;
  yy64:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy65:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy66:
    yych = *++p;
    if (yych != '9')
      goto yy31;
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych != '5')
      goto yy31;
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych <= 'Q')
      goto yy31;
    if (yych <= 'S')
      goto yy41;
    if (yych <= 'q')
      goto yy31;
    if (yych <= 's')
      goto yy41;
    goto yy31;
  yy71:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy72:
    yych = *++p;
    if (yych == 'I')
      goto yy93;
    if (yych == 'i')
      goto yy93;
    goto yy31;
  yy73:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy83;
      if (yych <= 'O')
        goto yy31;
      goto yy84;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy83;
      } else {
        if (yych == 'p')
          goto yy84;
        goto yy31;
      }
    }
  yy74:
    yych = *++p;
    if (yych == 'O')
      goto yy75;
    if (yych != 'o')
      goto yy31;
  yy75:
    yych = *++p;
    if (yych == 'N')
      goto yy76;
    if (yych != 'n')
      goto yy31;
  yy76:
    yych = *++p;
    if (yych == '-')
      goto yy77;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy77:
    yych = *++p;
    if (yych == 'U')
      goto yy78;
    if (yych != 'u')
      goto yy31;
  yy78:
    yych = *++p;
    if (yych == 'S')
      goto yy79;
    if (yych != 's')
      goto yy31;
  yy79:
    yych = *++p;
    if (yych == 'E')
      goto yy80;
    if (yych != 'e')
      goto yy31;
  yy80:
    yych = *++p;
    if (yych == 'R')
      goto yy81;
    if (yych != 'r')
      goto yy31;
  yy81:
    yych = *++p;
    if (yych == 'I')
      goto yy82;
    if (yych != 'i')
      goto yy31;
  yy82:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy83:
    yych = *++p;
    if (yych == 'R')
      goto yy85;
    if (yych == 'r')
      goto yy85;
    goto yy31;
  yy84:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy85:
    yych = *++p;
    if (yych == 'P')
      goto yy86;
    if (yych != 'p')
      goto yy31;
  yy86:
    yych = *++p;
    if (yych == 'C')
      goto yy87;
    if (yych != 'c')
      goto yy31;
  yy87:
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych == 'B')
      goto yy89;
    if (yych != 'b')
      goto yy31;
  yy89:
    yych = *++p;
    if (yych == 'E')
      goto yy90;
    if (yych != 'e')
      goto yy31;
  yy90:
    yych = *++p;
    if (yych == 'E')
      goto yy91;
    if (yych != 'e')
      goto yy31;
  yy91:
    yych = *++p;
    if (yych == 'P')
      goto yy92;
    if (yych != 'p')
      goto yy31;
  yy92:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy93:
    yych = *++p;
    if (yych == 'R')
      goto yy94;
    if (yych != 'r')
      goto yy31;
  yy94:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy95:
    yych = *++p;
    if (yych == 'C')
      goto yy103;
    if (yych == 'c')
      goto yy103;
    goto yy31;
  yy96:
    yych = *++p;
    if (yych == 'A')
      goto yy102;
    if (yych == 'a')
      goto yy102;
    goto yy31;
  yy97:
    yych = *++p;
    if (yych == 'B')
      goto yy99;
    if (yych == 'b')
      goto yy99;
    goto yy31;
  yy98:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy99:
    yych = *++p;
    if (yych == 'C')
      goto yy100;
    if (yych != 'c')
      goto yy31;
  yy100:
    yych = *++p;
    if (yych == 'A')
      goto yy101;
    if (yych != 'a')
      goto yy31;
  yy101:
    yych = *++p;
    if (yych == 'L')
      goto yy41;
    if (yych == 'l')
      goto yy41;
    goto yy31;
  yy102:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy103:
    yych = *++p;
    if (yych == 'I')
      goto yy104;
    if (yych != 'i')
      goto yy31;
  yy104:
    yych = *++p;
    if (yych == 'W')
      goto yy105;
    if (yych != 'w')
      goto yy31;
  yy105:
    yych = *++p;
    if (yych == 'Y')
      goto yy106;
    if (yych != 'y')
      goto yy31;
  yy106:
    yych = *++p;
    if (yych == 'G')
      goto yy41;
    if (yych == 'g')
      goto yy41;
    goto yy31;
  yy107:
    yych = *++p;
    if (yych == 'E')
      goto yy116;
    if (yych == 'e')
      goto yy116;
    goto yy31;
  yy108:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'L')
        goto yy31;
      if (yych >= 'N')
        goto yy110;
    } else {
      if (yych <= 'l')
        goto yy31;
      if (yych <= 'm')
        goto yy109;
      if (yych <= 'n')
        goto yy110;
      goto yy31;
    }
  yy109:
    yych = *++p;
    if (yych == 'M')
      goto yy115;
    if (yych == 'm')
      goto yy115;
    goto yy31;
  yy110:
    yych = *++p;
    if (yych == 'T')
      goto yy111;
    if (yych != 't')
      goto yy31;
  yy111:
    yych = *++p;
    if (yych == 'R')
      goto yy112;
    if (yych != 'r')
      goto yy31;
  yy112:
    yych = *++p;
    if (yych == 'I')
      goto yy113;
    if (yych != 'i')
      goto yy31;
  yy113:
    yych = *++p;
    if (yych == 'L')
      goto yy114;
    if (yych != 'l')
      goto yy31;
  yy114:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy115:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy116:
    yych = *++p;
    if (yych == 'W')
      goto yy117;
    if (yych != 'w')
      goto yy31;
  yy117:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'S')
      goto yy119;
    if (yych != 's')
      goto yy31;
  yy119:
    yych = *++p;
    if (yych == 'O')
      goto yy120;
    if (yych != 'o')
      goto yy31;
  yy120:
    yych = *++p;
    if (yych == 'U')
      goto yy121;
    if (yych != 'u')
      goto yy31;
  yy121:
    yych = *++p;
    if (yych == 'R')
      goto yy122;
    if (yych != 'r')
      goto yy31;
  yy122:
    yych = *++p;
    if (yych == 'C')
      goto yy123;
    if (yych != 'c')
      goto yy31;
  yy123:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy124:
    yych = *++p;
    if (yych == '2')
      goto yy131;
    goto yy31;
  yy125:
    yych = *++p;
    if (yych == 'R')
      goto yy128;
    if (yych == 'r')
      goto yy128;
    goto yy31;
  yy126:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy127:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy128:
    yych = *++p;
    if (yych == 'E')
      goto yy129;
    if (yych != 'e')
      goto yy31;
  yy129:
    yych = *++p;
    if (yych == 'A')
      goto yy130;
    if (yych != 'a')
      goto yy31;
  yy130:
    yych = *++p;
    if (yych == 'L')
      goto yy41;
    if (yych == 'l')
      goto yy41;
    goto yy31;
  yy131:
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych == '4')
      goto yy41;
    goto yy31;
  yy134:
    yych = *++p;
    if (yych == 'I')
      goto yy153;
    if (yych == 'i')
      goto yy153;
    goto yy31;
  yy135:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy145;
      if (yych <= 'K')
        goto yy31;
      goto yy144;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy145;
      } else {
        if (yych == 'l')
          goto yy144;
        goto yy31;
      }
    }
  yy136:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy137:
    yych = *++p;
    if (yych == '3')
      goto yy141;
    goto yy31;
  yy138:
    yych = *++p;
    if (yych == 'T')
      goto yy140;
    if (yych == 't')
      goto yy140;
    goto yy31;
  yy139:
    yych = *++p;
    if (yych == 'G')
      goto yy41;
    if (yych == 'g')
      goto yy41;
    goto yy31;
  yy140:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy141:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych != '7')
      goto yy31;
    yych = *++p;
    if (yych == '0')
      goto yy41;
    goto yy31;
  yy144:
    yych = *++p;
    if (yych <= 'M') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'N')
        goto yy151;
      if (yych == 'n')
        goto yy151;
      goto yy31;
    }
  yy145:
    yych = *++p;
    if (yych == 'M')
      goto yy146;
    if (yych != 'm')
      goto yy31;
  yy146:
    yych = *++p;
    if (yych == 'S')
      goto yy147;
    if (yych != 's')
      goto yy31;
  yy147:
    yych = *++p;
    if (yych == 'P')
      goto yy148;
    if (yych != 'p')
      goto yy31;
  yy148:
    yych = *++p;
    if (yych == 'E')
      goto yy149;
    if (yych != 'e')
      goto yy31;
  yy149:
    yych = *++p;
    if (yych == 'A')
      goto yy150;
    if (yych != 'a')
      goto yy31;
  yy150:
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy151:
    yych = *++p;
    if (yych == 'E')
      goto yy152;
    if (yych != 'e')
      goto yy31;
  yy152:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy153:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'N')
        goto yy154;
      if (yych <= 'R')
        goto yy31;
      goto yy155;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy31;
      } else {
        if (yych == 's')
          goto yy155;
        goto yy31;
      }
    }
  yy154:
    yych = *++p;
    if (yych == 'G')
      goto yy162;
    if (yych == 'g')
      goto yy162;
    goto yy31;
  yy155:
    yych = *++p;
    if (yych == 'M')
      goto yy156;
    if (yych != 'm')
      goto yy31;
  yy156:
    yych = *++p;
    if (yych == 'E')
      goto yy157;
    if (yych != 'e')
      goto yy31;
  yy157:
    yych = *++p;
    if (yych == 'S')
      goto yy158;
    if (yych != 's')
      goto yy31;
  yy158:
    yych = *++p;
    if (yych == 'S')
      goto yy159;
    if (yych != 's')
      goto yy31;
  yy159:
    yych = *++p;
    if (yych == 'A')
      goto yy160;
    if (yych != 'a')
      goto yy31;
  yy160:
    yych = *++p;
    if (yych == 'G')
      goto yy161;
    if (yych != 'g')
      goto yy31;
  yy161:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy162:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy163:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy164:
    yych = *++p;
    if (yych == 'E')
      goto yy214;
    if (yych == 'e')
      goto yy214;
    goto yy31;
  yy165:
    yych = *++p;
    if (yych == 'H')
      goto yy41;
    if (yych == 'h')
      goto yy41;
    goto yy31;
  yy166:
    yych = *++p;
    if (yych == 'O')
      goto yy210;
    if (yych == 'o')
      goto yy210;
    goto yy31;
  yy167:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy200;
      if (yych <= 'K')
        goto yy31;
      goto yy201;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy200;
      } else {
        if (yych == 'l')
          goto yy201;
        goto yy31;
      }
    }
  yy168:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'B')
        goto yy41;
      if (yych <= 'R')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'b') {
        if (yych <= 'a')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy169:
    yych = *++p;
    if (yych == 'Y')
      goto yy198;
    if (yych == 'y')
      goto yy198;
    goto yy31;
  yy170:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy171:
    yych = *++p;
    if (yych == 'T')
      goto yy197;
    if (yych == 't')
      goto yy197;
    goto yy31;
  yy172:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'C') {
        if (yych <= 'B')
          goto yy31;
        goto yy184;
      } else {
        if (yych <= 'Q')
          goto yy31;
        if (yych <= 'R')
          goto yy182;
        goto yy183;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'c')
          goto yy184;
        goto yy31;
      } else {
        if (yych <= 'r')
          goto yy182;
        if (yych <= 's')
          goto yy183;
        goto yy31;
      }
    }
  yy173:
    yych = *++p;
    if (yych == 'M')
      goto yy181;
    if (yych == 'm')
      goto yy181;
    goto yy31;
  yy174:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'E')
        goto yy178;
      if (yych <= 'O')
        goto yy31;
      goto yy179;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy31;
        goto yy178;
      } else {
        if (yych == 'p')
          goto yy179;
        goto yy31;
      }
    }
  yy175:
    yych = *++p;
    if (yych == 'T')
      goto yy176;
    if (yych != 't')
      goto yy31;
  yy176:
    yych = *++p;
    if (yych == 'T')
      goto yy177;
    if (yych != 't')
      goto yy31;
  yy177:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy178:
    yych = *++p;
    if (yych == 'V')
      goto yy180;
    if (yych == 'v')
      goto yy180;
    goto yy31;
  yy179:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy180:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy181:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy182:
    yych = *++p;
    if (yych == 'V')
      goto yy194;
    if (yych == 'v')
      goto yy194;
    goto yy31;
  yy183:
    yych = *++p;
    if (yych == 'S')
      goto yy191;
    if (yych == 's')
      goto yy191;
    goto yy31;
  yy184:
    yych = *++p;
    if (yych == 'O')
      goto yy185;
    if (yych != 'o')
      goto yy31;
  yy185:
    yych = *++p;
    if (yych == 'N')
      goto yy186;
    if (yych != 'n')
      goto yy31;
  yy186:
    yych = *++p;
    if (yych == 'D')
      goto yy187;
    if (yych != 'd')
      goto yy31;
  yy187:
    yych = *++p;
    if (yych == 'L')
      goto yy188;
    if (yych != 'l')
      goto yy31;
  yy188:
    yych = *++p;
    if (yych == 'I')
      goto yy189;
    if (yych != 'i')
      goto yy31;
  yy189:
    yych = *++p;
    if (yych == 'F')
      goto yy190;
    if (yych != 'f')
      goto yy31;
  yy190:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy191:
    yych = *++p;
    if (yych == 'I')
      goto yy192;
    if (yych != 'i')
      goto yy31;
  yy192:
    yych = *++p;
    if (yych == 'O')
      goto yy193;
    if (yych != 'o')
      goto yy31;
  yy193:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy194:
    yych = *++p;
    if (yych == 'I')
      goto yy195;
    if (yych != 'i')
      goto yy31;
  yy195:
    yych = *++p;
    if (yych == 'C')
      goto yy196;
    if (yych != 'c')
      goto yy31;
  yy196:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy197:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy198:
    yych = *++p;
    if (yych == 'P')
      goto yy199;
    if (yych != 'p')
      goto yy31;
  yy199:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy200:
    yych = *++p;
    if (yych == 'P')
      goto yy204;
    if (yych == 'p')
      goto yy204;
    goto yy31;
  yy201:
    yych = *++p;
    if (yych == 'D')
      goto yy202;
    if (yych != 'd')
      goto yy31;
  yy202:
    yych = *++p;
    if (yych == 'A')
      goto yy203;
    if (yych != 'a')
      goto yy31;
  yy203:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy204:
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych == 'B')
      goto yy206;
    if (yych != 'b')
      goto yy31;
  yy206:
    yych = *++p;
    if (yych == 'E')
      goto yy207;
    if (yych != 'e')
      goto yy31;
  yy207:
    yych = *++p;
    if (yych == 'E')
      goto yy208;
    if (yych != 'e')
      goto yy31;
  yy208:
    yych = *++p;
    if (yych == 'P')
      goto yy209;
    if (yych != 'p')
      goto yy31;
  yy209:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy210:
    yych = *++p;
    if (yych == 'T')
      goto yy211;
    if (yych != 't')
      goto yy31;
  yy211:
    yych = *++p;
    if (yych == 'I')
      goto yy212;
    if (yych != 'i')
      goto yy31;
  yy212:
    yych = *++p;
    if (yych == 'F')
      goto yy213;
    if (yych != 'f')
      goto yy31;
  yy213:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy214:
    yych = *++p;
    if (yych == 'A')
      goto yy215;
    if (yych != 'a')
      goto yy31;
  yy215:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy216:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'M')
        goto yy228;
      if (yych <= 'R')
        goto yy31;
      goto yy227;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy31;
        goto yy228;
      } else {
        if (yych == 's')
          goto yy227;
        goto yy31;
      }
    }
  yy217:
    yych = *++p;
    if (yych == 'Y')
      goto yy225;
    if (yych == 'y')
      goto yy225;
    goto yy31;
  yy218:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy219:
    yych = *++p;
    if (yych == 'S')
      goto yy220;
    if (yych != 's')
      goto yy31;
  yy220:
    yych = *++p;
    if (yych <= 'N') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'O')
        goto yy221;
      if (yych != 'o')
        goto yy31;
    }
  yy221:
    yych = *++p;
    if (yych == 'U')
      goto yy222;
    if (yych != 'u')
      goto yy31;
  yy222:
    yych = *++p;
    if (yych == 'R')
      goto yy223;
    if (yych != 'r')
      goto yy31;
  yy223:
    yych = *++p;
    if (yych == 'C')
      goto yy224;
    if (yych != 'c')
      goto yy31;
  yy224:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy225:
    yych = *++p;
    if (yych == 'N')
      goto yy226;
    if (yych != 'n')
      goto yy31;
  yy226:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy227:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy228:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy229:
    yych = *++p;
    if (yych == 'Y')
      goto yy249;
    if (yych == 'y')
      goto yy249;
    goto yy31;
  yy230:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'E')
        goto yy246;
      if (yych <= 'N')
        goto yy31;
      goto yy247;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy31;
        goto yy246;
      } else {
        if (yych == 'o')
          goto yy247;
        goto yy31;
      }
    }
  yy231:
    yych = *++p;
    if (yych == 'A')
      goto yy241;
    if (yych == 'a')
      goto yy241;
    goto yy31;
  yy232:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy234;
      if (yych <= 'O')
        goto yy31;
      goto yy235;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy234;
      } else {
        if (yych == 'p')
          goto yy235;
        goto yy31;
      }
    }
  yy233:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy234:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy235:
    yych = *++p;
    if (yych == 'A')
      goto yy236;
    if (yych != 'a')
      goto yy31;
  yy236:
    yych = *++p;
    if (yych == 'R')
      goto yy237;
    if (yych != 'r')
      goto yy31;
  yy237:
    yych = *++p;
    if (yych == 'A')
      goto yy238;
    if (yych != 'a')
      goto yy31;
  yy238:
    yych = *++p;
    if (yych == 'Z')
      goto yy239;
    if (yych != 'z')
      goto yy31;
  yy239:
    yych = *++p;
    if (yych == 'Z')
      goto yy240;
    if (yych != 'z')
      goto yy31;
  yy240:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy241:
    yych = *++p;
    if (yych == 'T')
      goto yy242;
    if (yych != 't')
      goto yy31;
  yy242:
    yych = *++p;
    if (yych == 'F')
      goto yy243;
    if (yych != 'f')
      goto yy31;
  yy243:
    yych = *++p;
    if (yych == 'O')
      goto yy244;
    if (yych != 'o')
      goto yy31;
  yy244:
    yych = *++p;
    if (yych == 'R')
      goto yy245;
    if (yych != 'r')
      goto yy31;
  yy245:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy246:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy247:
    yych = *++p;
    if (yych == 'X')
      goto yy248;
    if (yych != 'x')
      goto yy31;
  yy248:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy249:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy250:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy251:
    yych = *++p;
    if (yych == 'A')
      goto yy252;
    if (yych != 'a')
      goto yy31;
  yy252:
    yych = *++p;
    if (yych == 'Q')
      goto yy253;
    if (yych != 'q')
      goto yy31;
  yy253:
    yych = *++p;
    if (yych == 'U')
      goto yy254;
    if (yych != 'u')
      goto yy31;
  yy254:
    yych = *++p;
    if (yych == 'E')
      goto yy255;
    if (yych != 'e')
      goto yy31;
  yy255:
    yych = *++p;
    if (yych == 'L')
      goto yy256;
    if (yych != 'l')
      goto yy31;
  yy256:
    yych = *++p;
    if (yych == 'O')
      goto yy257;
    if (yych != 'o')
      goto yy31;
  yy257:
    yych = *++p;
    if (yych == 'C')
      goto yy258;
    if (yych != 'c')
      goto yy31;
  yy258:
    yych = *++p;
    if (yych == 'K')
      goto yy259;
    if (yych != 'k')
      goto yy31;
  yy259:
    yych = *++p;
    if (yych == 'T')
      goto yy260;
    if (yych != 't')
      goto yy31;
  yy260:
    yych = *++p;
    if (yych == 'O')
      goto yy261;
    if (yych != 'o')
      goto yy31;
  yy261:
    yych = *++p;
    if (yych == 'K')
      goto yy262;
    if (yych != 'k')
      goto yy31;
  yy262:
    yych = *++p;
    if (yych == 'E')
      goto yy263;
    if (yych != 'e')
      goto yy31;
  yy263:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy264:
    yych = *++p;
    if (yych == 'T')
      goto yy271;
    if (yych == 't')
      goto yy271;
    goto yy31;
  yy265:
    yych = *++p;
    if (yych == 'T')
      goto yy270;
    if (yych == 't')
      goto yy270;
    goto yy31;
  yy266:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'H')
        goto yy41;
      if (yych == 'h')
        goto yy41;
      goto yy31;
    }
  yy267:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy268:
    yych = *++p;
    if (yych == 'W')
      goto yy269;
    if (yych != 'w')
      goto yy31;
  yy269:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy270:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy271:
    yych = *++p;
    if (yych == 'E')
      goto yy272;
    if (yych != 'e')
      goto yy31;
  yy272:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy273:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy274:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'M')
        goto yy305;
      if (yych <= 'O')
        goto yy31;
      goto yy304;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy31;
        goto yy305;
      } else {
        if (yych == 'p')
          goto yy304;
        goto yy31;
      }
    }
  yy275:
    yych = *++p;
    if (yych <= 'Q') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy31;
        goto yy297;
      } else {
        if (yych == 'N')
          goto yy298;
        goto yy31;
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'R')
          goto yy296;
        if (yych <= 'm')
          goto yy31;
        goto yy298;
      } else {
        if (yych == 'r')
          goto yy296;
        goto yy31;
      }
    }
  yy276:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy277:
    yych = *++p;
    if (yych == 'S')
      goto yy292;
    if (yych == 's')
      goto yy292;
    goto yy31;
  yy278:
    yych = *++p;
    switch (yych) {
    case 'G':
    case 'g':
      goto yy283;
    case 'I':
    case 'i':
      goto yy282;
    case 'P':
    case 'p':
      goto yy284;
    case 'R':
    case 'r':
      goto yy285;
    default:
      goto yy31;
    }
  yy279:
    yych = *++p;
    if (yych == 'Q')
      goto yy281;
    if (yych == 'q')
      goto yy281;
    goto yy31;
  yy280:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy281:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy282:
    yych = *++p;
    if (yych == 'L')
      goto yy290;
    if (yych == 'l')
      goto yy290;
    goto yy31;
  yy283:
    yych = *++p;
    if (yych == 'N')
      goto yy288;
    if (yych == 'n')
      goto yy288;
    goto yy31;
  yy284:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy285:
    yych = *++p;
    if (yych == 'K')
      goto yy286;
    if (yych != 'k')
      goto yy31;
  yy286:
    yych = *++p;
    if (yych == 'E')
      goto yy287;
    if (yych != 'e')
      goto yy31;
  yy287:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy288:
    yych = *++p;
    if (yych == 'E')
      goto yy289;
    if (yych != 'e')
      goto yy31;
  yy289:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy290:
    yych = *++p;
    if (yych == 'T')
      goto yy291;
    if (yych != 't')
      goto yy31;
  yy291:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy292:
    yych = *++p;
    if (yych == 'S')
      goto yy293;
    if (yych != 's')
      goto yy31;
  yy293:
    yych = *++p;
    if (yych == 'A')
      goto yy294;
    if (yych != 'a')
      goto yy31;
  yy294:
    yych = *++p;
    if (yych == 'G')
      goto yy295;
    if (yych != 'g')
      goto yy31;
  yy295:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy296:
    yych = *++p;
    if (yych == 'P')
      goto yy303;
    if (yych == 'p')
      goto yy303;
    goto yy31;
  yy297:
    yych = *++p;
    if (yych == 'H')
      goto yy300;
    if (yych == 'h')
      goto yy300;
    goto yy31;
  yy298:
    yych = *++p;
    if (yych == 'I')
      goto yy299;
    if (yych != 'i')
      goto yy31;
  yy299:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy300:
    yych = *++p;
    if (yych == 'E')
      goto yy301;
    if (yych != 'e')
      goto yy31;
  yy301:
    yych = *++p;
    if (yych == 'L')
      goto yy302;
    if (yych != 'l')
      goto yy31;
  yy302:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy303:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy304:
    yych = *++p;
    if (yych == 'D')
      goto yy308;
    if (yych == 'd')
      goto yy308;
    goto yy31;
  yy305:
    yych = *++p;
    if (yych == 'B')
      goto yy306;
    if (yych != 'b')
      goto yy31;
  yy306:
    yych = *++p;
    if (yych == 'L')
      goto yy307;
    if (yych != 'l')
      goto yy31;
  yy307:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy308:
    yych = *++p;
    if (yych == 'A')
      goto yy309;
    if (yych != 'a')
      goto yy31;
  yy309:
    yych = *++p;
    if (yych == 'T')
      goto yy310;
    if (yych != 't')
      goto yy31;
  yy310:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy311:
    yych = *++p;
    if (yych == 'A')
      goto yy316;
    if (yych == 'a')
      goto yy316;
    goto yy31;
  yy312:
    yych = *++p;
    if (yych == 'S')
      goto yy313;
    if (yych != 's')
      goto yy31;
  yy313:
    yych = *++p;
    if (yych == 'T')
      goto yy314;
    if (yych != 't')
      goto yy31;
  yy314:
    yych = *++p;
    if (yych == 'F')
      goto yy315;
    if (yych != 'f')
      goto yy31;
  yy315:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy316:
    yych = *++p;
    if (yych == 'P')
      goto yy317;
    if (yych != 'p')
      goto yy31;
  yy317:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy318:
    yych = *++p;
    if (yych == 'M')
      goto yy341;
    if (yych == 'm')
      goto yy341;
    goto yy31;
  yy319:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'C')
        goto yy330;
      if (yych <= 'H')
        goto yy31;
      goto yy329;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy31;
        goto yy330;
      } else {
        if (yych == 'i')
          goto yy329;
        goto yy31;
      }
    }
  yy320:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'N')
        goto yy41;
      if (yych <= 'O')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 'p')
          goto yy41;
        goto yy31;
      }
    }
  yy321:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy327;
      if (yych <= 'N')
        goto yy31;
      goto yy328;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy327;
      } else {
        if (yych == 'o')
          goto yy328;
        goto yy31;
      }
    }
  yy322:
    yych = *++p;
    if (yych == 'F')
      goto yy326;
    if (yych == 'f')
      goto yy326;
    goto yy31;
  yy323:
    yych = *++p;
    if (yych <= '@') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'A')
        goto yy325;
      if (yych == 'a')
        goto yy325;
      goto yy31;
    }
  yy324:
    yych = *++p;
    if (yych == 'X')
      goto yy41;
    if (yych == 'x')
      goto yy41;
    goto yy31;
  yy325:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy326:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy327:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy328:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy329:
    yych = *++p;
    if (yych == 'S')
      goto yy331;
    if (yych == 's')
      goto yy331;
    goto yy31;
  yy330:
    yych = *++p;
    if (yych <= ':') {
      if (yych == '6')
        goto yy41;
      if (yych <= '9')
        goto yy31;
      goto yy42;
    } else {
      if (yych <= 'S') {
        if (yych <= 'R')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy331:
    yych = *++p;
    if (yych == '.')
      goto yy332;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy332:
    yych = *++p;
    if (yych <= 'X') {
      if (yych <= 'K') {
        if (yych == 'B')
          goto yy335;
        goto yy31;
      } else {
        if (yych <= 'L')
          goto yy333;
        if (yych <= 'W')
          goto yy31;
        goto yy334;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'b')
          goto yy335;
        goto yy31;
      } else {
        if (yych <= 'l')
          goto yy333;
        if (yych == 'x')
          goto yy334;
        goto yy31;
      }
    }
  yy333:
    yych = *++p;
    if (yych == 'W')
      goto yy340;
    if (yych == 'w')
      goto yy340;
    goto yy31;
  yy334:
    yych = *++p;
    if (yych == 'P')
      goto yy338;
    if (yych == 'p')
      goto yy338;
    goto yy31;
  yy335:
    yych = *++p;
    if (yych == 'E')
      goto yy336;
    if (yych != 'e')
      goto yy31;
  yy336:
    yych = *++p;
    if (yych == 'E')
      goto yy337;
    if (yych != 'e')
      goto yy31;
  yy337:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy338:
    yych = *++p;
    if (yych == 'C')
      goto yy339;
    if (yych != 'c')
      goto yy31;
  yy339:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy340:
    yych = *++p;
    if (yych == 'Z')
      goto yy41;
    if (yych == 'z')
      goto yy41;
    goto yy31;
  yy341:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy342:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy343:
    yych = *++p;
    if (yych == 'T')
      goto yy346;
    if (yych == 't')
      goto yy346;
    goto yy31;
  yy344:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych == '3')
      goto yy41;
    goto yy31;
  yy346:
    yych = *++p;
    if (yych == 'P')
      goto yy347;
    if (yych != 'p')
      goto yy31;
  yy347:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy348:
    yych = *++p;
    if (yych == 'A')
      goto yy364;
    if (yych == 'a')
      goto yy364;
    goto yy31;
  yy349:
    yych = *++p;
    if (yych <= 'Z') {
      if (yych == 'T')
        goto yy41;
      if (yych <= 'Y')
        goto yy31;
      goto yy355;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 'z')
          goto yy355;
        goto yy31;
      }
    }
  yy350:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'P')
        goto yy352;
      if (yych == 'p')
        goto yy352;
      goto yy31;
    }
  yy351:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy352:
    yych = *++p;
    if (yych == 'H')
      goto yy353;
    if (yych != 'h')
      goto yy31;
  yy353:
    yych = *++p;
    if (yych == 'E')
      goto yy354;
    if (yych != 'e')
      goto yy31;
  yy354:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy355:
    yych = *++p;
    if (yych == 'M')
      goto yy356;
    if (yych != 'm')
      goto yy31;
  yy356:
    yych = *++p;
    if (yych == 'O')
      goto yy357;
    if (yych != 'o')
      goto yy31;
  yy357:
    yych = *++p;
    if (yych == 'P')
      goto yy358;
    if (yych != 'p')
      goto yy31;
  yy358:
    yych = *++p;
    if (yych == 'R')
      goto yy359;
    if (yych != 'r')
      goto yy31;
  yy359:
    yych = *++p;
    if (yych == 'O')
      goto yy360;
    if (yych != 'o')
      goto yy31;
  yy360:
    yych = *++p;
    if (yych == 'J')
      goto yy361;
    if (yych != 'j')
      goto yy31;
  yy361:
    yych = *++p;
    if (yych == 'E')
      goto yy362;
    if (yych != 'e')
      goto yy31;
  yy362:
    yych = *++p;
    if (yych == 'C')
      goto yy363;
    if (yych != 'c')
      goto yy31;
  yy363:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy364:
    yych = *++p;
    if (yych == 'L')
      goto yy365;
    if (yych != 'l')
      goto yy31;
  yy365:
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy366:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'M') {
        if (yych == 'L')
          goto yy376;
        goto yy31;
      } else {
        if (yych <= 'N')
          goto yy377;
        if (yych <= 'R')
          goto yy31;
        goto yy378;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'l')
          goto yy376;
        goto yy31;
      } else {
        if (yych <= 'n')
          goto yy377;
        if (yych == 's')
          goto yy378;
        goto yy31;
      }
    }
  yy367:
    yych = *++p;
    if (yych == 'E')
      goto yy375;
    if (yych == 'e')
      goto yy375;
    goto yy31;
  yy368:
    yych = *++p;
    if (yych == 'C')
      goto yy370;
    if (yych == 'c')
      goto yy370;
    goto yy31;
  yy369:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy370:
    yych = *++p;
    if (yych == 'E')
      goto yy371;
    if (yych != 'e')
      goto yy31;
  yy371:
    yych = *++p;
    if (yych == 'T')
      goto yy372;
    if (yych != 't')
      goto yy31;
  yy372:
    yych = *++p;
    if (yych == 'I')
      goto yy373;
    if (yych != 'i')
      goto yy31;
  yy373:
    yych = *++p;
    if (yych == 'M')
      goto yy374;
    if (yych != 'm')
      goto yy31;
  yy374:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy375:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy376:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy377:
    yych = *++p;
    if (yych == 'G')
      goto yy379;
    if (yych == 'g')
      goto yy379;
    goto yy31;
  yy378:
    yych = *++p;
    if (yych == 'H')
      goto yy41;
    if (yych == 'h')
      goto yy41;
    goto yy31;
  yy379:
    yych = *++p;
    if (yych == 'E')
      goto yy380;
    if (yych != 'e')
      goto yy31;
  yy380:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy381:
    yych = *++p;
    if (yych == 'T')
      goto yy399;
    if (yych == 't')
      goto yy399;
    goto yy31;
  yy382:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy383:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy384:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'P')
        goto yy41;
      if (yych <= 'R')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'p') {
        if (yych <= 'o')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy385:
    yych = *++p;
    if (yych == 'I')
      goto yy393;
    if (yych == 'i')
      goto yy393;
    goto yy31;
  yy386:
    yych = *++p;
    if (yych == 'A')
      goto yy392;
    if (yych == 'a')
      goto yy392;
    goto yy31;
  yy387:
    yych = *++p;
    if (yych == 'O')
      goto yy390;
    if (yych == 'o')
      goto yy390;
    goto yy31;
  yy388:
    yych = *++p;
    if (yych == 'A')
      goto yy389;
    if (yych != 'a')
      goto yy31;
  yy389:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy390:
    yych = *++p;
    if (yych == 'U')
      goto yy391;
    if (yych != 'u')
      goto yy31;
  yy391:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy392:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy393:
    yych = *++p;
    if (yych == 'U')
      goto yy394;
    if (yych != 'u')
      goto yy31;
  yy394:
    yych = *++p;
    if (yych == 'M')
      goto yy395;
    if (yych != 'm')
      goto yy31;
  yy395:
    yych = *++p;
    if (yych == 'X')
      goto yy396;
    if (yych != 'x')
      goto yy31;
  yy396:
    yych = *++p;
    if (yych == 'T')
      goto yy397;
    if (yych != 't')
      goto yy31;
  yy397:
    yych = *++p;
    if (yych == 'R')
      goto yy398;
    if (yych != 'r')
      goto yy31;
  yy398:
    yych = *++p;
    if (yych == 'A')
      goto yy41;
    if (yych == 'a')
      goto yy41;
    goto yy31;
  yy399:
    yych = *++p;
    if (yych == 'A')
      goto yy400;
    if (yych != 'a')
      goto yy31;
  yy400:
    yych = *++p;
    if (yych == 'C')
      goto yy401;
    if (yych != 'c')
      goto yy31;
  yy401:
    yych = *++p;
    if (yych == 'H')
      goto yy402;
    if (yych != 'h')
      goto yy31;
  yy402:
    yych = *++p;
    if (yych == 'M')
      goto yy403;
    if (yych != 'm')
      goto yy31;
  yy403:
    yych = *++p;
    if (yych == 'E')
      goto yy404;
    if (yych != 'e')
      goto yy31;
  yy404:
    yych = *++p;
    if (yych == 'N')
      goto yy405;
    if (yych != 'n')
      goto yy31;
  yy405:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy406:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy407:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'R')
        goto yy41;
      if (yych <= 'U')
        goto yy31;
    } else {
      if (yych <= 'r') {
        if (yych <= 'q')
          goto yy31;
        goto yy41;
      } else {
        if (yych != 'v')
          goto yy31;
      }
    }
    yych = *++p;
    if (yych == 'A')
      goto yy409;
    if (yych != 'a')
      goto yy31;
  yy409:
    yych = *++p;
    if (yych == 'S')
      goto yy410;
    if (yych != 's')
      goto yy31;
  yy410:
    yych = *++p;
    if (yych == 'C')
      goto yy411;
    if (yych != 'c')
      goto yy31;
  yy411:
    yych = *++p;
    if (yych == 'R')
      goto yy412;
    if (yych != 'r')
      goto yy31;
  yy412:
    yych = *++p;
    if (yych == 'I')
      goto yy413;
    if (yych != 'i')
      goto yy31;
  yy413:
    yych = *++p;
    if (yych == 'P')
      goto yy414;
    if (yych != 'p')
      goto yy31;
  yy414:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy415:
    yych = *++p;
    if (yych == 'B')
      goto yy41;
    if (yych == 'b')
      goto yy41;
    goto yy31;
  yy416:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy417:
    yych = *++p;
    if (yych == 'N')
      goto yy424;
    if (yych == 'n')
      goto yy424;
    goto yy31;
  yy418:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy419:
    yych = *++p;
    if (yych == 'C')
      goto yy423;
    if (yych == 'c')
      goto yy423;
    goto yy31;
  yy420:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'T')
        goto yy422;
      if (yych <= 'U')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy31;
        goto yy422;
      } else {
        if (yych == 'v')
          goto yy41;
        goto yy31;
      }
    }
  yy421:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy422:
    yych = *++p;
    if (yych == 'A')
      goto yy41;
    if (yych == 'a')
      goto yy41;
    goto yy31;
  yy423:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy424:
    yych = *++p;
    if (yych == 'A')
      goto yy425;
    if (yych != 'a')
      goto yy31;
  yy425:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'P')
      goto yy427;
    if (yych != 'p')
      goto yy31;
  yy427:
    yych = *++p;
    if (yych == 'L')
      goto yy428;
    if (yych != 'l')
      goto yy31;
  yy428:
    yych = *++p;
    if (yych == 'A')
      goto yy429;
    if (yych != 'a')
      goto yy31;
  yy429:
    yych = *++p;
    if (yych == 'Y')
      goto yy430;
    if (yych != 'y')
      goto yy31;
  yy430:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'C')
        goto yy431;
      if (yych <= 'R')
        goto yy31;
      goto yy432;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy31;
      } else {
        if (yych == 's')
          goto yy432;
        goto yy31;
      }
    }
  yy431:
    yych = *++p;
    if (yych == 'O')
      goto yy437;
    if (yych == 'o')
      goto yy437;
    goto yy31;
  yy432:
    yych = *++p;
    if (yych == 'I')
      goto yy433;
    if (yych != 'i')
      goto yy31;
  yy433:
    yych = *++p;
    if (yych == 'N')
      goto yy434;
    if (yych != 'n')
      goto yy31;
  yy434:
    yych = *++p;
    if (yych == 'G')
      goto yy435;
    if (yych != 'g')
      goto yy31;
  yy435:
    yych = *++p;
    if (yych == 'L')
      goto yy436;
    if (yych != 'l')
      goto yy31;
  yy436:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy437:
    yych = *++p;
    if (yych == 'N')
      goto yy438;
    if (yych != 'n')
      goto yy31;
  yy438:
    yych = *++p;
    if (yych == 'T')
      goto yy439;
    if (yych != 't')
      goto yy31;
  yy439:
    yych = *++p;
    if (yych == 'A')
      goto yy440;
    if (yych != 'a')
      goto yy31;
  yy440:
    yych = *++p;
    if (yych == 'I')
      goto yy441;
    if (yych != 'i')
      goto yy31;
  yy441:
    yych = *++p;
    if (yych == 'N')
      goto yy442;
    if (yych != 'n')
      goto yy31;
  yy442:
    yych = *++p;
    if (yych == 'E')
      goto yy443;
    if (yych != 'e')
      goto yy31;
  yy443:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy444:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy445:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'A') {
        if (yych <= '@')
          goto yy31;
        goto yy467;
      } else {
        if (yych <= 'L')
          goto yy31;
        if (yych <= 'M')
          goto yy468;
        goto yy469;
      }
    } else {
      if (yych <= 'l') {
        if (yych == 'a')
          goto yy467;
        goto yy31;
      } else {
        if (yych <= 'm')
          goto yy468;
        if (yych <= 'n')
          goto yy469;
        goto yy31;
      }
    }
  yy446:
    yych = *++p;
    if (yych == 'R')
      goto yy454;
    if (yych == 'r')
      goto yy454;
    goto yy31;
  yy447:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy451;
      if (yych <= 'O')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy451;
      } else {
        if (yych == 'p')
          goto yy41;
        goto yy31;
      }
    }
  yy448:
    yych = *++p;
    if (yych == 'I')
      goto yy450;
    if (yych == 'i')
      goto yy450;
    goto yy31;
  yy449:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy450:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy451:
    yych = *++p;
    if (yych == 'L')
      goto yy452;
    if (yych != 'l')
      goto yy31;
  yy452:
    yych = *++p;
    if (yych == 'T')
      goto yy453;
    if (yych != 't')
      goto yy31;
  yy453:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy454:
    yych = *++p;
    if (yych == 'O')
      goto yy455;
    if (yych != 'o')
      goto yy31;
  yy455:
    yych = *++p;
    if (yych == 'M')
      goto yy456;
    if (yych != 'm')
      goto yy31;
  yy456:
    yych = *++p;
    if (yych == 'E')
      goto yy457;
    if (yych != 'e')
      goto yy31;
  yy457:
    yych = *++p;
    if (yych == '-')
      goto yy458;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy458:
    yych = *++p;
    if (yych == 'E')
      goto yy459;
    if (yych != 'e')
      goto yy31;
  yy459:
    yych = *++p;
    if (yych == 'X')
      goto yy460;
    if (yych != 'x')
      goto yy31;
  yy460:
    yych = *++p;
    if (yych == 'T')
      goto yy461;
    if (yych != 't')
      goto yy31;
  yy461:
    yych = *++p;
    if (yych == 'E')
      goto yy462;
    if (yych != 'e')
      goto yy31;
  yy462:
    yych = *++p;
    if (yych == 'N')
      goto yy463;
    if (yych != 'n')
      goto yy31;
  yy463:
    yych = *++p;
    if (yych == 'S')
      goto yy464;
    if (yych != 's')
      goto yy31;
  yy464:
    yych = *++p;
    if (yych == 'I')
      goto yy465;
    if (yych != 'i')
      goto yy31;
  yy465:
    yych = *++p;
    if (yych == 'O')
      goto yy466;
    if (yych != 'o')
      goto yy31;
  yy466:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy467:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy468:
    yych = *++p;
    if (yych == '-')
      goto yy473;
    goto yy31;
  yy469:
    yych = *++p;
    if (yych == 'T')
      goto yy470;
    if (yych != 't')
      goto yy31;
  yy470:
    yych = *++p;
    if (yych == 'E')
      goto yy471;
    if (yych != 'e')
      goto yy31;
  yy471:
    yych = *++p;
    if (yych == 'N')
      goto yy472;
    if (yych != 'n')
      goto yy31;
  yy472:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy473:
    yych = *++p;
    if (yych == 'E')
      goto yy474;
    if (yych != 'e')
      goto yy31;
  yy474:
    yych = *++p;
    if (yych == 'V')
      goto yy475;
    if (yych != 'v')
      goto yy31;
  yy475:
    yych = *++p;
    if (yych == 'E')
      goto yy476;
    if (yych != 'e')
      goto yy31;
  yy476:
    yych = *++p;
    if (yych == 'N')
      goto yy477;
    if (yych != 'n')
      goto yy31;
  yy477:
    yych = *++p;
    if (yych == 'T')
      goto yy478;
    if (yych != 't')
      goto yy31;
  yy478:
    yych = *++p;
    if (yych == 'B')
      goto yy479;
    if (yych != 'b')
      goto yy31;
  yy479:
    yych = *++p;
    if (yych == 'R')
      goto yy480;
    if (yych != 'r')
      goto yy31;
  yy480:
    yych = *++p;
    if (yych == 'I')
      goto yy481;
    if (yych != 'i')
      goto yy31;
  yy481:
    yych = *++p;
    if (yych == 'T')
      goto yy482;
    if (yych != 't')
      goto yy31;
  yy482:
    yych = *++p;
    if (yych == 'E')
      goto yy483;
    if (yych != 'e')
      goto yy31;
  yy483:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'A')
      goto yy485;
    if (yych != 'a')
      goto yy31;
  yy485:
    yych = *++p;
    if (yych == 'T')
      goto yy486;
    if (yych != 't')
      goto yy31;
  yy486:
    yych = *++p;
    if (yych == 'T')
      goto yy487;
    if (yych != 't')
      goto yy31;
  yy487:
    yych = *++p;
    if (yych == 'E')
      goto yy488;
    if (yych != 'e')
      goto yy31;
  yy488:
    yych = *++p;
    if (yych == 'N')
      goto yy489;
    if (yych != 'n')
      goto yy31;
  yy489:
    yych = *++p;
    if (yych == 'D')
      goto yy490;
    if (yych != 'd')
      goto yy31;
  yy490:
    yych = *++p;
    if (yych == 'E')
      goto yy491;
    if (yych != 'e')
      goto yy31;
  yy491:
    ++p;
    if ((yych = *p) == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  }
}

// Try to match URI autolink after first <, returning number of chars matched.
bufsize_t _scan_autolink_uri(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 'c') {
      if (yych <= 'M') {
        if (yych <= 'E') {
          if (yych <= 'A') {
            if (yych == '\n')
              goto yy494;
            if (yych <= '@')
              goto yy521;
            goto yy498;
          } else {
            if (yych <= 'B')
              goto yy516;
            if (yych <= 'C')
              goto yy495;
            if (yych <= 'D')
              goto yy496;
            goto yy517;
          }
        } else {
          if (yych <= 'I') {
            if (yych <= 'F')
              goto yy499;
            if (yych <= 'G')
              goto yy500;
            if (yych <= 'H')
              goto yy501;
            goto yy502;
          } else {
            if (yych <= 'J')
              goto yy497;
            if (yych <= 'K')
              goto yy518;
            if (yych <= 'L')
              goto yy503;
            goto yy504;
          }
        }
      } else {
        if (yych <= 'U') {
          if (yych <= 'Q') {
            if (yych <= 'N')
              goto yy505;
            if (yych <= 'O')
              goto yy506;
            if (yych <= 'P')
              goto yy507;
            goto yy519;
          } else {
            if (yych <= 'R')
              goto yy508;
            if (yych <= 'S')
              goto yy509;
            if (yych <= 'T')
              goto yy510;
            goto yy511;
          }
        } else {
          if (yych <= 'Y') {
            if (yych <= 'V')
              goto yy512;
            if (yych <= 'W')
              goto yy513;
            if (yych <= 'X')
              goto yy514;
            goto yy520;
          } else {
            if (yych <= '`') {
              if (yych <= 'Z')
                goto yy515;
              goto yy521;
            } else {
              if (yych <= 'a')
                goto yy498;
              if (yych <= 'b')
                goto yy516;
              goto yy495;
            }
          }
        }
      }
    } else {
      if (yych <= 't') {
        if (yych <= 'k') {
          if (yych <= 'g') {
            if (yych <= 'd')
              goto yy496;
            if (yych <= 'e')
              goto yy517;
            if (yych <= 'f')
              goto yy499;
            goto yy500;
          } else {
            if (yych <= 'h')
              goto yy501;
            if (yych <= 'i')
              goto yy502;
            if (yych <= 'j')
              goto yy497;
            goto yy518;
          }
        } else {
          if (yych <= 'o') {
            if (yych <= 'l')
              goto yy503;
            if (yych <= 'm')
              goto yy504;
            if (yych <= 'n')
              goto yy505;
            goto yy506;
          } else {
            if (yych <= 'q') {
              if (yych <= 'p')
                goto yy507;
              goto yy519;
            } else {
              if (yych <= 'r')
                goto yy508;
              if (yych <= 's')
                goto yy509;
              goto yy510;
            }
          }
        }
      } else {
        if (yych <= 0xC1) {
          if (yych <= 'x') {
            if (yych <= 'u')
              goto yy511;
            if (yych <= 'v')
              goto yy512;
            if (yych <= 'w')
              goto yy513;
            goto yy514;
          } else {
            if (yych <= 'y')
              goto yy520;
            if (yych <= 'z')
              goto yy515;
            if (yych <= 0x7F)
              goto yy521;
          }
        } else {
          if (yych <= 0xED) {
            if (yych <= 0xDF)
              goto yy522;
            if (yych <= 0xE0)
              goto yy524;
            if (yych <= 0xEC)
              goto yy525;
            goto yy529;
          } else {
            if (yych <= 0xF0) {
              if (yych <= 0xEF)
                goto yy525;
              goto yy526;
            } else {
              if (yych <= 0xF3)
                goto yy527;
              if (yych <= 0xF4)
                goto yy528;
            }
          }
        }
      }
    }
  yy494 : { return 0; }
  yy495:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy948;
    case 'H':
    case 'h':
      goto yy947;
    case 'I':
    case 'i':
      goto yy950;
    case 'O':
    case 'o':
      goto yy946;
    case 'R':
    case 'r':
      goto yy949;
    case 'V':
    case 'v':
      goto yy945;
    default:
      goto yy494;
    }
  yy496:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy921;
    case 'I':
    case 'i':
      goto yy920;
    case 'L':
    case 'l':
      goto yy918;
    case 'N':
    case 'n':
      goto yy919;
    case 'O':
    case 'o':
      goto yy922;
    case 'T':
    case 't':
      goto yy917;
    case 'V':
    case 'v':
      goto yy916;
    default:
      goto yy494;
    }
  yy497:
    yych = *(marker = ++p);
    if (yych <= 'M') {
      if (yych == 'A')
        goto yy908;
      if (yych <= 'L')
        goto yy494;
      goto yy907;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy494;
        goto yy908;
      } else {
        if (yych == 'm')
          goto yy907;
        goto yy494;
      }
    }
  yy498:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy889;
    case 'B':
    case 'b':
      goto yy888;
    case 'C':
    case 'c':
      goto yy887;
    case 'D':
    case 'd':
      goto yy886;
    case 'F':
    case 'f':
      goto yy885;
    case 'I':
    case 'i':
      goto yy884;
    case 'P':
    case 'p':
      goto yy883;
    case 'T':
    case 't':
      goto yy882;
    case 'W':
    case 'w':
      goto yy533;
    default:
      goto yy494;
    }
  yy499:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'E') {
        if (yych == 'A')
          goto yy869;
        if (yych <= 'D')
          goto yy494;
        goto yy868;
      } else {
        if (yych == 'I')
          goto yy867;
        if (yych <= 'S')
          goto yy494;
        goto yy870;
      }
    } else {
      if (yych <= 'e') {
        if (yych == 'a')
          goto yy869;
        if (yych <= 'd')
          goto yy494;
        goto yy868;
      } else {
        if (yych <= 'i') {
          if (yych <= 'h')
            goto yy494;
          goto yy867;
        } else {
          if (yych == 't')
            goto yy870;
          goto yy494;
        }
      }
    }
  yy500:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy852;
    case 'G':
    case 'g':
      goto yy533;
    case 'I':
    case 'i':
      goto yy850;
    case 'O':
    case 'o':
      goto yy851;
    case 'T':
    case 't':
      goto yy849;
    default:
      goto yy494;
    }
  yy501:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= '3') {
        if (yych <= '2')
          goto yy494;
        goto yy845;
      } else {
        if (yych == 'C')
          goto yy843;
        goto yy494;
      }
    } else {
      if (yych <= 'c') {
        if (yych <= 'T')
          goto yy844;
        if (yych <= 'b')
          goto yy494;
        goto yy843;
      } else {
        if (yych == 't')
          goto yy844;
        goto yy494;
      }
    }
  yy502:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy825;
    case 'C':
    case 'c':
      goto yy822;
    case 'M':
    case 'm':
      goto yy824;
    case 'N':
    case 'n':
      goto yy823;
    case 'P':
    case 'p':
      goto yy821;
    case 'R':
    case 'r':
      goto yy820;
    case 'T':
    case 't':
      goto yy819;
    default:
      goto yy494;
    }
  yy503:
    yych = *(marker = ++p);
    if (yych <= 'D') {
      if (yych == 'A')
        goto yy813;
      if (yych <= 'C')
        goto yy494;
      goto yy812;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy494;
        goto yy813;
      } else {
        if (yych == 'd')
          goto yy812;
        goto yy494;
      }
    }
  yy504:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy779;
    case 'E':
    case 'e':
      goto yy778;
    case 'I':
    case 'i':
      goto yy781;
    case 'M':
    case 'm':
      goto yy777;
    case 'S':
    case 's':
      goto yy776;
    case 'T':
    case 't':
      goto yy780;
    case 'U':
    case 'u':
      goto yy775;
    case 'V':
    case 'v':
      goto yy774;
    default:
      goto yy494;
    }
  yy505:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy769;
    case 'F':
    case 'f':
      goto yy768;
    case 'I':
    case 'i':
      goto yy767;
    case 'N':
    case 'n':
      goto yy766;
    case 'O':
    case 'o':
      goto yy765;
    default:
      goto yy494;
    }
  yy506:
    yych = *(marker = ++p);
    if (yych <= 'P') {
      if (yych == 'I')
        goto yy751;
      if (yych <= 'O')
        goto yy494;
      goto yy752;
    } else {
      if (yych <= 'i') {
        if (yych <= 'h')
          goto yy494;
        goto yy751;
      } else {
        if (yych == 'p')
          goto yy752;
        goto yy494;
      }
    }
  yy507:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= 'L') {
        if (yych == 'A')
          goto yy733;
        if (yych <= 'K')
          goto yy494;
        goto yy732;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy494;
          goto yy734;
        } else {
          if (yych <= 'Q')
            goto yy494;
          if (yych <= 'R')
            goto yy731;
          goto yy730;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy494;
          goto yy733;
        } else {
          if (yych == 'l')
            goto yy732;
          goto yy494;
        }
      } else {
        if (yych <= 'q') {
          if (yych <= 'o')
            goto yy734;
          goto yy494;
        } else {
          if (yych <= 'r')
            goto yy731;
          if (yych <= 's')
            goto yy730;
          goto yy494;
        }
      }
    }
  yy508:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'L') {
        if (yych == 'E')
          goto yy720;
        goto yy494;
      } else {
        if (yych <= 'M')
          goto yy719;
        if (yych <= 'R')
          goto yy494;
        if (yych <= 'S')
          goto yy718;
        goto yy717;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'e')
          goto yy720;
        if (yych <= 'l')
          goto yy494;
        goto yy719;
      } else {
        if (yych <= 'r')
          goto yy494;
        if (yych <= 's')
          goto yy718;
        if (yych <= 't')
          goto yy717;
        goto yy494;
      }
    }
  yy509:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy673;
    case 'F':
    case 'f':
      goto yy672;
    case 'G':
    case 'g':
      goto yy671;
    case 'H':
    case 'h':
      goto yy676;
    case 'I':
    case 'i':
      goto yy675;
    case 'K':
    case 'k':
      goto yy670;
    case 'M':
    case 'm':
      goto yy669;
    case 'N':
    case 'n':
      goto yy674;
    case 'O':
    case 'o':
      goto yy668;
    case 'P':
    case 'p':
      goto yy667;
    case 'S':
    case 's':
      goto yy666;
    case 'T':
    case 't':
      goto yy665;
    case 'V':
    case 'v':
      goto yy664;
    default:
      goto yy494;
    }
  yy510:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy640;
    case 'E':
    case 'e':
      goto yy636;
    case 'F':
    case 'f':
      goto yy639;
    case 'H':
    case 'h':
      goto yy635;
    case 'I':
    case 'i':
      goto yy637;
    case 'N':
    case 'n':
      goto yy638;
    case 'V':
    case 'v':
      goto yy533;
    default:
      goto yy494;
    }
  yy511:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'N') {
        if (yych == 'D')
          goto yy627;
        if (yych <= 'M')
          goto yy494;
        goto yy626;
      } else {
        if (yych == 'R')
          goto yy628;
        if (yych <= 'S')
          goto yy494;
        goto yy625;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'd')
          goto yy627;
        if (yych <= 'm')
          goto yy494;
        goto yy626;
      } else {
        if (yych <= 'r') {
          if (yych <= 'q')
            goto yy494;
          goto yy628;
        } else {
          if (yych == 't')
            goto yy625;
          goto yy494;
        }
      }
    }
  yy512:
    yych = *(marker = ++p);
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy609;
      if (yych <= 'H')
        goto yy494;
      goto yy608;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy494;
        goto yy609;
      } else {
        if (yych == 'i')
          goto yy608;
        goto yy494;
      }
    }
  yy513:
    yych = *(marker = ++p);
    if (yych <= 'Y') {
      if (yych <= 'R') {
        if (yych == 'E')
          goto yy598;
        goto yy494;
      } else {
        if (yych <= 'S')
          goto yy599;
        if (yych <= 'T')
          goto yy597;
        if (yych <= 'X')
          goto yy494;
        goto yy596;
      }
    } else {
      if (yych <= 's') {
        if (yych == 'e')
          goto yy598;
        if (yych <= 'r')
          goto yy494;
        goto yy599;
      } else {
        if (yych <= 't')
          goto yy597;
        if (yych == 'y')
          goto yy596;
        goto yy494;
      }
    }
  yy514:
    yych = *(marker = ++p);
    if (yych <= 'R') {
      if (yych <= 'F') {
        if (yych == 'C')
          goto yy575;
        if (yych <= 'E')
          goto yy494;
        goto yy573;
      } else {
        if (yych == 'M')
          goto yy574;
        if (yych <= 'Q')
          goto yy494;
        goto yy572;
      }
    } else {
      if (yych <= 'f') {
        if (yych == 'c')
          goto yy575;
        if (yych <= 'e')
          goto yy494;
        goto yy573;
      } else {
        if (yych <= 'm') {
          if (yych <= 'l')
            goto yy494;
          goto yy574;
        } else {
          if (yych == 'r')
            goto yy572;
          goto yy494;
        }
      }
    }
  yy515:
    yych = *(marker = ++p);
    if (yych == '3')
      goto yy567;
    goto yy494;
  yy516:
    yych = *(marker = ++p);
    if (yych <= 'O') {
      if (yych <= 'H') {
        if (yych == 'E')
          goto yy557;
        goto yy494;
      } else {
        if (yych <= 'I')
          goto yy556;
        if (yych <= 'N')
          goto yy494;
        goto yy555;
      }
    } else {
      if (yych <= 'h') {
        if (yych == 'e')
          goto yy557;
        goto yy494;
      } else {
        if (yych <= 'i')
          goto yy556;
        if (yych == 'o')
          goto yy555;
        goto yy494;
      }
    }
  yy517:
    yych = *(marker = ++p);
    if (yych == 'D')
      goto yy553;
    if (yych == 'd')
      goto yy553;
    goto yy494;
  yy518:
    yych = *(marker = ++p);
    if (yych == 'E')
      goto yy548;
    if (yych == 'e')
      goto yy548;
    goto yy494;
  yy519:
    yych = *(marker = ++p);
    if (yych == 'U')
      goto yy545;
    if (yych == 'u')
      goto yy545;
    goto yy494;
  yy520:
    yych = *(marker = ++p);
    if (yych == 'M')
      goto yy530;
    if (yych == 'm')
      goto yy530;
    goto yy494;
  yy521:
    yych = *++p;
    goto yy494;
  yy522:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy521;
  yy523:
    p = marker;
    goto yy494;
  yy524:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy522;
    goto yy523;
  yy525:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy522;
    goto yy523;
  yy526:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy525;
    goto yy523;
  yy527:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy525;
    goto yy523;
  yy528:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x8F)
      goto yy525;
    goto yy523;
  yy529:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x9F)
      goto yy522;
    goto yy523;
  yy530:
    yych = *++p;
    if (yych == 'S')
      goto yy531;
    if (yych != 's')
      goto yy523;
  yy531:
    yych = *++p;
    if (yych == 'G')
      goto yy532;
    if (yych != 'g')
      goto yy523;
  yy532:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych != 'r')
      goto yy523;
  yy533:
    yych = *++p;
    if (yych != ':')
      goto yy523;
  yy534:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy534;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '<')
          goto yy523;
        if (yych <= '>')
          goto yy543;
        goto yy523;
      } else {
        if (yych <= 0xDF)
          goto yy536;
        if (yych <= 0xE0)
          goto yy537;
        goto yy538;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy542;
        if (yych <= 0xEF)
          goto yy538;
        goto yy539;
      } else {
        if (yych <= 0xF3)
          goto yy540;
        if (yych <= 0xF4)
          goto yy541;
        goto yy523;
      }
    }
  yy536:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy534;
    goto yy523;
  yy537:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy536;
    goto yy523;
  yy538:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy536;
    goto yy523;
  yy539:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy538;
    goto yy523;
  yy540:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy538;
    goto yy523;
  yy541:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x8F)
      goto yy538;
    goto yy523;
  yy542:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x9F)
      goto yy536;
    goto yy523;
  yy543:
    ++p;
    { return (bufsize_t)(p - start); }
  yy545:
    yych = *++p;
    if (yych == 'E')
      goto yy546;
    if (yych != 'e')
      goto yy523;
  yy546:
    yych = *++p;
    if (yych == 'R')
      goto yy547;
    if (yych != 'r')
      goto yy523;
  yy547:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy548:
    yych = *++p;
    if (yych == 'Y')
      goto yy549;
    if (yych != 'y')
      goto yy523;
  yy549:
    yych = *++p;
    if (yych == 'P')
      goto yy550;
    if (yych != 'p')
      goto yy523;
  yy550:
    yych = *++p;
    if (yych == 'A')
      goto yy551;
    if (yych != 'a')
      goto yy523;
  yy551:
    yych = *++p;
    if (yych == 'R')
      goto yy552;
    if (yych != 'r')
      goto yy523;
  yy552:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy553:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy555:
    yych = *++p;
    if (yych == 'L')
      goto yy566;
    if (yych == 'l')
      goto yy566;
    goto yy523;
  yy556:
    yych = *++p;
    if (yych == 'T')
      goto yy562;
    if (yych == 't')
      goto yy562;
    goto yy523;
  yy557:
    yych = *++p;
    if (yych == 'S')
      goto yy558;
    if (yych != 's')
      goto yy523;
  yy558:
    yych = *++p;
    if (yych == 'H')
      goto yy559;
    if (yych != 'h')
      goto yy523;
  yy559:
    yych = *++p;
    if (yych == 'A')
      goto yy560;
    if (yych != 'a')
      goto yy523;
  yy560:
    yych = *++p;
    if (yych == 'R')
      goto yy561;
    if (yych != 'r')
      goto yy523;
  yy561:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy562:
    yych = *++p;
    if (yych == 'C')
      goto yy563;
    if (yych != 'c')
      goto yy523;
  yy563:
    yych = *++p;
    if (yych == 'O')
      goto yy564;
    if (yych != 'o')
      goto yy523;
  yy564:
    yych = *++p;
    if (yych == 'I')
      goto yy565;
    if (yych != 'i')
      goto yy523;
  yy565:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy566:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy567:
    yych = *++p;
    if (yych != '9')
      goto yy523;
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych != '5')
      goto yy523;
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych <= 'Q')
      goto yy523;
    if (yych <= 'S')
      goto yy533;
    if (yych <= 'q')
      goto yy523;
    if (yych <= 's')
      goto yy533;
    goto yy523;
  yy572:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy573:
    yych = *++p;
    if (yych == 'I')
      goto yy594;
    if (yych == 'i')
      goto yy594;
    goto yy523;
  yy574:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy584;
      if (yych <= 'O')
        goto yy523;
      goto yy585;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy584;
      } else {
        if (yych == 'p')
          goto yy585;
        goto yy523;
      }
    }
  yy575:
    yych = *++p;
    if (yych == 'O')
      goto yy576;
    if (yych != 'o')
      goto yy523;
  yy576:
    yych = *++p;
    if (yych == 'N')
      goto yy577;
    if (yych != 'n')
      goto yy523;
  yy577:
    yych = *++p;
    if (yych == '-')
      goto yy578;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy578:
    yych = *++p;
    if (yych == 'U')
      goto yy579;
    if (yych != 'u')
      goto yy523;
  yy579:
    yych = *++p;
    if (yych == 'S')
      goto yy580;
    if (yych != 's')
      goto yy523;
  yy580:
    yych = *++p;
    if (yych == 'E')
      goto yy581;
    if (yych != 'e')
      goto yy523;
  yy581:
    yych = *++p;
    if (yych == 'R')
      goto yy582;
    if (yych != 'r')
      goto yy523;
  yy582:
    yych = *++p;
    if (yych == 'I')
      goto yy583;
    if (yych != 'i')
      goto yy523;
  yy583:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy584:
    yych = *++p;
    if (yych == 'R')
      goto yy586;
    if (yych == 'r')
      goto yy586;
    goto yy523;
  yy585:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy586:
    yych = *++p;
    if (yych == 'P')
      goto yy587;
    if (yych != 'p')
      goto yy523;
  yy587:
    yych = *++p;
    if (yych == 'C')
      goto yy588;
    if (yych != 'c')
      goto yy523;
  yy588:
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych == 'B')
      goto yy590;
    if (yych != 'b')
      goto yy523;
  yy590:
    yych = *++p;
    if (yych == 'E')
      goto yy591;
    if (yych != 'e')
      goto yy523;
  yy591:
    yych = *++p;
    if (yych == 'E')
      goto yy592;
    if (yych != 'e')
      goto yy523;
  yy592:
    yych = *++p;
    if (yych == 'P')
      goto yy593;
    if (yych != 'p')
      goto yy523;
  yy593:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy594:
    yych = *++p;
    if (yych == 'R')
      goto yy595;
    if (yych != 'r')
      goto yy523;
  yy595:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy596:
    yych = *++p;
    if (yych == 'C')
      goto yy604;
    if (yych == 'c')
      goto yy604;
    goto yy523;
  yy597:
    yych = *++p;
    if (yych == 'A')
      goto yy603;
    if (yych == 'a')
      goto yy603;
    goto yy523;
  yy598:
    yych = *++p;
    if (yych == 'B')
      goto yy600;
    if (yych == 'b')
      goto yy600;
    goto yy523;
  yy599:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy600:
    yych = *++p;
    if (yych == 'C')
      goto yy601;
    if (yych != 'c')
      goto yy523;
  yy601:
    yych = *++p;
    if (yych == 'A')
      goto yy602;
    if (yych != 'a')
      goto yy523;
  yy602:
    yych = *++p;
    if (yych == 'L')
      goto yy533;
    if (yych == 'l')
      goto yy533;
    goto yy523;
  yy603:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy604:
    yych = *++p;
    if (yych == 'I')
      goto yy605;
    if (yych != 'i')
      goto yy523;
  yy605:
    yych = *++p;
    if (yych == 'W')
      goto yy606;
    if (yych != 'w')
      goto yy523;
  yy606:
    yych = *++p;
    if (yych == 'Y')
      goto yy607;
    if (yych != 'y')
      goto yy523;
  yy607:
    yych = *++p;
    if (yych == 'G')
      goto yy533;
    if (yych == 'g')
      goto yy533;
    goto yy523;
  yy608:
    yych = *++p;
    if (yych == 'E')
      goto yy617;
    if (yych == 'e')
      goto yy617;
    goto yy523;
  yy609:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'L')
        goto yy523;
      if (yych >= 'N')
        goto yy611;
    } else {
      if (yych <= 'l')
        goto yy523;
      if (yych <= 'm')
        goto yy610;
      if (yych <= 'n')
        goto yy611;
      goto yy523;
    }
  yy610:
    yych = *++p;
    if (yych == 'M')
      goto yy616;
    if (yych == 'm')
      goto yy616;
    goto yy523;
  yy611:
    yych = *++p;
    if (yych == 'T')
      goto yy612;
    if (yych != 't')
      goto yy523;
  yy612:
    yych = *++p;
    if (yych == 'R')
      goto yy613;
    if (yych != 'r')
      goto yy523;
  yy613:
    yych = *++p;
    if (yych == 'I')
      goto yy614;
    if (yych != 'i')
      goto yy523;
  yy614:
    yych = *++p;
    if (yych == 'L')
      goto yy615;
    if (yych != 'l')
      goto yy523;
  yy615:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy616:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy617:
    yych = *++p;
    if (yych == 'W')
      goto yy618;
    if (yych != 'w')
      goto yy523;
  yy618:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'S')
      goto yy620;
    if (yych != 's')
      goto yy523;
  yy620:
    yych = *++p;
    if (yych == 'O')
      goto yy621;
    if (yych != 'o')
      goto yy523;
  yy621:
    yych = *++p;
    if (yych == 'U')
      goto yy622;
    if (yych != 'u')
      goto yy523;
  yy622:
    yych = *++p;
    if (yych == 'R')
      goto yy623;
    if (yych != 'r')
      goto yy523;
  yy623:
    yych = *++p;
    if (yych == 'C')
      goto yy624;
    if (yych != 'c')
      goto yy523;
  yy624:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy625:
    yych = *++p;
    if (yych == '2')
      goto yy632;
    goto yy523;
  yy626:
    yych = *++p;
    if (yych == 'R')
      goto yy629;
    if (yych == 'r')
      goto yy629;
    goto yy523;
  yy627:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy628:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy629:
    yych = *++p;
    if (yych == 'E')
      goto yy630;
    if (yych != 'e')
      goto yy523;
  yy630:
    yych = *++p;
    if (yych == 'A')
      goto yy631;
    if (yych != 'a')
      goto yy523;
  yy631:
    yych = *++p;
    if (yych == 'L')
      goto yy533;
    if (yych == 'l')
      goto yy533;
    goto yy523;
  yy632:
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych == '4')
      goto yy533;
    goto yy523;
  yy635:
    yych = *++p;
    if (yych == 'I')
      goto yy654;
    if (yych == 'i')
      goto yy654;
    goto yy523;
  yy636:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy646;
      if (yych <= 'K')
        goto yy523;
      goto yy645;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy646;
      } else {
        if (yych == 'l')
          goto yy645;
        goto yy523;
      }
    }
  yy637:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy638:
    yych = *++p;
    if (yych == '3')
      goto yy642;
    goto yy523;
  yy639:
    yych = *++p;
    if (yych == 'T')
      goto yy641;
    if (yych == 't')
      goto yy641;
    goto yy523;
  yy640:
    yych = *++p;
    if (yych == 'G')
      goto yy533;
    if (yych == 'g')
      goto yy533;
    goto yy523;
  yy641:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy642:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych != '7')
      goto yy523;
    yych = *++p;
    if (yych == '0')
      goto yy533;
    goto yy523;
  yy645:
    yych = *++p;
    if (yych <= 'M') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'N')
        goto yy652;
      if (yych == 'n')
        goto yy652;
      goto yy523;
    }
  yy646:
    yych = *++p;
    if (yych == 'M')
      goto yy647;
    if (yych != 'm')
      goto yy523;
  yy647:
    yych = *++p;
    if (yych == 'S')
      goto yy648;
    if (yych != 's')
      goto yy523;
  yy648:
    yych = *++p;
    if (yych == 'P')
      goto yy649;
    if (yych != 'p')
      goto yy523;
  yy649:
    yych = *++p;
    if (yych == 'E')
      goto yy650;
    if (yych != 'e')
      goto yy523;
  yy650:
    yych = *++p;
    if (yych == 'A')
      goto yy651;
    if (yych != 'a')
      goto yy523;
  yy651:
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy652:
    yych = *++p;
    if (yych == 'E')
      goto yy653;
    if (yych != 'e')
      goto yy523;
  yy653:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy654:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'N')
        goto yy655;
      if (yych <= 'R')
        goto yy523;
      goto yy656;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy523;
      } else {
        if (yych == 's')
          goto yy656;
        goto yy523;
      }
    }
  yy655:
    yych = *++p;
    if (yych == 'G')
      goto yy663;
    if (yych == 'g')
      goto yy663;
    goto yy523;
  yy656:
    yych = *++p;
    if (yych == 'M')
      goto yy657;
    if (yych != 'm')
      goto yy523;
  yy657:
    yych = *++p;
    if (yych == 'E')
      goto yy658;
    if (yych != 'e')
      goto yy523;
  yy658:
    yych = *++p;
    if (yych == 'S')
      goto yy659;
    if (yych != 's')
      goto yy523;
  yy659:
    yych = *++p;
    if (yych == 'S')
      goto yy660;
    if (yych != 's')
      goto yy523;
  yy660:
    yych = *++p;
    if (yych == 'A')
      goto yy661;
    if (yych != 'a')
      goto yy523;
  yy661:
    yych = *++p;
    if (yych == 'G')
      goto yy662;
    if (yych != 'g')
      goto yy523;
  yy662:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy663:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy664:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy665:
    yych = *++p;
    if (yych == 'E')
      goto yy715;
    if (yych == 'e')
      goto yy715;
    goto yy523;
  yy666:
    yych = *++p;
    if (yych == 'H')
      goto yy533;
    if (yych == 'h')
      goto yy533;
    goto yy523;
  yy667:
    yych = *++p;
    if (yych == 'O')
      goto yy711;
    if (yych == 'o')
      goto yy711;
    goto yy523;
  yy668:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy701;
      if (yych <= 'K')
        goto yy523;
      goto yy702;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy701;
      } else {
        if (yych == 'l')
          goto yy702;
        goto yy523;
      }
    }
  yy669:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'B')
        goto yy533;
      if (yych <= 'R')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'b') {
        if (yych <= 'a')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy670:
    yych = *++p;
    if (yych == 'Y')
      goto yy699;
    if (yych == 'y')
      goto yy699;
    goto yy523;
  yy671:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy672:
    yych = *++p;
    if (yych == 'T')
      goto yy698;
    if (yych == 't')
      goto yy698;
    goto yy523;
  yy673:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'C') {
        if (yych <= 'B')
          goto yy523;
        goto yy685;
      } else {
        if (yych <= 'Q')
          goto yy523;
        if (yych <= 'R')
          goto yy683;
        goto yy684;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'c')
          goto yy685;
        goto yy523;
      } else {
        if (yych <= 'r')
          goto yy683;
        if (yych <= 's')
          goto yy684;
        goto yy523;
      }
    }
  yy674:
    yych = *++p;
    if (yych == 'M')
      goto yy682;
    if (yych == 'm')
      goto yy682;
    goto yy523;
  yy675:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'E')
        goto yy679;
      if (yych <= 'O')
        goto yy523;
      goto yy680;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy523;
        goto yy679;
      } else {
        if (yych == 'p')
          goto yy680;
        goto yy523;
      }
    }
  yy676:
    yych = *++p;
    if (yych == 'T')
      goto yy677;
    if (yych != 't')
      goto yy523;
  yy677:
    yych = *++p;
    if (yych == 'T')
      goto yy678;
    if (yych != 't')
      goto yy523;
  yy678:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy679:
    yych = *++p;
    if (yych == 'V')
      goto yy681;
    if (yych == 'v')
      goto yy681;
    goto yy523;
  yy680:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy681:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy682:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy683:
    yych = *++p;
    if (yych == 'V')
      goto yy695;
    if (yych == 'v')
      goto yy695;
    goto yy523;
  yy684:
    yych = *++p;
    if (yych == 'S')
      goto yy692;
    if (yych == 's')
      goto yy692;
    goto yy523;
  yy685:
    yych = *++p;
    if (yych == 'O')
      goto yy686;
    if (yych != 'o')
      goto yy523;
  yy686:
    yych = *++p;
    if (yych == 'N')
      goto yy687;
    if (yych != 'n')
      goto yy523;
  yy687:
    yych = *++p;
    if (yych == 'D')
      goto yy688;
    if (yych != 'd')
      goto yy523;
  yy688:
    yych = *++p;
    if (yych == 'L')
      goto yy689;
    if (yych != 'l')
      goto yy523;
  yy689:
    yych = *++p;
    if (yych == 'I')
      goto yy690;
    if (yych != 'i')
      goto yy523;
  yy690:
    yych = *++p;
    if (yych == 'F')
      goto yy691;
    if (yych != 'f')
      goto yy523;
  yy691:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy692:
    yych = *++p;
    if (yych == 'I')
      goto yy693;
    if (yych != 'i')
      goto yy523;
  yy693:
    yych = *++p;
    if (yych == 'O')
      goto yy694;
    if (yych != 'o')
      goto yy523;
  yy694:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy695:
    yych = *++p;
    if (yych == 'I')
      goto yy696;
    if (yych != 'i')
      goto yy523;
  yy696:
    yych = *++p;
    if (yych == 'C')
      goto yy697;
    if (yych != 'c')
      goto yy523;
  yy697:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy698:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy699:
    yych = *++p;
    if (yych == 'P')
      goto yy700;
    if (yych != 'p')
      goto yy523;
  yy700:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy701:
    yych = *++p;
    if (yych == 'P')
      goto yy705;
    if (yych == 'p')
      goto yy705;
    goto yy523;
  yy702:
    yych = *++p;
    if (yych == 'D')
      goto yy703;
    if (yych != 'd')
      goto yy523;
  yy703:
    yych = *++p;
    if (yych == 'A')
      goto yy704;
    if (yych != 'a')
      goto yy523;
  yy704:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy705:
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych == 'B')
      goto yy707;
    if (yych != 'b')
      goto yy523;
  yy707:
    yych = *++p;
    if (yych == 'E')
      goto yy708;
    if (yych != 'e')
      goto yy523;
  yy708:
    yych = *++p;
    if (yych == 'E')
      goto yy709;
    if (yych != 'e')
      goto yy523;
  yy709:
    yych = *++p;
    if (yych == 'P')
      goto yy710;
    if (yych != 'p')
      goto yy523;
  yy710:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy711:
    yych = *++p;
    if (yych == 'T')
      goto yy712;
    if (yych != 't')
      goto yy523;
  yy712:
    yych = *++p;
    if (yych == 'I')
      goto yy713;
    if (yych != 'i')
      goto yy523;
  yy713:
    yych = *++p;
    if (yych == 'F')
      goto yy714;
    if (yych != 'f')
      goto yy523;
  yy714:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy715:
    yych = *++p;
    if (yych == 'A')
      goto yy716;
    if (yych != 'a')
      goto yy523;
  yy716:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy717:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'M')
        goto yy729;
      if (yych <= 'R')
        goto yy523;
      goto yy728;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy523;
        goto yy729;
      } else {
        if (yych == 's')
          goto yy728;
        goto yy523;
      }
    }
  yy718:
    yych = *++p;
    if (yych == 'Y')
      goto yy726;
    if (yych == 'y')
      goto yy726;
    goto yy523;
  yy719:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy720:
    yych = *++p;
    if (yych == 'S')
      goto yy721;
    if (yych != 's')
      goto yy523;
  yy721:
    yych = *++p;
    if (yych <= 'N') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'O')
        goto yy722;
      if (yych != 'o')
        goto yy523;
    }
  yy722:
    yych = *++p;
    if (yych == 'U')
      goto yy723;
    if (yych != 'u')
      goto yy523;
  yy723:
    yych = *++p;
    if (yych == 'R')
      goto yy724;
    if (yych != 'r')
      goto yy523;
  yy724:
    yych = *++p;
    if (yych == 'C')
      goto yy725;
    if (yych != 'c')
      goto yy523;
  yy725:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy726:
    yych = *++p;
    if (yych == 'N')
      goto yy727;
    if (yych != 'n')
      goto yy523;
  yy727:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy728:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy729:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy730:
    yych = *++p;
    if (yych == 'Y')
      goto yy750;
    if (yych == 'y')
      goto yy750;
    goto yy523;
  yy731:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'E')
        goto yy747;
      if (yych <= 'N')
        goto yy523;
      goto yy748;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy523;
        goto yy747;
      } else {
        if (yych == 'o')
          goto yy748;
        goto yy523;
      }
    }
  yy732:
    yych = *++p;
    if (yych == 'A')
      goto yy742;
    if (yych == 'a')
      goto yy742;
    goto yy523;
  yy733:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy735;
      if (yych <= 'O')
        goto yy523;
      goto yy736;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy735;
      } else {
        if (yych == 'p')
          goto yy736;
        goto yy523;
      }
    }
  yy734:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy735:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy736:
    yych = *++p;
    if (yych == 'A')
      goto yy737;
    if (yych != 'a')
      goto yy523;
  yy737:
    yych = *++p;
    if (yych == 'R')
      goto yy738;
    if (yych != 'r')
      goto yy523;
  yy738:
    yych = *++p;
    if (yych == 'A')
      goto yy739;
    if (yych != 'a')
      goto yy523;
  yy739:
    yych = *++p;
    if (yych == 'Z')
      goto yy740;
    if (yych != 'z')
      goto yy523;
  yy740:
    yych = *++p;
    if (yych == 'Z')
      goto yy741;
    if (yych != 'z')
      goto yy523;
  yy741:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy742:
    yych = *++p;
    if (yych == 'T')
      goto yy743;
    if (yych != 't')
      goto yy523;
  yy743:
    yych = *++p;
    if (yych == 'F')
      goto yy744;
    if (yych != 'f')
      goto yy523;
  yy744:
    yych = *++p;
    if (yych == 'O')
      goto yy745;
    if (yych != 'o')
      goto yy523;
  yy745:
    yych = *++p;
    if (yych == 'R')
      goto yy746;
    if (yych != 'r')
      goto yy523;
  yy746:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy747:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy748:
    yych = *++p;
    if (yych == 'X')
      goto yy749;
    if (yych != 'x')
      goto yy523;
  yy749:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy750:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy751:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy752:
    yych = *++p;
    if (yych == 'A')
      goto yy753;
    if (yych != 'a')
      goto yy523;
  yy753:
    yych = *++p;
    if (yych == 'Q')
      goto yy754;
    if (yych != 'q')
      goto yy523;
  yy754:
    yych = *++p;
    if (yych == 'U')
      goto yy755;
    if (yych != 'u')
      goto yy523;
  yy755:
    yych = *++p;
    if (yych == 'E')
      goto yy756;
    if (yych != 'e')
      goto yy523;
  yy756:
    yych = *++p;
    if (yych == 'L')
      goto yy757;
    if (yych != 'l')
      goto yy523;
  yy757:
    yych = *++p;
    if (yych == 'O')
      goto yy758;
    if (yych != 'o')
      goto yy523;
  yy758:
    yych = *++p;
    if (yych == 'C')
      goto yy759;
    if (yych != 'c')
      goto yy523;
  yy759:
    yych = *++p;
    if (yych == 'K')
      goto yy760;
    if (yych != 'k')
      goto yy523;
  yy760:
    yych = *++p;
    if (yych == 'T')
      goto yy761;
    if (yych != 't')
      goto yy523;
  yy761:
    yych = *++p;
    if (yych == 'O')
      goto yy762;
    if (yych != 'o')
      goto yy523;
  yy762:
    yych = *++p;
    if (yych == 'K')
      goto yy763;
    if (yych != 'k')
      goto yy523;
  yy763:
    yych = *++p;
    if (yych == 'E')
      goto yy764;
    if (yych != 'e')
      goto yy523;
  yy764:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy765:
    yych = *++p;
    if (yych == 'T')
      goto yy772;
    if (yych == 't')
      goto yy772;
    goto yy523;
  yy766:
    yych = *++p;
    if (yych == 'T')
      goto yy771;
    if (yych == 't')
      goto yy771;
    goto yy523;
  yy767:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'H')
        goto yy533;
      if (yych == 'h')
        goto yy533;
      goto yy523;
    }
  yy768:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy769:
    yych = *++p;
    if (yych == 'W')
      goto yy770;
    if (yych != 'w')
      goto yy523;
  yy770:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy771:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy772:
    yych = *++p;
    if (yych == 'E')
      goto yy773;
    if (yych != 'e')
      goto yy523;
  yy773:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy774:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy775:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'M')
        goto yy806;
      if (yych <= 'O')
        goto yy523;
      goto yy805;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy523;
        goto yy806;
      } else {
        if (yych == 'p')
          goto yy805;
        goto yy523;
      }
    }
  yy776:
    yych = *++p;
    if (yych <= 'Q') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy523;
        goto yy798;
      } else {
        if (yych == 'N')
          goto yy799;
        goto yy523;
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'R')
          goto yy797;
        if (yych <= 'm')
          goto yy523;
        goto yy799;
      } else {
        if (yych == 'r')
          goto yy797;
        goto yy523;
      }
    }
  yy777:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy778:
    yych = *++p;
    if (yych == 'S')
      goto yy793;
    if (yych == 's')
      goto yy793;
    goto yy523;
  yy779:
    yych = *++p;
    switch (yych) {
    case 'G':
    case 'g':
      goto yy784;
    case 'I':
    case 'i':
      goto yy783;
    case 'P':
    case 'p':
      goto yy785;
    case 'R':
    case 'r':
      goto yy786;
    default:
      goto yy523;
    }
  yy780:
    yych = *++p;
    if (yych == 'Q')
      goto yy782;
    if (yych == 'q')
      goto yy782;
    goto yy523;
  yy781:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy782:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy783:
    yych = *++p;
    if (yych == 'L')
      goto yy791;
    if (yych == 'l')
      goto yy791;
    goto yy523;
  yy784:
    yych = *++p;
    if (yych == 'N')
      goto yy789;
    if (yych == 'n')
      goto yy789;
    goto yy523;
  yy785:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy786:
    yych = *++p;
    if (yych == 'K')
      goto yy787;
    if (yych != 'k')
      goto yy523;
  yy787:
    yych = *++p;
    if (yych == 'E')
      goto yy788;
    if (yych != 'e')
      goto yy523;
  yy788:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy789:
    yych = *++p;
    if (yych == 'E')
      goto yy790;
    if (yych != 'e')
      goto yy523;
  yy790:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy791:
    yych = *++p;
    if (yych == 'T')
      goto yy792;
    if (yych != 't')
      goto yy523;
  yy792:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy793:
    yych = *++p;
    if (yych == 'S')
      goto yy794;
    if (yych != 's')
      goto yy523;
  yy794:
    yych = *++p;
    if (yych == 'A')
      goto yy795;
    if (yych != 'a')
      goto yy523;
  yy795:
    yych = *++p;
    if (yych == 'G')
      goto yy796;
    if (yych != 'g')
      goto yy523;
  yy796:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy797:
    yych = *++p;
    if (yych == 'P')
      goto yy804;
    if (yych == 'p')
      goto yy804;
    goto yy523;
  yy798:
    yych = *++p;
    if (yych == 'H')
      goto yy801;
    if (yych == 'h')
      goto yy801;
    goto yy523;
  yy799:
    yych = *++p;
    if (yych == 'I')
      goto yy800;
    if (yych != 'i')
      goto yy523;
  yy800:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy801:
    yych = *++p;
    if (yych == 'E')
      goto yy802;
    if (yych != 'e')
      goto yy523;
  yy802:
    yych = *++p;
    if (yych == 'L')
      goto yy803;
    if (yych != 'l')
      goto yy523;
  yy803:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy804:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy805:
    yych = *++p;
    if (yych == 'D')
      goto yy809;
    if (yych == 'd')
      goto yy809;
    goto yy523;
  yy806:
    yych = *++p;
    if (yych == 'B')
      goto yy807;
    if (yych != 'b')
      goto yy523;
  yy807:
    yych = *++p;
    if (yych == 'L')
      goto yy808;
    if (yych != 'l')
      goto yy523;
  yy808:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy809:
    yych = *++p;
    if (yych == 'A')
      goto yy810;
    if (yych != 'a')
      goto yy523;
  yy810:
    yych = *++p;
    if (yych == 'T')
      goto yy811;
    if (yych != 't')
      goto yy523;
  yy811:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy812:
    yych = *++p;
    if (yych == 'A')
      goto yy817;
    if (yych == 'a')
      goto yy817;
    goto yy523;
  yy813:
    yych = *++p;
    if (yych == 'S')
      goto yy814;
    if (yych != 's')
      goto yy523;
  yy814:
    yych = *++p;
    if (yych == 'T')
      goto yy815;
    if (yych != 't')
      goto yy523;
  yy815:
    yych = *++p;
    if (yych == 'F')
      goto yy816;
    if (yych != 'f')
      goto yy523;
  yy816:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy817:
    yych = *++p;
    if (yych == 'P')
      goto yy818;
    if (yych != 'p')
      goto yy523;
  yy818:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy819:
    yych = *++p;
    if (yych == 'M')
      goto yy842;
    if (yych == 'm')
      goto yy842;
    goto yy523;
  yy820:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'C')
        goto yy831;
      if (yych <= 'H')
        goto yy523;
      goto yy830;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy523;
        goto yy831;
      } else {
        if (yych == 'i')
          goto yy830;
        goto yy523;
      }
    }
  yy821:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'N')
        goto yy533;
      if (yych <= 'O')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 'p')
          goto yy533;
        goto yy523;
      }
    }
  yy822:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy828;
      if (yych <= 'N')
        goto yy523;
      goto yy829;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy828;
      } else {
        if (yych == 'o')
          goto yy829;
        goto yy523;
      }
    }
  yy823:
    yych = *++p;
    if (yych == 'F')
      goto yy827;
    if (yych == 'f')
      goto yy827;
    goto yy523;
  yy824:
    yych = *++p;
    if (yych <= '@') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'A')
        goto yy826;
      if (yych == 'a')
        goto yy826;
      goto yy523;
    }
  yy825:
    yych = *++p;
    if (yych == 'X')
      goto yy533;
    if (yych == 'x')
      goto yy533;
    goto yy523;
  yy826:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy827:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy828:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy829:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy830:
    yych = *++p;
    if (yych == 'S')
      goto yy832;
    if (yych == 's')
      goto yy832;
    goto yy523;
  yy831:
    yych = *++p;
    if (yych <= ':') {
      if (yych == '6')
        goto yy533;
      if (yych <= '9')
        goto yy523;
      goto yy534;
    } else {
      if (yych <= 'S') {
        if (yych <= 'R')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy832:
    yych = *++p;
    if (yych == '.')
      goto yy833;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy833:
    yych = *++p;
    if (yych <= 'X') {
      if (yych <= 'K') {
        if (yych == 'B')
          goto yy836;
        goto yy523;
      } else {
        if (yych <= 'L')
          goto yy834;
        if (yych <= 'W')
          goto yy523;
        goto yy835;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'b')
          goto yy836;
        goto yy523;
      } else {
        if (yych <= 'l')
          goto yy834;
        if (yych == 'x')
          goto yy835;
        goto yy523;
      }
    }
  yy834:
    yych = *++p;
    if (yych == 'W')
      goto yy841;
    if (yych == 'w')
      goto yy841;
    goto yy523;
  yy835:
    yych = *++p;
    if (yych == 'P')
      goto yy839;
    if (yych == 'p')
      goto yy839;
    goto yy523;
  yy836:
    yych = *++p;
    if (yych == 'E')
      goto yy837;
    if (yych != 'e')
      goto yy523;
  yy837:
    yych = *++p;
    if (yych == 'E')
      goto yy838;
    if (yych != 'e')
      goto yy523;
  yy838:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy839:
    yych = *++p;
    if (yych == 'C')
      goto yy840;
    if (yych != 'c')
      goto yy523;
  yy840:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy841:
    yych = *++p;
    if (yych == 'Z')
      goto yy533;
    if (yych == 'z')
      goto yy533;
    goto yy523;
  yy842:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy843:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy844:
    yych = *++p;
    if (yych == 'T')
      goto yy847;
    if (yych == 't')
      goto yy847;
    goto yy523;
  yy845:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych == '3')
      goto yy533;
    goto yy523;
  yy847:
    yych = *++p;
    if (yych == 'P')
      goto yy848;
    if (yych != 'p')
      goto yy523;
  yy848:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy849:
    yych = *++p;
    if (yych == 'A')
      goto yy865;
    if (yych == 'a')
      goto yy865;
    goto yy523;
  yy850:
    yych = *++p;
    if (yych <= 'Z') {
      if (yych == 'T')
        goto yy533;
      if (yych <= 'Y')
        goto yy523;
      goto yy856;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 'z')
          goto yy856;
        goto yy523;
      }
    }
  yy851:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'P')
        goto yy853;
      if (yych == 'p')
        goto yy853;
      goto yy523;
    }
  yy852:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy853:
    yych = *++p;
    if (yych == 'H')
      goto yy854;
    if (yych != 'h')
      goto yy523;
  yy854:
    yych = *++p;
    if (yych == 'E')
      goto yy855;
    if (yych != 'e')
      goto yy523;
  yy855:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy856:
    yych = *++p;
    if (yych == 'M')
      goto yy857;
    if (yych != 'm')
      goto yy523;
  yy857:
    yych = *++p;
    if (yych == 'O')
      goto yy858;
    if (yych != 'o')
      goto yy523;
  yy858:
    yych = *++p;
    if (yych == 'P')
      goto yy859;
    if (yych != 'p')
      goto yy523;
  yy859:
    yych = *++p;
    if (yych == 'R')
      goto yy860;
    if (yych != 'r')
      goto yy523;
  yy860:
    yych = *++p;
    if (yych == 'O')
      goto yy861;
    if (yych != 'o')
      goto yy523;
  yy861:
    yych = *++p;
    if (yych == 'J')
      goto yy862;
    if (yych != 'j')
      goto yy523;
  yy862:
    yych = *++p;
    if (yych == 'E')
      goto yy863;
    if (yych != 'e')
      goto yy523;
  yy863:
    yych = *++p;
    if (yych == 'C')
      goto yy864;
    if (yych != 'c')
      goto yy523;
  yy864:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy865:
    yych = *++p;
    if (yych == 'L')
      goto yy866;
    if (yych != 'l')
      goto yy523;
  yy866:
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy867:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'M') {
        if (yych == 'L')
          goto yy877;
        goto yy523;
      } else {
        if (yych <= 'N')
          goto yy878;
        if (yych <= 'R')
          goto yy523;
        goto yy879;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'l')
          goto yy877;
        goto yy523;
      } else {
        if (yych <= 'n')
          goto yy878;
        if (yych == 's')
          goto yy879;
        goto yy523;
      }
    }
  yy868:
    yych = *++p;
    if (yych == 'E')
      goto yy876;
    if (yych == 'e')
      goto yy876;
    goto yy523;
  yy869:
    yych = *++p;
    if (yych == 'C')
      goto yy871;
    if (yych == 'c')
      goto yy871;
    goto yy523;
  yy870:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy871:
    yych = *++p;
    if (yych == 'E')
      goto yy872;
    if (yych != 'e')
      goto yy523;
  yy872:
    yych = *++p;
    if (yych == 'T')
      goto yy873;
    if (yych != 't')
      goto yy523;
  yy873:
    yych = *++p;
    if (yych == 'I')
      goto yy874;
    if (yych != 'i')
      goto yy523;
  yy874:
    yych = *++p;
    if (yych == 'M')
      goto yy875;
    if (yych != 'm')
      goto yy523;
  yy875:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy876:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy877:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy878:
    yych = *++p;
    if (yych == 'G')
      goto yy880;
    if (yych == 'g')
      goto yy880;
    goto yy523;
  yy879:
    yych = *++p;
    if (yych == 'H')
      goto yy533;
    if (yych == 'h')
      goto yy533;
    goto yy523;
  yy880:
    yych = *++p;
    if (yych == 'E')
      goto yy881;
    if (yych != 'e')
      goto yy523;
  yy881:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy882:
    yych = *++p;
    if (yych == 'T')
      goto yy900;
    if (yych == 't')
      goto yy900;
    goto yy523;
  yy883:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy884:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy885:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'P')
        goto yy533;
      if (yych <= 'R')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'p') {
        if (yych <= 'o')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy886:
    yych = *++p;
    if (yych == 'I')
      goto yy894;
    if (yych == 'i')
      goto yy894;
    goto yy523;
  yy887:
    yych = *++p;
    if (yych == 'A')
      goto yy893;
    if (yych == 'a')
      goto yy893;
    goto yy523;
  yy888:
    yych = *++p;
    if (yych == 'O')
      goto yy891;
    if (yych == 'o')
      goto yy891;
    goto yy523;
  yy889:
    yych = *++p;
    if (yych == 'A')
      goto yy890;
    if (yych != 'a')
      goto yy523;
  yy890:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy891:
    yych = *++p;
    if (yych == 'U')
      goto yy892;
    if (yych != 'u')
      goto yy523;
  yy892:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy893:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy894:
    yych = *++p;
    if (yych == 'U')
      goto yy895;
    if (yych != 'u')
      goto yy523;
  yy895:
    yych = *++p;
    if (yych == 'M')
      goto yy896;
    if (yych != 'm')
      goto yy523;
  yy896:
    yych = *++p;
    if (yych == 'X')
      goto yy897;
    if (yych != 'x')
      goto yy523;
  yy897:
    yych = *++p;
    if (yych == 'T')
      goto yy898;
    if (yych != 't')
      goto yy523;
  yy898:
    yych = *++p;
    if (yych == 'R')
      goto yy899;
    if (yych != 'r')
      goto yy523;
  yy899:
    yych = *++p;
    if (yych == 'A')
      goto yy533;
    if (yych == 'a')
      goto yy533;
    goto yy523;
  yy900:
    yych = *++p;
    if (yych == 'A')
      goto yy901;
    if (yych != 'a')
      goto yy523;
  yy901:
    yych = *++p;
    if (yych == 'C')
      goto yy902;
    if (yych != 'c')
      goto yy523;
  yy902:
    yych = *++p;
    if (yych == 'H')
      goto yy903;
    if (yych != 'h')
      goto yy523;
  yy903:
    yych = *++p;
    if (yych == 'M')
      goto yy904;
    if (yych != 'm')
      goto yy523;
  yy904:
    yych = *++p;
    if (yych == 'E')
      goto yy905;
    if (yych != 'e')
      goto yy523;
  yy905:
    yych = *++p;
    if (yych == 'N')
      goto yy906;
    if (yych != 'n')
      goto yy523;
  yy906:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy907:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy908:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'R')
        goto yy533;
      if (yych <= 'U')
        goto yy523;
    } else {
      if (yych <= 'r') {
        if (yych <= 'q')
          goto yy523;
        goto yy533;
      } else {
        if (yych != 'v')
          goto yy523;
      }
    }
    yych = *++p;
    if (yych == 'A')
      goto yy910;
    if (yych != 'a')
      goto yy523;
  yy910:
    yych = *++p;
    if (yych == 'S')
      goto yy911;
    if (yych != 's')
      goto yy523;
  yy911:
    yych = *++p;
    if (yych == 'C')
      goto yy912;
    if (yych != 'c')
      goto yy523;
  yy912:
    yych = *++p;
    if (yych == 'R')
      goto yy913;
    if (yych != 'r')
      goto yy523;
  yy913:
    yych = *++p;
    if (yych == 'I')
      goto yy914;
    if (yych != 'i')
      goto yy523;
  yy914:
    yych = *++p;
    if (yych == 'P')
      goto yy915;
    if (yych != 'p')
      goto yy523;
  yy915:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy916:
    yych = *++p;
    if (yych == 'B')
      goto yy533;
    if (yych == 'b')
      goto yy533;
    goto yy523;
  yy917:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy918:
    yych = *++p;
    if (yych == 'N')
      goto yy925;
    if (yych == 'n')
      goto yy925;
    goto yy523;
  yy919:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy920:
    yych = *++p;
    if (yych == 'C')
      goto yy924;
    if (yych == 'c')
      goto yy924;
    goto yy523;
  yy921:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'T')
        goto yy923;
      if (yych <= 'U')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy523;
        goto yy923;
      } else {
        if (yych == 'v')
          goto yy533;
        goto yy523;
      }
    }
  yy922:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy923:
    yych = *++p;
    if (yych == 'A')
      goto yy533;
    if (yych == 'a')
      goto yy533;
    goto yy523;
  yy924:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy925:
    yych = *++p;
    if (yych == 'A')
      goto yy926;
    if (yych != 'a')
      goto yy523;
  yy926:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'P')
      goto yy928;
    if (yych != 'p')
      goto yy523;
  yy928:
    yych = *++p;
    if (yych == 'L')
      goto yy929;
    if (yych != 'l')
      goto yy523;
  yy929:
    yych = *++p;
    if (yych == 'A')
      goto yy930;
    if (yych != 'a')
      goto yy523;
  yy930:
    yych = *++p;
    if (yych == 'Y')
      goto yy931;
    if (yych != 'y')
      goto yy523;
  yy931:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'C')
        goto yy932;
      if (yych <= 'R')
        goto yy523;
      goto yy933;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy523;
      } else {
        if (yych == 's')
          goto yy933;
        goto yy523;
      }
    }
  yy932:
    yych = *++p;
    if (yych == 'O')
      goto yy938;
    if (yych == 'o')
      goto yy938;
    goto yy523;
  yy933:
    yych = *++p;
    if (yych == 'I')
      goto yy934;
    if (yych != 'i')
      goto yy523;
  yy934:
    yych = *++p;
    if (yych == 'N')
      goto yy935;
    if (yych != 'n')
      goto yy523;
  yy935:
    yych = *++p;
    if (yych == 'G')
      goto yy936;
    if (yych != 'g')
      goto yy523;
  yy936:
    yych = *++p;
    if (yych == 'L')
      goto yy937;
    if (yych != 'l')
      goto yy523;
  yy937:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy938:
    yych = *++p;
    if (yych == 'N')
      goto yy939;
    if (yych != 'n')
      goto yy523;
  yy939:
    yych = *++p;
    if (yych == 'T')
      goto yy940;
    if (yych != 't')
      goto yy523;
  yy940:
    yych = *++p;
    if (yych == 'A')
      goto yy941;
    if (yych != 'a')
      goto yy523;
  yy941:
    yych = *++p;
    if (yych == 'I')
      goto yy942;
    if (yych != 'i')
      goto yy523;
  yy942:
    yych = *++p;
    if (yych == 'N')
      goto yy943;
    if (yych != 'n')
      goto yy523;
  yy943:
    yych = *++p;
    if (yych == 'E')
      goto yy944;
    if (yych != 'e')
      goto yy523;
  yy944:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy945:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy946:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'A') {
        if (yych <= '@')
          goto yy523;
        goto yy968;
      } else {
        if (yych <= 'L')
          goto yy523;
        if (yych <= 'M')
          goto yy969;
        goto yy970;
      }
    } else {
      if (yych <= 'l') {
        if (yych == 'a')
          goto yy968;
        goto yy523;
      } else {
        if (yych <= 'm')
          goto yy969;
        if (yych <= 'n')
          goto yy970;
        goto yy523;
      }
    }
  yy947:
    yych = *++p;
    if (yych == 'R')
      goto yy955;
    if (yych == 'r')
      goto yy955;
    goto yy523;
  yy948:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy952;
      if (yych <= 'O')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy952;
      } else {
        if (yych == 'p')
          goto yy533;
        goto yy523;
      }
    }
  yy949:
    yych = *++p;
    if (yych == 'I')
      goto yy951;
    if (yych == 'i')
      goto yy951;
    goto yy523;
  yy950:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy951:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy952:
    yych = *++p;
    if (yych == 'L')
      goto yy953;
    if (yych != 'l')
      goto yy523;
  yy953:
    yych = *++p;
    if (yych == 'T')
      goto yy954;
    if (yych != 't')
      goto yy523;
  yy954:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy955:
    yych = *++p;
    if (yych == 'O')
      goto yy956;
    if (yych != 'o')
      goto yy523;
  yy956:
    yych = *++p;
    if (yych == 'M')
      goto yy957;
    if (yych != 'm')
      goto yy523;
  yy957:
    yych = *++p;
    if (yych == 'E')
      goto yy958;
    if (yych != 'e')
      goto yy523;
  yy958:
    yych = *++p;
    if (yych == '-')
      goto yy959;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy959:
    yych = *++p;
    if (yych == 'E')
      goto yy960;
    if (yych != 'e')
      goto yy523;
  yy960:
    yych = *++p;
    if (yych == 'X')
      goto yy961;
    if (yych != 'x')
      goto yy523;
  yy961:
    yych = *++p;
    if (yych == 'T')
      goto yy962;
    if (yych != 't')
      goto yy523;
  yy962:
    yych = *++p;
    if (yych == 'E')
      goto yy963;
    if (yych != 'e')
      goto yy523;
  yy963:
    yych = *++p;
    if (yych == 'N')
      goto yy964;
    if (yych != 'n')
      goto yy523;
  yy964:
    yych = *++p;
    if (yych == 'S')
      goto yy965;
    if (yych != 's')
      goto yy523;
  yy965:
    yych = *++p;
    if (yych == 'I')
      goto yy966;
    if (yych != 'i')
      goto yy523;
  yy966:
    yych = *++p;
    if (yych == 'O')
      goto yy967;
    if (yych != 'o')
      goto yy523;
  yy967:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy968:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy969:
    yych = *++p;
    if (yych == '-')
      goto yy974;
    goto yy523;
  yy970:
    yych = *++p;
    if (yych == 'T')
      goto yy971;
    if (yych != 't')
      goto yy523;
  yy971:
    yych = *++p;
    if (yych == 'E')
      goto yy972;
    if (yych != 'e')
      goto yy523;
  yy972:
    yych = *++p;
    if (yych == 'N')
      goto yy973;
    if (yych != 'n')
      goto yy523;
  yy973:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy974:
    yych = *++p;
    if (yych == 'E')
      goto yy975;
    if (yych != 'e')
      goto yy523;
  yy975:
    yych = *++p;
    if (yych == 'V')
      goto yy976;
    if (yych != 'v')
      goto yy523;
  yy976:
    yych = *++p;
    if (yych == 'E')
      goto yy977;
    if (yych != 'e')
      goto yy523;
  yy977:
    yych = *++p;
    if (yych == 'N')
      goto yy978;
    if (yych != 'n')
      goto yy523;
  yy978:
    yych = *++p;
    if (yych == 'T')
      goto yy979;
    if (yych != 't')
      goto yy523;
  yy979:
    yych = *++p;
    if (yych == 'B')
      goto yy980;
    if (yych != 'b')
      goto yy523;
  yy980:
    yych = *++p;
    if (yych == 'R')
      goto yy981;
    if (yych != 'r')
      goto yy523;
  yy981:
    yych = *++p;
    if (yych == 'I')
      goto yy982;
    if (yych != 'i')
      goto yy523;
  yy982:
    yych = *++p;
    if (yych == 'T')
      goto yy983;
    if (yych != 't')
      goto yy523;
  yy983:
    yych = *++p;
    if (yych == 'E')
      goto yy984;
    if (yych != 'e')
      goto yy523;
  yy984:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'A')
      goto yy986;
    if (yych != 'a')
      goto yy523;
  yy986:
    yych = *++p;
    if (yych == 'T')
      goto yy987;
    if (yych != 't')
      goto yy523;
  yy987:
    yych = *++p;
    if (yych == 'T')
      goto yy988;
    if (yych != 't')
      goto yy523;
  yy988:
    yych = *++p;
    if (yych == 'E')
      goto yy989;
    if (yych != 'e')
      goto yy523;
  yy989:
    yych = *++p;
    if (yych == 'N')
      goto yy990;
    if (yych != 'n')
      goto yy523;
  yy990:
    yych = *++p;
    if (yych == 'D')
      goto yy991;
    if (yych != 'd')
      goto yy523;
  yy991:
    yych = *++p;
    if (yych == 'E')
      goto yy992;
    if (yych != 'e')
      goto yy523;
  yy992:
    ++p;
    if ((yych = *p) == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  }
}

// Try to match email autolink after first <, returning num of chars matched.
bufsize_t _scan_autolink_email(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= '?') {
      if (yych <= ')') {
        if (yych <= ' ') {
          if (yych != '\n')
            goto yy997;
        } else {
          if (yych == '"')
            goto yy997;
          if (yych <= '\'')
            goto yy996;
          goto yy997;
        }
      } else {
        if (yych <= '9') {
          if (yych == ',')
            goto yy997;
          goto yy996;
        } else {
          if (yych == '=')
            goto yy996;
          if (yych <= '>')
            goto yy997;
          goto yy996;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= ']') {
          if (yych <= '@')
            goto yy997;
          if (yych <= 'Z')
            goto yy996;
          goto yy997;
        } else {
          if (yych <= '~')
            goto yy996;
          if (yych <= 0x7F)
            goto yy997;
          if (yych >= 0xC2)
            goto yy998;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1000;
          if (yych == 0xED)
            goto yy1005;
          goto yy1001;
        } else {
          if (yych <= 0xF0)
            goto yy1002;
          if (yych <= 0xF3)
            goto yy1003;
          if (yych <= 0xF4)
            goto yy1004;
        }
      }
    }
  yy995 : { return 0; }
  yy996:
    yych = *(marker = ++p);
    if (yych <= ',') {
      if (yych <= '"') {
        if (yych == '!')
          goto yy1008;
        goto yy995;
      } else {
        if (yych <= '\'')
          goto yy1008;
        if (yych <= ')')
          goto yy995;
        if (yych <= '+')
          goto yy1008;
        goto yy995;
      }
    } else {
      if (yych <= '>') {
        if (yych <= '9')
          goto yy1008;
        if (yych == '=')
          goto yy1008;
        goto yy995;
      } else {
        if (yych <= 'Z')
          goto yy1008;
        if (yych <= ']')
          goto yy995;
        if (yych <= '~')
          goto yy1008;
        goto yy995;
      }
    }
  yy997:
    yych = *++p;
    goto yy995;
  yy998:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy997;
  yy999:
    p = marker;
    goto yy995;
  yy1000:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy998;
    goto yy999;
  yy1001:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy998;
    goto yy999;
  yy1002:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy1001;
    goto yy999;
  yy1003:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy1001;
    goto yy999;
  yy1004:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0x8F)
      goto yy1001;
    goto yy999;
  yy1005:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0x9F)
      goto yy998;
    goto yy999;
  yy1006:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1009;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1009;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1009;
      goto yy999;
    }
  yy1007:
    ++p;
    yych = *p;
  yy1008:
    if (yybm[0 + yych] & 128) {
      goto yy1007;
    }
    if (yych <= '>')
      goto yy999;
    if (yych <= '@')
      goto yy1006;
    goto yy999;
  yy1009:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1011;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1011;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1011;
        goto yy999;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1139;
      if (yych <= '/')
        goto yy999;
      goto yy1140;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1140;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1140;
        goto yy999;
      }
    }
  yy1011:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych <= '-')
          goto yy1139;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1140;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1140;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1140;
        goto yy999;
      }
    }
  yy1012:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1015;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1015;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1015;
      goto yy999;
    }
  yy1013:
    ++p;
    { return (bufsize_t)(p - start); }
  yy1015:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1017;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1017;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1017;
        goto yy999;
      }
    }
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1018;
      if (yych <= '/')
        goto yy999;
      goto yy1019;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1019;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1019;
        goto yy999;
      }
    }
  yy1017:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1019;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1019;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1019;
        goto yy999;
      }
    }
  yy1018:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1020;
      if (yych <= '/')
        goto yy999;
      goto yy1021;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1021;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1021;
        goto yy999;
      }
    }
  yy1019:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1021;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1021;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1021;
        goto yy999;
      }
    }
  yy1020:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1022;
      if (yych <= '/')
        goto yy999;
      goto yy1023;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1023;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1023;
        goto yy999;
      }
    }
  yy1021:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1023;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1023;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1023;
        goto yy999;
      }
    }
  yy1022:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1024;
      if (yych <= '/')
        goto yy999;
      goto yy1025;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1025;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1025;
        goto yy999;
      }
    }
  yy1023:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1025;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1025;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1025;
        goto yy999;
      }
    }
  yy1024:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1026;
      if (yych <= '/')
        goto yy999;
      goto yy1027;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1027;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1027;
        goto yy999;
      }
    }
  yy1025:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1027;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1027;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1027;
        goto yy999;
      }
    }
  yy1026:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1028;
      if (yych <= '/')
        goto yy999;
      goto yy1029;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1029;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1029;
        goto yy999;
      }
    }
  yy1027:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1029;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1029;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1029;
        goto yy999;
      }
    }
  yy1028:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1030;
      if (yych <= '/')
        goto yy999;
      goto yy1031;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1031;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1031;
        goto yy999;
      }
    }
  yy1029:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1031;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1031;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1031;
        goto yy999;
      }
    }
  yy1030:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1032;
      if (yych <= '/')
        goto yy999;
      goto yy1033;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1033;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1033;
        goto yy999;
      }
    }
  yy1031:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1033;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1033;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1033;
        goto yy999;
      }
    }
  yy1032:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1034;
      if (yych <= '/')
        goto yy999;
      goto yy1035;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1035;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1035;
        goto yy999;
      }
    }
  yy1033:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1035;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1035;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1035;
        goto yy999;
      }
    }
  yy1034:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1036;
      if (yych <= '/')
        goto yy999;
      goto yy1037;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1037;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1037;
        goto yy999;
      }
    }
  yy1035:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1037;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1037;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1037;
        goto yy999;
      }
    }
  yy1036:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1038;
      if (yych <= '/')
        goto yy999;
      goto yy1039;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1039;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1039;
        goto yy999;
      }
    }
  yy1037:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1039;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1039;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1039;
        goto yy999;
      }
    }
  yy1038:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1040;
      if (yych <= '/')
        goto yy999;
      goto yy1041;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1041;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1041;
        goto yy999;
      }
    }
  yy1039:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1041;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1041;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1041;
        goto yy999;
      }
    }
  yy1040:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1042;
      if (yych <= '/')
        goto yy999;
      goto yy1043;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1043;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1043;
        goto yy999;
      }
    }
  yy1041:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1043;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1043;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1043;
        goto yy999;
      }
    }
  yy1042:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1044;
      if (yych <= '/')
        goto yy999;
      goto yy1045;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1045;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1045;
        goto yy999;
      }
    }
  yy1043:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1045;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1045;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1045;
        goto yy999;
      }
    }
  yy1044:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1046;
      if (yych <= '/')
        goto yy999;
      goto yy1047;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1047;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1047;
        goto yy999;
      }
    }
  yy1045:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1047;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1047;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1047;
        goto yy999;
      }
    }
  yy1046:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1048;
      if (yych <= '/')
        goto yy999;
      goto yy1049;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1049;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1049;
        goto yy999;
      }
    }
  yy1047:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1049;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1049;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1049;
        goto yy999;
      }
    }
  yy1048:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1050;
      if (yych <= '/')
        goto yy999;
      goto yy1051;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1051;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1051;
        goto yy999;
      }
    }
  yy1049:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1051;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1051;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1051;
        goto yy999;
      }
    }
  yy1050:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1052;
      if (yych <= '/')
        goto yy999;
      goto yy1053;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1053;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1053;
        goto yy999;
      }
    }
  yy1051:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1053;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1053;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1053;
        goto yy999;
      }
    }
  yy1052:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1054;
      if (yych <= '/')
        goto yy999;
      goto yy1055;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1055;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1055;
        goto yy999;
      }
    }
  yy1053:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1055;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1055;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1055;
        goto yy999;
      }
    }
  yy1054:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1056;
      if (yych <= '/')
        goto yy999;
      goto yy1057;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1057;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1057;
        goto yy999;
      }
    }
  yy1055:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1057;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1057;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1057;
        goto yy999;
      }
    }
  yy1056:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1058;
      if (yych <= '/')
        goto yy999;
      goto yy1059;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1059;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1059;
        goto yy999;
      }
    }
  yy1057:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1059;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1059;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1059;
        goto yy999;
      }
    }
  yy1058:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1060;
      if (yych <= '/')
        goto yy999;
      goto yy1061;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1061;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1061;
        goto yy999;
      }
    }
  yy1059:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1061;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1061;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1061;
        goto yy999;
      }
    }
  yy1060:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1062;
      if (yych <= '/')
        goto yy999;
      goto yy1063;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1063;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1063;
        goto yy999;
      }
    }
  yy1061:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1063;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1063;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1063;
        goto yy999;
      }
    }
  yy1062:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1064;
      if (yych <= '/')
        goto yy999;
      goto yy1065;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1065;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1065;
        goto yy999;
      }
    }
  yy1063:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1065;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1065;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1065;
        goto yy999;
      }
    }
  yy1064:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1066;
      if (yych <= '/')
        goto yy999;
      goto yy1067;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1067;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1067;
        goto yy999;
      }
    }
  yy1065:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1067;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1067;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1067;
        goto yy999;
      }
    }
  yy1066:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1068;
      if (yych <= '/')
        goto yy999;
      goto yy1069;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1069;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1069;
        goto yy999;
      }
    }
  yy1067:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1069;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1069;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1069;
        goto yy999;
      }
    }
  yy1068:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1070;
      if (yych <= '/')
        goto yy999;
      goto yy1071;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1071;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1071;
        goto yy999;
      }
    }
  yy1069:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1071;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1071;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1071;
        goto yy999;
      }
    }
  yy1070:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1072;
      if (yych <= '/')
        goto yy999;
      goto yy1073;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1073;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1073;
        goto yy999;
      }
    }
  yy1071:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1073;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1073;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1073;
        goto yy999;
      }
    }
  yy1072:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1074;
      if (yych <= '/')
        goto yy999;
      goto yy1075;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1075;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1075;
        goto yy999;
      }
    }
  yy1073:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1075;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1075;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1075;
        goto yy999;
      }
    }
  yy1074:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1076;
      if (yych <= '/')
        goto yy999;
      goto yy1077;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1077;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1077;
        goto yy999;
      }
    }
  yy1075:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1077;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1077;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1077;
        goto yy999;
      }
    }
  yy1076:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1078;
      if (yych <= '/')
        goto yy999;
      goto yy1079;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1079;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1079;
        goto yy999;
      }
    }
  yy1077:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1079;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1079;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1079;
        goto yy999;
      }
    }
  yy1078:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1080;
      if (yych <= '/')
        goto yy999;
      goto yy1081;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1081;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1081;
        goto yy999;
      }
    }
  yy1079:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1081;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1081;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1081;
        goto yy999;
      }
    }
  yy1080:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1082;
      if (yych <= '/')
        goto yy999;
      goto yy1083;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1083;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1083;
        goto yy999;
      }
    }
  yy1081:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1083;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1083;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1083;
        goto yy999;
      }
    }
  yy1082:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1084;
      if (yych <= '/')
        goto yy999;
      goto yy1085;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1085;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1085;
        goto yy999;
      }
    }
  yy1083:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1085;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1085;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1085;
        goto yy999;
      }
    }
  yy1084:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1086;
      if (yych <= '/')
        goto yy999;
      goto yy1087;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1087;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1087;
        goto yy999;
      }
    }
  yy1085:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1087;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1087;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1087;
        goto yy999;
      }
    }
  yy1086:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1088;
      if (yych <= '/')
        goto yy999;
      goto yy1089;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1089;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1089;
        goto yy999;
      }
    }
  yy1087:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1089;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1089;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1089;
        goto yy999;
      }
    }
  yy1088:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1090;
      if (yych <= '/')
        goto yy999;
      goto yy1091;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1091;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1091;
        goto yy999;
      }
    }
  yy1089:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1091;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1091;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1091;
        goto yy999;
      }
    }
  yy1090:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1092;
      if (yych <= '/')
        goto yy999;
      goto yy1093;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1093;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1093;
        goto yy999;
      }
    }
  yy1091:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1093;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1093;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1093;
        goto yy999;
      }
    }
  yy1092:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1094;
      if (yych <= '/')
        goto yy999;
      goto yy1095;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1095;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1095;
        goto yy999;
      }
    }
  yy1093:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1095;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1095;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1095;
        goto yy999;
      }
    }
  yy1094:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1096;
      if (yych <= '/')
        goto yy999;
      goto yy1097;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1097;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1097;
        goto yy999;
      }
    }
  yy1095:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1097;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1097;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1097;
        goto yy999;
      }
    }
  yy1096:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1098;
      if (yych <= '/')
        goto yy999;
      goto yy1099;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1099;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1099;
        goto yy999;
      }
    }
  yy1097:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1099;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1099;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1099;
        goto yy999;
      }
    }
  yy1098:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1100;
      if (yych <= '/')
        goto yy999;
      goto yy1101;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1101;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1101;
        goto yy999;
      }
    }
  yy1099:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1101;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1101;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1101;
        goto yy999;
      }
    }
  yy1100:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1102;
      if (yych <= '/')
        goto yy999;
      goto yy1103;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1103;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1103;
        goto yy999;
      }
    }
  yy1101:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1103;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1103;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1103;
        goto yy999;
      }
    }
  yy1102:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1104;
      if (yych <= '/')
        goto yy999;
      goto yy1105;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1105;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1105;
        goto yy999;
      }
    }
  yy1103:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1105;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1105;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1105;
        goto yy999;
      }
    }
  yy1104:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1106;
      if (yych <= '/')
        goto yy999;
      goto yy1107;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1107;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1107;
        goto yy999;
      }
    }
  yy1105:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1107;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1107;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1107;
        goto yy999;
      }
    }
  yy1106:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1108;
      if (yych <= '/')
        goto yy999;
      goto yy1109;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1109;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1109;
        goto yy999;
      }
    }
  yy1107:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1109;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1109;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1109;
        goto yy999;
      }
    }
  yy1108:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1110;
      if (yych <= '/')
        goto yy999;
      goto yy1111;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1111;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1111;
        goto yy999;
      }
    }
  yy1109:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1111;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1111;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1111;
        goto yy999;
      }
    }
  yy1110:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1112;
      if (yych <= '/')
        goto yy999;
      goto yy1113;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1113;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1113;
        goto yy999;
      }
    }
  yy1111:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1113;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1113;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1113;
        goto yy999;
      }
    }
  yy1112:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1114;
      if (yych <= '/')
        goto yy999;
      goto yy1115;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1115;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1115;
        goto yy999;
      }
    }
  yy1113:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1115;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1115;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1115;
        goto yy999;
      }
    }
  yy1114:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1116;
      if (yych <= '/')
        goto yy999;
      goto yy1117;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1117;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1117;
        goto yy999;
      }
    }
  yy1115:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1117;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1117;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1117;
        goto yy999;
      }
    }
  yy1116:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1118;
      if (yych <= '/')
        goto yy999;
      goto yy1119;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1119;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1119;
        goto yy999;
      }
    }
  yy1117:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1119;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1119;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1119;
        goto yy999;
      }
    }
  yy1118:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1120;
      if (yych <= '/')
        goto yy999;
      goto yy1121;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1121;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1121;
        goto yy999;
      }
    }
  yy1119:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1121;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1121;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1121;
        goto yy999;
      }
    }
  yy1120:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1122;
      if (yych <= '/')
        goto yy999;
      goto yy1123;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1123;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1123;
        goto yy999;
      }
    }
  yy1121:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1123;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1123;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1123;
        goto yy999;
      }
    }
  yy1122:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1124;
      if (yych <= '/')
        goto yy999;
      goto yy1125;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1125;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1125;
        goto yy999;
      }
    }
  yy1123:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1125;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1125;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1125;
        goto yy999;
      }
    }
  yy1124:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1126;
      if (yych <= '/')
        goto yy999;
      goto yy1127;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1127;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1127;
        goto yy999;
      }
    }
  yy1125:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1127;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1127;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1127;
        goto yy999;
      }
    }
  yy1126:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1128;
      if (yych <= '/')
        goto yy999;
      goto yy1129;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1129;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1129;
        goto yy999;
      }
    }
  yy1127:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1129;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1129;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1129;
        goto yy999;
      }
    }
  yy1128:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1130;
      if (yych <= '/')
        goto yy999;
      goto yy1131;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1131;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1131;
        goto yy999;
      }
    }
  yy1129:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1131;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1131;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1131;
        goto yy999;
      }
    }
  yy1130:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1132;
      if (yych <= '/')
        goto yy999;
      goto yy1133;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1133;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1133;
        goto yy999;
      }
    }
  yy1131:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1133;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1133;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1133;
        goto yy999;
      }
    }
  yy1132:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1134;
      if (yych <= '/')
        goto yy999;
      goto yy1135;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1135;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1135;
        goto yy999;
      }
    }
  yy1133:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1135;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1135;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1135;
        goto yy999;
      }
    }
  yy1134:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1136;
      if (yych <= '/')
        goto yy999;
      goto yy1137;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1137;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1137;
        goto yy999;
      }
    }
  yy1135:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1137;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1137;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1137;
        goto yy999;
      }
    }
  yy1136:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1138;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1138;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1138;
      goto yy999;
    }
  yy1137:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= '-')
          goto yy999;
        goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych >= ':')
          goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych >= '{')
          goto yy999;
      }
    }
  yy1138:
    ++p;
    yych = *p;
    if (yych == '.')
      goto yy1012;
    if (yych == '>')
      goto yy1013;
    goto yy999;
  yy1139:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1141;
      if (yych <= '/')
        goto yy999;
      goto yy1142;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1142;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1142;
        goto yy999;
      }
    }
  yy1140:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1142;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1142;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1142;
        goto yy999;
      }
    }
  yy1141:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1143;
      if (yych <= '/')
        goto yy999;
      goto yy1144;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1144;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1144;
        goto yy999;
      }
    }
  yy1142:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1144;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1144;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1144;
        goto yy999;
      }
    }
  yy1143:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1145;
      if (yych <= '/')
        goto yy999;
      goto yy1146;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1146;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1146;
        goto yy999;
      }
    }
  yy1144:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1146;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1146;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1146;
        goto yy999;
      }
    }
  yy1145:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1147;
      if (yych <= '/')
        goto yy999;
      goto yy1148;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1148;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1148;
        goto yy999;
      }
    }
  yy1146:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1148;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1148;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1148;
        goto yy999;
      }
    }
  yy1147:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1149;
      if (yych <= '/')
        goto yy999;
      goto yy1150;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1150;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1150;
        goto yy999;
      }
    }
  yy1148:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1150;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1150;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1150;
        goto yy999;
      }
    }
  yy1149:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1151;
      if (yych <= '/')
        goto yy999;
      goto yy1152;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1152;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1152;
        goto yy999;
      }
    }
  yy1150:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1152;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1152;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1152;
        goto yy999;
      }
    }
  yy1151:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1153;
      if (yych <= '/')
        goto yy999;
      goto yy1154;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1154;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1154;
        goto yy999;
      }
    }
  yy1152:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1154;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1154;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1154;
        goto yy999;
      }
    }
  yy1153:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1155;
      if (yych <= '/')
        goto yy999;
      goto yy1156;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1156;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1156;
        goto yy999;
      }
    }
  yy1154:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1156;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1156;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1156;
        goto yy999;
      }
    }
  yy1155:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1157;
      if (yych <= '/')
        goto yy999;
      goto yy1158;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1158;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1158;
        goto yy999;
      }
    }
  yy1156:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1158;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1158;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1158;
        goto yy999;
      }
    }
  yy1157:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1159;
      if (yych <= '/')
        goto yy999;
      goto yy1160;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1160;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1160;
        goto yy999;
      }
    }
  yy1158:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1160;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1160;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1160;
        goto yy999;
      }
    }
  yy1159:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1161;
      if (yych <= '/')
        goto yy999;
      goto yy1162;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1162;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1162;
        goto yy999;
      }
    }
  yy1160:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1162;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1162;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1162;
        goto yy999;
      }
    }
  yy1161:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1163;
      if (yych <= '/')
        goto yy999;
      goto yy1164;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1164;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1164;
        goto yy999;
      }
    }
  yy1162:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1164;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1164;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1164;
        goto yy999;
      }
    }
  yy1163:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1165;
      if (yych <= '/')
        goto yy999;
      goto yy1166;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1166;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1166;
        goto yy999;
      }
    }
  yy1164:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1166;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1166;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1166;
        goto yy999;
      }
    }
  yy1165:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1167;
      if (yych <= '/')
        goto yy999;
      goto yy1168;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1168;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1168;
        goto yy999;
      }
    }
  yy1166:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1168;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1168;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1168;
        goto yy999;
      }
    }
  yy1167:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1169;
      if (yych <= '/')
        goto yy999;
      goto yy1170;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1170;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1170;
        goto yy999;
      }
    }
  yy1168:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1170;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1170;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1170;
        goto yy999;
      }
    }
  yy1169:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1171;
      if (yych <= '/')
        goto yy999;
      goto yy1172;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1172;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1172;
        goto yy999;
      }
    }
  yy1170:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1172;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1172;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1172;
        goto yy999;
      }
    }
  yy1171:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1173;
      if (yych <= '/')
        goto yy999;
      goto yy1174;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1174;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1174;
        goto yy999;
      }
    }
  yy1172:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1174;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1174;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1174;
        goto yy999;
      }
    }
  yy1173:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1175;
      if (yych <= '/')
        goto yy999;
      goto yy1176;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1176;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1176;
        goto yy999;
      }
    }
  yy1174:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1176;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1176;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1176;
        goto yy999;
      }
    }
  yy1175:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1177;
      if (yych <= '/')
        goto yy999;
      goto yy1178;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1178;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1178;
        goto yy999;
      }
    }
  yy1176:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1178;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1178;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1178;
        goto yy999;
      }
    }
  yy1177:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1179;
      if (yych <= '/')
        goto yy999;
      goto yy1180;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1180;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1180;
        goto yy999;
      }
    }
  yy1178:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1180;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1180;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1180;
        goto yy999;
      }
    }
  yy1179:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1181;
      if (yych <= '/')
        goto yy999;
      goto yy1182;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1182;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1182;
        goto yy999;
      }
    }
  yy1180:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1182;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1182;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1182;
        goto yy999;
      }
    }
  yy1181:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1183;
      if (yych <= '/')
        goto yy999;
      goto yy1184;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1184;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1184;
        goto yy999;
      }
    }
  yy1182:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1184;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1184;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1184;
        goto yy999;
      }
    }
  yy1183:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1185;
      if (yych <= '/')
        goto yy999;
      goto yy1186;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1186;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1186;
        goto yy999;
      }
    }
  yy1184:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1186;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1186;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1186;
        goto yy999;
      }
    }
  yy1185:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1187;
      if (yych <= '/')
        goto yy999;
      goto yy1188;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1188;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1188;
        goto yy999;
      }
    }
  yy1186:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1188;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1188;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1188;
        goto yy999;
      }
    }
  yy1187:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1189;
      if (yych <= '/')
        goto yy999;
      goto yy1190;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1190;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1190;
        goto yy999;
      }
    }
  yy1188:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1190;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1190;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1190;
        goto yy999;
      }
    }
  yy1189:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1191;
      if (yych <= '/')
        goto yy999;
      goto yy1192;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1192;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1192;
        goto yy999;
      }
    }
  yy1190:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1192;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1192;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1192;
        goto yy999;
      }
    }
  yy1191:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1193;
      if (yych <= '/')
        goto yy999;
      goto yy1194;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1194;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1194;
        goto yy999;
      }
    }
  yy1192:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1194;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1194;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1194;
        goto yy999;
      }
    }
  yy1193:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1195;
      if (yych <= '/')
        goto yy999;
      goto yy1196;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1196;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1196;
        goto yy999;
      }
    }
  yy1194:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1196;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1196;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1196;
        goto yy999;
      }
    }
  yy1195:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1197;
      if (yych <= '/')
        goto yy999;
      goto yy1198;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1198;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1198;
        goto yy999;
      }
    }
  yy1196:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1198;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1198;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1198;
        goto yy999;
      }
    }
  yy1197:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1199;
      if (yych <= '/')
        goto yy999;
      goto yy1200;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1200;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1200;
        goto yy999;
      }
    }
  yy1198:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1200;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1200;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1200;
        goto yy999;
      }
    }
  yy1199:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1201;
      if (yych <= '/')
        goto yy999;
      goto yy1202;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1202;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1202;
        goto yy999;
      }
    }
  yy1200:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1202;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1202;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1202;
        goto yy999;
      }
    }
  yy1201:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1203;
      if (yych <= '/')
        goto yy999;
      goto yy1204;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1204;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1204;
        goto yy999;
      }
    }
  yy1202:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1204;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1204;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1204;
        goto yy999;
      }
    }
  yy1203:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1205;
      if (yych <= '/')
        goto yy999;
      goto yy1206;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1206;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1206;
        goto yy999;
      }
    }
  yy1204:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1206;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1206;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1206;
        goto yy999;
      }
    }
  yy1205:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1207;
      if (yych <= '/')
        goto yy999;
      goto yy1208;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1208;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1208;
        goto yy999;
      }
    }
  yy1206:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1208;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1208;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1208;
        goto yy999;
      }
    }
  yy1207:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1209;
      if (yych <= '/')
        goto yy999;
      goto yy1210;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1210;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1210;
        goto yy999;
      }
    }
  yy1208:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1210;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1210;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1210;
        goto yy999;
      }
    }
  yy1209:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1211;
      if (yych <= '/')
        goto yy999;
      goto yy1212;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1212;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1212;
        goto yy999;
      }
    }
  yy1210:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1212;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1212;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1212;
        goto yy999;
      }
    }
  yy1211:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1213;
      if (yych <= '/')
        goto yy999;
      goto yy1214;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1214;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1214;
        goto yy999;
      }
    }
  yy1212:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1214;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1214;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1214;
        goto yy999;
      }
    }
  yy1213:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1215;
      if (yych <= '/')
        goto yy999;
      goto yy1216;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1216;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1216;
        goto yy999;
      }
    }
  yy1214:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1216;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1216;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1216;
        goto yy999;
      }
    }
  yy1215:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1217;
      if (yych <= '/')
        goto yy999;
      goto yy1218;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1218;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1218;
        goto yy999;
      }
    }
  yy1216:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1218;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1218;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1218;
        goto yy999;
      }
    }
  yy1217:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1219;
      if (yych <= '/')
        goto yy999;
      goto yy1220;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1220;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1220;
        goto yy999;
      }
    }
  yy1218:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1220;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1220;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1220;
        goto yy999;
      }
    }
  yy1219:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1221;
      if (yych <= '/')
        goto yy999;
      goto yy1222;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1222;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1222;
        goto yy999;
      }
    }
  yy1220:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1222;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1222;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1222;
        goto yy999;
      }
    }
  yy1221:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1223;
      if (yych <= '/')
        goto yy999;
      goto yy1224;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1224;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1224;
        goto yy999;
      }
    }
  yy1222:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1224;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1224;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1224;
        goto yy999;
      }
    }
  yy1223:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1225;
      if (yych <= '/')
        goto yy999;
      goto yy1226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1226;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1226;
        goto yy999;
      }
    }
  yy1224:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1226;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1226;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1226;
        goto yy999;
      }
    }
  yy1225:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1227;
      if (yych <= '/')
        goto yy999;
      goto yy1228;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1228;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1228;
        goto yy999;
      }
    }
  yy1226:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1228;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1228;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1228;
        goto yy999;
      }
    }
  yy1227:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1229;
      if (yych <= '/')
        goto yy999;
      goto yy1230;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1230;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1230;
        goto yy999;
      }
    }
  yy1228:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1230;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1230;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1230;
        goto yy999;
      }
    }
  yy1229:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1231;
      if (yych <= '/')
        goto yy999;
      goto yy1232;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1232;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1232;
        goto yy999;
      }
    }
  yy1230:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1232;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1232;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1232;
        goto yy999;
      }
    }
  yy1231:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1233;
      if (yych <= '/')
        goto yy999;
      goto yy1234;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1234;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1234;
        goto yy999;
      }
    }
  yy1232:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1234;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1234;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1234;
        goto yy999;
      }
    }
  yy1233:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1235;
      if (yych <= '/')
        goto yy999;
      goto yy1236;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1236;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1236;
        goto yy999;
      }
    }
  yy1234:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1236;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1236;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1236;
        goto yy999;
      }
    }
  yy1235:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1237;
      if (yych <= '/')
        goto yy999;
      goto yy1238;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1238;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1238;
        goto yy999;
      }
    }
  yy1236:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1238;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1238;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1238;
        goto yy999;
      }
    }
  yy1237:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1239;
      if (yych <= '/')
        goto yy999;
      goto yy1240;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1240;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1240;
        goto yy999;
      }
    }
  yy1238:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1240;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1240;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1240;
        goto yy999;
      }
    }
  yy1239:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1241;
      if (yych <= '/')
        goto yy999;
      goto yy1242;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1242;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1242;
        goto yy999;
      }
    }
  yy1240:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1242;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1242;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1242;
        goto yy999;
      }
    }
  yy1241:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1243;
      if (yych <= '/')
        goto yy999;
      goto yy1244;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1244;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1244;
        goto yy999;
      }
    }
  yy1242:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1244;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1244;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1244;
        goto yy999;
      }
    }
  yy1243:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1245;
      if (yych <= '/')
        goto yy999;
      goto yy1246;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1246;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1246;
        goto yy999;
      }
    }
  yy1244:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1246;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1246;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1246;
        goto yy999;
      }
    }
  yy1245:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1247;
      if (yych <= '/')
        goto yy999;
      goto yy1248;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1248;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1248;
        goto yy999;
      }
    }
  yy1246:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1248;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1248;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1248;
        goto yy999;
      }
    }
  yy1247:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1249;
      if (yych <= '/')
        goto yy999;
      goto yy1250;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1250;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1250;
        goto yy999;
      }
    }
  yy1248:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1250;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1250;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1250;
        goto yy999;
      }
    }
  yy1249:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1251;
      if (yych <= '/')
        goto yy999;
      goto yy1252;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1252;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1252;
        goto yy999;
      }
    }
  yy1250:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1252;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1252;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1252;
        goto yy999;
      }
    }
  yy1251:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1253;
      if (yych <= '/')
        goto yy999;
      goto yy1254;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1254;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1254;
        goto yy999;
      }
    }
  yy1252:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1254;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1254;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1254;
        goto yy999;
      }
    }
  yy1253:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1255;
      if (yych <= '/')
        goto yy999;
      goto yy1256;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1256;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1256;
        goto yy999;
      }
    }
  yy1254:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1256;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1256;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1256;
        goto yy999;
      }
    }
  yy1255:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1257;
      if (yych <= '/')
        goto yy999;
      goto yy1258;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1258;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1258;
        goto yy999;
      }
    }
  yy1256:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1258;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1258;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1258;
        goto yy999;
      }
    }
  yy1257:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1138;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1138;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1138;
      goto yy999;
    }
  yy1258:
    ++p;
    if ((yych = *p) <= '=') {
      if (yych <= '.') {
        if (yych <= '-')
          goto yy999;
        goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1138;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1138;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1138;
        goto yy999;
      }
    }
  }
}

// Try to match an HTML tag after first <, returning num of chars matched.
bufsize_t _scan_html_tag(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        /* table 1 .. 8: 0 */
        0, 230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199, 230,
        230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
        230, 230, 230, 199, 230, 70, 230, 230, 230, 230, 134, 230, 230, 230,
        230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 246, 230, 198, 198, 196, 230, 230, 254, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 230, 230, 226, 230, 246, 198, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 230, 230, 230, 230,
        230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        /* table 9 .. 11: 256 */
        0, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 32, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 128, 160, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= '`') {
      if (yych <= '.') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1266;
        } else {
          if (yych == '!')
            goto yy1264;
          goto yy1266;
        }
      } else {
        if (yych <= '?') {
          if (yych <= '/')
            goto yy1263;
          if (yych <= '>')
            goto yy1266;
          goto yy1265;
        } else {
          if (yych <= '@')
            goto yy1266;
          if (yych <= 'Z')
            goto yy1262;
          goto yy1266;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 'z')
            goto yy1262;
          if (yych <= 0x7F)
            goto yy1266;
        } else {
          if (yych <= 0xDF)
            goto yy1267;
          if (yych <= 0xE0)
            goto yy1269;
          goto yy1270;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1274;
          if (yych <= 0xEF)
            goto yy1270;
          goto yy1271;
        } else {
          if (yych <= 0xF3)
            goto yy1272;
          if (yych <= 0xF4)
            goto yy1273;
        }
      }
    }
  yy1261 : { return 0; }
  yy1262:
    yych = *(marker = ++p);
    if (yych <= '/') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1261;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1261;
        goto yy1366;
      } else {
        if (yych == '-')
          goto yy1364;
        if (yych <= '.')
          goto yy1261;
        goto yy1368;
      }
    } else {
      if (yych <= '@') {
        if (yych <= '9')
          goto yy1364;
        if (yych == '>')
          goto yy1285;
        goto yy1261;
      } else {
        if (yych <= 'Z')
          goto yy1364;
        if (yych <= '`')
          goto yy1261;
        if (yych <= 'z')
          goto yy1364;
        goto yy1261;
      }
    }
  yy1263:
    yych = *(marker = ++p);
    if (yych <= '@')
      goto yy1261;
    if (yych <= 'Z')
      goto yy1360;
    if (yych <= '`')
      goto yy1261;
    if (yych <= 'z')
      goto yy1360;
    goto yy1261;
  yy1264:
    yych = *(marker = ++p);
    if (yybm[256 + yych] & 64) {
      goto yy1295;
    }
    if (yych == '-')
      goto yy1297;
    if (yych <= '@')
      goto yy1261;
    if (yych <= '[')
      goto yy1294;
    goto yy1261;
  yy1265:
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1261;
    if (yych <= 0x7F)
      goto yy1276;
    if (yych <= 0xC1)
      goto yy1261;
    if (yych <= 0xF4)
      goto yy1276;
    goto yy1261;
  yy1266:
    yych = *++p;
    goto yy1261;
  yy1267:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1266;
  yy1268:
    p = marker;
    goto yy1261;
  yy1269:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1267;
    goto yy1268;
  yy1270:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1267;
    goto yy1268;
  yy1271:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1270;
    goto yy1268;
  yy1272:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1270;
    goto yy1268;
  yy1273:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1270;
    goto yy1268;
  yy1274:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1267;
    goto yy1268;
  yy1275:
    ++p;
    yych = *p;
  yy1276:
    if (yybm[256 + yych] & 32) {
      goto yy1275;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '?')
          goto yy1284;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1277;
        if (yych <= 0xE0)
          goto yy1278;
        goto yy1279;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1283;
        if (yych <= 0xEF)
          goto yy1279;
        goto yy1280;
      } else {
        if (yych <= 0xF3)
          goto yy1281;
        if (yych <= 0xF4)
          goto yy1282;
        goto yy1268;
      }
    }
  yy1277:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1275;
    goto yy1268;
  yy1278:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1277;
    goto yy1268;
  yy1279:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1277;
    goto yy1268;
  yy1280:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1279;
    goto yy1268;
  yy1281:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1279;
    goto yy1268;
  yy1282:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1279;
    goto yy1268;
  yy1283:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1277;
    goto yy1268;
  yy1284:
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '=')
          goto yy1275;
      } else {
        if (yych <= 0x7F)
          goto yy1275;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1287;
        goto yy1288;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1293;
        goto yy1289;
      } else {
        if (yych <= 0xF0)
          goto yy1290;
        if (yych <= 0xF3)
          goto yy1291;
        if (yych <= 0xF4)
          goto yy1292;
        goto yy1268;
      }
    }
  yy1285:
    ++p;
    { return (bufsize_t)(p - start); }
  yy1287:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1275;
    goto yy1268;
  yy1288:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1287;
    goto yy1268;
  yy1289:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1287;
    goto yy1268;
  yy1290:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1289;
    goto yy1268;
  yy1291:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1289;
    goto yy1268;
  yy1292:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1289;
    goto yy1268;
  yy1293:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1287;
    goto yy1268;
  yy1294:
    yych = *++p;
    if (yych == 'C')
      goto yy1330;
    if (yych == 'c')
      goto yy1330;
    goto yy1268;
  yy1295:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1319;
    }
    if (yych <= '@')
      goto yy1268;
    if (yych <= 'Z')
      goto yy1295;
    goto yy1268;
  yy1297:
    yych = *++p;
    if (yych != '-')
      goto yy1268;
    yych = *++p;
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych != '-')
          goto yy1301;
      } else {
        if (yych <= '>')
          goto yy1268;
        if (yych <= 0xC1)
          goto yy1301;
        if (yych <= 0xDF)
          goto yy1302;
        goto yy1303;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1308;
        goto yy1304;
      } else {
        if (yych <= 0xF0)
          goto yy1305;
        if (yych <= 0xF3)
          goto yy1306;
        if (yych <= 0xF4)
          goto yy1307;
        goto yy1301;
      }
    }
    yych = *++p;
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych == '-')
          goto yy1318;
        goto yy1301;
      } else {
        if (yych <= '>')
          goto yy1268;
        if (yych <= 0xC1)
          goto yy1301;
        if (yych <= 0xDF)
          goto yy1302;
        goto yy1303;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1308;
        goto yy1304;
      } else {
        if (yych <= 0xF0)
          goto yy1305;
        if (yych <= 0xF3)
          goto yy1306;
        if (yych <= 0xF4)
          goto yy1307;
        goto yy1301;
      }
    }
  yy1300:
    ++p;
    yych = *p;
  yy1301:
    if (yybm[256 + yych] & 128) {
      goto yy1300;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '-')
          goto yy1309;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1310;
        if (yych <= 0xE0)
          goto yy1311;
        goto yy1312;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1316;
        if (yych <= 0xEF)
          goto yy1312;
        goto yy1313;
      } else {
        if (yych <= 0xF3)
          goto yy1314;
        if (yych <= 0xF4)
          goto yy1315;
        goto yy1268;
      }
    }
  yy1302:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1300;
    goto yy1268;
  yy1303:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1302;
    goto yy1268;
  yy1304:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1302;
    goto yy1268;
  yy1305:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1304;
    goto yy1268;
  yy1306:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1304;
    goto yy1268;
  yy1307:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1304;
    goto yy1268;
  yy1308:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1302;
    goto yy1268;
  yy1309:
    ++p;
    yych = *p;
    if (yybm[256 + yych] & 128) {
      goto yy1300;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '-')
          goto yy1317;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1310;
        if (yych <= 0xE0)
          goto yy1311;
        goto yy1312;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1316;
        if (yych <= 0xEF)
          goto yy1312;
        goto yy1313;
      } else {
        if (yych <= 0xF3)
          goto yy1314;
        if (yych <= 0xF4)
          goto yy1315;
        goto yy1268;
      }
    }
  yy1310:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1300;
    goto yy1268;
  yy1311:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1310;
    goto yy1268;
  yy1312:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1310;
    goto yy1268;
  yy1313:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1312;
    goto yy1268;
  yy1314:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1312;
    goto yy1268;
  yy1315:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1312;
    goto yy1268;
  yy1316:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1310;
    goto yy1268;
  yy1317:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1318:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1319:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1319;
    }
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '>')
          goto yy1285;
      } else {
        if (yych <= 0x7F)
          goto yy1321;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1323;
        goto yy1324;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1329;
        goto yy1325;
      } else {
        if (yych <= 0xF0)
          goto yy1326;
        if (yych <= 0xF3)
          goto yy1327;
        if (yych <= 0xF4)
          goto yy1328;
        goto yy1268;
      }
    }
  yy1321:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1321;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '>')
          goto yy1285;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1323;
        if (yych <= 0xE0)
          goto yy1324;
        goto yy1325;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1329;
        if (yych <= 0xEF)
          goto yy1325;
        goto yy1326;
      } else {
        if (yych <= 0xF3)
          goto yy1327;
        if (yych <= 0xF4)
          goto yy1328;
        goto yy1268;
      }
    }
  yy1323:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1321;
    goto yy1268;
  yy1324:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1323;
    goto yy1268;
  yy1325:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1323;
    goto yy1268;
  yy1326:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1325;
    goto yy1268;
  yy1327:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1325;
    goto yy1268;
  yy1328:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1325;
    goto yy1268;
  yy1329:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1323;
    goto yy1268;
  yy1330:
    yych = *++p;
    if (yych == 'D')
      goto yy1331;
    if (yych != 'd')
      goto yy1268;
  yy1331:
    yych = *++p;
    if (yych == 'A')
      goto yy1332;
    if (yych != 'a')
      goto yy1268;
  yy1332:
    yych = *++p;
    if (yych == 'T')
      goto yy1333;
    if (yych != 't')
      goto yy1268;
  yy1333:
    yych = *++p;
    if (yych == 'A')
      goto yy1334;
    if (yych != 'a')
      goto yy1268;
  yy1334:
    yych = *++p;
    if (yych != '[')
      goto yy1268;
  yy1335:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1335;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ']')
          goto yy1344;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1337;
        if (yych <= 0xE0)
          goto yy1338;
        goto yy1339;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1343;
        if (yych <= 0xEF)
          goto yy1339;
        goto yy1340;
      } else {
        if (yych <= 0xF3)
          goto yy1341;
        if (yych <= 0xF4)
          goto yy1342;
        goto yy1268;
      }
    }
  yy1337:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1338:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1337;
    goto yy1268;
  yy1339:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1337;
    goto yy1268;
  yy1340:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1339;
    goto yy1268;
  yy1341:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1339;
    goto yy1268;
  yy1342:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1339;
    goto yy1268;
  yy1343:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1337;
    goto yy1268;
  yy1344:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1335;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '^')
          goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1346;
        if (yych <= 0xE0)
          goto yy1347;
        goto yy1348;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1352;
        if (yych <= 0xEF)
          goto yy1348;
        goto yy1349;
      } else {
        if (yych <= 0xF3)
          goto yy1350;
        if (yych <= 0xF4)
          goto yy1351;
        goto yy1268;
      }
    }
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '=')
          goto yy1335;
        goto yy1285;
      } else {
        if (yych <= 0x7F)
          goto yy1335;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1353;
        goto yy1354;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1359;
        goto yy1355;
      } else {
        if (yych <= 0xF0)
          goto yy1356;
        if (yych <= 0xF3)
          goto yy1357;
        if (yych <= 0xF4)
          goto yy1358;
        goto yy1268;
      }
    }
  yy1346:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1347:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1346;
    goto yy1268;
  yy1348:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1346;
    goto yy1268;
  yy1349:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1348;
    goto yy1268;
  yy1350:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1348;
    goto yy1268;
  yy1351:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1348;
    goto yy1268;
  yy1352:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1346;
    goto yy1268;
  yy1353:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1354:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1353;
    goto yy1268;
  yy1355:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1353;
    goto yy1268;
  yy1356:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1355;
    goto yy1268;
  yy1357:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1355;
    goto yy1268;
  yy1358:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1355;
    goto yy1268;
  yy1359:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1353;
    goto yy1268;
  yy1360:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 8) {
      goto yy1360;
    }
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1268;
      if (yych >= 0x0E)
        goto yy1268;
    } else {
      if (yych <= ' ')
        goto yy1362;
      if (yych == '>')
        goto yy1285;
      goto yy1268;
    }
  yy1362:
    ++p;
    yych = *p;
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1268;
      if (yych <= '\r')
        goto yy1362;
      goto yy1268;
    } else {
      if (yych <= ' ')
        goto yy1362;
      if (yych == '>')
        goto yy1285;
      goto yy1268;
    }
  yy1364:
    ++p;
    yych = *p;
    if (yych <= '/') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1268;
      } else {
        if (yych == '-')
          goto yy1364;
        if (yych <= '.')
          goto yy1268;
        goto yy1368;
      }
    } else {
      if (yych <= '@') {
        if (yych <= '9')
          goto yy1364;
        if (yych == '>')
          goto yy1285;
        goto yy1268;
      } else {
        if (yych <= 'Z')
          goto yy1364;
        if (yych <= '`')
          goto yy1268;
        if (yych <= 'z')
          goto yy1364;
        goto yy1268;
      }
    }
  yy1366:
    ++p;
    yych = *p;
    if (yych <= ':') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1268;
        goto yy1366;
      } else {
        if (yych == '/')
          goto yy1368;
        if (yych <= '9')
          goto yy1268;
        goto yy1369;
      }
    } else {
      if (yych <= 'Z') {
        if (yych == '>')
          goto yy1285;
        if (yych <= '@')
          goto yy1268;
        goto yy1369;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1268;
          goto yy1369;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1369;
          goto yy1268;
        }
      }
    }
  yy1368:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1369:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1369;
    }
    if (yych <= ',') {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy1268;
      } else {
        if (yych != ' ')
          goto yy1268;
      }
    } else {
      if (yych <= '<') {
        if (yych <= '/')
          goto yy1368;
        goto yy1268;
      } else {
        if (yych <= '=')
          goto yy1373;
        if (yych <= '>')
          goto yy1285;
        goto yy1268;
      }
    }
  yy1371:
    ++p;
    yych = *p;
    if (yych <= '<') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1371;
        if (yych <= 0x1F)
          goto yy1268;
        goto yy1371;
      } else {
        if (yych <= '/') {
          if (yych <= '.')
            goto yy1268;
          goto yy1368;
        } else {
          if (yych == ':')
            goto yy1369;
          goto yy1268;
        }
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '=')
          goto yy1373;
        if (yych <= '>')
          goto yy1285;
        if (yych <= '@')
          goto yy1268;
        goto yy1369;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1268;
          goto yy1369;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1369;
          goto yy1268;
        }
      }
    }
  yy1373:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xE0) {
      if (yych <= '"') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '!')
          goto yy1386;
      } else {
        if (yych <= '\'')
          goto yy1384;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1377;
        goto yy1378;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xDF) {
      if (yych <= '\'') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ' ')
          goto yy1409;
        if (yych <= '"')
          goto yy1386;
        goto yy1384;
      } else {
        if (yych == '>')
          goto yy1285;
        if (yych <= 0xC1)
          goto yy1268;
        goto yy1377;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1378;
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
  yy1375:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ' ')
          goto yy1403;
        goto yy1268;
      } else {
        if (yych <= '>')
          goto yy1285;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych >= 0xE0)
          goto yy1378;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
  yy1377:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1375;
    goto yy1268;
  yy1378:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1377;
    goto yy1268;
  yy1379:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1377;
    goto yy1268;
  yy1380:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1379;
    goto yy1268;
  yy1381:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1379;
    goto yy1268;
  yy1382:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1379;
    goto yy1268;
  yy1383:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1377;
    goto yy1268;
  yy1384:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1384;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '\'')
          goto yy1395;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1396;
        if (yych <= 0xE0)
          goto yy1397;
        goto yy1398;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1402;
        if (yych <= 0xEF)
          goto yy1398;
        goto yy1399;
      } else {
        if (yych <= 0xF3)
          goto yy1400;
        if (yych <= 0xF4)
          goto yy1401;
        goto yy1268;
      }
    }
  yy1386:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1386;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '"')
          goto yy1395;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1388;
        if (yych <= 0xE0)
          goto yy1389;
        goto yy1390;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1394;
        if (yych <= 0xEF)
          goto yy1390;
        goto yy1391;
      } else {
        if (yych <= 0xF3)
          goto yy1392;
        if (yych <= 0xF4)
          goto yy1393;
        goto yy1268;
      }
    }
  yy1388:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1386;
    goto yy1268;
  yy1389:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1388;
    goto yy1268;
  yy1390:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1388;
    goto yy1268;
  yy1391:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1390;
    goto yy1268;
  yy1392:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1390;
    goto yy1268;
  yy1393:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1390;
    goto yy1268;
  yy1394:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1388;
    goto yy1268;
  yy1395:
    ++p;
    yych = *p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1268;
      if (yych <= '\r')
        goto yy1366;
      if (yych <= 0x1F)
        goto yy1268;
      goto yy1366;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1268;
        goto yy1368;
      } else {
        if (yych == '>')
          goto yy1285;
        goto yy1268;
      }
    }
  yy1396:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1384;
    goto yy1268;
  yy1397:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1396;
    goto yy1268;
  yy1398:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1396;
    goto yy1268;
  yy1399:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1398;
    goto yy1268;
  yy1400:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1398;
    goto yy1268;
  yy1401:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1398;
    goto yy1268;
  yy1402:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1396;
    goto yy1268;
  yy1403:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          goto yy1403;
        } else {
          if (yych == ' ')
            goto yy1403;
          if (yych <= '!')
            goto yy1375;
          goto yy1268;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1268;
          if (yych <= '9')
            goto yy1375;
        } else {
          if (yych <= ';')
            goto yy1375;
          if (yych <= '=')
            goto yy1268;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych >= '`')
            goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  yy1405:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          if (yych >= 0x0E)
            goto yy1375;
        } else {
          if (yych <= ' ')
            goto yy1407;
          if (yych == '"')
            goto yy1268;
          goto yy1375;
        }
      } else {
        if (yych <= '/') {
          if (yych <= '\'')
            goto yy1268;
          if (yych <= ',')
            goto yy1375;
          if (yych <= '.')
            goto yy1405;
          goto yy1375;
        } else {
          if (yych <= ';') {
            if (yych <= ':')
              goto yy1405;
            goto yy1375;
          } else {
            if (yych <= '<')
              goto yy1268;
            if (yych <= '=')
              goto yy1373;
            goto yy1285;
          }
        }
      }
    } else {
      if (yych <= 0xC1) {
        if (yych <= '_') {
          if (yych <= '@')
            goto yy1375;
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          goto yy1405;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          goto yy1268;
        }
      } else {
        if (yych <= 0xED) {
          if (yych <= 0xDF)
            goto yy1377;
          if (yych <= 0xE0)
            goto yy1378;
          if (yych <= 0xEC)
            goto yy1379;
          goto yy1383;
        } else {
          if (yych <= 0xF0) {
            if (yych <= 0xEF)
              goto yy1379;
            goto yy1380;
          } else {
            if (yych <= 0xF3)
              goto yy1381;
            if (yych <= 0xF4)
              goto yy1382;
            goto yy1268;
          }
        }
      }
    }
  yy1407:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          if (yych <= '\r')
            goto yy1407;
          goto yy1375;
        } else {
          if (yych <= ' ')
            goto yy1407;
          if (yych == '"')
            goto yy1268;
          goto yy1375;
        }
      } else {
        if (yych <= ';') {
          if (yych <= '\'')
            goto yy1268;
          if (yych == ':')
            goto yy1405;
          goto yy1375;
        } else {
          if (yych <= '<')
            goto yy1268;
          if (yych <= '=')
            goto yy1373;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych <= '_')
            goto yy1405;
          goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  yy1409:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          goto yy1409;
        } else {
          if (yych == ' ')
            goto yy1409;
          if (yych <= '!')
            goto yy1375;
          goto yy1386;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1384;
          if (yych <= '9')
            goto yy1375;
          goto yy1405;
        } else {
          if (yych <= ';')
            goto yy1375;
          if (yych <= '=')
            goto yy1268;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych <= '_')
            goto yy1405;
          goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  }
}

// Try to match an HTML block tag start line, returning
// an integer code for the type of block (1-6, matching the spec).
// #7 is handled by a separate function, below.
bufsize_t _scan_html_block_start(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1415;
      } else {
        if (yych <= '<')
          goto yy1414;
        if (yych <= 0x7F)
          goto yy1415;
        if (yych >= 0xC2)
          goto yy1416;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1418;
        if (yych == 0xED)
          goto yy1423;
        goto yy1419;
      } else {
        if (yych <= 0xF0)
          goto yy1420;
        if (yych <= 0xF3)
          goto yy1421;
        if (yych <= 0xF4)
          goto yy1422;
      }
    }
  yy1413 : { return 0; }
  yy1414:
    yych = *(marker = ++p);
    switch (yych) {
    case '!':
      goto yy1440;
    case '/':
      goto yy1424;
    case '?':
      goto yy1441;
    case 'A':
    case 'a':
      goto yy1426;
    case 'B':
    case 'b':
      goto yy1427;
    case 'C':
    case 'c':
      goto yy1428;
    case 'D':
    case 'd':
      goto yy1429;
    case 'F':
    case 'f':
      goto yy1430;
    case 'H':
    case 'h':
      goto yy1431;
    case 'I':
    case 'i':
      goto yy1432;
    case 'L':
    case 'l':
      goto yy1433;
    case 'M':
    case 'm':
      goto yy1434;
    case 'N':
    case 'n':
      goto yy1435;
    case 'O':
    case 'o':
      goto yy1436;
    case 'P':
    case 'p':
      goto yy1425;
    case 'S':
    case 's':
      goto yy1437;
    case 'T':
    case 't':
      goto yy1438;
    case 'U':
    case 'u':
      goto yy1439;
    default:
      goto yy1413;
    }
  yy1415:
    yych = *++p;
    goto yy1413;
  yy1416:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1415;
  yy1417:
    p = marker;
    goto yy1413;
  yy1418:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1416;
    goto yy1417;
  yy1419:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1416;
    goto yy1417;
  yy1420:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1419;
    goto yy1417;
  yy1421:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1419;
    goto yy1417;
  yy1422:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0x8F)
      goto yy1419;
    goto yy1417;
  yy1423:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0x9F)
      goto yy1416;
    goto yy1417;
  yy1424:
    yych = *++p;
    switch (yych) {
    case 'A':
    case 'a':
      goto yy1426;
    case 'B':
    case 'b':
      goto yy1427;
    case 'C':
    case 'c':
      goto yy1428;
    case 'D':
    case 'd':
      goto yy1429;
    case 'F':
    case 'f':
      goto yy1430;
    case 'H':
    case 'h':
      goto yy1431;
    case 'I':
    case 'i':
      goto yy1432;
    case 'L':
    case 'l':
      goto yy1433;
    case 'M':
    case 'm':
      goto yy1434;
    case 'N':
    case 'n':
      goto yy1435;
    case 'O':
    case 'o':
      goto yy1436;
    case 'P':
    case 'p':
      goto yy1625;
    case 'S':
    case 's':
      goto yy1626;
    case 'T':
    case 't':
      goto yy1438;
    case 'U':
    case 'u':
      goto yy1439;
    default:
      goto yy1417;
    }
  yy1425:
    yych = *++p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        if (yych <= 0x1F)
          goto yy1417;
        goto yy1457;
      } else {
        if (yych == '/')
          goto yy1459;
        if (yych <= '=')
          goto yy1417;
        goto yy1457;
      }
    } else {
      if (yych <= 'R') {
        if (yych == 'A')
          goto yy1622;
        if (yych <= 'Q')
          goto yy1417;
        goto yy1621;
      } else {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy1417;
          goto yy1622;
        } else {
          if (yych == 'r')
            goto yy1621;
          goto yy1417;
        }
      }
    }
  yy1426:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'D') {
        if (yych <= 'C')
          goto yy1417;
        goto yy1610;
      } else {
        if (yych <= 'Q')
          goto yy1417;
        if (yych <= 'R')
          goto yy1609;
        goto yy1608;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'd')
          goto yy1610;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1609;
        if (yych <= 's')
          goto yy1608;
        goto yy1417;
      }
    }
  yy1427:
    yych = *++p;
    if (yych <= 'O') {
      if (yych <= 'K') {
        if (yych == 'A')
          goto yy1594;
        goto yy1417;
      } else {
        if (yych <= 'L')
          goto yy1593;
        if (yych <= 'N')
          goto yy1417;
        goto yy1592;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'a')
          goto yy1594;
        goto yy1417;
      } else {
        if (yych <= 'l')
          goto yy1593;
        if (yych == 'o')
          goto yy1592;
        goto yy1417;
      }
    }
  yy1428:
    yych = *++p;
    if (yych <= 'O') {
      if (yych <= 'D') {
        if (yych == 'A')
          goto yy1579;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1578;
        if (yych <= 'N')
          goto yy1417;
        goto yy1577;
      }
    } else {
      if (yych <= 'd') {
        if (yych == 'a')
          goto yy1579;
        goto yy1417;
      } else {
        if (yych <= 'e')
          goto yy1578;
        if (yych == 'o')
          goto yy1577;
        goto yy1417;
      }
    }
  yy1429:
    yych = *++p;
    switch (yych) {
    case 'D':
    case 'L':
    case 'T':
    case 'd':
    case 'l':
    case 't':
      goto yy1456;
    case 'E':
    case 'e':
      goto yy1569;
    case 'I':
    case 'i':
      goto yy1568;
    default:
      goto yy1417;
    }
  yy1430:
    yych = *++p;
    if (yych <= 'R') {
      if (yych <= 'N') {
        if (yych == 'I')
          goto yy1544;
        goto yy1417;
      } else {
        if (yych <= 'O')
          goto yy1543;
        if (yych <= 'Q')
          goto yy1417;
        goto yy1542;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'i')
          goto yy1544;
        goto yy1417;
      } else {
        if (yych <= 'o')
          goto yy1543;
        if (yych == 'r')
          goto yy1542;
        goto yy1417;
      }
    }
  yy1431:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'D') {
        if (yych == '1')
          goto yy1456;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1537;
        if (yych == 'R')
          goto yy1456;
        goto yy1417;
      }
    } else {
      if (yych <= 'q') {
        if (yych <= 'T')
          goto yy1536;
        if (yych == 'e')
          goto yy1537;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1456;
        if (yych == 't')
          goto yy1536;
        goto yy1417;
      }
    }
  yy1432:
    yych = *++p;
    if (yych == 'F')
      goto yy1532;
    if (yych == 'f')
      goto yy1532;
    goto yy1417;
  yy1433:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy1527;
      if (yych <= 'H')
        goto yy1417;
      goto yy1526;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy1417;
        goto yy1527;
      } else {
        if (yych == 'i')
          goto yy1526;
        goto yy1417;
      }
    }
  yy1434:
    yych = *++p;
    if (yych <= 'E') {
      if (yych == 'A')
        goto yy1518;
      if (yych <= 'D')
        goto yy1417;
      goto yy1517;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy1417;
        goto yy1518;
      } else {
        if (yych == 'e')
          goto yy1517;
        goto yy1417;
      }
    }
  yy1435:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy1511;
      if (yych <= 'N')
        goto yy1417;
      goto yy1510;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy1417;
        goto yy1511;
      } else {
        if (yych == 'o')
          goto yy1510;
        goto yy1417;
      }
    }
  yy1436:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy1456;
      if (yych <= 'O')
        goto yy1417;
      goto yy1502;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy1417;
        goto yy1456;
      } else {
        if (yych == 'p')
          goto yy1502;
        goto yy1417;
      }
    }
  yy1437:
    yych = *++p;
    if (yych <= 'U') {
      if (yych <= 'E') {
        if (yych == 'C')
          goto yy1479;
        if (yych <= 'D')
          goto yy1417;
        goto yy1482;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy1417;
          goto yy1481;
        } else {
          if (yych <= 'S')
            goto yy1417;
          if (yych <= 'T')
            goto yy1478;
          goto yy1480;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'c') {
          if (yych <= 'b')
            goto yy1417;
          goto yy1479;
        } else {
          if (yych == 'e')
            goto yy1482;
          goto yy1417;
        }
      } else {
        if (yych <= 's') {
          if (yych <= 'o')
            goto yy1481;
          goto yy1417;
        } else {
          if (yych <= 't')
            goto yy1478;
          if (yych <= 'u')
            goto yy1480;
          goto yy1417;
        }
      }
    }
  yy1438:
    yych = *++p;
    switch (yych) {
    case 'A':
    case 'a':
      goto yy1465;
    case 'B':
    case 'b':
      goto yy1464;
    case 'D':
    case 'd':
      goto yy1456;
    case 'F':
    case 'f':
      goto yy1463;
    case 'H':
    case 'h':
      goto yy1462;
    case 'I':
    case 'i':
      goto yy1461;
    case 'R':
    case 'r':
      goto yy1460;
    default:
      goto yy1417;
    }
  yy1439:
    yych = *++p;
    if (yych == 'L')
      goto yy1456;
    if (yych == 'l')
      goto yy1456;
    goto yy1417;
  yy1440:
    yych = *++p;
    if (yych <= '@') {
      if (yych == '-')
        goto yy1443;
      goto yy1417;
    } else {
      if (yych <= 'Z')
        goto yy1444;
      if (yych <= '[')
        goto yy1446;
      goto yy1417;
    }
  yy1441:
    ++p;
    { return 3; }
  yy1443:
    yych = *++p;
    if (yych == '-')
      goto yy1454;
    goto yy1417;
  yy1444:
    ++p;
    { return 4; }
  yy1446:
    yych = *++p;
    if (yych == 'C')
      goto yy1447;
    if (yych != 'c')
      goto yy1417;
  yy1447:
    yych = *++p;
    if (yych == 'D')
      goto yy1448;
    if (yych != 'd')
      goto yy1417;
  yy1448:
    yych = *++p;
    if (yych == 'A')
      goto yy1449;
    if (yych != 'a')
      goto yy1417;
  yy1449:
    yych = *++p;
    if (yych == 'T')
      goto yy1450;
    if (yych != 't')
      goto yy1417;
  yy1450:
    yych = *++p;
    if (yych == 'A')
      goto yy1451;
    if (yych != 'a')
      goto yy1417;
  yy1451:
    yych = *++p;
    if (yych != '[')
      goto yy1417;
    ++p;
    { return 5; }
  yy1454:
    ++p;
    { return 2; }
  yy1456:
    yych = *++p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1417;
      if (yych <= '\r')
        goto yy1457;
      if (yych <= 0x1F)
        goto yy1417;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      } else {
        if (yych != '>')
          goto yy1417;
      }
    }
  yy1457:
    ++p;
    { return 6; }
  yy1459:
    yych = *++p;
    if (yych == '>')
      goto yy1457;
    goto yy1417;
  yy1460:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= '@') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'A')
          goto yy1476;
        if (yych == 'a')
          goto yy1476;
        goto yy1417;
      }
    }
  yy1461:
    yych = *++p;
    if (yych == 'T')
      goto yy1474;
    if (yych == 't')
      goto yy1474;
    goto yy1417;
  yy1462:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'D') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1472;
        if (yych == 'e')
          goto yy1472;
        goto yy1417;
      }
    }
  yy1463:
    yych = *++p;
    if (yych == 'O')
      goto yy1470;
    if (yych == 'o')
      goto yy1470;
    goto yy1417;
  yy1464:
    yych = *++p;
    if (yych == 'O')
      goto yy1468;
    if (yych == 'o')
      goto yy1468;
    goto yy1417;
  yy1465:
    yych = *++p;
    if (yych == 'B')
      goto yy1466;
    if (yych != 'b')
      goto yy1417;
  yy1466:
    yych = *++p;
    if (yych == 'L')
      goto yy1467;
    if (yych != 'l')
      goto yy1417;
  yy1467:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1468:
    yych = *++p;
    if (yych == 'D')
      goto yy1469;
    if (yych != 'd')
      goto yy1417;
  yy1469:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1470:
    yych = *++p;
    if (yych == 'O')
      goto yy1471;
    if (yych != 'o')
      goto yy1417;
  yy1471:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1472:
    yych = *++p;
    if (yych == 'A')
      goto yy1473;
    if (yych != 'a')
      goto yy1417;
  yy1473:
    yych = *++p;
    if (yych == 'D')
      goto yy1456;
    if (yych == 'd')
      goto yy1456;
    goto yy1417;
  yy1474:
    yych = *++p;
    if (yych == 'L')
      goto yy1475;
    if (yych != 'l')
      goto yy1417;
  yy1475:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1476:
    yych = *++p;
    if (yych == 'C')
      goto yy1477;
    if (yych != 'c')
      goto yy1417;
  yy1477:
    yych = *++p;
    if (yych == 'K')
      goto yy1456;
    if (yych == 'k')
      goto yy1456;
    goto yy1417;
  yy1478:
    yych = *++p;
    if (yych == 'Y')
      goto yy1500;
    if (yych == 'y')
      goto yy1500;
    goto yy1417;
  yy1479:
    yych = *++p;
    if (yych == 'R')
      goto yy1494;
    if (yych == 'r')
      goto yy1494;
    goto yy1417;
  yy1480:
    yych = *++p;
    if (yych == 'M')
      goto yy1490;
    if (yych == 'm')
      goto yy1490;
    goto yy1417;
  yy1481:
    yych = *++p;
    if (yych == 'U')
      goto yy1487;
    if (yych == 'u')
      goto yy1487;
    goto yy1417;
  yy1482:
    yych = *++p;
    if (yych == 'C')
      goto yy1483;
    if (yych != 'c')
      goto yy1417;
  yy1483:
    yych = *++p;
    if (yych == 'T')
      goto yy1484;
    if (yych != 't')
      goto yy1417;
  yy1484:
    yych = *++p;
    if (yych == 'I')
      goto yy1485;
    if (yych != 'i')
      goto yy1417;
  yy1485:
    yych = *++p;
    if (yych == 'O')
      goto yy1486;
    if (yych != 'o')
      goto yy1417;
  yy1486:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1487:
    yych = *++p;
    if (yych == 'R')
      goto yy1488;
    if (yych != 'r')
      goto yy1417;
  yy1488:
    yych = *++p;
    if (yych == 'C')
      goto yy1489;
    if (yych != 'c')
      goto yy1417;
  yy1489:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1490:
    yych = *++p;
    if (yych == 'M')
      goto yy1491;
    if (yych != 'm')
      goto yy1417;
  yy1491:
    yych = *++p;
    if (yych == 'A')
      goto yy1492;
    if (yych != 'a')
      goto yy1417;
  yy1492:
    yych = *++p;
    if (yych == 'R')
      goto yy1493;
    if (yych != 'r')
      goto yy1417;
  yy1493:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1494:
    yych = *++p;
    if (yych == 'I')
      goto yy1495;
    if (yych != 'i')
      goto yy1417;
  yy1495:
    yych = *++p;
    if (yych == 'P')
      goto yy1496;
    if (yych != 'p')
      goto yy1417;
  yy1496:
    yych = *++p;
    if (yych == 'T')
      goto yy1497;
    if (yych != 't')
      goto yy1417;
  yy1497:
    yych = *++p;
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1417;
      if (yych >= 0x0E)
        goto yy1417;
    } else {
      if (yych <= ' ')
        goto yy1498;
      if (yych != '>')
        goto yy1417;
    }
  yy1498:
    ++p;
    { return 1; }
  yy1500:
    yych = *++p;
    if (yych == 'L')
      goto yy1501;
    if (yych != 'l')
      goto yy1417;
  yy1501:
    yych = *++p;
    if (yych == 'E')
      goto yy1497;
    if (yych == 'e')
      goto yy1497;
    goto yy1417;
  yy1502:
    yych = *++p;
    if (yych == 'T')
      goto yy1503;
    if (yych != 't')
      goto yy1417;
  yy1503:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'G')
        goto yy1505;
      if (yych <= 'H')
        goto yy1417;
    } else {
      if (yych <= 'g') {
        if (yych <= 'f')
          goto yy1417;
        goto yy1505;
      } else {
        if (yych != 'i')
          goto yy1417;
      }
    }
    yych = *++p;
    if (yych == 'O')
      goto yy1509;
    if (yych == 'o')
      goto yy1509;
    goto yy1417;
  yy1505:
    yych = *++p;
    if (yych == 'R')
      goto yy1506;
    if (yych != 'r')
      goto yy1417;
  yy1506:
    yych = *++p;
    if (yych == 'O')
      goto yy1507;
    if (yych != 'o')
      goto yy1417;
  yy1507:
    yych = *++p;
    if (yych == 'U')
      goto yy1508;
    if (yych != 'u')
      goto yy1417;
  yy1508:
    yych = *++p;
    if (yych == 'P')
      goto yy1456;
    if (yych == 'p')
      goto yy1456;
    goto yy1417;
  yy1509:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1510:
    yych = *++p;
    if (yych == 'F')
      goto yy1512;
    if (yych == 'f')
      goto yy1512;
    goto yy1417;
  yy1511:
    yych = *++p;
    if (yych == 'V')
      goto yy1456;
    if (yych == 'v')
      goto yy1456;
    goto yy1417;
  yy1512:
    yych = *++p;
    if (yych == 'R')
      goto yy1513;
    if (yych != 'r')
      goto yy1417;
  yy1513:
    yych = *++p;
    if (yych == 'A')
      goto yy1514;
    if (yych != 'a')
      goto yy1417;
  yy1514:
    yych = *++p;
    if (yych == 'M')
      goto yy1515;
    if (yych != 'm')
      goto yy1417;
  yy1515:
    yych = *++p;
    if (yych == 'E')
      goto yy1516;
    if (yych != 'e')
      goto yy1417;
  yy1516:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1517:
    yych = *++p;
    if (yych <= 'T') {
      if (yych == 'N')
        goto yy1520;
      if (yych <= 'S')
        goto yy1417;
      goto yy1521;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy1417;
        goto yy1520;
      } else {
        if (yych == 't')
          goto yy1521;
        goto yy1417;
      }
    }
  yy1518:
    yych = *++p;
    if (yych == 'I')
      goto yy1519;
    if (yych != 'i')
      goto yy1417;
  yy1519:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1520:
    yych = *++p;
    if (yych == 'U')
      goto yy1522;
    if (yych == 'u')
      goto yy1522;
    goto yy1417;
  yy1521:
    yych = *++p;
    if (yych == 'A')
      goto yy1456;
    if (yych == 'a')
      goto yy1456;
    goto yy1417;
  yy1522:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'H') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'I')
          goto yy1523;
        if (yych != 'i')
          goto yy1417;
      }
    }
  yy1523:
    yych = *++p;
    if (yych == 'T')
      goto yy1524;
    if (yych != 't')
      goto yy1417;
  yy1524:
    yych = *++p;
    if (yych == 'E')
      goto yy1525;
    if (yych != 'e')
      goto yy1417;
  yy1525:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1526:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'M') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'N')
          goto yy1531;
        if (yych == 'n')
          goto yy1531;
        goto yy1417;
      }
    }
  yy1527:
    yych = *++p;
    if (yych == 'G')
      goto yy1528;
    if (yych != 'g')
      goto yy1417;
  yy1528:
    yych = *++p;
    if (yych == 'E')
      goto yy1529;
    if (yych != 'e')
      goto yy1417;
  yy1529:
    yych = *++p;
    if (yych == 'N')
      goto yy1530;
    if (yych != 'n')
      goto yy1417;
  yy1530:
    yych = *++p;
    if (yych == 'D')
      goto yy1456;
    if (yych == 'd')
      goto yy1456;
    goto yy1417;
  yy1531:
    yych = *++p;
    if (yych == 'K')
      goto yy1456;
    if (yych == 'k')
      goto yy1456;
    goto yy1417;
  yy1532:
    yych = *++p;
    if (yych == 'R')
      goto yy1533;
    if (yych != 'r')
      goto yy1417;
  yy1533:
    yych = *++p;
    if (yych == 'A')
      goto yy1534;
    if (yych != 'a')
      goto yy1417;
  yy1534:
    yych = *++p;
    if (yych == 'M')
      goto yy1535;
    if (yych != 'm')
      goto yy1417;
  yy1535:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1536:
    yych = *++p;
    if (yych == 'M')
      goto yy1541;
    if (yych == 'm')
      goto yy1541;
    goto yy1417;
  yy1537:
    yych = *++p;
    if (yych == 'A')
      goto yy1538;
    if (yych != 'a')
      goto yy1417;
  yy1538:
    yych = *++p;
    if (yych == 'D')
      goto yy1539;
    if (yych != 'd')
      goto yy1417;
  yy1539:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'D') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1540;
        if (yych != 'e')
          goto yy1417;
      }
    }
  yy1540:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1541:
    yych = *++p;
    if (yych == 'L')
      goto yy1456;
    if (yych == 'l')
      goto yy1456;
    goto yy1417;
  yy1542:
    yych = *++p;
    if (yych == 'A')
      goto yy1563;
    if (yych == 'a')
      goto yy1563;
    goto yy1417;
  yy1543:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == 'O')
        goto yy1559;
      if (yych <= 'Q')
        goto yy1417;
      goto yy1560;
    } else {
      if (yych <= 'o') {
        if (yych <= 'n')
          goto yy1417;
        goto yy1559;
      } else {
        if (yych == 'r')
          goto yy1560;
        goto yy1417;
      }
    }
  yy1544:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == 'E')
        goto yy1545;
      if (yych <= 'F')
        goto yy1417;
      goto yy1546;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy1417;
      } else {
        if (yych == 'g')
          goto yy1546;
        goto yy1417;
      }
    }
  yy1545:
    yych = *++p;
    if (yych == 'L')
      goto yy1555;
    if (yych == 'l')
      goto yy1555;
    goto yy1417;
  yy1546:
    yych = *++p;
    if (yych <= 'U') {
      if (yych == 'C')
        goto yy1548;
      if (yych <= 'T')
        goto yy1417;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy1417;
        goto yy1548;
      } else {
        if (yych != 'u')
          goto yy1417;
      }
    }
    yych = *++p;
    if (yych == 'R')
      goto yy1554;
    if (yych == 'r')
      goto yy1554;
    goto yy1417;
  yy1548:
    yych = *++p;
    if (yych == 'A')
      goto yy1549;
    if (yych != 'a')
      goto yy1417;
  yy1549:
    yych = *++p;
    if (yych == 'P')
      goto yy1550;
    if (yych != 'p')
      goto yy1417;
  yy1550:
    yych = *++p;
    if (yych == 'T')
      goto yy1551;
    if (yych != 't')
      goto yy1417;
  yy1551:
    yych = *++p;
    if (yych == 'I')
      goto yy1552;
    if (yych != 'i')
      goto yy1417;
  yy1552:
    yych = *++p;
    if (yych == 'O')
      goto yy1553;
    if (yych != 'o')
      goto yy1417;
  yy1553:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1554:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1555:
    yych = *++p;
    if (yych == 'D')
      goto yy1556;
    if (yych != 'd')
      goto yy1417;
  yy1556:
    yych = *++p;
    if (yych == 'S')
      goto yy1557;
    if (yych != 's')
      goto yy1417;
  yy1557:
    yych = *++p;
    if (yych == 'E')
      goto yy1558;
    if (yych != 'e')
      goto yy1417;
  yy1558:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1559:
    yych = *++p;
    if (yych == 'T')
      goto yy1561;
    if (yych == 't')
      goto yy1561;
    goto yy1417;
  yy1560:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1561:
    yych = *++p;
    if (yych == 'E')
      goto yy1562;
    if (yych != 'e')
      goto yy1417;
  yy1562:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1563:
    yych = *++p;
    if (yych == 'M')
      goto yy1564;
    if (yych != 'm')
      goto yy1417;
  yy1564:
    yych = *++p;
    if (yych == 'E')
      goto yy1565;
    if (yych != 'e')
      goto yy1417;
  yy1565:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'R') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'S')
          goto yy1566;
        if (yych != 's')
          goto yy1417;
      }
    }
  yy1566:
    yych = *++p;
    if (yych == 'E')
      goto yy1567;
    if (yych != 'e')
      goto yy1417;
  yy1567:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1568:
    yych = *++p;
    if (yych <= 'V') {
      if (yych <= 'Q') {
        if (yych == 'A')
          goto yy1574;
        goto yy1417;
      } else {
        if (yych <= 'R')
          goto yy1456;
        if (yych <= 'U')
          goto yy1417;
        goto yy1456;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'a')
          goto yy1574;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1456;
        if (yych == 'v')
          goto yy1456;
        goto yy1417;
      }
    }
  yy1569:
    yych = *++p;
    if (yych == 'T')
      goto yy1570;
    if (yych != 't')
      goto yy1417;
  yy1570:
    yych = *++p;
    if (yych == 'A')
      goto yy1571;
    if (yych != 'a')
      goto yy1417;
  yy1571:
    yych = *++p;
    if (yych == 'I')
      goto yy1572;
    if (yych != 'i')
      goto yy1417;
  yy1572:
    yych = *++p;
    if (yych == 'L')
      goto yy1573;
    if (yych != 'l')
      goto yy1417;
  yy1573:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1574:
    yych = *++p;
    if (yych == 'L')
      goto yy1575;
    if (yych != 'l')
      goto yy1417;
  yy1575:
    yych = *++p;
    if (yych == 'O')
      goto yy1576;
    if (yych != 'o')
      goto yy1417;
  yy1576:
    yych = *++p;
    if (yych == 'G')
      goto yy1456;
    if (yych == 'g')
      goto yy1456;
    goto yy1417;
  yy1577:
    yych = *++p;
    if (yych == 'L')
      goto yy1587;
    if (yych == 'l')
      goto yy1587;
    goto yy1417;
  yy1578:
    yych = *++p;
    if (yych == 'N')
      goto yy1584;
    if (yych == 'n')
      goto yy1584;
    goto yy1417;
  yy1579:
    yych = *++p;
    if (yych == 'P')
      goto yy1580;
    if (yych != 'p')
      goto yy1417;
  yy1580:
    yych = *++p;
    if (yych == 'T')
      goto yy1581;
    if (yych != 't')
      goto yy1417;
  yy1581:
    yych = *++p;
    if (yych == 'I')
      goto yy1582;
    if (yych != 'i')
      goto yy1417;
  yy1582:
    yych = *++p;
    if (yych == 'O')
      goto yy1583;
    if (yych != 'o')
      goto yy1417;
  yy1583:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1584:
    yych = *++p;
    if (yych == 'T')
      goto yy1585;
    if (yych != 't')
      goto yy1417;
  yy1585:
    yych = *++p;
    if (yych == 'E')
      goto yy1586;
    if (yych != 'e')
      goto yy1417;
  yy1586:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1587:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'F') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'G')
          goto yy1588;
        if (yych != 'g')
          goto yy1417;
      }
    }
  yy1588:
    yych = *++p;
    if (yych == 'R')
      goto yy1589;
    if (yych != 'r')
      goto yy1417;
  yy1589:
    yych = *++p;
    if (yych == 'O')
      goto yy1590;
    if (yych != 'o')
      goto yy1417;
  yy1590:
    yych = *++p;
    if (yych == 'U')
      goto yy1591;
    if (yych != 'u')
      goto yy1417;
  yy1591:
    yych = *++p;
    if (yych == 'P')
      goto yy1456;
    if (yych == 'p')
      goto yy1456;
    goto yy1417;
  yy1592:
    yych = *++p;
    if (yych == 'D')
      goto yy1607;
    if (yych == 'd')
      goto yy1607;
    goto yy1417;
  yy1593:
    yych = *++p;
    if (yych == 'O')
      goto yy1600;
    if (yych == 'o')
      goto yy1600;
    goto yy1417;
  yy1594:
    yych = *++p;
    if (yych == 'S')
      goto yy1595;
    if (yych != 's')
      goto yy1417;
  yy1595:
    yych = *++p;
    if (yych == 'E')
      goto yy1596;
    if (yych != 'e')
      goto yy1417;
  yy1596:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'E') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'F')
          goto yy1597;
        if (yych != 'f')
          goto yy1417;
      }
    }
  yy1597:
    yych = *++p;
    if (yych == 'O')
      goto yy1598;
    if (yych != 'o')
      goto yy1417;
  yy1598:
    yych = *++p;
    if (yych == 'N')
      goto yy1599;
    if (yych != 'n')
      goto yy1417;
  yy1599:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1600:
    yych = *++p;
    if (yych == 'C')
      goto yy1601;
    if (yych != 'c')
      goto yy1417;
  yy1601:
    yych = *++p;
    if (yych == 'K')
      goto yy1602;
    if (yych != 'k')
      goto yy1417;
  yy1602:
    yych = *++p;
    if (yych == 'Q')
      goto yy1603;
    if (yych != 'q')
      goto yy1417;
  yy1603:
    yych = *++p;
    if (yych == 'U')
      goto yy1604;
    if (yych != 'u')
      goto yy1417;
  yy1604:
    yych = *++p;
    if (yych == 'O')
      goto yy1605;
    if (yych != 'o')
      goto yy1417;
  yy1605:
    yych = *++p;
    if (yych == 'T')
      goto yy1606;
    if (yych != 't')
      goto yy1417;
  yy1606:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1607:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1608:
    yych = *++p;
    if (yych == 'I')
      goto yy1619;
    if (yych == 'i')
      goto yy1619;
    goto yy1417;
  yy1609:
    yych = *++p;
    if (yych == 'T')
      goto yy1615;
    if (yych == 't')
      goto yy1615;
    goto yy1417;
  yy1610:
    yych = *++p;
    if (yych == 'D')
      goto yy1611;
    if (yych != 'd')
      goto yy1417;
  yy1611:
    yych = *++p;
    if (yych == 'R')
      goto yy1612;
    if (yych != 'r')
      goto yy1417;
  yy1612:
    yych = *++p;
    if (yych == 'E')
      goto yy1613;
    if (yych != 'e')
      goto yy1417;
  yy1613:
    yych = *++p;
    if (yych == 'S')
      goto yy1614;
    if (yych != 's')
      goto yy1417;
  yy1614:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1615:
    yych = *++p;
    if (yych == 'I')
      goto yy1616;
    if (yych != 'i')
      goto yy1417;
  yy1616:
    yych = *++p;
    if (yych == 'C')
      goto yy1617;
    if (yych != 'c')
      goto yy1417;
  yy1617:
    yych = *++p;
    if (yych == 'L')
      goto yy1618;
    if (yych != 'l')
      goto yy1417;
  yy1618:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1619:
    yych = *++p;
    if (yych == 'D')
      goto yy1620;
    if (yych != 'd')
      goto yy1417;
  yy1620:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1621:
    yych = *++p;
    if (yych == 'E')
      goto yy1497;
    if (yych == 'e')
      goto yy1497;
    goto yy1417;
  yy1622:
    yych = *++p;
    if (yych == 'R')
      goto yy1623;
    if (yych != 'r')
      goto yy1417;
  yy1623:
    yych = *++p;
    if (yych == 'A')
      goto yy1624;
    if (yych != 'a')
      goto yy1417;
  yy1624:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1625:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= '@') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'A')
          goto yy1622;
        if (yych == 'a')
          goto yy1622;
        goto yy1417;
      }
    }
  yy1626:
    ++p;
    if ((yych = *p) <= 'U') {
      if (yych <= 'N') {
        if (yych == 'E')
          goto yy1482;
        goto yy1417;
      } else {
        if (yych <= 'O')
          goto yy1481;
        if (yych <= 'T')
          goto yy1417;
        goto yy1480;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'e')
          goto yy1482;
        goto yy1417;
      } else {
        if (yych <= 'o')
          goto yy1481;
        if (yych == 'u')
          goto yy1480;
        goto yy1417;
      }
    }
  }
}

// Try to match an HTML block tag start line of type 7, returning
// 7 if successful, 0 if not.
bufsize_t _scan_html_block_start_7(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 198, 224, 64,  224, 224, 224, 224, 128, 224, 224,
        224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1631;
      } else {
        if (yych <= '<')
          goto yy1630;
        if (yych <= 0x7F)
          goto yy1631;
        if (yych >= 0xC2)
          goto yy1632;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1634;
        if (yych == 0xED)
          goto yy1639;
        goto yy1635;
      } else {
        if (yych <= 0xF0)
          goto yy1636;
        if (yych <= 0xF3)
          goto yy1637;
        if (yych <= 0xF4)
          goto yy1638;
      }
    }
  yy1629 : { return 0; }
  yy1630:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '@') {
      if (yych == '/')
        goto yy1642;
      goto yy1629;
    } else {
      if (yych <= 'Z')
        goto yy1640;
      if (yych <= '`')
        goto yy1629;
      if (yych <= 'z')
        goto yy1640;
      goto yy1629;
    }
  yy1631:
    yych = *++p;
    goto yy1629;
  yy1632:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1631;
  yy1633:
    p = marker;
    if (yyaccept == 0) {
      goto yy1629;
    } else {
      goto yy1651;
    }
  yy1634:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1632;
    goto yy1633;
  yy1635:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1632;
    goto yy1633;
  yy1636:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1635;
    goto yy1633;
  yy1637:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1635;
    goto yy1633;
  yy1638:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1635;
    goto yy1633;
  yy1639:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1632;
    goto yy1633;
  yy1640:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1640;
    }
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1633;
      if (yych <= '\r')
        goto yy1653;
      if (yych <= 0x1F)
        goto yy1633;
      goto yy1653;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1633;
        goto yy1655;
      } else {
        if (yych == '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1642:
    yych = *++p;
    if (yych <= '@')
      goto yy1633;
    if (yych <= 'Z')
      goto yy1643;
    if (yych <= '`')
      goto yy1633;
    if (yych >= '{')
      goto yy1633;
  yy1643:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1645;
    }
    if (yych <= '=') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy1633;
        goto yy1643;
      } else {
        if (yych <= '/')
          goto yy1633;
        if (yych <= '9')
          goto yy1643;
        goto yy1633;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1643;
      } else {
        if (yych <= '`')
          goto yy1633;
        if (yych <= 'z')
          goto yy1643;
        goto yy1633;
      }
    }
  yy1645:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1645;
    }
    if (yych != '>')
      goto yy1633;
  yy1647:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1647;
    }
    if (yych <= 0x08)
      goto yy1633;
    if (yych <= '\n')
      goto yy1649;
    if (yych <= '\v')
      goto yy1633;
    if (yych <= '\r')
      goto yy1652;
    goto yy1633;
  yy1649:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1647;
    }
    if (yych <= 0x08)
      goto yy1651;
    if (yych <= '\n')
      goto yy1649;
    if (yych <= '\v')
      goto yy1651;
    if (yych <= '\r')
      goto yy1652;
  yy1651 : { return 7; }
  yy1652:
    yych = *++p;
    goto yy1651;
  yy1653:
    ++p;
    yych = *p;
    if (yych <= ':') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1633;
        if (yych <= '\r')
          goto yy1653;
        if (yych <= 0x1F)
          goto yy1633;
        goto yy1653;
      } else {
        if (yych == '/')
          goto yy1655;
        if (yych <= '9')
          goto yy1633;
        goto yy1656;
      }
    } else {
      if (yych <= 'Z') {
        if (yych == '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1656;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1633;
          goto yy1656;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1656;
          goto yy1633;
        }
      }
    }
  yy1655:
    yych = *++p;
    if (yych == '>')
      goto yy1647;
    goto yy1633;
  yy1656:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1656;
    }
    if (yych <= ',') {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy1633;
      } else {
        if (yych != ' ')
          goto yy1633;
      }
    } else {
      if (yych <= '<') {
        if (yych <= '/')
          goto yy1655;
        goto yy1633;
      } else {
        if (yych <= '=')
          goto yy1660;
        if (yych <= '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1658:
    ++p;
    yych = *p;
    if (yych <= '<') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1633;
        if (yych <= '\r')
          goto yy1658;
        if (yych <= 0x1F)
          goto yy1633;
        goto yy1658;
      } else {
        if (yych <= '/') {
          if (yych <= '.')
            goto yy1633;
          goto yy1655;
        } else {
          if (yych == ':')
            goto yy1656;
          goto yy1633;
        }
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '=')
          goto yy1660;
        if (yych <= '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1656;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1633;
          goto yy1656;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1656;
          goto yy1633;
        }
      }
    }
  yy1660:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xE0) {
      if (yych <= '"') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych >= '!')
          goto yy1673;
      } else {
        if (yych <= '\'')
          goto yy1671;
        if (yych <= 0xC1)
          goto yy1633;
        if (yych <= 0xDF)
          goto yy1664;
        goto yy1665;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xDF) {
      if (yych <= '\'') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= ' ')
          goto yy1696;
        if (yych <= '"')
          goto yy1673;
        goto yy1671;
      } else {
        if (yych == '>')
          goto yy1647;
        if (yych <= 0xC1)
          goto yy1633;
        goto yy1664;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1665;
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
  yy1662:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= ' ')
          goto yy1690;
        goto yy1633;
      } else {
        if (yych <= '>')
          goto yy1647;
        if (yych <= 0xC1)
          goto yy1633;
        if (yych >= 0xE0)
          goto yy1665;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
  yy1664:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1662;
    goto yy1633;
  yy1665:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1664;
    goto yy1633;
  yy1666:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1664;
    goto yy1633;
  yy1667:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1666;
    goto yy1633;
  yy1668:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1666;
    goto yy1633;
  yy1669:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1666;
    goto yy1633;
  yy1670:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1664;
    goto yy1633;
  yy1671:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1671;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= '\'')
          goto yy1682;
        goto yy1633;
      } else {
        if (yych <= 0xDF)
          goto yy1683;
        if (yych <= 0xE0)
          goto yy1684;
        goto yy1685;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1689;
        if (yych <= 0xEF)
          goto yy1685;
        goto yy1686;
      } else {
        if (yych <= 0xF3)
          goto yy1687;
        if (yych <= 0xF4)
          goto yy1688;
        goto yy1633;
      }
    }
  yy1673:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1673;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= '"')
          goto yy1682;
        goto yy1633;
      } else {
        if (yych <= 0xDF)
          goto yy1675;
        if (yych <= 0xE0)
          goto yy1676;
        goto yy1677;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1681;
        if (yych <= 0xEF)
          goto yy1677;
        goto yy1678;
      } else {
        if (yych <= 0xF3)
          goto yy1679;
        if (yych <= 0xF4)
          goto yy1680;
        goto yy1633;
      }
    }
  yy1675:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1673;
    goto yy1633;
  yy1676:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1675;
    goto yy1633;
  yy1677:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1675;
    goto yy1633;
  yy1678:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1677;
    goto yy1633;
  yy1679:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1677;
    goto yy1633;
  yy1680:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1677;
    goto yy1633;
  yy1681:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1675;
    goto yy1633;
  yy1682:
    ++p;
    yych = *p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1633;
      if (yych <= '\r')
        goto yy1653;
      if (yych <= 0x1F)
        goto yy1633;
      goto yy1653;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1633;
        goto yy1655;
      } else {
        if (yych == '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1683:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1671;
    goto yy1633;
  yy1684:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1683;
    goto yy1633;
  yy1685:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1683;
    goto yy1633;
  yy1686:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1685;
    goto yy1633;
  yy1687:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1685;
    goto yy1633;
  yy1688:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1685;
    goto yy1633;
  yy1689:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1683;
    goto yy1633;
  yy1690:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          goto yy1690;
        } else {
          if (yych == ' ')
            goto yy1690;
          if (yych <= '!')
            goto yy1662;
          goto yy1633;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1633;
          if (yych <= '9')
            goto yy1662;
        } else {
          if (yych <= ';')
            goto yy1662;
          if (yych <= '=')
            goto yy1633;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych >= '`')
            goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  yy1692:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          if (yych >= 0x0E)
            goto yy1662;
        } else {
          if (yych <= ' ')
            goto yy1694;
          if (yych == '"')
            goto yy1633;
          goto yy1662;
        }
      } else {
        if (yych <= '/') {
          if (yych <= '\'')
            goto yy1633;
          if (yych <= ',')
            goto yy1662;
          if (yych <= '.')
            goto yy1692;
          goto yy1662;
        } else {
          if (yych <= ';') {
            if (yych <= ':')
              goto yy1692;
            goto yy1662;
          } else {
            if (yych <= '<')
              goto yy1633;
            if (yych <= '=')
              goto yy1660;
            goto yy1647;
          }
        }
      }
    } else {
      if (yych <= 0xC1) {
        if (yych <= '_') {
          if (yych <= '@')
            goto yy1662;
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          goto yy1692;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          goto yy1633;
        }
      } else {
        if (yych <= 0xED) {
          if (yych <= 0xDF)
            goto yy1664;
          if (yych <= 0xE0)
            goto yy1665;
          if (yych <= 0xEC)
            goto yy1666;
          goto yy1670;
        } else {
          if (yych <= 0xF0) {
            if (yych <= 0xEF)
              goto yy1666;
            goto yy1667;
          } else {
            if (yych <= 0xF3)
              goto yy1668;
            if (yych <= 0xF4)
              goto yy1669;
            goto yy1633;
          }
        }
      }
    }
  yy1694:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          if (yych <= '\r')
            goto yy1694;
          goto yy1662;
        } else {
          if (yych <= ' ')
            goto yy1694;
          if (yych == '"')
            goto yy1633;
          goto yy1662;
        }
      } else {
        if (yych <= ';') {
          if (yych <= '\'')
            goto yy1633;
          if (yych == ':')
            goto yy1692;
          goto yy1662;
        } else {
          if (yych <= '<')
            goto yy1633;
          if (yych <= '=')
            goto yy1660;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych <= '_')
            goto yy1692;
          goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  yy1696:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          goto yy1696;
        } else {
          if (yych == ' ')
            goto yy1696;
          if (yych <= '!')
            goto yy1662;
          goto yy1673;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1671;
          if (yych <= '9')
            goto yy1662;
          goto yy1692;
        } else {
          if (yych <= ';')
            goto yy1662;
          if (yych <= '=')
            goto yy1633;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych <= '_')
            goto yy1692;
          goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  }
}

// Try to match an HTML block end line of type 1
bufsize_t _scan_html_block_end_1(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1701;
      } else {
        if (yych <= '<')
          goto yy1702;
        if (yych <= 0x7F)
          goto yy1701;
        if (yych >= 0xC2)
          goto yy1703;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1705;
        if (yych == 0xED)
          goto yy1710;
        goto yy1706;
      } else {
        if (yych <= 0xF0)
          goto yy1707;
        if (yych <= 0xF3)
          goto yy1708;
        if (yych <= 0xF4)
          goto yy1709;
      }
    }
  yy1700 : { return 0; }
  yy1701:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1700;
      goto yy1715;
    } else {
      if (yych <= 0xC1)
        goto yy1700;
      if (yych <= 0xF4)
        goto yy1715;
      goto yy1700;
    }
  yy1702:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '/') {
      if (yych == '\n')
        goto yy1700;
      if (yych <= '.')
        goto yy1715;
      goto yy1711;
    } else {
      if (yych <= 0x7F)
        goto yy1715;
      if (yych <= 0xC1)
        goto yy1700;
      if (yych <= 0xF4)
        goto yy1715;
      goto yy1700;
    }
  yy1703:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1701;
  yy1704:
    p = marker;
    if (yyaccept == 0) {
      goto yy1700;
    } else {
      goto yy1732;
    }
  yy1705:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1703;
    goto yy1704;
  yy1706:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1703;
    goto yy1704;
  yy1707:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1706;
    goto yy1704;
  yy1708:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1706;
    goto yy1704;
  yy1709:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x8F)
      goto yy1706;
    goto yy1704;
  yy1710:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x9F)
      goto yy1703;
    goto yy1704;
  yy1711:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 's') {
      if (yych <= 'R') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1714;
          goto yy1704;
        } else {
          if (yych == 'P')
            goto yy1723;
          goto yy1714;
        }
      } else {
        if (yych <= 'o') {
          if (yych <= 'S')
            goto yy1724;
          goto yy1714;
        } else {
          if (yych <= 'p')
            goto yy1723;
          if (yych <= 'r')
            goto yy1714;
          goto yy1724;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1714;
          goto yy1704;
        } else {
          if (yych <= 0xDF)
            goto yy1716;
          if (yych <= 0xE0)
            goto yy1717;
          goto yy1718;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1722;
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1712:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xDF) {
      if (yych <= '.') {
        if (yych == '\n')
          goto yy1704;
      } else {
        if (yych <= '/')
          goto yy1711;
        if (yych <= 0x7F)
          goto yy1714;
        if (yych <= 0xC1)
          goto yy1704;
        goto yy1716;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1717;
        if (yych == 0xED)
          goto yy1722;
        goto yy1718;
      } else {
        if (yych <= 0xF0)
          goto yy1719;
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1714:
    ++p;
    yych = *p;
  yy1715:
    if (yybm[0 + yych] & 128) {
      goto yy1714;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1704;
        if (yych <= '<')
          goto yy1712;
        goto yy1704;
      } else {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        goto yy1718;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1722;
        if (yych <= 0xEF)
          goto yy1718;
        goto yy1719;
      } else {
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1716:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1714;
    goto yy1704;
  yy1717:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1716;
    goto yy1704;
  yy1718:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1716;
    goto yy1704;
  yy1719:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1718;
    goto yy1704;
  yy1720:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1718;
    goto yy1704;
  yy1721:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x8F)
      goto yy1718;
    goto yy1704;
  yy1722:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x9F)
      goto yy1716;
    goto yy1704;
  yy1723:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'R') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'Q')
          goto yy1714;
        goto yy1735;
      } else {
        if (yych == 'r')
          goto yy1735;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1724:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 't') {
      if (yych <= 'S') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1714;
          goto yy1704;
        } else {
          if (yych == 'C')
            goto yy1726;
          goto yy1714;
        }
      } else {
        if (yych <= 'b') {
          if (yych >= 'U')
            goto yy1714;
        } else {
          if (yych <= 'c')
            goto yy1726;
          if (yych <= 's')
            goto yy1714;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1714;
          goto yy1704;
        } else {
          if (yych <= 0xDF)
            goto yy1716;
          if (yych <= 0xE0)
            goto yy1717;
          goto yy1718;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1722;
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'Y') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'X')
          goto yy1714;
        goto yy1733;
      } else {
        if (yych == 'y')
          goto yy1733;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1726:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'R') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'Q')
          goto yy1714;
      } else {
        if (yych == 'r')
          goto yy1727;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1727:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'I') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'H')
          goto yy1714;
      } else {
        if (yych == 'i')
          goto yy1728;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1728:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'P') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'O')
          goto yy1714;
      } else {
        if (yych == 'p')
          goto yy1729;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1729:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'T') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'S')
          goto yy1714;
      } else {
        if (yych == 't')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1730:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1704;
        goto yy1714;
      } else {
        if (yych <= '>')
          goto yy1731;
        if (yych <= 0x7F)
          goto yy1714;
        if (yych <= 0xC1)
          goto yy1704;
        goto yy1716;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1717;
        if (yych == 0xED)
          goto yy1722;
        goto yy1718;
      } else {
        if (yych <= 0xF0)
          goto yy1719;
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1731:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1714;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1732;
        if (yych <= '<')
          goto yy1712;
      } else {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        goto yy1718;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1722;
        if (yych <= 0xEF)
          goto yy1718;
        goto yy1719;
      } else {
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
      }
    }
  yy1732 : { return (bufsize_t)(p - start); }
  yy1733:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'L') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'K')
          goto yy1714;
      } else {
        if (yych == 'l')
          goto yy1734;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1734:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'E') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'D')
          goto yy1714;
        goto yy1730;
      } else {
        if (yych == 'e')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1735:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'E') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'D')
          goto yy1714;
        goto yy1730;
      } else {
        if (yych == 'e')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  }
}

// Try to match an HTML block end line of type 2
bufsize_t _scan_html_block_end_2(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ',') {
        if (yych != '\n')
          goto yy1739;
      } else {
        if (yych <= '-')
          goto yy1740;
        if (yych <= 0x7F)
          goto yy1739;
        if (yych >= 0xC2)
          goto yy1741;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1743;
        if (yych == 0xED)
          goto yy1748;
        goto yy1744;
      } else {
        if (yych <= 0xF0)
          goto yy1745;
        if (yych <= 0xF3)
          goto yy1746;
        if (yych <= 0xF4)
          goto yy1747;
      }
    }
  yy1738 : { return 0; }
  yy1739:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1738;
      goto yy1752;
    } else {
      if (yych <= 0xC1)
        goto yy1738;
      if (yych <= 0xF4)
        goto yy1752;
      goto yy1738;
    }
  yy1740:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1749;
    }
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1738;
      goto yy1752;
    } else {
      if (yych <= 0xC1)
        goto yy1738;
      if (yych <= 0xF4)
        goto yy1752;
      goto yy1738;
    }
  yy1741:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1739;
  yy1742:
    p = marker;
    if (yyaccept == 0) {
      goto yy1738;
    } else {
      goto yy1762;
    }
  yy1743:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1741;
    goto yy1742;
  yy1744:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1741;
    goto yy1742;
  yy1745:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1744;
    goto yy1742;
  yy1746:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1744;
    goto yy1742;
  yy1747:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x8F)
      goto yy1744;
    goto yy1742;
  yy1748:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x9F)
      goto yy1741;
    goto yy1742;
  yy1749:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1749;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1742;
      } else {
        if (yych <= '>')
          goto yy1761;
        if (yych <= 0x7F)
          goto yy1751;
        if (yych <= 0xC1)
          goto yy1742;
        goto yy1753;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1754;
        if (yych == 0xED)
          goto yy1759;
        goto yy1755;
      } else {
        if (yych <= 0xF0)
          goto yy1756;
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1751:
    ++p;
    yych = *p;
  yy1752:
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1742;
        if (yych <= '-')
          goto yy1760;
        goto yy1742;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1753:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1751;
    goto yy1742;
  yy1754:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1753;
    goto yy1742;
  yy1755:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1753;
    goto yy1742;
  yy1756:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1755;
    goto yy1742;
  yy1757:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1755;
    goto yy1742;
  yy1758:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x8F)
      goto yy1755;
    goto yy1742;
  yy1759:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x9F)
      goto yy1753;
    goto yy1742;
  yy1760:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1742;
        if (yych <= '-')
          goto yy1749;
        goto yy1742;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1761:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1762;
        if (yych <= '-')
          goto yy1760;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
      }
    }
  yy1762 : { return (bufsize_t)(p - start); }
  }
}

// Try to match an HTML block end line of type 3
bufsize_t _scan_html_block_end_3(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '>') {
        if (yych != '\n')
          goto yy1766;
      } else {
        if (yych <= '?')
          goto yy1767;
        if (yych <= 0x7F)
          goto yy1766;
        if (yych >= 0xC2)
          goto yy1768;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1770;
        if (yych == 0xED)
          goto yy1775;
        goto yy1771;
      } else {
        if (yych <= 0xF0)
          goto yy1772;
        if (yych <= 0xF3)
          goto yy1773;
        if (yych <= 0xF4)
          goto yy1774;
      }
    }
  yy1765 : { return 0; }
  yy1766:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1765;
      goto yy1781;
    } else {
      if (yych <= 0xC1)
        goto yy1765;
      if (yych <= 0xF4)
        goto yy1781;
      goto yy1765;
    }
  yy1767:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '>') {
      if (yych == '\n')
        goto yy1765;
      if (yych <= '=')
        goto yy1781;
      goto yy1776;
    } else {
      if (yych <= 0x7F)
        goto yy1781;
      if (yych <= 0xC1)
        goto yy1765;
      if (yych <= 0xF4)
        goto yy1781;
      goto yy1765;
    }
  yy1768:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1766;
  yy1769:
    p = marker;
    if (yyaccept == 0) {
      goto yy1765;
    } else {
      goto yy1777;
    }
  yy1770:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1768;
    goto yy1769;
  yy1771:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1768;
    goto yy1769;
  yy1772:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1771;
    goto yy1769;
  yy1773:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1771;
    goto yy1769;
  yy1774:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x8F)
      goto yy1771;
    goto yy1769;
  yy1775:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x9F)
      goto yy1768;
    goto yy1769;
  yy1776:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1780;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1777;
        if (yych <= '?')
          goto yy1778;
      } else {
        if (yych <= 0xDF)
          goto yy1782;
        if (yych <= 0xE0)
          goto yy1783;
        goto yy1784;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1788;
        if (yych <= 0xEF)
          goto yy1784;
        goto yy1785;
      } else {
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
      }
    }
  yy1777 : { return (bufsize_t)(p - start); }
  yy1778:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1778;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1769;
      } else {
        if (yych <= '>')
          goto yy1776;
        if (yych <= 0x7F)
          goto yy1780;
        if (yych <= 0xC1)
          goto yy1769;
        goto yy1782;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1783;
        if (yych == 0xED)
          goto yy1788;
        goto yy1784;
      } else {
        if (yych <= 0xF0)
          goto yy1785;
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
        goto yy1769;
      }
    }
  yy1780:
    ++p;
    yych = *p;
  yy1781:
    if (yybm[0 + yych] & 128) {
      goto yy1780;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1769;
        if (yych <= '?')
          goto yy1778;
        goto yy1769;
      } else {
        if (yych <= 0xDF)
          goto yy1782;
        if (yych <= 0xE0)
          goto yy1783;
        goto yy1784;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1788;
        if (yych <= 0xEF)
          goto yy1784;
        goto yy1785;
      } else {
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
        goto yy1769;
      }
    }
  yy1782:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1780;
    goto yy1769;
  yy1783:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1782;
    goto yy1769;
  yy1784:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1782;
    goto yy1769;
  yy1785:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1784;
    goto yy1769;
  yy1786:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1784;
    goto yy1769;
  yy1787:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x8F)
      goto yy1784;
    goto yy1769;
  yy1788:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x9F)
      goto yy1782;
    goto yy1769;
  }
}

// Try to match an HTML block end line of type 4
bufsize_t _scan_html_block_end_4(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych != '\n')
          goto yy1792;
      } else {
        if (yych <= '>')
          goto yy1793;
        if (yych <= 0x7F)
          goto yy1792;
        if (yych >= 0xC2)
          goto yy1795;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1797;
        if (yych == 0xED)
          goto yy1802;
        goto yy1798;
      } else {
        if (yych <= 0xF0)
          goto yy1799;
        if (yych <= 0xF3)
          goto yy1800;
        if (yych <= 0xF4)
          goto yy1801;
      }
    }
  yy1791 : { return 0; }
  yy1792:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1791;
      goto yy1806;
    } else {
      if (yych <= 0xC1)
        goto yy1791;
      if (yych <= 0xF4)
        goto yy1806;
      goto yy1791;
    }
  yy1793:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych != '\n')
        goto yy1806;
    } else {
      if (yych <= 0xC1)
        goto yy1794;
      if (yych <= 0xF4)
        goto yy1806;
    }
  yy1794 : { return (bufsize_t)(p - start); }
  yy1795:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1792;
  yy1796:
    p = marker;
    if (yyaccept == 0) {
      goto yy1791;
    } else {
      goto yy1794;
    }
  yy1797:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1795;
    goto yy1796;
  yy1798:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1795;
    goto yy1796;
  yy1799:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1798;
    goto yy1796;
  yy1800:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1798;
    goto yy1796;
  yy1801:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x8F)
      goto yy1798;
    goto yy1796;
  yy1802:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x9F)
      goto yy1795;
    goto yy1796;
  yy1803:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1805;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1794;
        if (yych <= '>')
          goto yy1803;
        goto yy1794;
      } else {
        if (yych <= 0xDF)
          goto yy1807;
        if (yych <= 0xE0)
          goto yy1808;
        goto yy1809;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1813;
        if (yych <= 0xEF)
          goto yy1809;
        goto yy1810;
      } else {
        if (yych <= 0xF3)
          goto yy1811;
        if (yych <= 0xF4)
          goto yy1812;
        goto yy1794;
      }
    }
  yy1805:
    ++p;
    yych = *p;
  yy1806:
    if (yybm[0 + yych] & 128) {
      goto yy1805;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1796;
        if (yych <= '>')
          goto yy1803;
        goto yy1796;
      } else {
        if (yych <= 0xDF)
          goto yy1807;
        if (yych <= 0xE0)
          goto yy1808;
        goto yy1809;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1813;
        if (yych <= 0xEF)
          goto yy1809;
        goto yy1810;
      } else {
        if (yych <= 0xF3)
          goto yy1811;
        if (yych <= 0xF4)
          goto yy1812;
        goto yy1796;
      }
    }
  yy1807:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1805;
    goto yy1796;
  yy1808:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1807;
    goto yy1796;
  yy1809:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1807;
    goto yy1796;
  yy1810:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1809;
    goto yy1796;
  yy1811:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1809;
    goto yy1796;
  yy1812:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x8F)
      goto yy1809;
    goto yy1796;
  yy1813:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x9F)
      goto yy1807;
    goto yy1796;
  }
}

// Try to match an HTML block end line of type 5
bufsize_t _scan_html_block_end_5(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '\\') {
        if (yych != '\n')
          goto yy1817;
      } else {
        if (yych <= ']')
          goto yy1818;
        if (yych <= 0x7F)
          goto yy1817;
        if (yych >= 0xC2)
          goto yy1819;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1821;
        if (yych == 0xED)
          goto yy1826;
        goto yy1822;
      } else {
        if (yych <= 0xF0)
          goto yy1823;
        if (yych <= 0xF3)
          goto yy1824;
        if (yych <= 0xF4)
          goto yy1825;
      }
    }
  yy1816 : { return 0; }
  yy1817:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1816;
      goto yy1830;
    } else {
      if (yych <= 0xC1)
        goto yy1816;
      if (yych <= 0xF4)
        goto yy1830;
      goto yy1816;
    }
  yy1818:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1827;
    }
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1816;
      goto yy1830;
    } else {
      if (yych <= 0xC1)
        goto yy1816;
      if (yych <= 0xF4)
        goto yy1830;
      goto yy1816;
    }
  yy1819:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1817;
  yy1820:
    p = marker;
    if (yyaccept == 0) {
      goto yy1816;
    } else {
      goto yy1840;
    }
  yy1821:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1819;
    goto yy1820;
  yy1822:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1819;
    goto yy1820;
  yy1823:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1822;
    goto yy1820;
  yy1824:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1822;
    goto yy1820;
  yy1825:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x8F)
      goto yy1822;
    goto yy1820;
  yy1826:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x9F)
      goto yy1819;
    goto yy1820;
  yy1827:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1827;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1820;
      } else {
        if (yych <= '>')
          goto yy1839;
        if (yych <= 0x7F)
          goto yy1829;
        if (yych <= 0xC1)
          goto yy1820;
        goto yy1831;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1832;
        if (yych == 0xED)
          goto yy1837;
        goto yy1833;
      } else {
        if (yych <= 0xF0)
          goto yy1834;
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1829:
    ++p;
    yych = *p;
  yy1830:
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1820;
        if (yych <= ']')
          goto yy1838;
        goto yy1820;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1831:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1829;
    goto yy1820;
  yy1832:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1831;
    goto yy1820;
  yy1833:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1831;
    goto yy1820;
  yy1834:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1833;
    goto yy1820;
  yy1835:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1833;
    goto yy1820;
  yy1836:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x8F)
      goto yy1833;
    goto yy1820;
  yy1837:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x9F)
      goto yy1831;
    goto yy1820;
  yy1838:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1820;
        if (yych <= ']')
          goto yy1827;
        goto yy1820;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1839:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1840;
        if (yych <= ']')
          goto yy1838;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
      }
    }
  yy1840 : { return (bufsize_t)(p - start); }
  }
}

// Try to match a URL in a link or reference, return number of chars matched.
// This may optionally be contained in <..>; otherwise
// whitespace and unbalanced right parentheses aren't allowed.
// Newlines aren't ever allowed.
bufsize_t _scan_link_url(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 8,   128, 128, 8,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 32,  224, 32,  224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= '[') {
      if (yych <= ' ') {
        if (yych <= '\f') {
          if (yych == '\n')
            goto yy1844;
          goto yy1860;
        } else {
          if (yych <= '\r')
            goto yy1846;
          if (yych <= 0x1F)
            goto yy1860;
          goto yy1846;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1848;
          if (yych <= '(')
            goto yy1859;
          goto yy1860;
        } else {
          if (yych == '<')
            goto yy1847;
          goto yy1848;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1857;
          if (yych <= 0x7F)
            goto yy1848;
        } else {
          if (yych <= 0xDF)
            goto yy1849;
          if (yych <= 0xE0)
            goto yy1851;
          goto yy1852;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1856;
          if (yych <= 0xEF)
            goto yy1852;
          goto yy1853;
        } else {
          if (yych <= 0xF3)
            goto yy1854;
          if (yych <= 0xF4)
            goto yy1855;
        }
      }
    }
  yy1843 : { return (bufsize_t)(p - start); }
  yy1844:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1845:
    if (yybm[0 + yych] & 8) {
      goto yy1844;
    }
    if (yych <= 0x7F) {
      if (yych <= ')') {
        if (yych <= 0x1F)
          goto yy1843;
        if (yych <= '\'')
          goto yy1872;
        if (yych <= '(')
          goto yy1863;
        goto yy1843;
      } else {
        if (yych <= '<') {
          if (yych <= ';')
            goto yy1872;
          goto yy1907;
        } else {
          if (yych == '\\')
            goto yy1881;
          goto yy1872;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1843;
          goto yy1874;
        } else {
          if (yych <= 0xE0)
            goto yy1875;
          if (yych <= 0xEC)
            goto yy1876;
          goto yy1880;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1876;
          goto yy1877;
        } else {
          if (yych <= 0xF3)
            goto yy1878;
          if (yych <= 0xF4)
            goto yy1879;
          goto yy1843;
        }
      }
    }
  yy1846:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1845;
  yy1847:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
          goto yy1909;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1848:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1873;
  yy1849:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1848;
  yy1850:
    p = marker;
    if (yyaccept <= 1) {
      if (yyaccept == 0) {
        goto yy1843;
      } else {
        goto yy1858;
      }
    } else {
      goto yy1910;
    }
  yy1851:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1849;
    goto yy1850;
  yy1852:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1849;
    goto yy1850;
  yy1853:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1852;
    goto yy1850;
  yy1854:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1852;
    goto yy1850;
  yy1855:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1852;
    goto yy1850;
  yy1856:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1849;
    goto yy1850;
  yy1857:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x7F)
          goto yy1872;
      } else {
        if (yych <= 0xDF)
          goto yy1882;
        if (yych <= 0xE0)
          goto yy1883;
        goto yy1884;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1888;
        if (yych <= 0xEF)
          goto yy1884;
        goto yy1885;
      } else {
        if (yych <= 0xF3)
          goto yy1886;
        if (yych <= 0xF4)
          goto yy1887;
      }
    }
  yy1858 : { return 0; }
  yy1859:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= '(') {
      if (yych <= ' ')
        goto yy1858;
      if (yych <= '\'')
        goto yy1864;
      goto yy1858;
    } else {
      if (yych <= 0x7F)
        goto yy1864;
      if (yych <= 0xC1)
        goto yy1858;
      if (yych <= 0xF4)
        goto yy1864;
      goto yy1858;
    }
  yy1860:
    yych = *++p;
    goto yy1858;
  yy1861:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1861;
    }
    if (yych <= 0xE0) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1850;
        if (yych >= ')')
          goto yy1889;
      } else {
        if (yych <= 0x7F)
          goto yy1863;
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1865;
        goto yy1866;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1871;
        goto yy1867;
      } else {
        if (yych <= 0xF0)
          goto yy1868;
        if (yych <= 0xF3)
          goto yy1869;
        if (yych <= 0xF4)
          goto yy1870;
        goto yy1850;
      }
    }
  yy1863:
    ++p;
    yych = *p;
  yy1864:
    if (yybm[0 + yych] & 32) {
      goto yy1863;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '(')
          goto yy1850;
        if (yych <= ')')
          goto yy1872;
        goto yy1861;
      } else {
        if (yych <= 0xC1)
          goto yy1850;
        if (yych >= 0xE0)
          goto yy1866;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1871;
        goto yy1867;
      } else {
        if (yych <= 0xF0)
          goto yy1868;
        if (yych <= 0xF3)
          goto yy1869;
        if (yych <= 0xF4)
          goto yy1870;
        goto yy1850;
      }
    }
  yy1865:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1863;
    goto yy1850;
  yy1866:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1865;
    goto yy1850;
  yy1867:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1865;
    goto yy1850;
  yy1868:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1867;
    goto yy1850;
  yy1869:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1867;
    goto yy1850;
  yy1870:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1867;
    goto yy1850;
  yy1871:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1865;
    goto yy1850;
  yy1872:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1873:
    if (yych <= 0xC1) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1843;
        if (yych <= '\'')
          goto yy1872;
        if (yych <= '(')
          goto yy1863;
        goto yy1843;
      } else {
        if (yych == '\\')
          goto yy1881;
        if (yych <= 0x7F)
          goto yy1872;
        goto yy1843;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1874;
        if (yych <= 0xE0)
          goto yy1875;
        if (yych <= 0xEC)
          goto yy1876;
        goto yy1880;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1876;
          goto yy1877;
        } else {
          if (yych <= 0xF3)
            goto yy1878;
          if (yych <= 0xF4)
            goto yy1879;
          goto yy1843;
        }
      }
    }
  yy1874:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1872;
    goto yy1850;
  yy1875:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1874;
    goto yy1850;
  yy1876:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1874;
    goto yy1850;
  yy1877:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1876;
    goto yy1850;
  yy1878:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1876;
    goto yy1850;
  yy1879:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1876;
    goto yy1850;
  yy1880:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1874;
    goto yy1850;
  yy1881:
    ++p;
    yych = *p;
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x7F)
          goto yy1872;
        goto yy1850;
      } else {
        if (yych <= 0xDF)
          goto yy1882;
        if (yych <= 0xE0)
          goto yy1883;
        goto yy1884;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1888;
        if (yych <= 0xEF)
          goto yy1884;
        goto yy1885;
      } else {
        if (yych <= 0xF3)
          goto yy1886;
        if (yych <= 0xF4)
          goto yy1887;
        goto yy1850;
      }
    }
  yy1882:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1872;
    goto yy1850;
  yy1883:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1882;
    goto yy1850;
  yy1884:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1882;
    goto yy1850;
  yy1885:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1884;
    goto yy1850;
  yy1886:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1884;
    goto yy1850;
  yy1887:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1884;
    goto yy1850;
  yy1888:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1882;
    goto yy1850;
  yy1889:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1890:
    if (yych <= 0xC1) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1843;
        if (yych <= '\'')
          goto yy1889;
        if (yych <= '(')
          goto yy1863;
        goto yy1872;
      } else {
        if (yych == '\\')
          goto yy1898;
        if (yych <= 0x7F)
          goto yy1889;
        goto yy1843;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1891;
        if (yych <= 0xE0)
          goto yy1892;
        if (yych <= 0xEC)
          goto yy1893;
        goto yy1897;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1893;
          goto yy1894;
        } else {
          if (yych <= 0xF3)
            goto yy1895;
          if (yych <= 0xF4)
            goto yy1896;
          goto yy1843;
        }
      }
    }
  yy1891:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1889;
    goto yy1850;
  yy1892:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1891;
    goto yy1850;
  yy1893:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1891;
    goto yy1850;
  yy1894:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1893;
    goto yy1850;
  yy1895:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1893;
    goto yy1850;
  yy1896:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1893;
    goto yy1850;
  yy1897:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1891;
    goto yy1850;
  yy1898:
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= ' ')
          goto yy1872;
        if (yych <= '[')
          goto yy1889;
      } else {
        if (yych <= 0x7F)
          goto yy1889;
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1900;
        goto yy1901;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1906;
        goto yy1902;
      } else {
        if (yych <= 0xF0)
          goto yy1903;
        if (yych <= 0xF3)
          goto yy1904;
        if (yych <= 0xF4)
          goto yy1905;
        goto yy1850;
      }
    }
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= 0xDF) {
      if (yych <= '[') {
        if (yych <= ' ')
          goto yy1843;
        if (yych == '(')
          goto yy1863;
        goto yy1889;
      } else {
        if (yych <= '\\')
          goto yy1898;
        if (yych <= 0x7F)
          goto yy1889;
        if (yych <= 0xC1)
          goto yy1843;
        goto yy1891;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1892;
        if (yych == 0xED)
          goto yy1897;
        goto yy1893;
      } else {
        if (yych <= 0xF0)
          goto yy1894;
        if (yych <= 0xF3)
          goto yy1895;
        if (yych <= 0xF4)
          goto yy1896;
        goto yy1843;
      }
    }
  yy1900:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1889;
    goto yy1850;
  yy1901:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1900;
    goto yy1850;
  yy1902:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1900;
    goto yy1850;
  yy1903:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1902;
    goto yy1850;
  yy1904:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1902;
    goto yy1850;
  yy1905:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1902;
    goto yy1850;
  yy1906:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1900;
    goto yy1850;
  yy1907:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1909:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ')') {
      if (yych <= ' ')
        goto yy1910;
      if (yych <= '(')
        goto yy1873;
    } else {
      if (yych <= 0x7F)
        goto yy1873;
      if (yych <= 0xC1)
        goto yy1910;
      if (yych <= 0xF4)
        goto yy1873;
    }
  yy1910 : { return (bufsize_t)(p - start); }
  yy1911:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1907;
    goto yy1850;
  yy1912:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1911;
    goto yy1850;
  yy1913:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1911;
    goto yy1850;
  yy1914:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1913;
    goto yy1850;
  yy1915:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1913;
    goto yy1850;
  yy1916:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1913;
    goto yy1850;
  yy1917:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1911;
    goto yy1850;
  yy1918:
    ++p;
    yych = *p;
    if (yych <= 0x7F) {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1872;
          goto yy1907;
        } else {
          if (yych <= '\n')
            goto yy1872;
          if (yych <= '\f')
            goto yy1907;
          goto yy1872;
        }
      } else {
        if (yych <= '>') {
          if (yych <= '=')
            goto yy1907;
          goto yy1965;
        } else {
          if (yych == '\\')
            goto yy1966;
          goto yy1907;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1850;
          goto yy1967;
        } else {
          if (yych <= 0xE0)
            goto yy1968;
          if (yych <= 0xEC)
            goto yy1969;
          goto yy1973;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1969;
          goto yy1970;
        } else {
          if (yych <= 0xF3)
            goto yy1971;
          if (yych <= 0xF4)
            goto yy1972;
          goto yy1850;
        }
      }
    }
  yy1919:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1850;
          if (yych >= '\n')
            goto yy1850;
        } else {
          if (yych == '\r')
            goto yy1850;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1919;
          if (yych >= ')')
            goto yy1907;
        } else {
          if (yych == '<')
            goto yy1863;
          if (yych <= '=')
            goto yy1919;
          goto yy1934;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1935;
          goto yy1919;
        } else {
          if (yych <= 0xC1)
            goto yy1850;
          if (yych <= 0xDF)
            goto yy1937;
          goto yy1938;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1943;
          goto yy1939;
        } else {
          if (yych <= 0xF0)
            goto yy1940;
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1850;
        }
      }
    }
  yy1921:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1921;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '<')
          goto yy1850;
        if (yych >= '?')
          goto yy1924;
      } else {
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1926;
        goto yy1927;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1932;
        goto yy1928;
      } else {
        if (yych <= 0xF0)
          goto yy1929;
        if (yych <= 0xF3)
          goto yy1930;
        if (yych <= 0xF4)
          goto yy1931;
        goto yy1850;
      }
    }
  yy1923:
    yych = *++p;
    goto yy1910;
  yy1924:
    ++p;
    yych = *p;
    if (yych <= 0x7F) {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1850;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1850;
          if (yych <= '\f')
            goto yy1921;
          goto yy1850;
        }
      } else {
        if (yych <= '>') {
          if (yych <= '=')
            goto yy1921;
          goto yy1933;
        } else {
          if (yych == '\\')
            goto yy1924;
          goto yy1921;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1850;
        } else {
          if (yych <= 0xE0)
            goto yy1927;
          if (yych <= 0xEC)
            goto yy1928;
          goto yy1932;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1928;
          goto yy1929;
        } else {
          if (yych <= 0xF3)
            goto yy1930;
          if (yych <= 0xF4)
            goto yy1931;
          goto yy1850;
        }
      }
    }
  yy1926:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1921;
    goto yy1850;
  yy1927:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1926;
    goto yy1850;
  yy1928:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1926;
    goto yy1850;
  yy1929:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1928;
    goto yy1850;
  yy1930:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1928;
    goto yy1850;
  yy1931:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1928;
    goto yy1850;
  yy1932:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1926;
    goto yy1850;
  yy1933:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1921;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '<')
          goto yy1910;
        if (yych <= '>')
          goto yy1923;
        goto yy1924;
      } else {
        if (yych <= 0xC1)
          goto yy1910;
        if (yych <= 0xDF)
          goto yy1926;
        goto yy1927;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1932;
        goto yy1928;
      } else {
        if (yych <= 0xF0)
          goto yy1929;
        if (yych <= 0xF3)
          goto yy1930;
        if (yych <= 0xF4)
          goto yy1931;
        goto yy1910;
      }
    }
  yy1934:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= '(') {
      if (yych <= ' ')
        goto yy1910;
      if (yych <= '\'')
        goto yy1864;
      goto yy1910;
    } else {
      if (yych <= 0x7F)
        goto yy1864;
      if (yych <= 0xC1)
        goto yy1910;
      if (yych <= 0xF4)
        goto yy1864;
      goto yy1910;
    }
  yy1935:
    ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1850;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1850;
          if (yych <= '\f')
            goto yy1921;
          goto yy1850;
        }
      } else {
        if (yych <= ')') {
          if (yych <= ' ')
            goto yy1921;
          if (yych <= '(')
            goto yy1919;
          goto yy1944;
        } else {
          if (yych == '>')
            goto yy1946;
          goto yy1919;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1935;
          if (yych <= 0x7F)
            goto yy1919;
          goto yy1850;
        } else {
          if (yych <= 0xDF)
            goto yy1937;
          if (yych <= 0xE0)
            goto yy1938;
          goto yy1939;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1943;
          if (yych <= 0xEF)
            goto yy1939;
          goto yy1940;
        } else {
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1850;
        }
      }
    }
  yy1937:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1919;
    goto yy1850;
  yy1938:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1937;
    goto yy1850;
  yy1939:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1937;
    goto yy1850;
  yy1940:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1939;
    goto yy1850;
  yy1941:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1939;
    goto yy1850;
  yy1942:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1939;
    goto yy1850;
  yy1943:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1937;
    goto yy1850;
  yy1944:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1843;
          if (yych <= '\t')
            goto yy1921;
          goto yy1843;
        } else {
          if (yych == '\r')
            goto yy1843;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1944;
          if (yych <= '(')
            goto yy1919;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1889;
          if (yych <= '=')
            goto yy1944;
          goto yy1947;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1948;
          goto yy1944;
        } else {
          if (yych <= 0xC1)
            goto yy1843;
          if (yych <= 0xDF)
            goto yy1949;
          goto yy1950;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1955;
          goto yy1951;
        } else {
          if (yych <= 0xF0)
            goto yy1952;
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1843;
        }
      }
    }
  yy1946:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1910;
          if (yych <= '\t')
            goto yy1921;
          goto yy1910;
        } else {
          if (yych == '\r')
            goto yy1910;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1919;
          if (yych <= '(')
            goto yy1921;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1863;
          if (yych <= '=')
            goto yy1919;
          goto yy1934;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1935;
          goto yy1919;
        } else {
          if (yych <= 0xC1)
            goto yy1910;
          if (yych <= 0xDF)
            goto yy1937;
          goto yy1938;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1943;
          goto yy1939;
        } else {
          if (yych <= 0xF0)
            goto yy1940;
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1910;
        }
      }
    }
  yy1947:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ' ')
      goto yy1910;
    if (yych <= 0x7F)
      goto yy1890;
    if (yych <= 0xC1)
      goto yy1910;
    if (yych <= 0xF4)
      goto yy1890;
    goto yy1910;
  yy1948:
    ++p;
    yych = *p;
    if (yych <= '\\') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1872;
          goto yy1907;
        } else {
          if (yych <= '\n')
            goto yy1872;
          if (yych <= '\f')
            goto yy1907;
          goto yy1872;
        }
      } else {
        if (yych <= '=') {
          if (yych <= ' ')
            goto yy1907;
          goto yy1944;
        } else {
          if (yych <= '>')
            goto yy1956;
          if (yych <= '[')
            goto yy1944;
          goto yy1957;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1944;
          goto yy1850;
        } else {
          if (yych <= 0xDF)
            goto yy1958;
          if (yych <= 0xE0)
            goto yy1959;
          goto yy1960;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1964;
          if (yych <= 0xEF)
            goto yy1960;
          goto yy1961;
        } else {
          if (yych <= 0xF3)
            goto yy1962;
          if (yych <= 0xF4)
            goto yy1963;
          goto yy1850;
        }
      }
    }
  yy1949:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1944;
    goto yy1850;
  yy1950:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1949;
    goto yy1850;
  yy1951:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1949;
    goto yy1850;
  yy1952:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1951;
    goto yy1850;
  yy1953:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1951;
    goto yy1850;
  yy1954:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1951;
    goto yy1850;
  yy1955:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1949;
    goto yy1850;
  yy1956:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1910;
          if (yych <= '\t')
            goto yy1921;
          goto yy1910;
        } else {
          if (yych == '\r')
            goto yy1910;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1944;
          if (yych <= '(')
            goto yy1919;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1889;
          if (yych <= '=')
            goto yy1944;
          goto yy1947;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1948;
          goto yy1944;
        } else {
          if (yych <= 0xC1)
            goto yy1910;
          if (yych <= 0xDF)
            goto yy1949;
          goto yy1950;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1955;
          goto yy1951;
        } else {
          if (yych <= 0xF0)
            goto yy1952;
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1910;
        }
      }
    }
  yy1957:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          if (yych <= '\'')
            goto yy1944;
          goto yy1919;
        } else {
          if (yych == '>')
            goto yy1956;
          goto yy1944;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1948;
          if (yych <= 0x7F)
            goto yy1944;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1949;
          if (yych <= 0xE0)
            goto yy1950;
          goto yy1951;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1955;
          if (yych <= 0xEF)
            goto yy1951;
          goto yy1952;
        } else {
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1843;
        }
      }
    }
  yy1958:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1944;
    goto yy1850;
  yy1959:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1958;
    goto yy1850;
  yy1960:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1958;
    goto yy1850;
  yy1961:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1960;
    goto yy1850;
  yy1962:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1960;
    goto yy1850;
  yy1963:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1960;
    goto yy1850;
  yy1964:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1958;
    goto yy1850;
  yy1965:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1910;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1910;
          if (yych <= '\f')
            goto yy1921;
          goto yy1910;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
          goto yy1909;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1910;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1910;
        }
      }
    }
  yy1966:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1843;
          if (yych <= '\t')
            goto yy1921;
          goto yy1843;
        } else {
          if (yych == '\r')
            goto yy1843;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1907;
          if (yych <= '(')
            goto yy1919;
          goto yy1921;
        } else {
          if (yych == '>')
            goto yy1965;
          goto yy1907;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          if (yych <= 0x7F)
            goto yy1907;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1967:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1907;
    goto yy1850;
  yy1968:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1967;
    goto yy1850;
  yy1969:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1967;
    goto yy1850;
  yy1970:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1969;
    goto yy1850;
  yy1971:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1969;
    goto yy1850;
  yy1972:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1969;
    goto yy1850;
  yy1973:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1967;
    goto yy1850;
  }
}

// Try to match a link title (in single quotes, in double quotes, or
// in parentheses), returning number of chars matched.  Allow one
// level of internal nesting (quotes within quotes).
bufsize_t _scan_link_title(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 96,  224, 224, 224, 224, 160, 224, 192,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '"') {
        if (yych == '\n')
          goto yy1976;
        if (yych <= '!')
          goto yy1980;
        goto yy1977;
      } else {
        if (yych <= '\'') {
          if (yych <= '&')
            goto yy1980;
          goto yy1978;
        } else {
          if (yych <= '(')
            goto yy1979;
          if (yych <= 0x7F)
            goto yy1980;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1981;
        if (yych <= 0xE0)
          goto yy1983;
        if (yych <= 0xEC)
          goto yy1984;
        goto yy1988;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1984;
          goto yy1985;
        } else {
          if (yych <= 0xF3)
            goto yy1986;
          if (yych <= 0xF4)
            goto yy1987;
        }
      }
    }
  yy1976 : { return 0; }
  yy1977:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy2020;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy2020;
    goto yy1976;
  yy1978:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy2006;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy2006;
    goto yy1976;
  yy1979:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy1992;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy1992;
    goto yy1976;
  yy1980:
    yych = *++p;
    goto yy1976;
  yy1981:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1980;
  yy1982:
    p = marker;
    if (yyaccept <= 1) {
      if (yyaccept == 0) {
        goto yy1976;
      } else {
        goto yy2001;
      }
    } else {
      if (yyaccept == 2) {
        goto yy2015;
      } else {
        goto yy2029;
      }
    }
  yy1983:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1981;
    goto yy1982;
  yy1984:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1981;
    goto yy1982;
  yy1985:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1984;
    goto yy1982;
  yy1986:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1984;
    goto yy1982;
  yy1987:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy1984;
    goto yy1982;
  yy1988:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy1981;
    goto yy1982;
  yy1989:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= ')')
          goto yy2002;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy1993;
        goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy1982;
      }
    }
  yy1991:
    ++p;
    yych = *p;
  yy1992:
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= ')')
          goto yy2000;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy1982;
      }
    }
  yy1993:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1991;
    goto yy1982;
  yy1994:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1993;
    goto yy1982;
  yy1995:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1993;
    goto yy1982;
  yy1996:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1995;
    goto yy1982;
  yy1997:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1995;
    goto yy1982;
  yy1998:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy1995;
    goto yy1982;
  yy1999:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy1993;
    goto yy1982;
  yy2000:
    ++p;
  yy2001 : { return (bufsize_t)(p - start); }
  yy2002:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2001;
        if (yych <= ')')
          goto yy2000;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy2001;
        if (yych <= 0xDF)
          goto yy1993;
        goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy2001;
      }
    }
  yy2003:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '\'')
          goto yy2016;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy2007;
        goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy1982;
      }
    }
  yy2005:
    ++p;
    yych = *p;
  yy2006:
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '\'')
          goto yy2014;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy1982;
      }
    }
  yy2007:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2005;
    goto yy1982;
  yy2008:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2007;
    goto yy1982;
  yy2009:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2007;
    goto yy1982;
  yy2010:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2009;
    goto yy1982;
  yy2011:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2009;
    goto yy1982;
  yy2012:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy2009;
    goto yy1982;
  yy2013:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy2007;
    goto yy1982;
  yy2014:
    ++p;
  yy2015 : { return (bufsize_t)(p - start); }
  yy2016:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2015;
        if (yych <= '\'')
          goto yy2014;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy2015;
        if (yych <= 0xDF)
          goto yy2007;
        goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy2015;
      }
    }
  yy2017:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '"')
          goto yy2030;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy2021;
        goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy1982;
      }
    }
  yy2019:
    ++p;
    yych = *p;
  yy2020:
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '"')
          goto yy2028;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy1982;
      }
    }
  yy2021:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2019;
    goto yy1982;
  yy2022:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2021;
    goto yy1982;
  yy2023:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2021;
    goto yy1982;
  yy2024:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2023;
    goto yy1982;
  yy2025:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2023;
    goto yy1982;
  yy2026:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy2023;
    goto yy1982;
  yy2027:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy2021;
    goto yy1982;
  yy2028:
    ++p;
  yy2029 : { return (bufsize_t)(p - start); }
  yy2030:
    yyaccept = 3;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2029;
        if (yych <= '"')
          goto yy2028;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy2029;
        if (yych <= 0xDF)
          goto yy2021;
        goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy2029;
      }
    }
  }
}

// Match space characters, including newlines.
bufsize_t _scan_spacechars(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy2037;
        if (yych == '\n')
          goto yy2035;
        goto yy2034;
      } else {
        if (yych == ' ')
          goto yy2034;
        if (yych <= 0x7F)
          goto yy2037;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2039;
        if (yych <= 0xE0)
          goto yy2041;
        if (yych <= 0xEC)
          goto yy2042;
        goto yy2046;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2042;
          goto yy2043;
        } else {
          if (yych <= 0xF3)
            goto yy2044;
          if (yych <= 0xF4)
            goto yy2045;
        }
      }
    }
  yy2033 : { return (bufsize_t)(p - start); }
  yy2034:
    yych = *++p;
    goto yy2036;
  yy2035:
    ++p;
    yych = *p;
  yy2036:
    if (yybm[0 + yych] & 128) {
      goto yy2035;
    }
    goto yy2033;
  yy2037:
    ++p;
    { return 0; }
  yy2039:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2037;
  yy2040:
    p = marker;
    goto yy2033;
  yy2041:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2039;
    goto yy2040;
  yy2042:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2039;
    goto yy2040;
  yy2043:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2042;
    goto yy2040;
  yy2044:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2042;
    goto yy2040;
  yy2045:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0x8F)
      goto yy2042;
    goto yy2040;
  yy2046:
    ++p;
    if ((yych = *p) <= 0x7F)
      goto yy2040;
    if (yych <= 0x9F)
      goto yy2039;
    goto yy2040;
  }
}

// Match ATX header start.
bufsize_t _scan_atx_header_start(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '"') {
        if (yych != '\n')
          goto yy2051;
      } else {
        if (yych <= '#')
          goto yy2050;
        if (yych <= 0x7F)
          goto yy2051;
        if (yych >= 0xC2)
          goto yy2052;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy2054;
        if (yych == 0xED)
          goto yy2059;
        goto yy2055;
      } else {
        if (yych <= 0xF0)
          goto yy2056;
        if (yych <= 0xF3)
          goto yy2057;
        if (yych <= 0xF4)
          goto yy2058;
      }
    }
  yy2049 : { return 0; }
  yy2050:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2049;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych == '#')
        goto yy2064;
      goto yy2049;
    }
  yy2051:
    yych = *++p;
    goto yy2049;
  yy2052:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2051;
  yy2053:
    p = marker;
    goto yy2049;
  yy2054:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2052;
    goto yy2053;
  yy2055:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2052;
    goto yy2053;
  yy2056:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2055;
    goto yy2053;
  yy2057:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2055;
    goto yy2053;
  yy2058:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0x8F)
      goto yy2055;
    goto yy2053;
  yy2059:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0x9F)
      goto yy2052;
    goto yy2053;
  yy2060:
    ++p;
  yy2061 : { return (bufsize_t)(p - start); }
  yy2062:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    goto yy2061;
  yy2064:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    ++p;
    if (yybm[0 + (yych = *p)] & 128) {
      goto yy2062;
    }
    if (yych == '\n')
      goto yy2060;
    if (yych == '\r')
      goto yy2060;
    goto yy2053;
  }
}

// Match setext header line.  Return 1 for level-1 header,
// 2 for level-2, 0 for no match.
bufsize_t _scan_setext_header_line(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '-') {
        if (yych == '\n')
          goto yy2071;
        if (yych <= ',')
          goto yy2074;
        goto yy2073;
      } else {
        if (yych == '=')
          goto yy2072;
        if (yych <= 0x7F)
          goto yy2074;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2075;
        if (yych <= 0xE0)
          goto yy2077;
        if (yych <= 0xEC)
          goto yy2078;
        goto yy2082;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2078;
          goto yy2079;
        } else {
          if (yych <= 0xF3)
            goto yy2080;
          if (yych <= 0xF4)
            goto yy2081;
        }
      }
    }
  yy2071 : { return 0; }
  yy2072:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy2093;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2091;
      goto yy2071;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2071;
    }
  yy2073:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2085;
      goto yy2071;
    } else {
      if (yych <= '\r')
        goto yy2085;
      if (yych == '-')
        goto yy2087;
      goto yy2071;
    }
  yy2074:
    yych = *++p;
    goto yy2071;
  yy2075:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2074;
  yy2076:
    p = marker;
    goto yy2071;
  yy2077:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2075;
    goto yy2076;
  yy2078:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2075;
    goto yy2076;
  yy2079:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2078;
    goto yy2076;
  yy2080:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2078;
    goto yy2076;
  yy2081:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0x8F)
      goto yy2078;
    goto yy2076;
  yy2082:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0x9F)
      goto yy2075;
    goto yy2076;
  yy2083:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych == '\n')
      goto yy2085;
    if (yych != '\r')
      goto yy2076;
  yy2085:
    ++p;
    { return 2; }
  yy2087:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2085;
      goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2085;
      if (yych == '-')
        goto yy2087;
      goto yy2076;
    }
  yy2089:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych != '\n')
        goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2076;
    }
  yy2091:
    ++p;
    { return 1; }
  yy2093:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2093;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2091;
      goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2076;
    }
  }
}

// Scan a horizontal rule line: "...three or more hyphens, asterisks,
// or underscores on a line by themselves. If you wish, you may use
// spaces between the hyphens or asterisks."
bufsize_t _scan_hrule(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0,  0, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 64, 0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0x7F) {
      if (yych <= '*') {
        if (yych == '\n')
          goto yy2097;
        if (yych <= ')')
          goto yy2101;
        goto yy2098;
      } else {
        if (yych <= '-') {
          if (yych <= ',')
            goto yy2101;
          goto yy2100;
        } else {
          if (yych == '_')
            goto yy2099;
          goto yy2101;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych >= 0xC2)
            goto yy2102;
        } else {
          if (yych <= 0xE0)
            goto yy2104;
          if (yych <= 0xEC)
            goto yy2105;
          goto yy2109;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2105;
          goto yy2106;
        } else {
          if (yych <= 0xF3)
            goto yy2107;
          if (yych <= 0xF4)
            goto yy2108;
        }
      }
    }
  yy2097 : { return 0; }
  yy2098:
    yych = *(marker = ++p);
    if (yych == ' ')
      goto yy2130;
    if (yych == '*')
      goto yy2132;
    goto yy2097;
  yy2099:
    yych = *(marker = ++p);
    if (yych == ' ')
      goto yy2120;
    if (yych == '_')
      goto yy2122;
    goto yy2097;
  yy2100:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 8) {
      goto yy2110;
    }
    if (yych == '-')
      goto yy2112;
    goto yy2097;
  yy2101:
    yych = *++p;
    goto yy2097;
  yy2102:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2101;
  yy2103:
    p = marker;
    goto yy2097;
  yy2104:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2102;
    goto yy2103;
  yy2105:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2102;
    goto yy2103;
  yy2106:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2105;
    goto yy2103;
  yy2107:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2105;
    goto yy2103;
  yy2108:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0x8F)
      goto yy2105;
    goto yy2103;
  yy2109:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0x9F)
      goto yy2102;
    goto yy2103;
  yy2110:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 8) {
      goto yy2110;
    }
    if (yych != '-')
      goto yy2103;
  yy2112:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2112;
    if (yych != '-')
      goto yy2103;
  yy2114:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy2114;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2118;
    } else {
      if (yych == '\r')
        goto yy2118;
      goto yy2103;
    }
  yy2116:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2116;
    }
    if (yych <= 0x08)
      goto yy2103;
    if (yych <= '\n')
      goto yy2118;
    if (yych != '\r')
      goto yy2103;
  yy2118:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2120:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2120;
    if (yych != '_')
      goto yy2103;
  yy2122:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2122;
    if (yych != '_')
      goto yy2103;
  yy2124:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2124;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2128;
    } else {
      if (yych == '\r')
        goto yy2128;
      goto yy2103;
    }
  yy2126:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych <= '\t')
        goto yy2126;
      if (yych >= '\v')
        goto yy2103;
    } else {
      if (yych <= '\r')
        goto yy2128;
      if (yych == ' ')
        goto yy2126;
      goto yy2103;
    }
  yy2128:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2130:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2130;
    if (yych != '*')
      goto yy2103;
  yy2132:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2132;
    if (yych != '*')
      goto yy2103;
  yy2134:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2134;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2138;
    } else {
      if (yych == '\r')
        goto yy2138;
      goto yy2103;
    }
  yy2136:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych <= '\t')
        goto yy2136;
      if (yych >= '\v')
        goto yy2103;
    } else {
      if (yych <= '\r')
        goto yy2138;
      if (yych == ' ')
        goto yy2136;
      goto yy2103;
    }
  yy2138:
    ++p;
    { return (bufsize_t)(p - start); }
  }
}

// Scan an opening code fence.
bufsize_t _scan_open_code_fence(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 0,   160, 160, 0,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96,  160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        144, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '`') {
        if (yych == '\n')
          goto yy2142;
        if (yych <= '_')
          goto yy2145;
        goto yy2143;
      } else {
        if (yych == '~')
          goto yy2144;
        if (yych <= 0x7F)
          goto yy2145;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2146;
        if (yych <= 0xE0)
          goto yy2148;
        if (yych <= 0xEC)
          goto yy2149;
        goto yy2153;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2149;
          goto yy2150;
        } else {
          if (yych <= 0xF3)
            goto yy2151;
          if (yych <= 0xF4)
            goto yy2152;
        }
      }
    }
  yy2142 : { return 0; }
  yy2143:
    yych = *(marker = ++p);
    if (yych == '`')
      goto yy2168;
    goto yy2142;
  yy2144:
    yych = *(marker = ++p);
    if (yych == '~')
      goto yy2154;
    goto yy2142;
  yy2145:
    yych = *++p;
    goto yy2142;
  yy2146:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2145;
  yy2147:
    p = marker;
    goto yy2142;
  yy2148:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2146;
    goto yy2147;
  yy2149:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2146;
    goto yy2147;
  yy2150:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2149;
    goto yy2147;
  yy2151:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2149;
    goto yy2147;
  yy2152:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2149;
    goto yy2147;
  yy2153:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2146;
    goto yy2147;
  yy2154:
    yych = *++p;
    if (yybm[0 + yych] & 16) {
      goto yy2155;
    }
    goto yy2147;
  yy2155:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2157;
    }
    if (yych <= 0xE0) {
      if (yych <= '~') {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2166;
        goto yy2155;
      } else {
        if (yych <= 0xC1)
          goto yy2147;
        if (yych <= 0xDF)
          goto yy2159;
        goto yy2160;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2165;
        goto yy2161;
      } else {
        if (yych <= 0xF0)
          goto yy2162;
        if (yych <= 0xF3)
          goto yy2163;
        if (yych <= 0xF4)
          goto yy2164;
        goto yy2147;
      }
    }
  yy2157:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2157;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2166;
        goto yy2147;
      } else {
        if (yych <= 0xDF)
          goto yy2159;
        if (yych <= 0xE0)
          goto yy2160;
        goto yy2161;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy2165;
        if (yych <= 0xEF)
          goto yy2161;
        goto yy2162;
      } else {
        if (yych <= 0xF3)
          goto yy2163;
        if (yych <= 0xF4)
          goto yy2164;
        goto yy2147;
      }
    }
  yy2159:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2157;
    goto yy2147;
  yy2160:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2159;
    goto yy2147;
  yy2161:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2159;
    goto yy2147;
  yy2162:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2161;
    goto yy2147;
  yy2163:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2161;
    goto yy2147;
  yy2164:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2161;
    goto yy2147;
  yy2165:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2159;
    goto yy2147;
  yy2166:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  yy2168:
    yych = *++p;
    if (yybm[0 + yych] & 64) {
      goto yy2169;
    }
    goto yy2147;
  yy2169:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2171;
    }
    if (yych <= 0xE0) {
      if (yych <= '`') {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2180;
        goto yy2169;
      } else {
        if (yych <= 0xC1)
          goto yy2147;
        if (yych <= 0xDF)
          goto yy2173;
        goto yy2174;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2179;
        goto yy2175;
      } else {
        if (yych <= 0xF0)
          goto yy2176;
        if (yych <= 0xF3)
          goto yy2177;
        if (yych <= 0xF4)
          goto yy2178;
        goto yy2147;
      }
    }
  yy2171:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2171;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2180;
        goto yy2147;
      } else {
        if (yych <= 0xDF)
          goto yy2173;
        if (yych <= 0xE0)
          goto yy2174;
        goto yy2175;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy2179;
        if (yych <= 0xEF)
          goto yy2175;
        goto yy2176;
      } else {
        if (yych <= 0xF3)
          goto yy2177;
        if (yych <= 0xF4)
          goto yy2178;
        goto yy2147;
      }
    }
  yy2173:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2171;
    goto yy2147;
  yy2174:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2173;
    goto yy2147;
  yy2175:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2173;
    goto yy2147;
  yy2176:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2175;
    goto yy2147;
  yy2177:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2175;
    goto yy2147;
  yy2178:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2175;
    goto yy2147;
  yy2179:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2173;
    goto yy2147;
  yy2180:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  }
}

// Scan a closing code fence with length at least len.
bufsize_t _scan_close_code_fence(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0,   64, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  64, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 128, 0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '`') {
        if (yych == '\n')
          goto yy2184;
        if (yych <= '_')
          goto yy2187;
        goto yy2185;
      } else {
        if (yych == '~')
          goto yy2186;
        if (yych <= 0x7F)
          goto yy2187;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2188;
        if (yych <= 0xE0)
          goto yy2190;
        if (yych <= 0xEC)
          goto yy2191;
        goto yy2195;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2191;
          goto yy2192;
        } else {
          if (yych <= 0xF3)
            goto yy2193;
          if (yych <= 0xF4)
            goto yy2194;
        }
      }
    }
  yy2184 : { return 0; }
  yy2185:
    yych = *(marker = ++p);
    if (yych == '`')
      goto yy2203;
    goto yy2184;
  yy2186:
    yych = *(marker = ++p);
    if (yych == '~')
      goto yy2196;
    goto yy2184;
  yy2187:
    yych = *++p;
    goto yy2184;
  yy2188:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2187;
  yy2189:
    p = marker;
    goto yy2184;
  yy2190:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2188;
    goto yy2189;
  yy2191:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2188;
    goto yy2189;
  yy2192:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2191;
    goto yy2189;
  yy2193:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2191;
    goto yy2189;
  yy2194:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0x8F)
      goto yy2191;
    goto yy2189;
  yy2195:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0x9F)
      goto yy2188;
    goto yy2189;
  yy2196:
    yych = *++p;
    if (yybm[0 + yych] & 32) {
      goto yy2197;
    }
    goto yy2189;
  yy2197:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2199;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\n')
        goto yy2201;
      goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2201;
      if (yych == '~')
        goto yy2197;
      goto yy2189;
    }
  yy2199:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2199;
    }
    if (yych <= 0x08)
      goto yy2189;
    if (yych <= '\n')
      goto yy2201;
    if (yych != '\r')
      goto yy2189;
  yy2201:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  yy2203:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2204;
    }
    goto yy2189;
  yy2204:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2204;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\t')
        goto yy2206;
      if (yych <= '\n')
        goto yy2208;
      goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2208;
      if (yych != ' ')
        goto yy2189;
    }
  yy2206:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\t')
        goto yy2206;
      if (yych >= '\v')
        goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2208;
      if (yych == ' ')
        goto yy2206;
      goto yy2189;
    }
  yy2208:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  }
}

// Scans an entity.
// Returns number of chars matched.
bufsize_t _scan_entity(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '%') {
        if (yych != '\n')
          goto yy2214;
      } else {
        if (yych <= '&')
          goto yy2213;
        if (yych <= 0x7F)
          goto yy2214;
        if (yych >= 0xC2)
          goto yy2215;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy2217;
        if (yych == 0xED)
          goto yy2222;
        goto yy2218;
      } else {
        if (yych <= 0xF0)
          goto yy2219;
        if (yych <= 0xF3)
          goto yy2220;
        if (yych <= 0xF4)
          goto yy2221;
      }
    }
  yy2212 : { return 0; }
  yy2213:
    yych = *(marker = ++p);
    if (yych <= '@') {
      if (yych == '#')
        goto yy2223;
      goto yy2212;
    } else {
      if (yych <= 'Z')
        goto yy2224;
      if (yych <= '`')
        goto yy2212;
      if (yych <= 'z')
        goto yy2224;
      goto yy2212;
    }
  yy2214:
    yych = *++p;
    goto yy2212;
  yy2215:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2214;
  yy2216:
    p = marker;
    goto yy2212;
  yy2217:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2215;
    goto yy2216;
  yy2218:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2215;
    goto yy2216;
  yy2219:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2218;
    goto yy2216;
  yy2220:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2218;
    goto yy2216;
  yy2221:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0x8F)
      goto yy2218;
    goto yy2216;
  yy2222:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0x9F)
      goto yy2215;
    goto yy2216;
  yy2223:
    yych = *++p;
    if (yych <= 'W') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2259;
      goto yy2216;
    } else {
      if (yych <= 'X')
        goto yy2258;
      if (yych == 'x')
        goto yy2258;
      goto yy2216;
    }
  yy2224:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy2216;
      if (yych >= ':')
        goto yy2216;
    } else {
      if (yych <= 'Z')
        goto yy2225;
      if (yych <= '`')
        goto yy2216;
      if (yych >= '{')
        goto yy2216;
    }
  yy2225:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2228;
      if (yych <= ':')
        goto yy2216;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
        goto yy2228;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych <= 'z')
          goto yy2228;
        goto yy2216;
      }
    }
  yy2226:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2228:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2229;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2229:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2230;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2230:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2231;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2231:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2232;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2232:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2233;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2233:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2234;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2234:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2235;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2235:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2236;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2236:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2237;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2237:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2238;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2238:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2239;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2239:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2240;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2240:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2241;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2241:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2242;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2242:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2243;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2243:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2244;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2244:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2245;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2245:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2246;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2246:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2247;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2247:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2248;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2248:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2249;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2249:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2250;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2250:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2251;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2251:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2252;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2252:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2253;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2253:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2254;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2254:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2255;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2255:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2256;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2256:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2257;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2257:
    yych = *++p;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2258:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2266;
      goto yy2216;
    } else {
      if (yych <= 'F')
        goto yy2266;
      if (yych <= '`')
        goto yy2216;
      if (yych <= 'f')
        goto yy2266;
      goto yy2216;
    }
  yy2259:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2260;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2260:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2261;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2261:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2262;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2262:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2263;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2263:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2264;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2264:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2265;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2265:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2257;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2266:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2267;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2267:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2268;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2268:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2269;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2269:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2270;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2270:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2271;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2271:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2272;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2272:
    ++p;
    if ((yych = *p) <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2257;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
        goto yy2257;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych <= 'f')
          goto yy2257;
        goto yy2216;
      }
    }
  }
}

// Returns positive value if a URL begins in a way that is potentially
// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
bufsize_t _scan_dangerous_url(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    yych = *(marker = p);
    if (yych <= 'f') {
      if (yych <= 'I') {
        if (yych <= 'C') {
          if (yych != '\n')
            goto yy2280;
        } else {
          if (yych <= 'D')
            goto yy2276;
          if (yych == 'F')
            goto yy2279;
          goto yy2280;
        }
      } else {
        if (yych <= 'V') {
          if (yych <= 'J')
            goto yy2277;
          if (yych <= 'U')
            goto yy2280;
          goto yy2278;
        } else {
          if (yych == 'd')
            goto yy2276;
          if (yych <= 'e')
            goto yy2280;
          goto yy2279;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= 'u') {
          if (yych == 'j')
            goto yy2277;
          goto yy2280;
        } else {
          if (yych <= 'v')
            goto yy2278;
          if (yych <= 0x7F)
            goto yy2280;
          if (yych >= 0xC2)
            goto yy2281;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy2283;
          if (yych == 0xED)
            goto yy2288;
          goto yy2284;
        } else {
          if (yych <= 0xF0)
            goto yy2285;
          if (yych <= 0xF3)
            goto yy2286;
          if (yych <= 0xF4)
            goto yy2287;
        }
      }
    }
  yy2275 : { return 0; }
  yy2276:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'A')
      goto yy2310;
    if (yych == 'a')
      goto yy2310;
    goto yy2275;
  yy2277:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'A')
      goto yy2301;
    if (yych == 'a')
      goto yy2301;
    goto yy2275;
  yy2278:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'B')
      goto yy2294;
    if (yych == 'b')
      goto yy2294;
    goto yy2275;
  yy2279:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'I')
      goto yy2289;
    if (yych == 'i')
      goto yy2289;
    goto yy2275;
  yy2280:
    yych = *++p;
    goto yy2275;
  yy2281:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2280;
  yy2282:
    p = marker;
    if (yyaccept == 0) {
      goto yy2275;
    } else {
      goto yy2293;
    }
  yy2283:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2281;
    goto yy2282;
  yy2284:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2281;
    goto yy2282;
  yy2285:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2284;
    goto yy2282;
  yy2286:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2284;
    goto yy2282;
  yy2287:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0x8F)
      goto yy2284;
    goto yy2282;
  yy2288:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0x9F)
      goto yy2281;
    goto yy2282;
  yy2289:
    yych = *++p;
    if (yych == 'L')
      goto yy2290;
    if (yych != 'l')
      goto yy2282;
  yy2290:
    yych = *++p;
    if (yych == 'E')
      goto yy2291;
    if (yych != 'e')
      goto yy2282;
  yy2291:
    yych = *++p;
    if (yych != ':')
      goto yy2282;
  yy2292:
    ++p;
  yy2293 : { return (bufsize_t)(p - start); }
  yy2294:
    yych = *++p;
    if (yych == 'S')
      goto yy2295;
    if (yych != 's')
      goto yy2282;
  yy2295:
    yych = *++p;
    if (yych == 'C')
      goto yy2296;
    if (yych != 'c')
      goto yy2282;
  yy2296:
    yych = *++p;
    if (yych == 'R')
      goto yy2297;
    if (yych != 'r')
      goto yy2282;
  yy2297:
    yych = *++p;
    if (yych == 'I')
      goto yy2298;
    if (yych != 'i')
      goto yy2282;
  yy2298:
    yych = *++p;
    if (yych == 'P')
      goto yy2299;
    if (yych != 'p')
      goto yy2282;
  yy2299:
    yych = *++p;
    if (yych == 'T')
      goto yy2300;
    if (yych != 't')
      goto yy2282;
  yy2300:
    yych = *++p;
    if (yych == ':')
      goto yy2292;
    goto yy2282;
  yy2301:
    yych = *++p;
    if (yych == 'V')
      goto yy2302;
    if (yych != 'v')
      goto yy2282;
  yy2302:
    yych = *++p;
    if (yych == 'A')
      goto yy2303;
    if (yych != 'a')
      goto yy2282;
  yy2303:
    yych = *++p;
    if (yych == 'S')
      goto yy2304;
    if (yych != 's')
      goto yy2282;
  yy2304:
    yych = *++p;
    if (yych == 'C')
      goto yy2305;
    if (yych != 'c')
      goto yy2282;
  yy2305:
    yych = *++p;
    if (yych == 'R')
      goto yy2306;
    if (yych != 'r')
      goto yy2282;
  yy2306:
    yych = *++p;
    if (yych == 'I')
      goto yy2307;
    if (yych != 'i')
      goto yy2282;
  yy2307:
    yych = *++p;
    if (yych == 'P')
      goto yy2308;
    if (yych != 'p')
      goto yy2282;
  yy2308:
    yych = *++p;
    if (yych == 'T')
      goto yy2309;
    if (yych != 't')
      goto yy2282;
  yy2309:
    yych = *++p;
    if (yych == ':')
      goto yy2292;
    goto yy2282;
  yy2310:
    yych = *++p;
    if (yych == 'T')
      goto yy2311;
    if (yych != 't')
      goto yy2282;
  yy2311:
    yych = *++p;
    if (yych == 'A')
      goto yy2312;
    if (yych != 'a')
      goto yy2282;
  yy2312:
    yych = *++p;
    if (yych != ':')
      goto yy2282;
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych == 'I')
      goto yy2314;
    if (yych != 'i')
      goto yy2293;
  yy2314:
    yych = *++p;
    if (yych == 'M')
      goto yy2315;
    if (yych != 'm')
      goto yy2282;
  yy2315:
    yych = *++p;
    if (yych == 'A')
      goto yy2316;
    if (yych != 'a')
      goto yy2282;
  yy2316:
    yych = *++p;
    if (yych == 'G')
      goto yy2317;
    if (yych != 'g')
      goto yy2282;
  yy2317:
    yych = *++p;
    if (yych == 'E')
      goto yy2318;
    if (yych != 'e')
      goto yy2282;
  yy2318:
    yych = *++p;
    if (yych != '/')
      goto yy2282;
    yych = *++p;
    if (yych <= 'W') {
      if (yych <= 'J') {
        if (yych == 'G')
          goto yy2321;
        if (yych <= 'I')
          goto yy2282;
        goto yy2322;
      } else {
        if (yych == 'P')
          goto yy2320;
        if (yych <= 'V')
          goto yy2282;
        goto yy2323;
      }
    } else {
      if (yych <= 'j') {
        if (yych == 'g')
          goto yy2321;
        if (yych <= 'i')
          goto yy2282;
        goto yy2322;
      } else {
        if (yych <= 'p') {
          if (yych <= 'o')
            goto yy2282;
        } else {
          if (yych == 'w')
            goto yy2323;
          goto yy2282;
        }
      }
    }
  yy2320:
    yych = *++p;
    if (yych == 'N')
      goto yy2331;
    if (yych == 'n')
      goto yy2331;
    goto yy2282;
  yy2321:
    yych = *++p;
    if (yych == 'I')
      goto yy2330;
    if (yych == 'i')
      goto yy2330;
    goto yy2282;
  yy2322:
    yych = *++p;
    if (yych == 'P')
      goto yy2328;
    if (yych == 'p')
      goto yy2328;
    goto yy2282;
  yy2323:
    yych = *++p;
    if (yych == 'E')
      goto yy2324;
    if (yych != 'e')
      goto yy2282;
  yy2324:
    yych = *++p;
    if (yych == 'B')
      goto yy2325;
    if (yych != 'b')
      goto yy2282;
  yy2325:
    yych = *++p;
    if (yych == 'P')
      goto yy2326;
    if (yych != 'p')
      goto yy2282;
  yy2326:
    ++p;
    { return 0; }
  yy2328:
    yych = *++p;
    if (yych == 'E')
      goto yy2329;
    if (yych != 'e')
      goto yy2282;
  yy2329:
    yych = *++p;
    if (yych == 'G')
      goto yy2326;
    if (yych == 'g')
      goto yy2326;
    goto yy2282;
  yy2330:
    yych = *++p;
    if (yych == 'F')
      goto yy2326;
    if (yych == 'f')
      goto yy2326;
    goto yy2282;
  yy2331:
    ++p;
    if ((yych = *p) == 'G')
      goto yy2326;
    if (yych == 'g')
      goto yy2326;
    goto yy2282;
  }
}
