Changeset 3f0c6a5


Ignore:
Timestamp:
Oct 28, 2016, 1:40:31 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
066d77a
Parents:
77971f6 (diff), 47a8d17 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into tuples

Conflicts:

src/Parser/parser.cc
src/Parser/parser.yy

Files:
1 added
18 edited

Legend:

Unmodified
Added
Removed
  • Makefile.in

    r77971f6 r3f0c6a5  
    132132CFA_PREFIX = @CFA_PREFIX@
    133133CFLAGS = @CFLAGS@
     134CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    134135CPP = @CPP@
    135136CPPFLAGS = @CPPFLAGS@
  • config.h.in

    r77971f6 r3f0c6a5  
    1818/* Location of cfa install. */
    1919#undef CFA_PREFIX
     20
     21/* Major.Minor */
     22#undef CFA_VERSION
     23
     24/* Build version number. */
     25#undef CFA_VERSION_BUILD
     26
     27/* Major.Minor.Patch.Build */
     28#undef CFA_VERSION_FULL
     29
     30/* Major.Minor.Patch */
     31#undef CFA_VERSION_LONG
     32
     33/* Major version number. */
     34#undef CFA_VERSION_MAJOR
     35
     36/* Minor version number. */
     37#undef CFA_VERSION_MINOR
     38
     39/* Patch version number. */
     40#undef CFA_VERSION_PATCH
     41
     42/* Major */
     43#undef CFA_VERSION_SHORT
    2044
    2145/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
  • configure

    r77971f6 r3f0c6a5  
    646646CFA_BACKEND_CC
    647647BACKEND_CC
     648CONFIG_STATUS_DEPENDENCIES
    648649MAINT
    649650MAINTAINER_MODE_FALSE
     
    29632964
    29642965                        # may require auto* software to be installed
     2966
     2967ver_major=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\1/'`
     2968ver_minor=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\2/'`
     2969ver_patch=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\3/'`
     2970ver_build=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\4/'`
     2971ver_short="\"${ver_major}\""
     2972ver__long="\"${ver_major}.${ver_minor}\""
     2973ver__norm="\"${ver_major}.${ver_minor}.${ver_patch}\""
     2974ver__full="\"${ver_major}.${ver_minor}.${ver_patch}.${ver_build}\""
     2975
     2976CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/version'
     2977
     2978
     2979cat >>confdefs.h <<_ACEOF
     2980#define CFA_VERSION_MAJOR ${ver_major}
     2981_ACEOF
     2982
     2983
     2984cat >>confdefs.h <<_ACEOF
     2985#define CFA_VERSION_MINOR ${ver_minor}
     2986_ACEOF
     2987
     2988
     2989cat >>confdefs.h <<_ACEOF
     2990#define CFA_VERSION_PATCH ${ver_patch}
     2991_ACEOF
     2992
     2993
     2994cat >>confdefs.h <<_ACEOF
     2995#define CFA_VERSION_BUILD ${ver_build}
     2996_ACEOF
     2997
     2998
     2999cat >>confdefs.h <<_ACEOF
     3000#define CFA_VERSION_SHORT ${ver_short}
     3001_ACEOF
     3002
     3003
     3004cat >>confdefs.h <<_ACEOF
     3005#define CFA_VERSION ${ver__long}
     3006_ACEOF
     3007
     3008
     3009cat >>confdefs.h <<_ACEOF
     3010#define CFA_VERSION_LONG ${ver__norm}
     3011_ACEOF
     3012
     3013
     3014cat >>confdefs.h <<_ACEOF
     3015#define CFA_VERSION_FULL ${ver__full}
     3016_ACEOF
     3017
    29653018
    29663019# Installation paths
  • configure.ac

    r77971f6 r3f0c6a5  
    1717AM_INIT_AUTOMAKE
    1818AM_MAINTAINER_MODE(enable)                      # may require auto* software to be installed
     19
     20ver_major=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\1/'`
     21ver_minor=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\2/'`
     22ver_patch=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\3/'`
     23ver_build=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\4/'`
     24ver_short="\"${ver_major}\""
     25ver__long="\"${ver_major}.${ver_minor}\""
     26ver__norm="\"${ver_major}.${ver_minor}.${ver_patch}\""
     27ver__full="\"${ver_major}.${ver_minor}.${ver_patch}.${ver_build}\""
     28
     29AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/version'])
     30AC_DEFINE_UNQUOTED(CFA_VERSION_MAJOR, ${ver_major}, [Major version number.])
     31AC_DEFINE_UNQUOTED(CFA_VERSION_MINOR, ${ver_minor}, [Minor version number.])
     32AC_DEFINE_UNQUOTED(CFA_VERSION_PATCH, ${ver_patch}, [Patch version number.])
     33AC_DEFINE_UNQUOTED(CFA_VERSION_BUILD, ${ver_build}, [Build version number.])
     34AC_DEFINE_UNQUOTED(CFA_VERSION_SHORT, ${ver_short}, [Major])
     35AC_DEFINE_UNQUOTED(CFA_VERSION, ${ver__long}, [Major.Minor])
     36AC_DEFINE_UNQUOTED(CFA_VERSION_LONG, ${ver__norm}, [Major.Minor.Patch])
     37AC_DEFINE_UNQUOTED(CFA_VERSION_FULL, ${ver__full}, [Major.Minor.Patch.Build])
    1938
    2039# Installation paths
  • doc/LaTeXmacros/common.tex

    r77971f6 r3f0c6a5  
    1111%% Created On       : Sat Apr  9 10:06:17 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Sun Aug 14 08:27:29 2016
    14 %% Update Count     : 231
     13%% Last Modified On : Tue Oct 25 22:04:19 2016
     14%% Update Count     : 234
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    4141\newcommand{\CCeleven}{\rm C\kern-.1em\hbox{+\kern-.25em+}11\xspace} % C++11 symbolic name
    4242\newcommand{\Celeven}{C11\xspace}               % C11 symbolic name
    43 \newcommand{\Csharp}{\rm C\hbox{\#}\xspace} % C# symbolic name
    44 
     43\newcommand{\Csharp}{C\raisebox{0.4ex}{\#}\xspace}      % C# symbolic name
    4544
    4645%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    126125\newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
    127126
    128 % inline text and code index (cannot use �)
     127% inline text and code index (cannot use ©)
    129128\newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}}
    130 % code index (cannot use �)
     129% code index (cannot use ©)
    131130\newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}}
    132131
     
    266265% CFA programming language, based on ANSI C (with some gcc additions)
    267266\lstdefinelanguage{CFA}[ANSI]{C}{
    268         morekeywords=[1]{_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
     267        morekeywords={_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
    269268                _Bool,catch,catchResume,choose,_Complex,__complex,__complex__,__const,__const__,disable,dtype,enable,__extension__,
    270269                fallthrough,fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert,
    271270                _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,},
    272         morekeywords=[2]{mutex,nomutex,thread,wait,signal,accept,monitor}
    273271}%
    274272
     
    276274language=CFA,
    277275columns=fullflexible,
    278 basicstyle=\linespread{0.9}\tt\small,           % reduce line spacing and use typewriter font
    279 keywordstyle=[2]\color{blue},                           % second set of keywords for concurency
    280 stringstyle=\sf\color{Mahogany},                        % use sanserif font
    281 commentstyle=\itshape\color{OliveGreen},                % green and italic comments
    282 tabsize=4,                                                      % 4 space tabbing
     276basicstyle=\linespread{0.9}\sf,                 % reduce line spacing and use sanserif font
     277stringstyle=\tt,                                                % use typewriter font
     278tabsize=4,                                                              % 4 space tabbing
    283279xleftmargin=\parindentlnth,                             % indent code to paragraph indentation
    284 extendedchars=true,                                     % allow ASCII characters in the range 128-255
    285 escapechar=§,                                           % escape to latex in CFA code
     280extendedchars=true,                                             % allow ASCII characters in the range 128-255
     281escapechar=§,                                                   % escape to latex in CFA code
    286282mathescape=true,                                                % allow $...$ LaTeX math escapes in code
    287 %keepspaces=true,                                               %
     283%keepspaces=true,                                               % 
    288284showstringspaces=false,                                 % do not show spaces with cup
    289 showlines=true,                                         % show blank lines at end of code
    290 aboveskip=4pt,                                          % spacing above/below code block
     285showlines=true,                                                 % show blank lines at end of code
     286aboveskip=4pt,                                                  % spacing above/below code block
    291287belowskip=3pt,
    292288moredelim=**[is][\color{red}]{®}{®},    % red highlighting
     
    295291moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords
    296292% replace/adjust listing characters that look bad in sanserif
    297 literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1 {©}{{\"u}}1
     293literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1
    298294        {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
    299295        {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2,
  • doc/user/user.tex

    r77971f6 r3f0c6a5  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Thu Sep 29 11:50:28 2016
    14 %% Update Count     : 1325
     13%% Last Modified On : Tue Oct 25 23:03:59 2016
     14%% Update Count     : 1357
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    326326\begin{description}
    327327\item
    328 \Indexc{__CFA__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
    329 is always available during preprocessing and its value is the current major \Index{version number} of \CFA.\footnote{
     328\Indexc{__CFA_MAJOR__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
     329is available during preprocessing and its value is the major \Index{version number} of \CFA.\footnote{
    330330The C preprocessor allows only integer values in a preprocessor variable so a value like ``\Version'' is not allowed.
    331331Hence, the need to have three variables for the major, minor and patch version number.}
     
    333333\item
    334334\Indexc{__CFA_MINOR__}\index{preprocessor variables!__CFA_MINOR__@{©__CFA_MINOR__©}}
    335 is always available during preprocessing and its value is the current minor \Index{version number} of \CFA.
     335is available during preprocessing and its value is the minor \Index{version number} of \CFA.
    336336
    337337\item
    338338\Indexc{__CFA_PATCH__}\index{preprocessor variables!__CFA_PATCH__@©__CFA_PATCH__©}
    339 is always available during preprocessing and its value is the current patch \Index{version number} of \CFA.
    340 
    341 \item
     339is available during preprocessing and its value is the patch \Index{level number} of \CFA.
     340
     341\item
     342\Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©} and
    342343\Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}
    343 is always available during preprocessing and has no value.
     344are always available during preprocessing and have no value.
    344345\end{description}
    345346These preprocessor variables allow conditional compilation of programs that must work differently in these situations.
  • src/Makefile.in

    r77971f6 r3f0c6a5  
    265265CFA_PREFIX = @CFA_PREFIX@
    266266CFLAGS = @CFLAGS@
     267CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    267268CPP = @CPP@
    268269CPPFLAGS = @CPPFLAGS@
  • src/Parser/lex.cc

    r77971f6 r3f0c6a5  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 181
    385 #define YY_END_OF_BUFFER 182
     384#define YY_NUM_RULES 183
     385#define YY_END_OF_BUFFER 184
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[892] =
     393static yyconst flex_int16_t yy_accept[895] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  116,  116,  119,  119,
    396       182,  180,    7,    9,    8,  139,  118,  103,  144,  147,
    397       115,  126,  127,  142,  140,  130,  141,  133,  143,  108,
    398       109,  110,  131,  132,  149,  151,  150,  152,  180,  103,
    399       124,  180,  125,  145,  103,  105,  103,  103,  103,  103,
     395        0,    0,    0,    0,    0,    0,  118,  118,  121,  121,
     396      184,  182,    7,    9,    8,  141,  120,  103,  146,  149,
     397      117,  128,  129,  144,  142,  132,  143,  135,  145,  108,
     398      109,  110,  133,  134,  151,  153,  152,  154,  182,  103,
     399      126,  182,  127,  147,  103,  105,  103,  103,  103,  103,
    400400      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    401       103,  103,  128,  148,  129,  146,    7,  180,    4,    4,
    402       181,  106,  181,  107,  116,  117,  123,  119,  120,    7,
    403         9,    0,    8,  156,  175,  103,    0,  168,  138,  161,
    404       169,  166,  153,  164,  154,  165,  163,    0,  113,    3,
    405 
    406         0,  167,  113,  111,    0,    0,  111,  111,    0,    0,
    407       111,  110,  110,  110,    0,  110,  136,  137,  135,  157,
    408       159,  155,  160,  158,    0,    0,    0,    0,    0,    0,
     401      103,  103,  130,  150,  131,  148,    7,  182,    4,    4,
     402      183,  106,  183,  107,  118,  119,  125,  121,  122,    7,
     403        9,    0,    8,  158,  177,  103,    0,  170,  140,  163,
     404      171,  168,  155,  166,  156,  167,  165,    0,  114,    3,
     405
     406        0,  169,  113,  111,    0,    0,  111,  111,    0,    0,
     407      111,  110,  110,  110,    0,  110,  138,  139,  137,  159,
     408      161,  157,  162,  160,    0,    0,    0,    0,    0,    0,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
    410       174,    0,  118,  115,  103,    0,    0,  171,    0,  103,
     410      176,    0,  120,  117,  103,    0,    0,  173,    0,  103,
    411411      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    412412      103,  103,  103,  103,  103,  103,   38,  103,  103,  103,
    413413      103,  103,  103,  103,  103,  103,  103,   57,  103,  103,
    414414      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    415       103,  103,  103,  103,  170,  162,    7,    0,    0,    0,
    416 
    417         2,    0,    5,  106,    0,    0,    0,  116,    0,  122,
    418       121,  121,    0,    0,    0,  119,    0,    0,    0,    0,
     415      103,  103,  103,  103,  172,  164,    7,    0,    0,    0,
     416
     417        2,    0,    5,  106,    0,    0,    0,  118,    0,  124,
     418      123,  123,    0,    0,    0,  121,    0,    0,    0,    0,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  134,  113,  113,    0,  113,  113,    0,    0,    6,
    421         0,  111,    0,    0,    0,  113,    0,  111,  111,  111,
     420        0,  136,  114,  115,    0,  115,  115,    0,    0,    6,
     421      115,  111,    0,    0,    0,  115,    0,  111,  111,  111,
    422422      111,    0,  112,    0,    0,  110,  110,  110,  110,    0,
    423       172,  173,    0,  178,  176,    0,    0,    0,  104,    0,
     423      174,  175,    0,  180,  178,    0,    0,    0,  104,    0,
    424424        0,    0,    0,    0,    0,    0,    0,  103,   17,  103,
    425425      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     
    431431      103,  103,  103,  103,  103,   90,  103,  103,  103,  103,
    432432      103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    433         0,  121,    0,    0,    0,    0,    0,  121,    0,    0,
    434       179,    0,    0,    0,    0,    0,    0,    0,  113,    0,
    435       113,    0,  113,    0,    0,  113,    0,  111,  111,    0,
    436         0,  112,  112,    0,  112,    0,  112,  110,  110,    0,
    437         0,    0,    0,    0,    0,    0,    0,    0,    0,  177,
    438 
     433        0,  123,    0,    0,    0,    0,    0,  123,    0,    0,
     434      181,    0,    0,    0,    0,    0,    0,    0,  115,    0,
     435      115,    0,  115,    0,  115,    0,    0,  115,    0,  111,
     436      111,    0,    0,  112,  112,    0,  112,    0,  112,  110,
     437      110,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     438
     439        0,  179,  103,  103,  103,  103,  103,  103,  103,  103,
    439440      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     441      103,  103,  103,  103,  103,   21,  103,   24,  103,   27,
     442      103,  103,  103,  103,  103,  103,  103,   41,  103,   43,
     443      103,  103,  103,  103,  103,  103,  103,   56,  103,   67,
    440444      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    441       103,  103,  103,   21,  103,   24,  103,   27,  103,  103,
    442       103,  103,  103,  103,  103,   41,  103,   43,  103,  103,
    443       103,  103,  103,  103,  103,   56,  103,   67,  103,  103,
     445      103,  103,  103,  103,  103,  103,   98,  103,  103,    0,
     446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     447        0,    0,    0,  123,    0,    0,    0,    0,    0,  115,
     448        0,    0,    0,    0,    0,    0,    0,  112,  112,    0,
     449
     450      116,    0,  112,  112,    0,    0,    0,    0,    0,    0,
     451        0,    0,    0,    0,    0,    0,    0,  103,  103,   22,
     452      103,  103,  103,  103,  103,  103,  103,   15,  103,  103,
    444453      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    445       103,  103,  103,  103,   98,  103,  103,    0,    0,    0,
     454      103,  103,   23,   25,  103,   32,  103,  103,  103,  103,
     455       40,  103,  103,  103,  103,   49,  103,  103,   54,  103,
     456      103,   71,  103,  103,  103,   77,  103,  103,  103,  103,
     457      103,   87,   89,  103,  103,   95,  103,  103,  102,    0,
    446458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    447         0,  121,    0,    0,    0,    0,    0,  113,    0,    0,
    448         0,    0,    0,    0,  112,  112,    0,  114,    0,  112,
    449 
    450       112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,    0,    0,  103,  103,   22,  103,  103,  103,
    452       103,  103,  103,  103,   15,  103,  103,  103,  103,  103,
    453       103,  103,  103,  103,  103,  103,  103,  103,  103,   23,
    454        25,  103,   32,  103,  103,  103,  103,   40,  103,  103,
    455       103,  103,   49,  103,  103,   54,  103,  103,   71,  103,
    456       103,  103,   77,  103,  103,  103,  103,  103,   87,   89,
    457       103,  103,   95,  103,  103,  102,    0,    0,    0,    0,
     459        0,    0,    0,    0,    0,    0,    0,    0,  116,    0,
     460
     461        0,  112,  116,  116,  116,  116,    0,  112,    0,    0,
     462        0,    0,    0,    0,    0,    0,    0,    0,  103,    0,
     463      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     464      103,  103,  103,  103,  103,  103,   59,  103,  103,  103,
     465      103,  103,  103,  103,  103,   28,  103,  103,  103,   39,
     466       42,   45,  103,  103,   52,  103,   61,   68,  103,  103,
     467       76,   78,   81,   82,   84,   85,  103,  103,   92,  103,
     468      103,    0,    1,    0,    0,    0,    0,    0,    0,  106,
     469        0,    0,    0,  123,    0,    0,    0,    0,  116,    0,
     470      116,  116,    0,    0,    0,    0,    0,    0,    0,    0,
     471
     472        0,  103,  103,   18,  103,  103,  103,  103,  103,  103,
     473      103,   16,  103,  103,  103,   33,  103,  103,  103,  103,
     474      103,  103,  103,  103,  103,  103,  103,  103,   36,   37,
     475      103,   48,   53,  103,  103,  103,   91,  103,  103,    0,
    458476        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,    0,    0,  114,    0,    0,  112,  114,
    460 
    461       114,  114,  114,    0,  112,    0,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,  103,    0,  103,  103,  103,
    463       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    464       103,  103,  103,   59,  103,  103,  103,  103,  103,  103,
    465       103,  103,   28,  103,  103,  103,   39,   42,   45,  103,
    466       103,   52,  103,   61,   68,  103,  103,   76,   78,   81,
    467        82,   84,   85,  103,  103,   92,  103,  103,    0,    1,
    468         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
    469       121,    0,    0,    0,    0,  114,    0,  114,  114,    0,
    470         0,    0,    0,    0,    0,    0,    0,    0,  103,  103,
    471 
    472        18,  103,  103,  103,  103,  103,  103,  103,   16,  103,
    473       103,  103,   33,  103,  103,  103,  103,  103,  103,  103,
    474       103,  103,  103,  103,  103,   36,   37,  103,   48,   53,
    475       103,  103,  103,   91,  103,  103,    0,    0,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
    477        11,   29,   55,  103,  103,  103,  103,  103,  103,  103,
    478       103,  103,  103,  103,   60,   62,   65,  103,  103,   79,
    479        93,  103,  103,   35,  103,   47,   72,   73,  103,   96,
    480        99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,    0,  103,   69,  103,  103,   12,  103,  103,
    482 
    483        30,   34,  103,  103,  103,   66,  103,  103,  103,  103,
    484       103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,    0,    0,   58,  103,  103,  103,
    486       103,  103,  103,  103,   50,   63,   74,   80,   94,  100,
    487       103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    488         0,  103,  103,   13,   19,  103,  103,   31,  103,  103,
    489       103,   26,   46,   88,    0,    0,  103,  103,  103,  103,
    490       103,  103,   75,  101,  103,   86,   20,  103,  103,   44,
    491        83,  103,  103,  103,  103,  103,  103,  103,   97,   70,
    492         0
     477        0,    0,   10,   11,   29,   55,  103,  103,  103,  103,
     478      103,  103,  103,  103,  103,  103,  103,   60,   62,   65,
     479      103,  103,   79,   93,  103,  103,   35,  103,   47,   72,
     480       73,  103,   96,   99,    0,    0,    0,    0,    0,    0,
     481        0,    0,    0,    0,    0,    0,  103,   69,  103,  103,
     482
     483       12,  103,  103,   30,   34,  103,  103,  103,   66,  103,
     484      103,  103,  103,  103,  103,  103,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
     486      103,  103,  103,  103,  103,  103,  103,   50,   63,   74,
     487       80,   94,  100,  103,  103,  103,    0,    0,    0,    0,
     488        0,    0,    0,    0,  103,  103,   13,   19,  103,  103,
     489       31,  103,  103,  103,   26,   46,   88,    0,    0,  103,
     490      103,  103,  103,  103,  103,   75,  101,  103,   86,   20,
     491      103,  103,   44,   83,  103,  103,  103,  103,  103,  103,
     492      103,   97,   70,    0
    493493
    494494    } ;
     
    539539    } ;
    540540
    541 static yyconst flex_int16_t yy_base[1066] =
     541static yyconst flex_int16_t yy_base[1069] =
    542542    {   0,
    543         0,   84, 2285, 2282,   94,    0,  177,  178,  179,  180,
    544      2298, 2825,  191, 2825,  197,   55, 2825, 2244,   60,  173,
    545      2825, 2825, 2825,   56,  188, 2825,  191,  189,  204,  216,
    546       275,    0, 2262, 2825,  216, 2260,  152,  344,  155,  220,
    547      2825,  159, 2825,  217,  226, 2825,  185,  154,  212,  251,
     543        0,   84, 2307, 2305,   94,    0,  177,  178,  179,  180,
     544     2319, 2845,  191, 2845,  197,   55, 2845, 2265,   60,  173,
     545     2845, 2845, 2845,   56,  188, 2845,  191,  189,  204,  216,
     546      275,    0, 2284, 2845,  216, 2283,  152,  344,  155,  220,
     547     2845,  159, 2845,  217,  226, 2845,  185,  154,  212,  251,
    548548      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
    549       238,  228, 2825,  225, 2825, 2255,  402,  390, 2825, 2266,
    550      2825, 2234,  235, 2825,    0, 2825,  426,    0, 2825,  417,
    551      2825,  439,  451, 2825,  498, 2232,  264, 2825, 2825, 2825,
    552      2825, 2825, 2248, 2825, 2245, 2825, 2825, 2257,  559, 2825,
    553 
    554      2274, 2825,  438,  444,  511,  534,  289,  253,  197,  380,
    555       305,    0,  319,  280,  198,  322, 2825, 2825, 2825, 2243,
    556      2825, 2825, 2825, 2240, 2237,  218,  255, 2252,  298,  350,
    557       368,  312,  440,  398,  405, 2233,  441, 2181,  446, 2209,
    558      2825,  335, 2825, 2825,  468, 2203, 2202, 2825, 2175,  439,
     549      238,  228, 2845,  225, 2845, 2278,  402,  390, 2845, 2287,
     550     2845, 2255,  235, 2845,    0, 2845,  426,    0, 2845,  417,
     551     2845,  439,  451, 2845,  498, 2254,  264, 2845, 2845, 2845,
     552     2845, 2845, 2271, 2845, 2268, 2845, 2845, 2278,  559, 2845,
     553
     554     2295, 2845,  438,  444,  511,  534,  289,  253,  197,  380,
     555      305,    0,  319,  280,  198,  322, 2845, 2845, 2845, 2265,
     556     2845, 2845, 2845, 2263, 2260,  218,  255, 2273,  298,  350,
     557      368,  312,  440,  398,  405, 2254,  441, 2203,  446, 2232,
     558     2845,  335, 2845, 2845,  468, 2226, 2223, 2845, 2196,  439,
    559559      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
    560560      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
    561       489,  503,  496,  521,  276,  515,  516, 2202,  526,  510,
     561      489,  503,  496,  521,  276,  515,  516, 2224,  526,  510,
    562562      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
    563       599,  582,  593,  584, 2825, 2825,  660,  651, 2249,  666,
    564 
    565      2825,  678, 2825, 2196,  607, 2192, 2191,    0,  693, 2825,
    566      2825,  684, 2189, 2186, 2183,    0, 2206,  578,  608,  617,
    567       654,  679,  650,  683,  684,  687, 2203,  690,  691, 2179,
    568      2159, 2825,    0,  683,  710,  686,  700, 2157, 2209, 2825,
    569       714,    0,  427,  746,  764,  786,  808,  621, 2825, 2165,
    570      2138,    0,  794, 2184,  795,  709, 2825, 2160, 2134,  832,
    571      2825, 2825, 2165, 2825, 2825,  711,  714, 2142, 2142,  717,
    572      2138, 2136, 2133,    0, 2130,    0, 2101,  694,  679,  712,
    573       709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
    574       800,  795,  742,  744,  814,  816,  818, 2131,  819,  745,
    575 
    576       820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
    577       826,  833,  838,  839,  848,  850,  851,  844,  834,  857,
    578      2129,  858,  859,  860,  862,  861,  864,  865,  867,  868,
    579       866,  871,  876,  872,  878, 2126,  880,  689,  881,  882,
    580       892,  896,  893,  953,  954, 2120, 2119, 2118,    0, 2116,
    581         0,  941,  945, 2113,    0, 2112,    0, 2111,    0, 2131,
    582      2825,  940,  941, 2108, 2105,    0, 2104,    0, 2825,  953,
    583       975,  964, 2825,  981,  997, 1021, 2102, 2825, 2825,  939,
    584       940, 1006,  982, 1041,  310, 1039, 1004, 2825, 2825, 2099,
    585      2095, 2091,    0, 2089,    0, 2087,    0, 2084,    0, 2825,
    586 
    587       886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
    588      1002,  998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043,
    589      1038, 1041, 1053, 2085, 1055, 2083, 1045, 2080, 1056, 1061,
    590      1063, 1065, 1066, 1067, 1070, 2077, 1071, 2076, 1073, 1074,
    591      1075, 1078, 1080, 1081, 1085, 2075, 1087, 2073, 1084, 1089,
    592      1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108,  905,
    593      1109, 1116, 1110, 1122, 2070, 1120, 1123, 1179, 2064,    0,
    594      2063,    0, 2062,    0, 2060,    0, 1166, 2057,    0, 2054,
    595         0, 2053, 2052, 2050,    0, 2047,    0, 1173, 2044, 1179,
    596      1137, 1195, 1181, 1178, 1176, 2825, 1219, 1231, 1253, 2055,
    597 
    598      2030, 2040, 2037,    0, 2034,    0, 2033,    0, 2032,    0,
    599      2030,    0, 2027,    0, 1141, 1172, 2027, 1180, 1155, 1196,
    600      1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236,
    601      1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2026,
    602      1261, 1256, 2025, 1260, 1263, 1264, 1257, 2023, 1271, 1268,
    603      1269, 1273, 2020, 1275, 1282, 2017, 1283, 1284, 2016, 1276,
    604      1286, 1289, 2015, 1294, 1291, 1296, 1295, 1297, 1310, 2013,
    605      1305, 1308, 2010, 1307, 1300, 2009, 2058, 2003,    0, 2000,
    606         0, 1999,    0, 1998,    0, 1996,    0, 1963,    0, 1961,
    607         0, 1960,    0, 1355, 1361, 1389, 1372, 1957, 2825, 1378,
    608 
    609      1325, 1365, 1379, 1954, 2825, 1953,    0, 1952,    0, 1950,
    610         0, 1947,    0,    0,    0, 1947,    0, 1366, 1312, 1311,
    611      1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
    612      1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408,
    613      1413, 1414, 1946, 1409, 1416, 1419, 1945, 1943, 1940, 1422,
    614      1424, 1939, 1429, 1938, 1936, 1425, 1430, 1933, 1932, 1931,
    615      1929, 1926, 1922, 1436, 1433, 1918, 1439, 1440, 1964, 2825,
    616      1895,    0, 1894,    0,    0,    0, 1896,    0,    0,    0,
    617      2825,    0,    0,    0,    0, 1486, 1891, 2825, 2825, 1492,
    618      1888,    0, 1887,    0,    0,    0,    0, 1886, 1447, 1444,
    619 
    620      1887, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1884, 1486,
    621      1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498,
    622      1508, 1512, 1513, 1514, 1515, 1883, 1882, 1518, 1880, 1877,
    623      1517, 1520, 1523, 1876, 1521, 1525,    0,    0,    0, 1872,
    624      1870, 1867, 1575,    0, 1866, 1865, 1863, 1860, 1859, 1861,
    625      1859, 1856, 1855, 1531, 1538, 1527, 1528, 1530, 1533, 1552,
    626      1539, 1554, 1553, 1586, 1854, 1559, 1852, 1560, 1561, 1564,
    627      1570, 1572, 1571, 1849, 1574, 1848, 1847, 1845, 1575, 1842,
    628      1841, 1837, 1835, 1828, 1826, 1825, 1822, 1821, 1820, 1818,
    629      1801, 1792, 1791, 1576, 1791, 1579, 1577, 1580, 1582, 1581,
    630 
    631      1585, 1784, 1589, 1616, 1593, 1781, 1591, 1599, 1605, 1592,
    632      1606, 1609, 1610, 1771, 1769, 1768, 1747, 1746, 1745, 1738,
    633      1736, 1735, 1693, 1689, 1688, 1687, 1689, 1611, 1612, 1614,
    634      1615, 1618, 1625, 1621, 1686, 1683, 1627, 1682, 1681, 1631,
    635      1635, 1441, 1637, 1677, 1674, 1354, 1319, 1318, 1267, 1212,
    636      1210, 1639, 1640, 1211, 1647, 1623, 1649, 1178, 1652, 1653,
    637      1657, 1177, 1126,  964,  937,  903, 1641, 1643, 1659, 1663,
    638      1664, 1665,  788,  752, 1629,  607,  487, 1666, 1669,  394,
    639       357, 1670, 1672, 1671, 1674, 1676, 1675, 1678,  233,  137,
    640      2825, 1750, 1763, 1776, 1786, 1796, 1809, 1819, 1832, 1845,
    641 
    642      1858, 1866, 1876, 1883, 1890, 1897, 1904, 1911, 1918, 1925,
    643      1932, 1939, 1952, 1959, 1963, 1971, 1974, 1981, 1988, 1995,
    644      1998, 2005, 2011, 2024, 2037, 2044, 2051, 2058, 2065, 2068,
    645      2075, 2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118,
    646      2125, 2128, 2135, 2143, 2150, 2157, 2164, 2171, 2174, 2181,
    647      2184, 2191, 2194, 2201, 2207, 2220, 2227, 2234, 2237, 2244,
    648      2247, 2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294,
    649      2301, 2304, 2311, 2314, 2321, 2328, 2335, 2338, 2345, 2348,
    650      2355, 2358, 2365, 2368, 2375, 2378, 2385, 2391, 2404, 2411,
    651      2418, 2421, 2428, 2431, 2438, 2441, 2448, 2451, 2458, 2461,
    652 
    653      2468, 2471, 2478, 2481, 2488, 2491, 2498, 2505, 2508, 2515,
    654      2518, 2525, 2528, 2535, 2538, 2541, 2547, 2554, 2563, 2570,
    655      2577, 2580, 2587, 2590, 2593, 2599, 2606, 2609, 2612, 2615,
    656      2618, 2621, 2624, 2627, 2634, 2637, 2644, 2647, 2650, 2653,
    657      2656, 2666, 2673, 2676, 2679, 2682, 2689, 2696, 2703, 2706,
    658      2713, 2720, 2727, 2734, 2741, 2748, 2755, 2762, 2769, 2776,
    659      2783, 2790, 2797, 2804, 2811
     563      599,  582,  593,  584, 2845, 2845,  660,  651, 2272,  666,
     564
     565     2845,  678, 2845, 2219,  607, 2213, 2212,    0,  693, 2845,
     566     2845,  684, 2211, 2209, 2206,    0, 2227,  578,  608,  617,
     567      654,  679,  650,  683,  684,  687, 2224,  690,  691, 2201,
     568     2199, 2845,    0,  683,  710,  686,  700, 2179, 2230, 2845,
     569      730,  722,  427,  747,  756,  787,  770,  621, 2845, 2188,
     570     2161,    0,  795, 2205,  796,  700, 2845, 2181, 2156,  809,
     571     2845, 2845, 2188, 2845, 2845,  728,  733, 2165, 2163,  701,
     572     2159, 2158, 2156,    0, 2153,    0, 2122,  736,  746,  747,
     573      716,  689,  748,  566,  789,  659,  801,  751,  754,  785,
     574      776,  787,  808,  796,  739,  711,  806, 2152,  807,  815,
     575
     576      817,  821,  809,  819,  827,  830,  831,  832,  833,  834,
     577      839,  840,  841,  842,  846,  853,  854,  844,  847,  855,
     578     2151,  860,  862,  861,  866,  864,  867,  869,  870,  872,
     579      873,  874,  878,  875,  883, 2149,  882,  928,  885,  888,
     580      894,  899,  892,  956,  958, 2143, 2140, 2139,    0, 2138,
     581        0,  945,  949, 2136,    0, 2133,    0, 2132,    0, 2153,
     582     2845,  930,  944, 2131, 2126,    0, 2125,    0, 2845,  959,
     583      979,  970, 2845,  985, 1025, 2124, 1001, 1047, 2122, 2845,
     584     2845,  943,  987, 1033,  986, 1072,  310, 1064,  987, 2845,
     585     2845, 2119, 2115, 2111,    0, 2109,    0, 2107,    0, 2104,
     586
     587        0, 2845,  913,  947,  964,  966, 1005,  927, 1049,  939,
     588     1051,  968,  991,  986, 1041, 1053, 1003, 1059, 1063, 1066,
     589     1023, 1064, 1062, 1065,  978, 2105, 1072, 2103, 1078, 2100,
     590     1071, 1074, 1076, 1080, 1091, 1093, 1095, 2097, 1094, 2096,
     591     1082, 1098, 1099, 1100, 1101, 1105, 1106, 2095, 1107, 2093,
     592     1110, 1112, 1111, 1117, 1118, 1113, 1119, 1123, 1126, 1127,
     593     1129, 1130, 1131, 1140, 1142, 1143, 2090, 1144, 1147, 1195,
     594     2084,    0, 2083,    0, 2082,    0, 2080,    0, 1190, 2077,
     595        0, 2074,    0, 2073, 2072, 2070,    0, 2067,    0, 1197,
     596     2064, 1203, 1219, 1205, 1244, 1210, 1202, 1200, 2845, 1260,
     597
     598     1278, 1271, 2075, 2050, 2060, 2057,    0, 2054,    0, 2053,
     599        0, 2052,    0, 2050,    0, 2047,    0, 1164, 1152, 2047,
     600     1184, 1182, 1226, 1157, 1227, 1196, 1254, 1146, 1237, 1255,
     601     1256, 1204, 1258, 1271, 1261, 1260, 1292, 1274, 1262, 1277,
     602     1278, 1280, 2046, 1186, 1289, 2045, 1279, 1282, 1290, 1295,
     603     2043, 1299, 1300, 1301, 1303, 2040, 1306, 1302, 2037, 1310,
     604     1311, 2036, 1309, 1312, 1315, 2035, 1220, 1314, 1316, 1322,
     605     1326, 1333, 2033, 1328, 1329, 2030, 1330, 1335, 2029, 2078,
     606     2023,    0, 2020,    0, 2019,    0, 2018,    0, 2016,    0,
     607     1983,    0, 1981,    0, 1980,    0, 1379, 1385, 1413, 1396,
     608
     609     1977, 2845, 1402, 1351, 1389, 1403, 1974, 2845, 1973,    0,
     610     1972,    0, 1970,    0, 1967,    0,    0,    0, 1967,    0,
     611     1390, 1336, 1397, 1365, 1345, 1392, 1393, 1409, 1381, 1407,
     612     1412, 1414, 1419, 1420, 1422, 1424, 1427, 1431,  926, 1429,
     613     1432, 1438, 1433, 1435, 1440, 1966, 1437, 1441, 1445, 1965,
     614     1963, 1960, 1450, 1453, 1959, 1455, 1958, 1956, 1456, 1459,
     615     1953, 1952, 1951, 1949, 1942, 1940, 1458, 1461, 1939, 1464,
     616     1462, 1986, 2845, 1929,    0, 1925,    0,    0,    0, 1924,
     617        0,    0,    0, 2845,    0,    0,    0,    0, 1511, 1918,
     618     2845, 2845, 1517, 1917,    0, 1916,    0,    0,    0,    0,
     619
     620     1914, 1474, 1468, 1914, 1443, 1493, 1498, 1476, 1504, 1505,
     621     1494, 1913, 1334, 1509, 1506, 1510, 1511, 1545, 1525, 1518,
     622     1543, 1530, 1523, 1529, 1531, 1534, 1535, 1539, 1912, 1910,
     623     1540, 1907, 1906, 1542, 1538, 1544, 1905, 1546, 1550,    0,
     624        0,    0, 1900, 1897, 1896, 1596,    0, 1895, 1893, 1890,
     625     1889, 1888, 1889, 1886, 1885, 1884, 1552, 1557, 1573, 1549,
     626     1551, 1553, 1575, 1555, 1577, 1582, 1607, 1882, 1583, 1879,
     627     1584, 1589, 1585, 1590, 1591, 1594, 1878, 1597, 1877, 1875,
     628     1872, 1598, 1871, 1870, 1865, 1862, 1861, 1860, 1858, 1851,
     629     1849, 1848, 1845, 1844, 1843, 1841, 1600, 1827, 1601, 1605,
     630
     631     1608, 1602, 1609, 1610, 1818, 1614, 1629, 1615, 1817, 1604,
     632     1616, 1625, 1630, 1380, 1631, 1633, 1811, 1804, 1801, 1794,
     633     1792, 1791, 1770, 1769, 1768, 1761, 1759, 1758, 1716, 1716,
     634     1634, 1636, 1635, 1637, 1640, 1641, 1645, 1715, 1713, 1647,
     635     1712, 1711, 1648, 1652, 1653, 1654, 1703, 1701, 1700, 1698,
     636     1696, 1476, 1472, 1343, 1657, 1667, 1259, 1656, 1660, 1668,
     637     1150, 1671, 1675, 1676, 1031, 1027,  793,  752,  675, 1669,
     638     1677, 1680, 1681, 1682, 1684,  645,  607, 1686,  487,  441,
     639     1688, 1690,  394,  357, 1693, 1694, 1695, 1697, 1696, 1698,
     640     1700,  233,  137, 2845, 1773, 1786, 1799, 1809, 1819, 1832,
     641
     642     1842, 1855, 1868, 1881, 1889, 1899, 1906, 1913, 1920, 1927,
     643     1934, 1941, 1948, 1955, 1962, 1969, 1973, 1981, 1987, 1994,
     644     2001, 2008, 2015, 2018, 2025, 2031, 2044, 2057, 2064, 2071,
     645     2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118, 2125,
     646     2128, 2135, 2138, 2145, 2148, 2155, 2163, 2170, 2177, 2184,
     647     2191, 2194, 2201, 2204, 2211, 2214, 2221, 2227, 2240, 2247,
     648     2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294, 2297,
     649     2304, 2307, 2314, 2321, 2324, 2331, 2334, 2341, 2348, 2355,
     650     2358, 2365, 2368, 2375, 2378, 2385, 2388, 2395, 2398, 2405,
     651     2411, 2424, 2431, 2438, 2441, 2448, 2451, 2458, 2461, 2468,
     652
     653     2471, 2478, 2481, 2488, 2491, 2498, 2501, 2508, 2511, 2518,
     654     2525, 2528, 2535, 2538, 2545, 2548, 2555, 2558, 2561, 2567,
     655     2574, 2583, 2590, 2597, 2600, 2607, 2610, 2613, 2619, 2626,
     656     2629, 2632, 2635, 2638, 2641, 2644, 2647, 2654, 2657, 2664,
     657     2667, 2670, 2673, 2676, 2686, 2693, 2696, 2699, 2702, 2709,
     658     2716, 2723, 2726, 2733, 2740, 2747, 2754, 2761, 2768, 2775,
     659     2782, 2789, 2796, 2803, 2810, 2817, 2824, 2831
    660660    } ;
    661661
    662 static yyconst flex_int16_t yy_def[1066] =
     662static yyconst flex_int16_t yy_def[1069] =
    663663    {   0,
    664       891,    1,  892,  892,  891,    5,  893,  893,  894,  894,
    665       891,  891,  891,  891,  891,  891,  891,  895,  891,  891,
    666       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    667       891,   31,  891,  891,  891,  891,  891,  891,  896,  895,
    668       891,  891,  891,  891,  895,  891,  895,  895,  895,  895,
    669       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    670       895,  895,  891,  891,  891,  891,  891,  897,  891,  891,
    671       891,  898,  891,  891,  899,  891,  891,  900,  891,  891,
    672       891,  891,  891,  891,  891,  895,  891,  891,  891,  891,
    673       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    674 
    675       901,  891,   99,   30,  891,  891,  891,  891,  902,   30,
    676       891,   31,  891,  891,   31,  891,  891,  891,  891,  891,
    677       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    678       891,  891,  891,  891,  891,  891,  891,  891,  891,  903,
    679       891,  891,  891,  891,  895,  904,  905,  891,  891,  895,
    680       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    681       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    682       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    683       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    684       895,  895,  895,  895,  891,  891,  891,  897,  897,  897,
    685 
    686       891,  897,  891,  898,  891,  906,  907,  899,  891,  891,
    687       891,  891,  908,  909,  910,  900,  891,  891,  891,  891,
    688       891,  891,  891,  891,  891,  891,  891,  891,  891,  911,
    689       912,  891,   99,  891,  891,  891,  891,   99,  913,  891,
    690       891,  104,  104,  891,  891,  891,  891,  891,  891,  891,
    691       891,  914,  915,  916,  891,  891,  891,  891,  891,  891,
    692       891,  891,  891,  891,  891,  891,  891,  891,  903,  891,
    693       917,  918,  919,  920,  921,  922,  891,  923,  923,  923,
    694       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    695       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    696 
    697       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    698       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    699       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    700       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    701       923,  923,  923,  924,  925,  926,  927,  928,  929,  930,
    702       931,  891,  891,  932,  933,  934,  935,  936,  937,  891,
    703       891,  891,  891,  891,  938,  939,  940,  941,  891,  891,
    704       891,  891,  891,  891,  891,  371,  376,  891,  891,  942,
    705       943,  944,  891,  891,  891,  944,  891,  891,  891,  945,
    706       946,  947,  948,  949,  950,  951,  952,  953,  954,  891,
    707 
    708       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    709       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    710       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    711       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    712       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    713       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    714       955,  955,  955,  955,  955,  955,  955,  956,  957,  958,
    715       959,  960,  961,  962,  963,  964,  891,  965,  966,  967,
    716       968,  969,  969,  970,  971,  972,  973,  891,  488,  891,
    717       974,  891,  974,  891,  891,  891,  891,  891,  891,  891,
    718 
    719       891,  975,  976,  977,  978,  979,  980,  981,  982,  983,
    720       984,  985,  986,  987,  988,  988,  988,  988,  988,  988,
    721       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    722       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    723       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    724       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    725       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    726       988,  988,  988,  988,  988,  988,  989,  990,  991,  992,
     664      894,    1,  895,  895,  894,    5,  896,  896,  897,  897,
     665      894,  894,  894,  894,  894,  894,  894,  898,  894,  894,
     666      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     667      894,   31,  894,  894,  894,  894,  894,  894,  899,  898,
     668      894,  894,  894,  894,  898,  894,  898,  898,  898,  898,
     669      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     670      898,  898,  894,  894,  894,  894,  894,  900,  894,  894,
     671      894,  901,  894,  894,  902,  894,  894,  903,  894,  894,
     672      894,  894,  894,  894,  894,  898,  894,  894,  894,  894,
     673      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     674
     675      904,  894,  894,   30,  894,  894,  894,  894,  905,   30,
     676      894,   31,  894,  894,   31,  894,  894,  894,  894,  894,
     677      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     678      894,  894,  894,  894,  894,  894,  894,  894,  894,  906,
     679      894,  894,  894,  894,  898,  907,  908,  894,  894,  898,
     680      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     681      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     682      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     683      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     684      898,  898,  898,  898,  894,  894,  894,  900,  900,  900,
     685
     686      894,  900,  894,  901,  894,  909,  910,  902,  894,  894,
     687      894,  894,  911,  912,  913,  903,  894,  894,  894,  894,
     688      894,  894,  894,  894,  894,  894,  894,  894,  894,  914,
     689      915,  894,   99,  894,  894,  894,  894,   99,  904,  894,
     690       99,  110,  242,  894,  894,  894,  894,  894,  894,  894,
     691      894,  916,  917,  918,  894,  894,  894,  894,  894,  894,
     692      894,  894,  894,  894,  894,  894,  894,  894,  919,  894,
     693      920,  921,  922,  923,  924,  925,  894,  926,  926,  926,
     694      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     695      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     696
     697      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     698      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     699      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     700      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     701      926,  926,  926,  927,  928,  929,  930,  931,  932,  933,
     702      934,  894,  894,  935,  936,  937,  938,  939,  940,  894,
     703      894,  894,  894,  894,  941,  942,  943,  944,  894,  894,
     704      894,  894,  894,  894,  894,  375,  894,  371,  378,  894,
     705      894,  945,  946,  947,  894,  894,  894,  947,  894,  894,
     706      894,  948,  949,  950,  951,  952,  953,  954,  955,  956,
     707
     708      957,  894,  958,  958,  958,  958,  958,  958,  958,  958,
     709      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     710      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     711      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     712      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     713      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     714      958,  958,  958,  958,  958,  958,  958,  958,  958,  959,
     715      960,  961,  962,  963,  964,  965,  966,  967,  894,  968,
     716      969,  970,  971,  972,  972,  973,  974,  975,  976,  894,
     717      490,  894,  894,  977,  894,  977,  894,  894,  894,  894,
     718
     719      894,  894,  894,  894,  978,  979,  980,  981,  982,  983,
     720      984,  985,  986,  987,  988,  989,  990,  991,  991,  991,
     721      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     722      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     723      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     724      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     725      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     726      991,  991,  991,  991,  991,  991,  991,  991,  991,  992,
    727727      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
    728      1003, 1004, 1005,  891,  891,  891,  891, 1006,  891,  596,
    729 
    730       891,  891,  891,  600,  891, 1007, 1008, 1009, 1010, 1011,
    731      1012, 1013, 1014, 1015, 1016, 1017, 1018, 1017, 1017, 1017,
    732      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    733      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    734      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    735      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    736      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1019,  891,
    737      1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
    738       891, 1030, 1031, 1032, 1033,  891,  686,  891,  891,  891,
    739      1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1042,
    740 
    741      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    742      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    743      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    744      1042, 1042, 1042, 1042, 1042, 1042, 1043, 1044, 1045, 1046,
    745      1047, 1048,  891, 1049, 1034, 1036, 1050, 1051, 1041, 1042,
    746      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    747      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    748      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    749      1042, 1052, 1053, 1046, 1054, 1047, 1055, 1048, 1056, 1057,
    750      1050, 1058, 1051, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    751 
    752      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    753      1042, 1042, 1042, 1059, 1052, 1060, 1053, 1061, 1054, 1062,
    754      1055, 1063, 1056, 1064, 1057, 1058, 1042, 1042, 1042, 1042,
    755      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    756      1042, 1042, 1042, 1065, 1059, 1060, 1061, 1062, 1036, 1063,
    757      1064, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    758      1042, 1042, 1042, 1042, 1065, 1036, 1042, 1042, 1042, 1042,
    759      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    760      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    761         0,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    762 
    763       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    764       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    765       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    766       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    767       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    768       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    769       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    770       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    771       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    772       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    773 
    774       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    775       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    776       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    777       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    778       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    779       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    780       891,  891,  891,  891,  891
     728     1003, 1004, 1005, 1006, 1007, 1008,  894,  894,  894,  894,
     729
     730     1009,  894,  599,  894,  894,  894,  603,  894, 1010, 1011,
     731     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
     732     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     733     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     734     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     735     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     736     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     737     1020, 1022,  894, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
     738     1030, 1031, 1032,  894, 1033, 1034, 1035, 1036,  894,  689,
     739      894,  894,  894, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
     740
     741     1044, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     742     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     743     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     744     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046,
     745     1047, 1048, 1049, 1050, 1051,  894, 1052, 1037, 1039, 1053,
     746     1054, 1044, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     747     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     748     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     749     1045, 1045, 1045, 1045, 1055, 1056, 1049, 1057, 1050, 1058,
     750     1051, 1059, 1060, 1053, 1061, 1054, 1045, 1045, 1045, 1045,
     751
     752     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     753     1045, 1045, 1045, 1045, 1045, 1045, 1062, 1055, 1063, 1056,
     754     1064, 1057, 1065, 1058, 1066, 1059, 1067, 1060, 1061, 1045,
     755     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     756     1045, 1045, 1045, 1045, 1045, 1045, 1068, 1062, 1063, 1064,
     757     1065, 1039, 1066, 1067, 1045, 1045, 1045, 1045, 1045, 1045,
     758     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1068, 1039, 1045,
     759     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     760     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     761     1045, 1045, 1045,    0,  894,  894,  894,  894,  894,  894,
     762
     763      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     764      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     765      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     766      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     767      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     768      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     769      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     770      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     771      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     772      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     773
     774      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     775      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     776      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     777      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     778      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     779      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     780      894,  894,  894,  894,  894,  894,  894,  894
    781781    } ;
    782782
    783 static yyconst flex_int16_t yy_nxt[2911] =
     783static yyconst flex_int16_t yy_nxt[2931] =
    784784    {   0,
    785785       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    806806
    807807       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
    808        95,   99,   99,   99,   99,   99,   99,  252,  891,   94,
     808       95,   99,   99,   99,   99,   99,   99,  252,  894,   94,
    809809      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
    810810       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     
    821821      115,  264,  248,   87,   87,  173,  106,  174,  249,  231,
    822822      175,  143,  116,  263,  176,  264,  144,  259,  317,  283,
    823       114,  125,  280,  500,  249,  126,  127,   87,  128,  191,
     823      114,  125,  280,  503,  249,  126,  127,   87,  128,  191,
    824824      129,  130,  256,  131,  249,  132,   87,  265,  257,  184,
    825       185,  257,  248,   87,  133,  134,  135,  501,  188,  186,
     825      185,  257,  248,   87,  133,  134,  135,  504,  188,  186,
    826826      249,  263,  187,  264,  271,   87,  189,  265,  145,  256,
    827827      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
    828828
    829       891,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     829      894,  264,  192,  197,   81,   82,   82,   82,  197,   87,
    830830      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
    831831       82,   82,   82,   80,   87,  138,  139,  209,  210,  263,
    832       891,  264,  209,  282,  211,  255,  263,  267,  264,  211,
    833        82,   81,   82,   82,   82,   82,   87,  891,  212,  212,
    834       212,  212,   82,   81,   83,   83,   83,   82,  891,  211,
    835        99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
     832      894,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     833       82,   81,   82,   82,   82,   82,   87,  894,  212,  212,
     834      212,  212,   82,   81,   83,   83,   83,   82,  894,  211,
     835      241,  241,  241,  241,  241,  241,  242,  242,  242,  242,
    836836      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
    837        87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
    838        87,   87,  286,  241,  891,  211,   87,   87,  211,  243,
     837       87,  144,  377,  211,  211,   87,   87,  211,  211,   87,
     838       87,   87,  286,   87,  894,  211,   87,   87,  211,  243,
    839839
    840840      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
    841841      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
    842        87,   87,  891,   87,  309,  300,   87,   87,  224,  225,
     842       87,   87,  894,   87,  309,  300,   87,   87,  224,  225,
    843843      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
    844844      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     
    852852      331,  361,   87,   87,  238,  337,  326,  327,   87,  236,
    853853      235,  236,   87,  329,  237,  332,  236,  287,  288,  289,
    854       336,  290,  291,  334,   87,  292,   87,  293,  407,  360,
     854      336,  290,  291,  334,   87,  292,   87,  293,  409,  360,
    855855      330,  361,  294,  295,  296,   87,  297,  339,  360,  343,
    856856      361,   87,  200,  201,  338,  340,  346,  200,  341,   87,
    857857      342,  197,   81,   82,   82,   82,  197,  200,  201,  198,
    858       378,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     858      380,  361,  200,  202,  202,  202,  202,  202,  202,  344,
    859859      201,  360,  347,  361,  344,  360,  345,  361,  202,  202,
    860       202,  202,  202,  202,  209,  210,  378,  143,  361,  209,
     860      202,  202,  202,  202,  209,  210,  380,   87,  361,  209,
    861861
    862862      202,  202,  202,  202,  202,  202,  352,  352,  352,  352,
    863863      360,   87,  361,  362,  360,  360,  361,  361,  360,  363,
    864864      361,  360,  360,  361,  361,  369,  369,  370,  369,  370,
    865       435,   87,  371,  371,  371,  371,  371,  371,  373,  353,
    866       373,   87,  263,  373,  264,  263,   87,  264,  369,  402,
    867        87,  369,  234,  235,  236,  406,  237,  236,  388,  401,
    868       373,   87,  373,   87,   87,  372,  390,  373,  105,  105,
    869       105,  105,  105,  105,  236,  235,  236,  404,   87,  237,
    870       405,  236,  403,  408,  388,  106,  246,  246,  246,  246,
    871       246,  246,  391,   87,   87,   87,   87,   87,   87,  419,
    872 
    873        87,  255,  425,  432,   87,  420,  434,  106,  376,  376,
    874       376,  376,  376,  376,  381,  409,  413,  105,  105,  105,
    875       105,  105,  105,   87,  234,  245,  236,  245,  237,  236,
    876       246,  246,  246,  246,  246,  246,   87,  383,  410,  384,
    877        87,  377,   87,  385,  411,  412,  236,   87,  236,  386,
    878       255,  237,   87,  236,  112,  112,  112,  112,  112,  112,
    879       414,  387,  415,  417,  418,  384,   87,  416,   87,  385,
    880        87,   87,   87,   87,   87,   87,   87,   87,   87,  421,
    881       427,  426,  433,   87,  437,   87,   87,  260,  423,  424,
    882        87,   87,  436,  429,  428,  422,   87,  430,  431,  439,
    883 
    884        87,  438,   87,   87,  446,  441,  440,  442,  443,   87,
    885        87,   87,   87,   87,   87,  445,   87,   87,   87,   87,
    886        87,  448,  447,   87,   87,  444,  449,  451,   87,  456,
    887        87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
    888       457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
    889       459,  463,  465,  466,  344,  201,  201,   87,  891,  344,
    890       467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
    891       352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
    892       371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
    893       371,  371,  891,   87,  493,  494,  477,  488,  488,  488,
    894 
    895       488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
    896       492,  492,   87,  234,   87,  236,   87,  237,  236,  242,
    897       242,  242,  242,  105,  105,  495,  381,  517,   87,   87,
    898       489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
    899       237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
    900        87,  384,  375,  496,   87,  385,  522,  496,  497,  891,
    901       497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
    902       525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
    903        87,  385,  383,   87,  384,   87,   87,  527,  385,   87,
    904        87,  532,   87,   87,  502,   87,  499,   87,  535,  528,
    905 
    906       529,  537,  530,  531,  533,   87,  387,   87,   87,  541,
    907       384,  534,  538,   87,  385,   87,  536,   87,   87,   87,
    908       539,  540,   87,   87,  546,   87,   87,   87,  544,  542,
    909        87,  548,   87,   87,  547,  543,   87,   87,  549,   87,
    910       545,   87,  552,   87,   87,  550,  556,  554,  551,   87,
    911       559,   87,  553,  555,   87,   87,  557,   87,   87,  558,
    912        87,   87,   87,  564,  560,  567,  563,  568,   87,  561,
    913       566,  562,   87,  565,   87,   87,  571,   87,   87,  573,
    914       627,  201,  492,  570,  576,  574,  572,  577,  211,  211,
    915       211,  211,  493,   87,  575,  488,  488,  488,  488,  488,
    916 
    917       488,  376,  376,  376,  376,  376,  376,   87,  492,   87,
    918       618,  234,  595,  236,  595,  237,  236,  596,  596,  596,
    919       596,  596,  596,  492,   87,  599,  492,  621,  489,   87,
    920        87,  623,   87,  236,  490,  236,  598,  619,  237,   87,
    921       236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
    922       597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
    923       631,  622,   87,   87,  625,  891,   87,  891,   87,  601,
    924       497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
    925       498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
    926        87,  602,  633,  602,  626,  636,  603,  632,  602,  629,
    927 
    928       634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
    929       637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
    930        87,   87,  866,   87,   87,   87,  638,   87,   87,  644,
    931       645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
    932       651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
    933       656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
    934        87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
    935       666,  701,  702,  891,  891,   87,  667,  488,  488,  488,
    936       488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
    937       688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
    938 
    939       600,  600,  600,  600,  600,  600,  703,  688,   87,  891,
    940       594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
    941        87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
    942       688,  603,  602,  604,  707,   87,  700,  710,  709,  689,
    943        87,  689,   87,  705,  687,   87,  689,   87,   87,  602,
    944        87,  602,   87,  716,  603,  718,  602,  712,   87,   87,
    945        87,   87,  711,   87,  714,   87,   87,  713,   87,  717,
    946       715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
    947       727,   87,   87,   87,  725,   87,  731,  723,   87,  732,
    948       726,   87,   87,   87,  728,  734,   87,  733,  730,   87,
    949 
    950       735,   87,   87,  729,   87,  863,  751,  736,  686,  686,
    951       686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
    952       750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
    953       753,   87,   87,  764,   87,  756,  754,  757,   87,  758,
    954        87,  687,   87,   87,  759,  767,  602,  690,  602,  761,
    955        87,  603,  766,  602,   87,  760,   87,  762,   87,  765,
    956        87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
    957        87,   87,   87,   87,  771,   87,  774,   87,  772,   87,
    958        87,  780,   87,   87,  796,   87,  781,  773,  775,  777,
    959        87,   87,  798,  776,  778,  797,  779,  686,  686,  686,
    960 
    961       686,  686,  686,  794,   87,   87,   87,  795,  799,  802,
    962       804,   87,   87,   87,  805,  806,   87,  801,  803,  808,
    963       807,  800,   87,   87,   87,  809,   87,   87,   87,   87,
    964       743,   87,   87,   87,   87,  830,  832,   87,   87,  810,
    965       833,   87,  835,   87,   87,   87,  811,  829,  836,  812,
    966       813,   87,  828,  840,  838,  827,  831,   87,   87,  834,
    967       839,   87,   87,   87,   87,  837,   87,   87,   87,  854,
    968        87,  853,  842,   87,  841,   87,  855,   87,  843,   87,
    969       858,   87,  860,   87,  852,  870,  861,   87,  856,   87,
    970       859,   87,   87,   87,  857,   87,  862,  868,  864,   87,
    971 
    972       867,   87,  869,  881,   87,   87,  871,  872,  873,   87,
    973       876,   87,  874,  875,  877,   87,   87,   87,   87,  879,
    974       880,   87,   87,   87,   87,  878,   87,   87,   87,  891,
    975        87,  884,  865,   87,   87,   87,  883,  885,   87,  882,
    976       890,   87,  891,  891,  851,  886,  888,  887,  891,  889,
    977        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    978        69,   69,   69,   75,   75,   75,   75,   75,   75,   75,
    979        75,   75,   75,   75,   75,   75,   78,   78,   78,   78,
    980        78,   78,   78,   78,   78,   78,   78,   78,   78,   86,
    981       850,  891,   86,  848,   86,   86,   86,   86,   86,  140,
    982 
    983       891,  847,  891,  140,  140,  140,  140,  140,  140,  199,
    984       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    985       199,  199,  204,  846,  891,  204,  845,  204,  204,  204,
    986       204,  204,  208,   87,  208,  208,   87,  208,  208,  208,
    987       208,  208,  208,   87,  208,  216,  891,  826,  216,  216,
    988       216,  216,  216,  216,  216,  216,  891,  216,  239,  239,
    989       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    990       239,  253,  253,  825,  253,  823,  891,  821,  253,  269,
    991       891,  819,  269,  891,  269,  269,  269,  269,  269,  273,
    992       817,  273,  815,   87,   87,  273,  275,   87,  275,   87,
    993 
    994        87,   87,  275,  348,   87,  348,   87,   87,   87,  348,
    995       350,   87,  350,   87,  891,  793,  350,  354,  791,  354,
    996       891,  891,  788,  354,  356,  786,  356,  784,   87,   87,
    997       356,  358,   87,  358,   87,   87,   87,  358,  365,   87,
    998       365,  749,  746,  745,  365,  367,  743,  367,  205,  739,
    999       738,  367,  239,  239,  239,  239,  239,  239,  239,  239,
    1000       239,  239,  239,  239,  239,  380,  670,  380,  382,  382,
    1001        87,  382,  382,  382,   87,  382,  253,  253,   87,  253,
    1002       392,   87,  392,   87,   87,   87,  392,  394,   87,  394,
    1003        87,   87,   87,  394,  396,   87,  396,   87,   87,   87,
    1004 
    1005       396,  273,  697,  273,  398,  696,  398,  694,  692,  690,
    1006       398,  275,  598,  275,   86,  685,  684,   86,  682,   86,
     865      894,  411,  371,  371,  371,  371,  371,  371,  373,  353,
     866      373,   87,  103,  373,  242,  242,  242,  242,  369,  390,
     867      392,  369,  375,  375,  375,  375,  375,  375,  407,  263,
     868      373,  264,  373,   87,  263,  372,  264,  373,   87,  105,
     869      105,  105,  105,  105,  105,  390,  393,  243,  246,  246,
     870      246,  246,  246,  246,  406,  376,  106,  245,   87,  245,
     871      424,   87,  246,  246,  246,  246,  246,  246,   87,   87,
     872
     873       87,  403,  255,   87,  423,  408,   87,  894,  106,  378,
     874      378,  378,  378,  378,  378,  383,  404,  405,  105,  105,
     875      105,  105,  105,  105,  416,  234,  415,  236,   87,  237,
     876      236,  112,  112,  112,  112,  112,  112,   87,  385,   87,
     877      386,   87,  379,  418,  387,   87,  410,  236,   87,  236,
     878      388,  255,  237,   87,  236,  419,  420,  422,   87,   87,
     879       87,   87,  389,  417,  260,  421,  386,   87,  412,   87,
     880      387,   87,  427,   87,  413,  414,  425,  426,  428,   87,
     881      429,  430,   87,   87,   87,   87,   87,  434,  435,  431,
     882      436,   87,   87,   87,   87,  438,   87,  439,   87,   87,
     883
     884      432,  433,  441,  443,  437,   87,   87,   87,  440,  442,
     885      444,  445,   87,   87,   87,  447,   87,  448,   87,   87,
     886      449,   87,   87,  450,   87,   87,   87,   87,  446,  451,
     887       87,  453,  452,  458,   87,   87,  143,   87,  454,  457,
     888       87,  456,  455,  464,   87,  462,   87,  459,  463,  460,
     889      721,   87,  461,  466,  467,  465,  468,  344,  201,  469,
     890      201,  360,  344,  361,  345,   87,  199,  211,  211,  211,
     891      211,  352,  352,  352,  352,  360,  518,  361,   87,   87,
     892       87,  371,  371,  371,  371,  371,  371,  370,  495,  370,
     893      523,   87,  371,  371,  371,  371,  371,  371,  496,   87,
     894
     895      479,  490,  490,  490,  490,  490,  490,  233,  233,  233,
     896      233,  233,  233,  525,  495,  519,   87,  234,   87,  236,
     897       87,  237,  236,  242,  242,  242,  242,  105,  105,  498,
     898       87,  520,  495,  527,  491,  499,  499,  521,   87,  236,
     899      374,  236,  497,   87,  237,  542,  236,  375,  375,  375,
     900      375,  375,  375,  383,  498,   87,  377,   87,  495,  528,
     901      529,  499,  499,  234,  235,  236,  522,  237,  236,  378,
     902      378,  378,  378,  378,  378,   87,  385,  533,  386,   87,
     903      376,  538,  387,   87,  894,  236,  235,  236,  388,  500,
     904      237,  500,  236,   87,  501,  501,  501,  501,  501,  501,
     905
     906      389,   87,  379,   87,  386,   87,  530,  385,  387,  386,
     907      524,   87,  526,  387,   87,   87,   87,   87,   87,  505,
     908      535,  531,  532,   87,   87,  540,   87,  502,   87,  534,
     909       87,  389,   87,  536,   87,  386,  541,  539,  543,  387,
     910      537,  547,  544,   87,  545,   87,   87,   87,  546,  549,
     911       87,   87,   87,   87,  553,  548,  551,   87,   87,   87,
     912      550,  552,   87,   87,   87,   87,  555,  559,  557,   87,
     913       87,   87,  554,  562,  556,   87,  560,  558,   87,   87,
     914      567,   87,   87,   87,  563,  561,  570,  566,  571,  564,
     915      565,  569,   87,  568,   87,   87,   87,  201,   87,   87,
     916
     917      574,  630,   87,  580,   87,  573,  577,  572,  579,   87,
     918      575,  576,  211,  211,  211,  211,   87,  622,  578,  490,
     919      490,  490,  490,  490,  490,  375,  375,  375,  375,  375,
     920      375,  626,  645,  621,   87,  234,   87,  236,   87,  237,
     921      236,  378,  378,  378,  378,  378,  378,  495,   87,  602,
     922      495,  623,  491,  628,  624,  495,   87,  236,  492,  236,
     923      496,  598,  237,  598,  236,  601,  599,  599,  599,  599,
     924      599,  599,   87,  495,  493,  602,  495,  634,   87,   87,
     925      662,  495,  501,  501,  501,  501,  501,  501,  500,   87,
     926      500,  625,  627,  501,  501,  501,  501,  501,  501,  600,
     927
     928      603,  603,  603,  603,  603,  603,   87,   87,   87,  631,
     929       87,   87,   87,   87,   87,  639,  604,  629,  605,  635,
     930      606,  605,  632,   87,  637,  638,   87,  633,  636,   87,
     931       87,   87,   87,  607,   87,  640,  641,  644,  605,  643,
     932      605,   87,   87,  606,   87,  605,  642,   87,  647,  648,
     933      646,   87,   87,   87,   87,   87,  650,  649,   87,  656,
     934      651,   87,   87,   87,   87,  653,   87,   87,   87,  652,
     935      654,  657,  658,  655,   87,  664,  663,  660,   87,  667,
     936       87,   87,   87,  659,  661,   87,   87,   87,   87,  668,
     937      666,  669,  762,  691,  691,  704,  665,   87,  894,  670,
     938
     939      671,  490,  490,  490,  490,  490,  490,  599,  599,  599,
     940      599,  599,  599,  598,  707,  598,  691,   87,  599,  599,
     941      599,  599,  599,  599,  603,  603,  603,  603,  603,  603,
     942      706,  691,   87,   87,  597,  689,  689,  689,  689,  689,
     943      689,  692,   87,  692,   87,   87,  692,  702,  844,   87,
     944      711,  604,  709,  605,  691,  606,  605,  607,  705,   87,
     945      703,   87,  712,  692,   87,  692,   87,  708,  690,  710,
     946      692,   87,   87,  605,   87,  605,   87,  713,  606,   87,
     947      605,   87,  719,   87,   87,   87,  715,   87,  714,   87,
     948       87,  717,   87,   87,  716,   87,  722,   87,  718,  724,
     949
     950      720,  727,   87,  725,  723,   87,  730,   87,   87,  726,
     951       87,   87,  728,   87,   87,  729,   87,  734,  735,  736,
     952       87,  755,  731,  737,  733,  738,   87,  894,   87,  739,
     953      754,  869,  732,  689,  689,  689,  689,  689,  689,  603,
     954      603,  603,  603,  603,  603,   87,   87,  753,  758,  604,
     955       87,  605,  756,  606,  605,  757,   87,   87,   87,  759,
     956      760,   87,   87,   87,  761,  765,  690,  764,  767,  770,
     957       87,  605,  693,  605,  763,   87,  606,   87,  605,  769,
     958      768,   87,   87,   87,  766,  771,   87,   87,  772,  773,
     959       87,   87,   87,  774,   87,   87,   87,   87,   87,  775,
     960
     961      777,   87,   87,   87,   87,   87,  783,   87,  776,   87,
     962      778,  784,  781,  801,  780,  779,  800,  782,  689,  689,
     963      689,  689,  689,  689,  797,   87,  798,   87,  802,   87,
     964      799,  807,  805,  804,   87,   87,   87,   87,  808,  809,
     965      811,   87,   87,   87,  803,  812,   87,  806,  810,   87,
     966       87,  746,   87,   87,   87,  838,   87,   87,  813,   87,
     967       87,   87,   87,  833,  835,  836,   87,   87,   87,  814,
     968      839,  841,  815,  816,  831,  832,  834,   87,  840,  830,
     969      842,   87,   87,   87,  837,   87,   87,   87,   87,   87,
     970      857,  843,   87,   87,  845,  856,  861,   87,  858,   87,
     971
     972       87,  846,  863,  864,   87,   87,   87,  855,   87,   87,
     973      859,  872,   87,  865,  862,  867,  860,  866,  870,   87,
     974       87,   87,  873,   87,  871,  874,  875,   87,   87,   87,
     975      876,  877,   87,   87,   87,  880,   87,  882,   87,  883,
     976       87,  878,   87,  881,  879,   87,   87,   87,   87,   87,
     977       87,  894,   87,  894,  887,  894,  894,  886,  868,  888,
     978      884,  885,  893,   87,   87,   87,  891,   87,   87,  889,
     979      890,  894,  892,   69,   69,   69,   69,   69,   69,   69,
     980       69,   69,   69,   69,   69,   69,   75,   75,   75,   75,
     981       75,   75,   75,   75,   75,   75,   75,   75,   75,   78,
     982
     983       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
     984       78,   78,   86,  894,  854,   86,  894,   86,   86,   86,
     985       86,   86,  140,  853,  894,  851,  140,  140,  140,  140,
     986      140,  140,  199,  199,  199,  199,  199,  199,  199,  199,
     987      199,  199,  199,  199,  199,  204,  894,  850,  204,  894,
     988      204,  204,  204,  204,  204,  208,  849,  208,  208,  894,
     989      208,  208,  208,  208,  208,  208,  848,  208,  216,   87,
     990       87,  216,  216,  216,  216,  216,  216,  216,  216,   87,
     991      216,  239,  239,  239,  239,  239,  239,  239,  239,  239,
     992      239,  239,  239,  239,  253,  253,  894,  253,  829,  894,
     993
     994      828,  253,  269,  826,  894,  269,  824,  269,  269,  269,
     995      269,  269,  273,  894,  273,  822,  894,  820,  273,  275,
     996      818,  275,   87,   87,   87,  275,  348,   87,  348,   87,
     997       87,   87,  348,  350,   87,  350,   87,   87,   87,  350,
     998      354,   87,  354,  894,  796,  794,  354,  356,  894,  356,
     999      894,  791,  789,  356,  358,  787,  358,   87,   87,   87,
     1000      358,  365,   87,  365,   87,   87,   87,  365,  367,  752,
     1001      367,  749,  748,  746,  367,  382,  205,  382,  384,  384,
     1002      742,  384,  384,  384,  741,  384,  253,  253,  673,  253,
     1003      269,   87,   87,  269,   87,  269,  269,  269,  269,  269,
     1004
     1005      394,   87,  394,   87,   87,   87,  394,  396,   87,  396,
     1006       87,   87,   87,  396,  398,   87,  398,   87,   87,   87,
     1007      398,  273,  700,  273,  400,  699,  400,  697,  695,  693,
     1008      400,  275,  601,  275,   86,  688,  687,   86,  685,   86,
    10071009       86,   86,   86,   86,  199,  199,  199,  199,  199,  199,
    1008       199,  199,  199,  199,  199,  199,  199,  468,  468,  468,
    1009       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    1010       469,  680,  469,  678,  676,  674,  469,  471,  672,  471,
    1011       670,   87,   87,  471,  473,   87,  473,   87,   87,   87,
    1012       473,  348,   87,  348,  475,   87,  475,   87,   87,   87,
    1013       475,  350,  617,  350,  478,  615,  478,  613,  611,  609,
    1014       478,  354,  607,  354,  480,  502,  480,  605,  605,  594,
    1015 
    1016       480,  356,  593,  356,  482,  591,  482,  483,  483,  589,
    1017       482,  358,  587,  358,  484,  585,  484,  583,  581,  579,
    1018       484,  365,   87,  365,  486,   87,  486,   87,   87,   87,
    1019       486,  367,   87,  367,  491,   87,  491,   87,  491,  514,
    1020       491,  380,  512,  380,  510,  380,  508,  380,  382,  382,
    1021       506,  382,  382,  382,  504,  382,  503,  490,  503,  487,
    1022       485,  361,  503,  505,  361,  505,  483,  481,  479,  505,
    1023       507,  476,  507,  474,  472,  470,  507,  392,   87,  392,
    1024       509,   87,  509,   87,  400,  399,  509,  394,  397,  394,
    1025       511,  395,  511,  393,  270,  265,  511,  396,  264,  396,
    1026 
    1027       513,  389,  513,  389,  252,  379,  513,  398,  379,  398,
    1028        86,  240,  374,   86,  368,   86,   86,   86,   86,   86,
    1029       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    1030       468,  468,  468,  578,  366,  578,  364,  360,  359,  578,
    1031       469,  357,  469,  580,  355,  580,  351,  349,  205,  580,
    1032       471,  201,  471,  582,   87,  582,  277,  276,  274,  582,
    1033       473,  270,  473,  584,  265,  584,  268,  265,  263,  584,
    1034       475,  262,  475,  586,  261,  586,  240,  232,   85,  586,
    1035       478,   85,  478,  588,   87,  588,  205,  203,   85,  588,
    1036       480,  122,  480,  482,  117,  482,   87,  891,   70,  482,
    1037 
    1038       590,   70,  590,  891,  891,  891,  590,  484,  891,  484,
    1039       592,  891,  592,  891,  891,  891,  592,  486,  891,  486,
    1040       491,  891,  491,  891,  491,  891,  491,  382,  891,  382,
    1041       891,  891,  891,  382,  606,  891,  606,  891,  891,  891,
    1042       606,  503,  891,  503,  608,  891,  608,  891,  891,  891,
    1043       608,  505,  891,  505,  610,  891,  610,  891,  891,  891,
    1044       610,  507,  891,  507,  612,  891,  612,  891,  891,  891,
    1045       612,  509,  891,  509,  614,  891,  614,  891,  891,  891,
    1046       614,  511,  891,  511,  616,  891,  616,  891,  891,  891,
    1047       616,  513,  891,  513,   86,  891,  891,   86,  891,   86,
    1048 
    1049        86,   86,   86,   86,  669,  669,  669,  669,  669,  669,
    1050       669,  669,  669,  669,  669,  669,  669,  671,  891,  671,
    1051       891,  891,  891,  671,  578,  891,  578,  673,  891,  673,
    1052       891,  891,  891,  673,  580,  891,  580,  675,  891,  675,
    1053       891,  891,  891,  675,  582,  891,  582,  677,  891,  677,
    1054       891,  891,  891,  677,  584,  891,  584,  679,  891,  679,
    1055       891,  891,  891,  679,  586,  891,  586,  681,  891,  681,
    1056       891,  891,  891,  681,  588,  891,  588,  683,  891,  683,
    1057       891,  891,  891,  683,  590,  891,  590,   86,  891,   86,
    1058       891,  891,  891,   86,  592,  891,  592,  491,  891,  491,
    1059 
    1060       891,  891,  891,  491,  691,  891,  691,  891,  891,  891,
    1061       691,  606,  891,  606,  693,  891,  693,  891,  891,  891,
    1062       693,  608,  891,  608,  695,  891,  695,  891,  891,  891,
    1063       695,  610,  891,  610,  140,  891,  140,  891,  891,  891,
    1064       140,  612,  891,  612,  698,  891,  698,  614,  891,  614,
    1065        86,  891,  891,   86,  891,   86,   86,   86,   86,   86,
    1066       616,  891,  616,  669,  669,  669,  669,  669,  669,  669,
    1067       669,  669,  669,  669,  669,  669,  737,  891,  737,  891,
    1068       891,  891,  737,  671,  891,  671,  204,  891,  204,  891,
    1069       891,  891,  204,  673,  891,  673,  740,  891,  740,  675,
    1070 
    1071       891,  675,  204,  891,  891,  204,  891,  204,  204,  204,
    1072       204,  204,  677,  891,  677,  741,  891,  741,  679,  891,
    1073       679,  681,  891,  681,  742,  891,  742,  683,  891,  683,
    1074        86,  891,   86,  744,  891,  744,  891,  891,  891,  744,
    1075       691,  891,  691,  269,  891,  269,  891,  891,  891,  269,
    1076       693,  891,  693,  747,  891,  747,  695,  891,  695,  140,
    1077       891,  140,  748,  891,  748,  891,  891,  891,  748,   86,
    1078       891,  891,   86,  891,   86,   86,   86,   86,   86,  782,
    1079       891,  782,  737,  891,  737,  204,  891,  204,  783,  891,
    1080       783,  891,  891,  891,  783,  785,  891,  785,  891,  891,
    1081 
    1082       891,  785,  787,  891,  787,  891,  891,  891,  787,  789,
    1083       891,  789,  790,  891,  790,  891,  891,  891,  790,  792,
    1084       891,  792,  891,  891,  891,  792,  814,  891,  814,  891,
    1085       891,  891,  814,  816,  891,  816,  891,  891,  891,  816,
    1086       818,  891,  818,  891,  891,  891,  818,  820,  891,  820,
    1087       891,  891,  891,  820,  822,  891,  822,  891,  891,  891,
    1088       822,  824,  891,  824,  891,  891,  891,  824,  616,  891,
    1089       616,  891,  891,  891,  616,  844,  891,  844,  891,  891,
    1090       891,  844,  677,  891,  677,  891,  891,  891,  677,  681,
    1091       891,  681,  891,  891,  891,  681,   86,  891,   86,  891,
    1092 
    1093       891,  891,   86,  849,  891,  849,  891,  891,  891,  849,
    1094       140,  891,  140,  891,  891,  891,  140,  204,  891,  204,
    1095       891,  891,  891,  204,   11,  891,  891,  891,  891,  891,
    1096       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1097       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1098       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1099       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1100       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1101       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1102       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1103 
    1104       891,  891,  891,  891,  891,  891,  891,  891,  891,  891
     1010      199,  199,  199,  199,  199,  199,  199,  470,  470,  470,
     1011      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
     1012      471,  683,  471,  681,  679,  677,  471,  473,  675,  473,
     1013      673,   87,   87,  473,  475,   87,  475,   87,   87,   87,
     1014      475,  348,   87,  348,  477,   87,  477,   87,   87,   87,
     1015
     1016      477,  350,  620,  350,  480,  618,  480,  616,  614,  612,
     1017      480,  354,  610,  354,  482,  505,  482,  608,  608,  597,
     1018      482,  356,  596,  356,  484,  594,  484,  485,  485,  592,
     1019      484,  358,  590,  358,  486,  588,  486,  586,  584,  582,
     1020      486,  365,   87,  365,  488,   87,  488,   87,   87,   87,
     1021      488,  367,   87,  367,  494,   87,  494,   87,  494,  517,
     1022      494,  382,  515,  382,  513,  382,  511,  382,  384,  384,
     1023      509,  384,  384,  384,  507,  384,  506,  493,  506,  492,
     1024      489,  487,  506,  508,  361,  508,  361,  485,  483,  508,
     1025      510,  481,  510,  478,  476,  474,  510,  394,  472,  394,
     1026
     1027      512,   87,  512,   87,   87,  402,  512,  396,  401,  396,
     1028      514,  399,  514,  397,  395,  270,  514,  398,  265,  398,
     1029      516,  264,  516,  391,  391,  252,  516,  400,  381,  400,
     1030       86,  381,  240,   86,  374,   86,   86,   86,   86,   86,
     1031      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
     1032      470,  470,  470,  581,  368,  581,  366,  364,  360,  581,
     1033      471,  359,  471,  583,  357,  583,  355,  351,  349,  583,
     1034      473,  205,  473,  585,  201,  585,   87,  277,  276,  585,
     1035      475,  274,  475,  587,  270,  587,  265,  268,  265,  587,
     1036      477,  263,  477,  589,  262,  589,  261,  240,  232,  589,
     1037
     1038      480,   85,  480,  591,   85,  591,   87,  205,  203,  591,
     1039      482,   85,  482,  484,  122,  484,  117,   87,  894,  484,
     1040      593,   70,  593,   70,  894,  894,  593,  486,  894,  486,
     1041      595,  894,  595,  894,  894,  894,  595,  488,  894,  488,
     1042      494,  894,  494,  894,  494,  894,  494,  384,  894,  384,
     1043      894,  894,  894,  384,  609,  894,  609,  894,  894,  894,
     1044      609,  506,  894,  506,  611,  894,  611,  894,  894,  894,
     1045      611,  508,  894,  508,  613,  894,  613,  894,  894,  894,
     1046      613,  510,  894,  510,  615,  894,  615,  894,  894,  894,
     1047      615,  512,  894,  512,  617,  894,  617,  894,  894,  894,
     1048
     1049      617,  514,  894,  514,  619,  894,  619,  894,  894,  894,
     1050      619,  516,  894,  516,   86,  894,  894,   86,  894,   86,
     1051       86,   86,   86,   86,  672,  672,  672,  672,  672,  672,
     1052      672,  672,  672,  672,  672,  672,  672,  674,  894,  674,
     1053      894,  894,  894,  674,  581,  894,  581,  676,  894,  676,
     1054      894,  894,  894,  676,  583,  894,  583,  678,  894,  678,
     1055      894,  894,  894,  678,  585,  894,  585,  680,  894,  680,
     1056      894,  894,  894,  680,  587,  894,  587,  682,  894,  682,
     1057      894,  894,  894,  682,  589,  894,  589,  684,  894,  684,
     1058      894,  894,  894,  684,  591,  894,  591,  686,  894,  686,
     1059
     1060      894,  894,  894,  686,  593,  894,  593,   86,  894,   86,
     1061      894,  894,  894,   86,  595,  894,  595,  494,  894,  494,
     1062      894,  894,  894,  494,  694,  894,  694,  894,  894,  894,
     1063      694,  609,  894,  609,  696,  894,  696,  894,  894,  894,
     1064      696,  611,  894,  611,  698,  894,  698,  894,  894,  894,
     1065      698,  613,  894,  613,  140,  894,  140,  894,  894,  894,
     1066      140,  615,  894,  615,  701,  894,  701,  617,  894,  617,
     1067       86,  894,  894,   86,  894,   86,   86,   86,   86,   86,
     1068      619,  894,  619,  672,  672,  672,  672,  672,  672,  672,
     1069      672,  672,  672,  672,  672,  672,  740,  894,  740,  894,
     1070
     1071      894,  894,  740,  674,  894,  674,  204,  894,  204,  894,
     1072      894,  894,  204,  676,  894,  676,  743,  894,  743,  678,
     1073      894,  678,  204,  894,  894,  204,  894,  204,  204,  204,
     1074      204,  204,  680,  894,  680,  744,  894,  744,  682,  894,
     1075      682,  684,  894,  684,  745,  894,  745,  686,  894,  686,
     1076       86,  894,   86,  747,  894,  747,  894,  894,  894,  747,
     1077      694,  894,  694,  269,  894,  269,  894,  894,  894,  269,
     1078      696,  894,  696,  750,  894,  750,  698,  894,  698,  140,
     1079      894,  140,  751,  894,  751,  894,  894,  894,  751,   86,
     1080      894,  894,   86,  894,   86,   86,   86,   86,   86,  785,
     1081
     1082      894,  785,  740,  894,  740,  204,  894,  204,  786,  894,
     1083      786,  894,  894,  894,  786,  788,  894,  788,  894,  894,
     1084      894,  788,  790,  894,  790,  894,  894,  894,  790,  792,
     1085      894,  792,  793,  894,  793,  894,  894,  894,  793,  795,
     1086      894,  795,  894,  894,  894,  795,  817,  894,  817,  894,
     1087      894,  894,  817,  819,  894,  819,  894,  894,  894,  819,
     1088      821,  894,  821,  894,  894,  894,  821,  823,  894,  823,
     1089      894,  894,  894,  823,  825,  894,  825,  894,  894,  894,
     1090      825,  827,  894,  827,  894,  894,  894,  827,  619,  894,
     1091      619,  894,  894,  894,  619,  847,  894,  847,  894,  894,
     1092
     1093      894,  847,  680,  894,  680,  894,  894,  894,  680,  684,
     1094      894,  684,  894,  894,  894,  684,   86,  894,   86,  894,
     1095      894,  894,   86,  852,  894,  852,  894,  894,  894,  852,
     1096      140,  894,  140,  894,  894,  894,  140,  204,  894,  204,
     1097      894,  894,  894,  204,   11,  894,  894,  894,  894,  894,
     1098      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1099      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1100      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1101      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1102      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1103
     1104      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1105      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1106      894,  894,  894,  894,  894,  894,  894,  894,  894,  894
    11051107    } ;
    11061108
    1107 static yyconst flex_int16_t yy_chk[2911] =
     1109static yyconst flex_int16_t yy_chk[2931] =
    11081110    {   0,
    11091111        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11261128        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11271129        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1128         8,    9,   10,   37,   37,   20,   39,    9,   10,  890,
     1130        8,    9,   10,   37,   37,   20,   39,    9,   10,  893,
    11291131        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11301132
     
    11371139       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    11381140       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1139        62,   45,   49,   30,   73,  889,  127,   53,  127,   51,
     1141       62,   45,   49,   30,   73,  892,  127,   53,  127,   51,
    11401142       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
    11411143
     
    11451147       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
    11461148       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
    1147        31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
     1149       31,   38,  151,  387,  111,   38,   38,   58,   38,   60,
    11481150       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
    1149        58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
     1151       58,  116,  111,  164,   38,   38,   38,  387,   59,   58,
    11501152      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
    11511153      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
    11521154
    1153       110,  131,   60,   67,   67,   67,   67,   67,   67,  881,
     1155      110,  131,   60,   67,   67,   67,   67,   67,   67,  884,
    11541156      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
    11551157       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
    11561158      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
    1157        82,   82,   82,   82,   82,   82,  880,  243,   77,   77,
     1159       82,   82,   82,   82,   82,   82,  883,  243,   77,   77,
    11581160       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
    11591161      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
    11601162      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
    11611163      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
    1162       166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
     1164      166,  150,  157,  880,  104,   77,  159,  168,   77,  104,
    11631165
    11641166       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
    11651167       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
    11661168      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
    1167        85,  105,  163,  105,  105,  105,  105,  105,  105,  877,
     1169       85,  105,  163,  105,  105,  105,  105,  105,  105,  879,
    11681170      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
    11691171      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     
    11781180      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
    11791181      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
    1180       220,  191,  198,  198,  191,  192,  205,  198,  193,  876,
     1182      220,  191,  198,  198,  191,  192,  205,  198,  193,  877,
    11811183      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
    11821184      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
    11831185      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
    1184       200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
     1186      200,  200,  200,  200,  209,  209,  248,  876,  222,  209,
    11851187
    11861188      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
    1187       222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
     1189      222,  286,  222,  224,  224,  225,  224,  225,  226,  226,
    11881190      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
    1189       309,  279,  235,  235,  235,  235,  235,  235,  237,  212,
    1190       237,  338,  266,  237,  266,  267,  278,  267,  234,  279,
    1191       283,  236,  241,  241,  241,  283,  241,  241,  256,  278,
    1192       237,  281,  237,  282,  280,  235,  270,  237,  244,  244,
    1193       244,  244,  244,  244,  241,  241,  241,  281,  285,  241,
    1194       282,  241,  280,  285,  256,  244,  245,  245,  245,  245,
    1195       245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
    1196 
    1197       308,  244,  300,  306,  874,  294,  308,  244,  246,  246,
    1198       246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
    1199       255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
    1200       247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
    1201       873,  246,  289,  253,  287,  287,  246,  292,  246,  253,
    1202       255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
    1203       289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
    1204       297,  299,  301,  302,  303,  304,  305,  307,  311,  295,
    1205       302,  301,  307,  310,  311,  312,  319,  260,  297,  299,
    1206       313,  314,  310,  304,  303,  296,  318,  305,  305,  313,
    1207 
    1208       315,  312,  316,  317,  319,  315,  314,  316,  317,  320,
    1209       322,  323,  324,  326,  325,  318,  327,  328,  331,  329,
    1210       330,  322,  320,  332,  334,  317,  323,  325,  333,  330,
    1211       335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
    1212       331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
    1213       333,  339,  341,  342,  344,  344,  345,  460,  866,  344,
    1214       343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
    1215       353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
    1216       370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
    1217       372,  372,  865,  402,  380,  381,  352,  371,  371,  371,
    1218 
    1219       371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
    1220       380,  381,  403,  371,  404,  371,  864,  371,  371,  375,
    1221       375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
    1222       371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
    1223       371,  407,  371,  376,  376,  376,  376,  376,  376,  382,
    1224       412,  382,  375,  387,  411,  382,  408,  383,  384,  386,
    1225       384,  382,  410,  384,  384,  384,  384,  384,  384,  409,
    1226       411,  387,  412,  382,  413,  410,  376,  382,  409,  387,
    1227       415,  382,  386,  414,  386,  416,  417,  413,  386,  418,
    1228       421,  417,  419,  422,  386,  420,  384,  427,  419,  414,
    1229 
    1230       414,  421,  415,  416,  418,  423,  386,  425,  429,  427,
    1231       386,  418,  422,  430,  386,  431,  420,  432,  433,  434,
    1232       423,  425,  435,  437,  433,  439,  440,  441,  431,  429,
    1233       442,  435,  443,  444,  434,  430,  449,  445,  437,  447,
    1234       432,  450,  441,  451,  454,  439,  445,  443,  440,  452,
    1235       450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
    1236       459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
    1237       457,  453,  466,  456,  464,  467,  462,  525,  863,  463,
    1238       525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
    1239       477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
    1240 
    1241       488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
    1242       515,  488,  492,  488,  492,  488,  488,  492,  492,  492,
    1243       492,  492,  492,  494,  516,  495,  493,  519,  488,  862,
    1244       858,  521,  518,  488,  490,  488,  493,  516,  488,  529,
    1245       488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
    1246       492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
    1247       529,  520,  526,  854,  523,  851,  528,  850,  522,  498,
    1248       499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
    1249       499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
    1250       533,  498,  531,  498,  524,  534,  498,  530,  498,  527,
    1251 
    1252       532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
    1253       535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
    1254       550,  551,  849,  549,  534,  552,  536,  554,  560,  544,
    1255       545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
    1256       552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
    1257       560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
    1258       572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
    1259       572,  619,  620,  848,  847,  622,  574,  594,  594,  594,
    1260       594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
    1261       601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
    1262 
    1263       600,  600,  600,  600,  600,  600,  621,  602,  626,  846,
    1264       594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
    1265       623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
    1266       602,  596,  596,  600,  625,  627,  618,  628,  627,  603,
    1267       629,  603,  630,  623,  596,  631,  603,  632,  633,  596,
    1268       634,  596,  635,  634,  596,  636,  596,  630,  637,  638,
    1269       640,  644,  629,  639,  632,  641,  642,  631,  645,  635,
    1270       633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
    1271       646,  653,  657,  636,  644,  665,  656,  641,  664,  657,
    1272       645,  667,  668,  842,  650,  665,  700,  664,  653,  699,
    1273 
    1274       667,  702,  705,  651,  714,  842,  700,  668,  686,  686,
    1275       686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
    1276       699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
    1277       703,  704,  706,  715,  707,  706,  704,  707,  710,  708,
    1278       712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
    1279       720,  686,  717,  686,  713,  711,  716,  713,  719,  716,
    1280       721,  719,  715,  720,  722,  723,  724,  725,  721,  731,
    1281       728,  718,  732,  735,  722,  733,  725,  736,  723,  756,
    1282       757,  735,  758,  754,  756,  759,  736,  724,  728,  731,
    1283       755,  761,  758,  728,  732,  757,  733,  743,  743,  743,
    1284 
    1285       743,  743,  743,  754,  760,  763,  762,  755,  759,  762,
    1286       764,  766,  768,  769,  766,  768,  770,  761,  763,  770,
    1287       769,  760,  771,  773,  772,  771,  775,  779,  794,  797,
    1288       743,  796,  798,  800,  799,  798,  800,  801,  764,  772,
    1289       801,  803,  804,  807,  810,  805,  773,  797,  805,  775,
    1290       779,  808,  796,  810,  808,  794,  799,  809,  811,  803,
    1291       809,  812,  813,  828,  829,  807,  830,  831,  804,  830,
    1292       832,  829,  812,  834,  811,  856,  831,  833,  813,  837,
    1293       833,  875,  837,  840,  828,  856,  840,  841,  832,  843,
    1294       834,  852,  853,  867,  832,  868,  841,  853,  843,  855,
    1295 
    1296       852,  857,  855,  875,  859,  860,  857,  859,  860,  861,
    1297       868,  869,  861,  867,  869,  870,  871,  872,  878,  871,
    1298       872,  879,  882,  884,  883,  870,  885,  887,  886,  845,
    1299       888,  882,  844,  839,  838,  836,  879,  883,  835,  878,
    1300       888,  827,  826,  825,  824,  884,  886,  885,  823,  887,
    1301       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    1302       892,  892,  892,  893,  893,  893,  893,  893,  893,  893,
    1303       893,  893,  893,  893,  893,  893,  894,  894,  894,  894,
    1304       894,  894,  894,  894,  894,  894,  894,  894,  894,  895,
    1305       822,  821,  895,  820,  895,  895,  895,  895,  895,  896,
    1306 
    1307       819,  818,  817,  896,  896,  896,  896,  896,  896,  897,
     1191      869,  286,  235,  235,  235,  235,  235,  235,  237,  212,
     1192      237,  282,  242,  237,  242,  242,  242,  242,  234,  256,
     1193      270,  236,  241,  241,  241,  241,  241,  241,  282,  266,
     1194      237,  266,  237,  296,  267,  235,  267,  237,  281,  244,
     1195      244,  244,  244,  244,  244,  256,  270,  242,  245,  245,
     1196      245,  245,  245,  245,  281,  241,  244,  247,  278,  247,
     1197      296,  295,  247,  247,  247,  247,  247,  247,  279,  280,
     1198
     1199      283,  278,  244,  288,  295,  283,  289,  868,  244,  246,
     1200      246,  246,  246,  246,  246,  253,  279,  280,  255,  255,
     1201      255,  255,  255,  255,  289,  246,  288,  246,  291,  246,
     1202      246,  260,  260,  260,  260,  260,  260,  290,  253,  292,
     1203      253,  285,  246,  291,  253,  867,  285,  246,  294,  246,
     1204      253,  255,  246,  287,  246,  292,  292,  294,  297,  299,
     1205      293,  303,  253,  290,  260,  293,  253,  300,  287,  301,
     1206      253,  304,  300,  302,  287,  287,  297,  299,  301,  305,
     1207      302,  303,  306,  307,  308,  309,  310,  306,  307,  304,
     1208      308,  311,  312,  313,  314,  310,  318,  311,  315,  319,
     1209
     1210      305,  305,  313,  315,  309,  316,  317,  320,  312,  314,
     1211      316,  317,  322,  324,  323,  318,  326,  319,  325,  327,
     1212      320,  328,  329,  322,  330,  331,  332,  334,  317,  323,
     1213      333,  325,  324,  330,  337,  335,  338,  339,  326,  329,
     1214      340,  328,  327,  337,  343,  334,  341,  331,  335,  332,
     1215      639,  342,  333,  340,  341,  339,  342,  344,  344,  343,
     1216      345,  362,  344,  362,  344,  403,  345,  352,  352,  352,
     1217      352,  353,  353,  353,  353,  363,  403,  363,  639,  408,
     1218      338,  370,  370,  370,  370,  370,  370,  372,  382,  372,
     1219      408,  410,  372,  372,  372,  372,  372,  372,  382,  404,
     1220
     1221      352,  371,  371,  371,  371,  371,  371,  374,  374,  374,
     1222      374,  374,  374,  410,  382,  404,  405,  371,  406,  371,
     1223      412,  371,  371,  377,  377,  377,  377,  377,  377,  385,
     1224      425,  405,  383,  412,  371,  385,  389,  406,  414,  371,
     1225      374,  371,  383,  413,  371,  425,  371,  375,  375,  375,
     1226      375,  375,  375,  384,  389,  417,  377,  407,  383,  413,
     1227      414,  385,  389,  375,  375,  375,  407,  375,  375,  378,
     1228      378,  378,  378,  378,  378,  421,  384,  417,  384,  866,
     1229      375,  421,  384,  865,  388,  375,  375,  375,  384,  386,
     1230      375,  386,  375,  415,  386,  386,  386,  386,  386,  386,
     1231
     1232      384,  409,  378,  411,  384,  416,  415,  388,  384,  388,
     1233      409,  418,  411,  388,  423,  419,  422,  424,  420,  388,
     1234      419,  416,  416,  431,  427,  423,  432,  386,  433,  418,
     1235      429,  388,  434,  420,  441,  388,  424,  422,  427,  388,
     1236      420,  433,  429,  435,  431,  436,  439,  437,  432,  435,
     1237      442,  443,  444,  445,  441,  434,  437,  446,  447,  449,
     1238      436,  439,  451,  453,  452,  456,  443,  447,  445,  454,
     1239      455,  457,  442,  452,  444,  458,  449,  446,  459,  460,
     1240      457,  461,  462,  463,  453,  451,  460,  456,  461,  454,
     1241      455,  459,  464,  458,  465,  466,  468,  470,  528,  469,
     1242
     1243      464,  528,  861,  470,  519,  463,  466,  462,  469,  524,
     1244      464,  465,  479,  479,  479,  479,  518,  519,  468,  490,
     1245      490,  490,  490,  490,  490,  492,  492,  492,  492,  492,
     1246      492,  524,  544,  518,  522,  490,  521,  490,  544,  490,
     1247      490,  493,  493,  493,  493,  493,  493,  497,  526,  498,
     1248      494,  521,  490,  526,  522,  496,  532,  490,  492,  490,
     1249      494,  495,  490,  495,  490,  496,  495,  495,  495,  495,
     1250      495,  495,  567,  497,  493,  498,  494,  532,  523,  525,
     1251      567,  496,  500,  500,  500,  500,  500,  500,  502,  529,
     1252      502,  523,  525,  502,  502,  502,  502,  502,  502,  495,
     1253
     1254      501,  501,  501,  501,  501,  501,  527,  530,  531,  529,
     1255      533,  857,  536,  535,  539,  537,  501,  527,  501,  533,
     1256      501,  501,  530,  534,  535,  536,  538,  531,  534,  540,
     1257      541,  547,  542,  501,  548,  538,  539,  542,  501,  541,
     1258      501,  545,  549,  501,  537,  501,  540,  550,  547,  548,
     1259      545,  552,  553,  554,  558,  555,  550,  549,  557,  558,
     1260      552,  563,  560,  561,  564,  554,  568,  565,  569,  553,
     1261      555,  560,  561,  557,  570,  569,  568,  564,  571,  572,
     1262      574,  575,  577,  563,  565,  572,  713,  578,  622,  574,
     1263      571,  575,  713,  604,  604,  622,  570,  625,  854,  577,
     1264
     1265      578,  597,  597,  597,  597,  597,  597,  598,  598,  598,
     1266      598,  598,  598,  600,  625,  600,  604,  624,  600,  600,
     1267      600,  600,  600,  600,  603,  603,  603,  603,  603,  603,
     1268      624,  605,  814,  629,  597,  599,  599,  599,  599,  599,
     1269      599,  606,  621,  606,  626,  627,  606,  621,  814,  623,
     1270      629,  599,  627,  599,  605,  599,  599,  603,  623,  630,
     1271      621,  628,  630,  606,  631,  606,  632,  626,  599,  628,
     1272      606,  633,  634,  599,  635,  599,  636,  631,  599,  637,
     1273      599,  640,  637,  638,  641,  643,  633,  644,  632,  647,
     1274      642,  635,  645,  648,  634,  705,  640,  649,  636,  642,
     1275
     1276      638,  645,  653,  643,  641,  654,  649,  656,  659,  644,
     1277      667,  660,  647,  668,  671,  648,  670,  659,  660,  667,
     1278      703,  705,  653,  668,  656,  670,  702,  853,  708,  671,
     1279      703,  852,  654,  689,  689,  689,  689,  689,  689,  693,
     1280      693,  693,  693,  693,  693,  706,  711,  702,  708,  689,
     1281      707,  689,  706,  689,  689,  707,  709,  710,  715,  709,
     1282      710,  714,  716,  717,  711,  716,  689,  715,  718,  721,
     1283      720,  689,  693,  689,  714,  723,  689,  719,  689,  720,
     1284      719,  724,  722,  725,  717,  722,  726,  727,  723,  724,
     1285      735,  728,  731,  725,  734,  721,  736,  718,  738,  726,
     1286
     1287      728,  760,  739,  761,  757,  762,  738,  764,  727,  758,
     1288      731,  739,  735,  761,  734,  731,  760,  736,  746,  746,
     1289      746,  746,  746,  746,  757,  759,  758,  763,  762,  765,
     1290      759,  767,  765,  764,  766,  769,  771,  773,  769,  771,
     1291      773,  772,  774,  775,  763,  774,  776,  766,  772,  778,
     1292      782,  746,  797,  799,  802,  807,  810,  800,  775,  767,
     1293      801,  803,  804,  801,  803,  804,  806,  808,  811,  776,
     1294      808,  811,  778,  782,  799,  800,  802,  812,  810,  797,
     1295      812,  807,  813,  815,  806,  816,  831,  833,  832,  834,
     1296      833,  813,  835,  836,  815,  832,  836,  837,  834,  840,
     1297
     1298      843,  816,  840,  843,  844,  845,  846,  831,  858,  855,
     1299      835,  858,  859,  844,  837,  846,  835,  845,  855,  856,
     1300      860,  870,  859,  862,  856,  860,  862,  863,  864,  871,
     1301      863,  864,  872,  873,  874,  872,  875,  874,  878,  875,
     1302      881,  870,  882,  873,  871,  885,  886,  887,  889,  888,
     1303      890,  851,  891,  850,  885,  849,  848,  882,  847,  886,
     1304      878,  881,  891,  842,  841,  839,  889,  838,  830,  887,
     1305      888,  829,  890,  895,  895,  895,  895,  895,  895,  895,
     1306      895,  895,  895,  895,  895,  895,  896,  896,  896,  896,
     1307      896,  896,  896,  896,  896,  896,  896,  896,  896,  897,
     1308
    13081309      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    1309       897,  897,  898,  816,  815,  898,  814,  898,  898,  898,
    1310       898,  898,  899,  806,  899,  899,  802,  899,  899,  899,
    1311       899,  899,  899,  795,  899,  900,  793,  792,  900,  900,
    1312       900,  900,  900,  900,  900,  900,  791,  900,  901,  901,
    1313       901,  901,  901,  901,  901,  901,  901,  901,  901,  901,
    1314       901,  902,  902,  790,  902,  789,  788,  787,  902,  903,
    1315       786,  785,  903,  784,  903,  903,  903,  903,  903,  904,
    1316       783,  904,  782,  781,  780,  904,  905,  778,  905,  777,
    1317 
    1318       776,  774,  905,  906,  767,  906,  765,  753,  752,  906,
    1319       907,  751,  907,  750,  749,  748,  907,  908,  747,  908,
    1320       746,  745,  742,  908,  909,  741,  909,  740,  734,  730,
    1321       909,  910,  729,  910,  727,  726,  709,  910,  911,  701,
    1322       911,  698,  693,  691,  911,  912,  687,  912,  677,  673,
    1323       671,  912,  913,  913,  913,  913,  913,  913,  913,  913,
    1324       913,  913,  913,  913,  913,  914,  669,  914,  915,  915,
    1325       666,  915,  915,  915,  663,  915,  916,  916,  662,  916,
    1326       917,  661,  917,  660,  659,  658,  917,  918,  655,  918,
    1327       654,  652,  649,  918,  919,  648,  919,  647,  643,  616,
    1328 
    1329       919,  920,  612,  920,  921,  610,  921,  608,  606,  604,
    1330       921,  922,  598,  922,  923,  592,  590,  923,  588,  923,
    1331       923,  923,  923,  923,  924,  924,  924,  924,  924,  924,
    1332       924,  924,  924,  924,  924,  924,  924,  925,  925,  925,
    1333       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    1334       926,  586,  926,  584,  582,  580,  926,  927,  578,  927,
    1335       577,  576,  573,  927,  928,  570,  928,  563,  559,  556,
    1336       928,  929,  553,  929,  930,  548,  930,  543,  540,  517,
    1337       930,  931,  513,  931,  932,  511,  932,  509,  507,  505,
    1338       932,  933,  503,  933,  934,  502,  934,  501,  500,  489,
    1339 
    1340       934,  935,  486,  935,  936,  484,  936,  483,  482,  480,
    1341       936,  937,  478,  937,  938,  475,  938,  473,  471,  469,
    1342       938,  939,  465,  939,  940,  448,  940,  446,  438,  436,
    1343       940,  941,  428,  941,  942,  426,  942,  424,  942,  398,
    1344       942,  943,  396,  943,  394,  943,  392,  943,  944,  944,
    1345       391,  944,  944,  944,  390,  944,  945,  377,  945,  367,
    1346       365,  364,  945,  946,  360,  946,  358,  356,  354,  946,
    1347       947,  350,  947,  348,  347,  346,  947,  948,  336,  948,
    1348       949,  321,  949,  298,  277,  275,  949,  950,  273,  950,
    1349       951,  272,  951,  271,  269,  268,  951,  952,  263,  952,
    1350 
    1351       953,  259,  953,  258,  254,  251,  953,  954,  250,  954,
    1352       955,  239,  238,  955,  231,  955,  955,  955,  955,  955,
    1353       956,  956,  956,  956,  956,  956,  956,  956,  956,  956,
    1354       956,  956,  956,  957,  230,  957,  227,  217,  215,  957,
    1355       958,  214,  958,  959,  213,  959,  207,  206,  204,  959,
    1356       960,  199,  960,  961,  178,  961,  149,  147,  146,  961,
    1357       962,  140,  962,  963,  138,  963,  136,  128,  125,  963,
    1358       964,  124,  964,  965,  120,  965,  101,   98,   95,  965,
    1359       966,   93,  966,  967,   86,  967,   72,   70,   66,  967,
    1360       968,   36,  968,  969,   33,  969,   18,   11,    4,  969,
    1361 
    1362       970,    3,  970,    0,    0,    0,  970,  971,    0,  971,
    1363       972,    0,  972,    0,    0,    0,  972,  973,    0,  973,
    1364       974,    0,  974,    0,  974,    0,  974,  975,    0,  975,
    1365         0,    0,    0,  975,  976,    0,  976,    0,    0,    0,
    1366       976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
    1367       978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
    1368       980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
    1369       982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
    1370       984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
    1371       986,  987,    0,  987,  988,    0,    0,  988,    0,  988,
    1372 
    1373       988,  988,  988,  988,  989,  989,  989,  989,  989,  989,
    1374       989,  989,  989,  989,  989,  989,  989,  990,    0,  990,
    1375         0,    0,    0,  990,  991,    0,  991,  992,    0,  992,
    1376         0,    0,    0,  992,  993,    0,  993,  994,    0,  994,
    1377         0,    0,    0,  994,  995,    0,  995,  996,    0,  996,
    1378         0,    0,    0,  996,  997,    0,  997,  998,    0,  998,
    1379         0,    0,    0,  998,  999,    0,  999, 1000,    0, 1000,
    1380         0,    0,    0, 1000, 1001,    0, 1001, 1002,    0, 1002,
    1381         0,    0,    0, 1002, 1003,    0, 1003, 1004,    0, 1004,
    1382         0,    0,    0, 1004, 1005,    0, 1005, 1006,    0, 1006,
    1383 
    1384         0,    0,    0, 1006, 1007,    0, 1007,    0,    0,    0,
    1385      1007, 1008,    0, 1008, 1009,    0, 1009,    0,    0,    0,
    1386      1009, 1010,    0, 1010, 1011,    0, 1011,    0,    0,    0,
    1387      1011, 1012,    0, 1012, 1013,    0, 1013,    0,    0,    0,
    1388      1013, 1014,    0, 1014, 1015,    0, 1015, 1016,    0, 1016,
    1389      1017,    0,    0, 1017,    0, 1017, 1017, 1017, 1017, 1017,
    1390      1018,    0, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
    1391      1019, 1019, 1019, 1019, 1019, 1019, 1020,    0, 1020,    0,
    1392         0,    0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,
    1393         0,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
    1394 
    1395         0, 1025, 1026,    0,    0, 1026,    0, 1026, 1026, 1026,
    1396      1026, 1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0,
    1397      1029, 1030,    0, 1030, 1031,    0, 1031, 1032,    0, 1032,
    1398      1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
    1399      1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
    1400      1037,    0, 1037, 1038,    0, 1038, 1039,    0, 1039, 1040,
    1401         0, 1040, 1041,    0, 1041,    0,    0,    0, 1041, 1042,
    1402         0,    0, 1042,    0, 1042, 1042, 1042, 1042, 1042, 1043,
    1403         0, 1043, 1044,    0, 1044, 1045,    0, 1045, 1046,    0,
    1404      1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,    0,
    1405 
    1406         0, 1047, 1048,    0, 1048,    0,    0,    0, 1048, 1049,
    1407         0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
    1408         0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
    1409         0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
    1410      1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
    1411         0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
    1412      1056, 1057,    0, 1057,    0,    0,    0, 1057, 1058,    0,
    1413      1058,    0,    0,    0, 1058, 1059,    0, 1059,    0,    0,
    1414         0, 1059, 1060,    0, 1060,    0,    0,    0, 1060, 1061,
    1415         0, 1061,    0,    0,    0, 1061, 1062,    0, 1062,    0,
    1416 
    1417         0,    0, 1062, 1063,    0, 1063,    0,    0,    0, 1063,
    1418      1064,    0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,
    1419         0,    0,    0, 1065,  891,  891,  891,  891,  891,  891,
    1420       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1421       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1422       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1423       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1424       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1425       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1426       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1427 
    1428       891,  891,  891,  891,  891,  891,  891,  891,  891,  891
     1310      897,  897,  898,  828,  827,  898,  826,  898,  898,  898,
     1311      898,  898,  899,  825,  824,  823,  899,  899,  899,  899,
     1312      899,  899,  900,  900,  900,  900,  900,  900,  900,  900,
     1313      900,  900,  900,  900,  900,  901,  822,  821,  901,  820,
     1314      901,  901,  901,  901,  901,  902,  819,  902,  902,  818,
     1315      902,  902,  902,  902,  902,  902,  817,  902,  903,  809,
     1316      805,  903,  903,  903,  903,  903,  903,  903,  903,  798,
     1317      903,  904,  904,  904,  904,  904,  904,  904,  904,  904,
     1318      904,  904,  904,  904,  905,  905,  796,  905,  795,  794,
     1319
     1320      793,  905,  906,  792,  791,  906,  790,  906,  906,  906,
     1321      906,  906,  907,  789,  907,  788,  787,  786,  907,  908,
     1322      785,  908,  784,  783,  781,  908,  909,  780,  909,  779,
     1323      777,  770,  909,  910,  768,  910,  756,  755,  754,  910,
     1324      911,  753,  911,  752,  751,  750,  911,  912,  749,  912,
     1325      748,  745,  744,  912,  913,  743,  913,  737,  733,  732,
     1326      913,  914,  730,  914,  729,  712,  704,  914,  915,  701,
     1327      915,  696,  694,  690,  915,  916,  680,  916,  917,  917,
     1328      676,  917,  917,  917,  674,  917,  918,  918,  672,  918,
     1329      919,  669,  666,  919,  665,  919,  919,  919,  919,  919,
     1330
     1331      920,  664,  920,  663,  662,  661,  920,  921,  658,  921,
     1332      657,  655,  652,  921,  922,  651,  922,  650,  646,  619,
     1333      922,  923,  615,  923,  924,  613,  924,  611,  609,  607,
     1334      924,  925,  601,  925,  926,  595,  593,  926,  591,  926,
     1335      926,  926,  926,  926,  927,  927,  927,  927,  927,  927,
     1336      927,  927,  927,  927,  927,  927,  927,  928,  928,  928,
     1337      928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
     1338      929,  589,  929,  587,  585,  583,  929,  930,  581,  930,
     1339      580,  579,  576,  930,  931,  573,  931,  566,  562,  559,
     1340      931,  932,  556,  932,  933,  551,  933,  546,  543,  520,
     1341
     1342      933,  934,  516,  934,  935,  514,  935,  512,  510,  508,
     1343      935,  936,  506,  936,  937,  505,  937,  504,  503,  491,
     1344      937,  938,  488,  938,  939,  486,  939,  485,  484,  482,
     1345      939,  940,  480,  940,  941,  477,  941,  475,  473,  471,
     1346      941,  942,  467,  942,  943,  450,  943,  448,  440,  438,
     1347      943,  944,  430,  944,  945,  428,  945,  426,  945,  400,
     1348      945,  946,  398,  946,  396,  946,  394,  946,  947,  947,
     1349      393,  947,  947,  947,  392,  947,  948,  379,  948,  376,
     1350      367,  365,  948,  949,  364,  949,  360,  358,  356,  949,
     1351      950,  354,  950,  350,  348,  347,  950,  951,  346,  951,
     1352
     1353      952,  336,  952,  321,  298,  277,  952,  953,  275,  953,
     1354      954,  273,  954,  272,  271,  269,  954,  955,  268,  955,
     1355      956,  263,  956,  259,  258,  254,  956,  957,  251,  957,
     1356      958,  250,  239,  958,  238,  958,  958,  958,  958,  958,
     1357      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     1358      959,  959,  959,  960,  231,  960,  230,  227,  217,  960,
     1359      961,  215,  961,  962,  214,  962,  213,  207,  206,  962,
     1360      963,  204,  963,  964,  199,  964,  178,  149,  147,  964,
     1361      965,  146,  965,  966,  140,  966,  138,  136,  128,  966,
     1362      967,  125,  967,  968,  124,  968,  120,  101,   98,  968,
     1363
     1364      969,   95,  969,  970,   93,  970,   86,   72,   70,  970,
     1365      971,   66,  971,  972,   36,  972,   33,   18,   11,  972,
     1366      973,    4,  973,    3,    0,    0,  973,  974,    0,  974,
     1367      975,    0,  975,    0,    0,    0,  975,  976,    0,  976,
     1368      977,    0,  977,    0,  977,    0,  977,  978,    0,  978,
     1369        0,    0,    0,  978,  979,    0,  979,    0,    0,    0,
     1370      979,  980,    0,  980,  981,    0,  981,    0,    0,    0,
     1371      981,  982,    0,  982,  983,    0,  983,    0,    0,    0,
     1372      983,  984,    0,  984,  985,    0,  985,    0,    0,    0,
     1373      985,  986,    0,  986,  987,    0,  987,    0,    0,    0,
     1374
     1375      987,  988,    0,  988,  989,    0,  989,    0,    0,    0,
     1376      989,  990,    0,  990,  991,    0,    0,  991,    0,  991,
     1377      991,  991,  991,  991,  992,  992,  992,  992,  992,  992,
     1378      992,  992,  992,  992,  992,  992,  992,  993,    0,  993,
     1379        0,    0,    0,  993,  994,    0,  994,  995,    0,  995,
     1380        0,    0,    0,  995,  996,    0,  996,  997,    0,  997,
     1381        0,    0,    0,  997,  998,    0,  998,  999,    0,  999,
     1382        0,    0,    0,  999, 1000,    0, 1000, 1001,    0, 1001,
     1383        0,    0,    0, 1001, 1002,    0, 1002, 1003,    0, 1003,
     1384        0,    0,    0, 1003, 1004,    0, 1004, 1005,    0, 1005,
     1385
     1386        0,    0,    0, 1005, 1006,    0, 1006, 1007,    0, 1007,
     1387        0,    0,    0, 1007, 1008,    0, 1008, 1009,    0, 1009,
     1388        0,    0,    0, 1009, 1010,    0, 1010,    0,    0,    0,
     1389     1010, 1011,    0, 1011, 1012,    0, 1012,    0,    0,    0,
     1390     1012, 1013,    0, 1013, 1014,    0, 1014,    0,    0,    0,
     1391     1014, 1015,    0, 1015, 1016,    0, 1016,    0,    0,    0,
     1392     1016, 1017,    0, 1017, 1018,    0, 1018, 1019,    0, 1019,
     1393     1020,    0,    0, 1020,    0, 1020, 1020, 1020, 1020, 1020,
     1394     1021,    0, 1021, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
     1395     1022, 1022, 1022, 1022, 1022, 1022, 1023,    0, 1023,    0,
     1396
     1397        0,    0, 1023, 1024,    0, 1024, 1025,    0, 1025,    0,
     1398        0,    0, 1025, 1026,    0, 1026, 1027,    0, 1027, 1028,
     1399        0, 1028, 1029,    0,    0, 1029,    0, 1029, 1029, 1029,
     1400     1029, 1029, 1030,    0, 1030, 1031,    0, 1031, 1032,    0,
     1401     1032, 1033,    0, 1033, 1034,    0, 1034, 1035,    0, 1035,
     1402     1036,    0, 1036, 1037,    0, 1037,    0,    0,    0, 1037,
     1403     1038,    0, 1038, 1039,    0, 1039,    0,    0,    0, 1039,
     1404     1040,    0, 1040, 1041,    0, 1041, 1042,    0, 1042, 1043,
     1405        0, 1043, 1044,    0, 1044,    0,    0,    0, 1044, 1045,
     1406        0,    0, 1045,    0, 1045, 1045, 1045, 1045, 1045, 1046,
     1407
     1408        0, 1046, 1047,    0, 1047, 1048,    0, 1048, 1049,    0,
     1409     1049,    0,    0,    0, 1049, 1050,    0, 1050,    0,    0,
     1410        0, 1050, 1051,    0, 1051,    0,    0,    0, 1051, 1052,
     1411        0, 1052, 1053,    0, 1053,    0,    0,    0, 1053, 1054,
     1412        0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,    0,
     1413        0,    0, 1055, 1056,    0, 1056,    0,    0,    0, 1056,
     1414     1057,    0, 1057,    0,    0,    0, 1057, 1058,    0, 1058,
     1415        0,    0,    0, 1058, 1059,    0, 1059,    0,    0,    0,
     1416     1059, 1060,    0, 1060,    0,    0,    0, 1060, 1061,    0,
     1417     1061,    0,    0,    0, 1061, 1062,    0, 1062,    0,    0,
     1418
     1419        0, 1062, 1063,    0, 1063,    0,    0,    0, 1063, 1064,
     1420        0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,    0,
     1421        0,    0, 1065, 1066,    0, 1066,    0,    0,    0, 1066,
     1422     1067,    0, 1067,    0,    0,    0, 1067, 1068,    0, 1068,
     1423        0,    0,    0, 1068,  894,  894,  894,  894,  894,  894,
     1424      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1425      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1426      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1427      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1428      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1429
     1430      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1431      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1432      894,  894,  894,  894,  894,  894,  894,  894,  894,  894
    14291433    } ;
    14301434
    14311435/* Table of booleans, true if rule could match eol. */
    1432 static yyconst flex_int32_t yy_rule_can_match_eol[182] =
     1436static yyconst flex_int32_t yy_rule_can_match_eol[184] =
    14331437    {   0,
    143414381, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14371441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14381442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1439     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
    1440     1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1443    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
     1444    0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14411445    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14421446    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1443     0, 0,     };
     1447    0, 0, 0, 0,     };
    14441448
    14451449static yy_state_type yy_last_accepting_state;
     
    14691473 * Created On       : Sat Sep 22 08:58:10 2001
    14701474 * Last Modified By : Peter A. Buhr
    1471  * Last Modified On : Tue Oct 18 22:19:37 2016
    1472  * Update Count     : 488
     1475 * Last Modified On : Wed Oct 26 17:32:30 2016
     1476 * Update Count     : 499
    14731477 */
    14741478#line 20 "lex.ll"
     
    15311535
    15321536
    1533 #line 1534 "Parser/lex.cc"
     1537#line 1538 "Parser/lex.cc"
    15341538
    15351539#define INITIAL 0
     
    17231727        register int yy_act;
    17241728   
    1725 #line 136 "lex.ll"
     1729#line 138 "lex.ll"
    17261730
    17271731                                   /* line directives */
    1728 #line 1729 "Parser/lex.cc"
     1732#line 1733 "Parser/lex.cc"
    17291733
    17301734        if ( !(yy_init) )
     
    17801784                                {
    17811785                                yy_current_state = (int) yy_def[yy_current_state];
    1782                                 if ( yy_current_state >= 892 )
     1786                                if ( yy_current_state >= 895 )
    17831787                                        yy_c = yy_meta[(unsigned int) yy_c];
    17841788                                }
     
    17861790                        ++yy_cp;
    17871791                        }
    1788                 while ( yy_base[yy_current_state] != 2825 );
     1792                while ( yy_base[yy_current_state] != 2845 );
    17891793
    17901794yy_find_action:
     
    18231827/* rule 1 can match eol */
    18241828YY_RULE_SETUP
    1825 #line 138 "lex.ll"
     1829#line 140 "lex.ll"
    18261830{
    18271831        /* " stop highlighting */
     
    18491853/* rule 2 can match eol */
    18501854YY_RULE_SETUP
    1851 #line 160 "lex.ll"
     1855#line 162 "lex.ll"
    18521856;
    18531857        YY_BREAK
     
    18551859case 3:
    18561860YY_RULE_SETUP
    1857 #line 163 "lex.ll"
     1861#line 165 "lex.ll"
    18581862{ BEGIN COMMENT; }
    18591863        YY_BREAK
     
    18611865/* rule 4 can match eol */
    18621866YY_RULE_SETUP
    1863 #line 164 "lex.ll"
     1867#line 166 "lex.ll"
    18641868;
    18651869        YY_BREAK
    18661870case 5:
    18671871YY_RULE_SETUP
    1868 #line 165 "lex.ll"
     1872#line 167 "lex.ll"
    18691873{ BEGIN 0; }
    18701874        YY_BREAK
     
    18731877/* rule 6 can match eol */
    18741878YY_RULE_SETUP
    1875 #line 168 "lex.ll"
     1879#line 170 "lex.ll"
    18761880;
    18771881        YY_BREAK
     
    18791883case 7:
    18801884YY_RULE_SETUP
    1881 #line 171 "lex.ll"
     1885#line 173 "lex.ll"
    18821886{ WHITE_RETURN(' '); }
    18831887        YY_BREAK
    18841888case 8:
    18851889YY_RULE_SETUP
    1886 #line 172 "lex.ll"
     1890#line 174 "lex.ll"
    18871891{ WHITE_RETURN(' '); }
    18881892        YY_BREAK
     
    18901894/* rule 9 can match eol */
    18911895YY_RULE_SETUP
    1892 #line 173 "lex.ll"
     1896#line 175 "lex.ll"
    18931897{ NEWLINE_RETURN(); }
    18941898        YY_BREAK
     
    18961900case 10:
    18971901YY_RULE_SETUP
    1898 #line 176 "lex.ll"
     1902#line 178 "lex.ll"
    18991903{ KEYWORD_RETURN(ALIGNAS); }                    // C11
    19001904        YY_BREAK
    19011905case 11:
    19021906YY_RULE_SETUP
    1903 #line 177 "lex.ll"
     1907#line 179 "lex.ll"
    19041908{ KEYWORD_RETURN(ALIGNOF); }                    // C11
    19051909        YY_BREAK
    19061910case 12:
    19071911YY_RULE_SETUP
    1908 #line 178 "lex.ll"
     1912#line 180 "lex.ll"
    19091913{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19101914        YY_BREAK
    19111915case 13:
    19121916YY_RULE_SETUP
    1913 #line 179 "lex.ll"
     1917#line 181 "lex.ll"
    19141918{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19151919        YY_BREAK
    19161920case 14:
    19171921YY_RULE_SETUP
    1918 #line 180 "lex.ll"
     1922#line 182 "lex.ll"
    19191923{ KEYWORD_RETURN(ASM); }
    19201924        YY_BREAK
    19211925case 15:
    19221926YY_RULE_SETUP
    1923 #line 181 "lex.ll"
     1927#line 183 "lex.ll"
    19241928{ KEYWORD_RETURN(ASM); }                                // GCC
    19251929        YY_BREAK
    19261930case 16:
    19271931YY_RULE_SETUP
    1928 #line 182 "lex.ll"
     1932#line 184 "lex.ll"
    19291933{ KEYWORD_RETURN(ASM); }                                // GCC
    19301934        YY_BREAK
    19311935case 17:
    19321936YY_RULE_SETUP
    1933 #line 183 "lex.ll"
     1937#line 185 "lex.ll"
    19341938{ KEYWORD_RETURN(AT); }                                 // CFA
    19351939        YY_BREAK
    19361940case 18:
    19371941YY_RULE_SETUP
    1938 #line 184 "lex.ll"
     1942#line 186 "lex.ll"
    19391943{ KEYWORD_RETURN(ATOMIC); }                             // C11
    19401944        YY_BREAK
    19411945case 19:
    19421946YY_RULE_SETUP
    1943 #line 185 "lex.ll"
     1947#line 187 "lex.ll"
    19441948{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19451949        YY_BREAK
    19461950case 20:
    19471951YY_RULE_SETUP
    1948 #line 186 "lex.ll"
     1952#line 188 "lex.ll"
    19491953{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19501954        YY_BREAK
    19511955case 21:
    19521956YY_RULE_SETUP
    1953 #line 187 "lex.ll"
     1957#line 189 "lex.ll"
    19541958{ KEYWORD_RETURN(AUTO); }
    19551959        YY_BREAK
    19561960case 22:
    19571961YY_RULE_SETUP
    1958 #line 188 "lex.ll"
     1962#line 190 "lex.ll"
    19591963{ KEYWORD_RETURN(BOOL); }                               // C99
    19601964        YY_BREAK
    19611965case 23:
    19621966YY_RULE_SETUP
    1963 #line 189 "lex.ll"
     1967#line 191 "lex.ll"
    19641968{ KEYWORD_RETURN(BREAK); }
    19651969        YY_BREAK
    19661970case 24:
    19671971YY_RULE_SETUP
    1968 #line 190 "lex.ll"
     1972#line 192 "lex.ll"
    19691973{ KEYWORD_RETURN(CASE); }
    19701974        YY_BREAK
    19711975case 25:
    19721976YY_RULE_SETUP
    1973 #line 191 "lex.ll"
     1977#line 193 "lex.ll"
    19741978{ KEYWORD_RETURN(CATCH); }                              // CFA
    19751979        YY_BREAK
    19761980case 26:
    19771981YY_RULE_SETUP
    1978 #line 192 "lex.ll"
     1982#line 194 "lex.ll"
    19791983{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
    19801984        YY_BREAK
    19811985case 27:
    19821986YY_RULE_SETUP
    1983 #line 193 "lex.ll"
     1987#line 195 "lex.ll"
    19841988{ KEYWORD_RETURN(CHAR); }
    19851989        YY_BREAK
    19861990case 28:
    19871991YY_RULE_SETUP
    1988 #line 194 "lex.ll"
     1992#line 196 "lex.ll"
    19891993{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19901994        YY_BREAK
    19911995case 29:
    19921996YY_RULE_SETUP
    1993 #line 195 "lex.ll"
     1997#line 197 "lex.ll"
    19941998{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19951999        YY_BREAK
    19962000case 30:
    19972001YY_RULE_SETUP
    1998 #line 196 "lex.ll"
     2002#line 198 "lex.ll"
    19992003{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    20002004        YY_BREAK
    20012005case 31:
    20022006YY_RULE_SETUP
    2003 #line 197 "lex.ll"
     2007#line 199 "lex.ll"
    20042008{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    20052009        YY_BREAK
    20062010case 32:
    20072011YY_RULE_SETUP
    2008 #line 198 "lex.ll"
     2012#line 200 "lex.ll"
    20092013{ KEYWORD_RETURN(CONST); }
    20102014        YY_BREAK
    20112015case 33:
    20122016YY_RULE_SETUP
    2013 #line 199 "lex.ll"
     2017#line 201 "lex.ll"
    20142018{ KEYWORD_RETURN(CONST); }                              // GCC
    20152019        YY_BREAK
    20162020case 34:
    20172021YY_RULE_SETUP
    2018 #line 200 "lex.ll"
     2022#line 202 "lex.ll"
    20192023{ KEYWORD_RETURN(CONST); }                              // GCC
    20202024        YY_BREAK
    20212025case 35:
    20222026YY_RULE_SETUP
    2023 #line 201 "lex.ll"
     2027#line 203 "lex.ll"
    20242028{ KEYWORD_RETURN(CONTINUE); }
    20252029        YY_BREAK
    20262030case 36:
    20272031YY_RULE_SETUP
    2028 #line 202 "lex.ll"
     2032#line 204 "lex.ll"
    20292033{ KEYWORD_RETURN(DEFAULT); }
    20302034        YY_BREAK
    20312035case 37:
    20322036YY_RULE_SETUP
    2033 #line 203 "lex.ll"
     2037#line 205 "lex.ll"
    20342038{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20352039        YY_BREAK
    20362040case 38:
    20372041YY_RULE_SETUP
    2038 #line 204 "lex.ll"
     2042#line 206 "lex.ll"
    20392043{ KEYWORD_RETURN(DO); }
    20402044        YY_BREAK
    20412045case 39:
    20422046YY_RULE_SETUP
    2043 #line 205 "lex.ll"
     2047#line 207 "lex.ll"
    20442048{ KEYWORD_RETURN(DOUBLE); }
    20452049        YY_BREAK
    20462050case 40:
    20472051YY_RULE_SETUP
    2048 #line 206 "lex.ll"
     2052#line 208 "lex.ll"
    20492053{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20502054        YY_BREAK
    20512055case 41:
    20522056YY_RULE_SETUP
    2053 #line 207 "lex.ll"
     2057#line 209 "lex.ll"
    20542058{ KEYWORD_RETURN(ELSE); }
    20552059        YY_BREAK
    20562060case 42:
    20572061YY_RULE_SETUP
    2058 #line 208 "lex.ll"
     2062#line 210 "lex.ll"
    20592063{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20602064        YY_BREAK
    20612065case 43:
    20622066YY_RULE_SETUP
    2063 #line 209 "lex.ll"
     2067#line 211 "lex.ll"
    20642068{ KEYWORD_RETURN(ENUM); }
    20652069        YY_BREAK
    20662070case 44:
    20672071YY_RULE_SETUP
    2068 #line 210 "lex.ll"
     2072#line 212 "lex.ll"
    20692073{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20702074        YY_BREAK
    20712075case 45:
    20722076YY_RULE_SETUP
    2073 #line 211 "lex.ll"
     2077#line 213 "lex.ll"
    20742078{ KEYWORD_RETURN(EXTERN); }
    20752079        YY_BREAK
    20762080case 46:
    20772081YY_RULE_SETUP
    2078 #line 212 "lex.ll"
     2082#line 214 "lex.ll"
    20792083{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20802084        YY_BREAK
    20812085case 47:
    20822086YY_RULE_SETUP
    2083 #line 213 "lex.ll"
     2087#line 215 "lex.ll"
    20842088{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20852089        YY_BREAK
    20862090case 48:
    20872091YY_RULE_SETUP
    2088 #line 214 "lex.ll"
     2092#line 216 "lex.ll"
    20892093{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20902094        YY_BREAK
    20912095case 49:
    20922096YY_RULE_SETUP
    2093 #line 215 "lex.ll"
     2097#line 217 "lex.ll"
    20942098{ KEYWORD_RETURN(FLOAT); }
    20952099        YY_BREAK
    20962100case 50:
    20972101YY_RULE_SETUP
    2098 #line 216 "lex.ll"
     2102#line 218 "lex.ll"
    20992103{ KEYWORD_RETURN(FLOAT); }                              // GCC
    21002104        YY_BREAK
    21012105case 51:
    21022106YY_RULE_SETUP
    2103 #line 217 "lex.ll"
     2107#line 219 "lex.ll"
    21042108{ KEYWORD_RETURN(FOR); }
    21052109        YY_BREAK
    21062110case 52:
    21072111YY_RULE_SETUP
    2108 #line 218 "lex.ll"
     2112#line 220 "lex.ll"
    21092113{ KEYWORD_RETURN(FORALL); }                             // CFA
    21102114        YY_BREAK
    21112115case 53:
    21122116YY_RULE_SETUP
    2113 #line 219 "lex.ll"
     2117#line 221 "lex.ll"
    21142118{ KEYWORD_RETURN(FORTRAN); }
    21152119        YY_BREAK
    21162120case 54:
    21172121YY_RULE_SETUP
    2118 #line 220 "lex.ll"
     2122#line 222 "lex.ll"
    21192123{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21202124        YY_BREAK
    21212125case 55:
    21222126YY_RULE_SETUP
    2123 #line 221 "lex.ll"
     2127#line 223 "lex.ll"
    21242128{ KEYWORD_RETURN(GENERIC); }                    // C11
    21252129        YY_BREAK
    21262130case 56:
    21272131YY_RULE_SETUP
    2128 #line 222 "lex.ll"
     2132#line 224 "lex.ll"
    21292133{ KEYWORD_RETURN(GOTO); }
    21302134        YY_BREAK
    21312135case 57:
    21322136YY_RULE_SETUP
    2133 #line 223 "lex.ll"
     2137#line 225 "lex.ll"
    21342138{ KEYWORD_RETURN(IF); }
    21352139        YY_BREAK
    21362140case 58:
    21372141YY_RULE_SETUP
    2138 #line 224 "lex.ll"
     2142#line 226 "lex.ll"
    21392143{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    21402144        YY_BREAK
    21412145case 59:
    21422146YY_RULE_SETUP
    2143 #line 225 "lex.ll"
     2147#line 227 "lex.ll"
    21442148{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21452149        YY_BREAK
    21462150case 60:
    21472151YY_RULE_SETUP
    2148 #line 226 "lex.ll"
     2152#line 228 "lex.ll"
    21492153{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21502154        YY_BREAK
    21512155case 61:
    21522156YY_RULE_SETUP
    2153 #line 227 "lex.ll"
     2157#line 229 "lex.ll"
    21542158{ KEYWORD_RETURN(INLINE); }                             // C99
    21552159        YY_BREAK
    21562160case 62:
    21572161YY_RULE_SETUP
    2158 #line 228 "lex.ll"
     2162#line 230 "lex.ll"
    21592163{ KEYWORD_RETURN(INLINE); }                             // GCC
    21602164        YY_BREAK
    21612165case 63:
    21622166YY_RULE_SETUP
    2163 #line 229 "lex.ll"
     2167#line 231 "lex.ll"
    21642168{ KEYWORD_RETURN(INLINE); }                             // GCC
    21652169        YY_BREAK
    21662170case 64:
    21672171YY_RULE_SETUP
    2168 #line 230 "lex.ll"
     2172#line 232 "lex.ll"
    21692173{ KEYWORD_RETURN(INT); }
    21702174        YY_BREAK
    21712175case 65:
    21722176YY_RULE_SETUP
    2173 #line 231 "lex.ll"
     2177#line 233 "lex.ll"
    21742178{ KEYWORD_RETURN(INT); }                                // GCC
    21752179        YY_BREAK
    21762180case 66:
    21772181YY_RULE_SETUP
    2178 #line 232 "lex.ll"
     2182#line 234 "lex.ll"
    21792183{ KEYWORD_RETURN(LABEL); }                              // GCC
    21802184        YY_BREAK
    21812185case 67:
    21822186YY_RULE_SETUP
    2183 #line 233 "lex.ll"
     2187#line 235 "lex.ll"
    21842188{ KEYWORD_RETURN(LONG); }
    21852189        YY_BREAK
    21862190case 68:
    21872191YY_RULE_SETUP
    2188 #line 234 "lex.ll"
     2192#line 236 "lex.ll"
    21892193{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21902194        YY_BREAK
    21912195case 69:
    21922196YY_RULE_SETUP
    2193 #line 235 "lex.ll"
     2197#line 237 "lex.ll"
    21942198{ KEYWORD_RETURN(NORETURN); }                   // C11
    21952199        YY_BREAK
    21962200case 70:
    21972201YY_RULE_SETUP
    2198 #line 236 "lex.ll"
     2202#line 238 "lex.ll"
    21992203{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    22002204        YY_BREAK
    22012205case 71:
    22022206YY_RULE_SETUP
    2203 #line 237 "lex.ll"
     2207#line 239 "lex.ll"
    22042208{ KEYWORD_RETURN(OTYPE); }                              // CFA
    22052209        YY_BREAK
    22062210case 72:
    22072211YY_RULE_SETUP
    2208 #line 238 "lex.ll"
     2212#line 240 "lex.ll"
    22092213{ KEYWORD_RETURN(REGISTER); }
    22102214        YY_BREAK
    22112215case 73:
    22122216YY_RULE_SETUP
    2213 #line 239 "lex.ll"
     2217#line 241 "lex.ll"
    22142218{ KEYWORD_RETURN(RESTRICT); }                   // C99
    22152219        YY_BREAK
    22162220case 74:
    22172221YY_RULE_SETUP
    2218 #line 240 "lex.ll"
     2222#line 242 "lex.ll"
    22192223{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22202224        YY_BREAK
    22212225case 75:
    22222226YY_RULE_SETUP
    2223 #line 241 "lex.ll"
     2227#line 243 "lex.ll"
    22242228{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22252229        YY_BREAK
    22262230case 76:
    22272231YY_RULE_SETUP
    2228 #line 242 "lex.ll"
     2232#line 244 "lex.ll"
    22292233{ KEYWORD_RETURN(RETURN); }
    22302234        YY_BREAK
    22312235case 77:
    22322236YY_RULE_SETUP
    2233 #line 243 "lex.ll"
     2237#line 245 "lex.ll"
    22342238{ KEYWORD_RETURN(SHORT); }
    22352239        YY_BREAK
    22362240case 78:
    22372241YY_RULE_SETUP
    2238 #line 244 "lex.ll"
     2242#line 246 "lex.ll"
    22392243{ KEYWORD_RETURN(SIGNED); }
    22402244        YY_BREAK
    22412245case 79:
    22422246YY_RULE_SETUP
    2243 #line 245 "lex.ll"
     2247#line 247 "lex.ll"
    22442248{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22452249        YY_BREAK
    22462250case 80:
    22472251YY_RULE_SETUP
    2248 #line 246 "lex.ll"
     2252#line 248 "lex.ll"
    22492253{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22502254        YY_BREAK
    22512255case 81:
    22522256YY_RULE_SETUP
    2253 #line 247 "lex.ll"
     2257#line 249 "lex.ll"
    22542258{ KEYWORD_RETURN(SIZEOF); }
    22552259        YY_BREAK
    22562260case 82:
    22572261YY_RULE_SETUP
    2258 #line 248 "lex.ll"
     2262#line 250 "lex.ll"
    22592263{ KEYWORD_RETURN(STATIC); }
    22602264        YY_BREAK
    22612265case 83:
    22622266YY_RULE_SETUP
    2263 #line 249 "lex.ll"
     2267#line 251 "lex.ll"
    22642268{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22652269        YY_BREAK
    22662270case 84:
    22672271YY_RULE_SETUP
    2268 #line 250 "lex.ll"
     2272#line 252 "lex.ll"
    22692273{ KEYWORD_RETURN(STRUCT); }
    22702274        YY_BREAK
    22712275case 85:
    22722276YY_RULE_SETUP
    2273 #line 251 "lex.ll"
     2277#line 253 "lex.ll"
    22742278{ KEYWORD_RETURN(SWITCH); }
    22752279        YY_BREAK
    22762280case 86:
    22772281YY_RULE_SETUP
    2278 #line 252 "lex.ll"
     2282#line 254 "lex.ll"
    22792283{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22802284        YY_BREAK
    22812285case 87:
    22822286YY_RULE_SETUP
    2283 #line 253 "lex.ll"
     2287#line 255 "lex.ll"
    22842288{ KEYWORD_RETURN(THROW); }                              // CFA
    22852289        YY_BREAK
    22862290case 88:
    22872291YY_RULE_SETUP
    2288 #line 254 "lex.ll"
     2292#line 256 "lex.ll"
    22892293{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22902294        YY_BREAK
    22912295case 89:
    22922296YY_RULE_SETUP
    2293 #line 255 "lex.ll"
     2297#line 257 "lex.ll"
    22942298{ KEYWORD_RETURN(TRAIT); }                              // CFA
    22952299        YY_BREAK
    22962300case 90:
    22972301YY_RULE_SETUP
    2298 #line 256 "lex.ll"
     2302#line 258 "lex.ll"
    22992303{ KEYWORD_RETURN(TRY); }                                // CFA
    23002304        YY_BREAK
    23012305case 91:
    23022306YY_RULE_SETUP
    2303 #line 257 "lex.ll"
     2307#line 259 "lex.ll"
    23042308{ KEYWORD_RETURN(TYPEDEF); }
    23052309        YY_BREAK
    23062310case 92:
    2307 YY_RULE_SETUP
    2308 #line 258 "lex.ll"
    2309 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2310         YY_BREAK
    2311 case 93:
    2312 YY_RULE_SETUP
    2313 #line 259 "lex.ll"
    2314 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2315         YY_BREAK
    2316 case 94:
    23172311YY_RULE_SETUP
    23182312#line 260 "lex.ll"
    23192313{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23202314        YY_BREAK
     2315case 93:
     2316YY_RULE_SETUP
     2317#line 261 "lex.ll"
     2318{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2319        YY_BREAK
     2320case 94:
     2321YY_RULE_SETUP
     2322#line 262 "lex.ll"
     2323{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2324        YY_BREAK
    23212325case 95:
    23222326YY_RULE_SETUP
    2323 #line 261 "lex.ll"
     2327#line 263 "lex.ll"
    23242328{ KEYWORD_RETURN(UNION); }
    23252329        YY_BREAK
    23262330case 96:
    23272331YY_RULE_SETUP
    2328 #line 262 "lex.ll"
     2332#line 264 "lex.ll"
    23292333{ KEYWORD_RETURN(UNSIGNED); }
    23302334        YY_BREAK
    23312335case 97:
    23322336YY_RULE_SETUP
    2333 #line 263 "lex.ll"
     2337#line 265 "lex.ll"
    23342338{ KEYWORD_RETURN(VALIST); }                     // GCC
    23352339        YY_BREAK
    23362340case 98:
    23372341YY_RULE_SETUP
    2338 #line 264 "lex.ll"
     2342#line 266 "lex.ll"
    23392343{ KEYWORD_RETURN(VOID); }
    23402344        YY_BREAK
    23412345case 99:
    23422346YY_RULE_SETUP
    2343 #line 265 "lex.ll"
     2347#line 267 "lex.ll"
    23442348{ KEYWORD_RETURN(VOLATILE); }
    23452349        YY_BREAK
    23462350case 100:
    23472351YY_RULE_SETUP
    2348 #line 266 "lex.ll"
     2352#line 268 "lex.ll"
    23492353{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23502354        YY_BREAK
    23512355case 101:
    23522356YY_RULE_SETUP
    2353 #line 267 "lex.ll"
     2357#line 269 "lex.ll"
    23542358{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23552359        YY_BREAK
    23562360case 102:
    23572361YY_RULE_SETUP
    2358 #line 268 "lex.ll"
     2362#line 270 "lex.ll"
    23592363{ KEYWORD_RETURN(WHILE); }
    23602364        YY_BREAK
     
    23622366case 103:
    23632367YY_RULE_SETUP
    2364 #line 271 "lex.ll"
     2368#line 273 "lex.ll"
    23652369{ IDENTIFIER_RETURN(); }
    23662370        YY_BREAK
    23672371case 104:
    23682372YY_RULE_SETUP
    2369 #line 272 "lex.ll"
     2373#line 274 "lex.ll"
    23702374{ ATTRIBUTE_RETURN(); }
    23712375        YY_BREAK
    23722376case 105:
    23732377YY_RULE_SETUP
    2374 #line 273 "lex.ll"
     2378#line 275 "lex.ll"
    23752379{ BEGIN BKQUOTE; }
    23762380        YY_BREAK
    23772381case 106:
    23782382YY_RULE_SETUP
    2379 #line 274 "lex.ll"
     2383#line 276 "lex.ll"
    23802384{ IDENTIFIER_RETURN(); }
    23812385        YY_BREAK
    23822386case 107:
    23832387YY_RULE_SETUP
    2384 #line 275 "lex.ll"
     2388#line 277 "lex.ll"
    23852389{ BEGIN 0; }
    23862390        YY_BREAK
     
    23882392case 108:
    23892393YY_RULE_SETUP
    2390 #line 278 "lex.ll"
     2394#line 280 "lex.ll"
    23912395{ NUMERIC_RETURN(ZERO); }                               // CFA
    23922396        YY_BREAK
    23932397case 109:
    23942398YY_RULE_SETUP
    2395 #line 279 "lex.ll"
     2399#line 281 "lex.ll"
    23962400{ NUMERIC_RETURN(ONE); }                                // CFA
    23972401        YY_BREAK
    23982402case 110:
    2399 YY_RULE_SETUP
    2400 #line 280 "lex.ll"
    2401 { NUMERIC_RETURN(INTEGERconstant); }
    2402         YY_BREAK
    2403 case 111:
    2404 YY_RULE_SETUP
    2405 #line 281 "lex.ll"
    2406 { NUMERIC_RETURN(INTEGERconstant); }
    2407         YY_BREAK
    2408 case 112:
    24092403YY_RULE_SETUP
    24102404#line 282 "lex.ll"
    24112405{ NUMERIC_RETURN(INTEGERconstant); }
    24122406        YY_BREAK
     2407case 111:
     2408YY_RULE_SETUP
     2409#line 283 "lex.ll"
     2410{ NUMERIC_RETURN(INTEGERconstant); }
     2411        YY_BREAK
     2412case 112:
     2413YY_RULE_SETUP
     2414#line 284 "lex.ll"
     2415{ NUMERIC_RETURN(INTEGERconstant); }
     2416        YY_BREAK
    24132417case 113:
    24142418YY_RULE_SETUP
    2415 #line 283 "lex.ll"
     2419#line 285 "lex.ll"
     2420{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
     2421        YY_BREAK
     2422case 114:
     2423YY_RULE_SETUP
     2424#line 286 "lex.ll"
     2425{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
     2426        YY_BREAK
     2427case 115:
     2428YY_RULE_SETUP
     2429#line 287 "lex.ll"
    24162430{ NUMERIC_RETURN(FLOATINGconstant); }
    24172431        YY_BREAK
    2418 case 114:
    2419 YY_RULE_SETUP
    2420 #line 284 "lex.ll"
     2432case 116:
     2433YY_RULE_SETUP
     2434#line 288 "lex.ll"
    24212435{ NUMERIC_RETURN(FLOATINGconstant); }
    24222436        YY_BREAK
    24232437/* character constant, allows empty value */
    2424 case 115:
    2425 YY_RULE_SETUP
    2426 #line 287 "lex.ll"
     2438case 117:
     2439YY_RULE_SETUP
     2440#line 291 "lex.ll"
    24272441{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24282442        YY_BREAK
    2429 case 116:
    2430 YY_RULE_SETUP
    2431 #line 288 "lex.ll"
     2443case 118:
     2444YY_RULE_SETUP
     2445#line 292 "lex.ll"
    24322446{ strtext->append( yytext, yyleng ); }
    24332447        YY_BREAK
    2434 case 117:
    2435 /* rule 117 can match eol */
    2436 YY_RULE_SETUP
    2437 #line 289 "lex.ll"
     2448case 119:
     2449/* rule 119 can match eol */
     2450YY_RULE_SETUP
     2451#line 293 "lex.ll"
    24382452{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24392453        YY_BREAK
    24402454/* ' stop highlighting */
    24412455/* string constant */
    2442 case 118:
    2443 YY_RULE_SETUP
    2444 #line 293 "lex.ll"
     2456case 120:
     2457YY_RULE_SETUP
     2458#line 297 "lex.ll"
    24452459{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24462460        YY_BREAK
    2447 case 119:
    2448 YY_RULE_SETUP
    2449 #line 294 "lex.ll"
     2461case 121:
     2462YY_RULE_SETUP
     2463#line 298 "lex.ll"
    24502464{ strtext->append( yytext, yyleng ); }
    24512465        YY_BREAK
    2452 case 120:
    2453 /* rule 120 can match eol */
    2454 YY_RULE_SETUP
    2455 #line 295 "lex.ll"
     2466case 122:
     2467/* rule 122 can match eol */
     2468YY_RULE_SETUP
     2469#line 299 "lex.ll"
    24562470{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    24572471        YY_BREAK
    24582472/* " stop highlighting */
    24592473/* common character/string constant */
    2460 case 121:
    2461 YY_RULE_SETUP
    2462 #line 299 "lex.ll"
     2474case 123:
     2475YY_RULE_SETUP
     2476#line 303 "lex.ll"
    24632477{ rm_underscore(); strtext->append( yytext, yyleng ); }
    24642478        YY_BREAK
    2465 case 122:
    2466 /* rule 122 can match eol */
    2467 YY_RULE_SETUP
    2468 #line 300 "lex.ll"
     2479case 124:
     2480/* rule 124 can match eol */
     2481YY_RULE_SETUP
     2482#line 304 "lex.ll"
    24692483{}                                              // continuation (ALSO HANDLED BY CPP)
    24702484        YY_BREAK
    2471 case 123:
    2472 YY_RULE_SETUP
    2473 #line 301 "lex.ll"
     2485case 125:
     2486YY_RULE_SETUP
     2487#line 305 "lex.ll"
    24742488{ strtext->append( yytext, yyleng ); } // unknown escape character
    24752489        YY_BREAK
    24762490/* punctuation */
    2477 case 124:
    2478 YY_RULE_SETUP
    2479 #line 304 "lex.ll"
    2480 { ASCIIOP_RETURN(); }
    2481         YY_BREAK
    2482 case 125:
    2483 YY_RULE_SETUP
    2484 #line 305 "lex.ll"
    2485 { ASCIIOP_RETURN(); }
    2486         YY_BREAK
    24872491case 126:
    2488 YY_RULE_SETUP
    2489 #line 306 "lex.ll"
    2490 { ASCIIOP_RETURN(); }
    2491         YY_BREAK
    2492 case 127:
    2493 YY_RULE_SETUP
    2494 #line 307 "lex.ll"
    2495 { ASCIIOP_RETURN(); }
    2496         YY_BREAK
    2497 case 128:
    24982492YY_RULE_SETUP
    24992493#line 308 "lex.ll"
    25002494{ ASCIIOP_RETURN(); }
    25012495        YY_BREAK
    2502 case 129:
     2496case 127:
    25032497YY_RULE_SETUP
    25042498#line 309 "lex.ll"
    25052499{ ASCIIOP_RETURN(); }
    25062500        YY_BREAK
    2507 case 130:
     2501case 128:
    25082502YY_RULE_SETUP
    25092503#line 310 "lex.ll"
    2510 { ASCIIOP_RETURN(); }                                   // also operator
    2511         YY_BREAK
    2512 case 131:
     2504{ ASCIIOP_RETURN(); }
     2505        YY_BREAK
     2506case 129:
    25132507YY_RULE_SETUP
    25142508#line 311 "lex.ll"
    25152509{ ASCIIOP_RETURN(); }
    25162510        YY_BREAK
    2517 case 132:
     2511case 130:
    25182512YY_RULE_SETUP
    25192513#line 312 "lex.ll"
    25202514{ ASCIIOP_RETURN(); }
    25212515        YY_BREAK
     2516case 131:
     2517YY_RULE_SETUP
     2518#line 313 "lex.ll"
     2519{ ASCIIOP_RETURN(); }
     2520        YY_BREAK
     2521case 132:
     2522YY_RULE_SETUP
     2523#line 314 "lex.ll"
     2524{ ASCIIOP_RETURN(); }                                   // also operator
     2525        YY_BREAK
    25222526case 133:
    25232527YY_RULE_SETUP
    2524 #line 313 "lex.ll"
     2528#line 315 "lex.ll"
     2529{ ASCIIOP_RETURN(); }
     2530        YY_BREAK
     2531case 134:
     2532YY_RULE_SETUP
     2533#line 316 "lex.ll"
     2534{ ASCIIOP_RETURN(); }
     2535        YY_BREAK
     2536case 135:
     2537YY_RULE_SETUP
     2538#line 317 "lex.ll"
    25252539{ ASCIIOP_RETURN(); }                                   // also operator
    25262540        YY_BREAK
    2527 case 134:
    2528 YY_RULE_SETUP
    2529 #line 314 "lex.ll"
     2541case 136:
     2542YY_RULE_SETUP
     2543#line 318 "lex.ll"
    25302544{ NAMEDOP_RETURN(ELLIPSIS); }
    25312545        YY_BREAK
    25322546/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2533 case 135:
    2534 YY_RULE_SETUP
    2535 #line 317 "lex.ll"
     2547case 137:
     2548YY_RULE_SETUP
     2549#line 321 "lex.ll"
    25362550{ RETURN_VAL('['); }
    25372551        YY_BREAK
    2538 case 136:
    2539 YY_RULE_SETUP
    2540 #line 318 "lex.ll"
     2552case 138:
     2553YY_RULE_SETUP
     2554#line 322 "lex.ll"
    25412555{ RETURN_VAL(']'); }
    25422556        YY_BREAK
    2543 case 137:
    2544 YY_RULE_SETUP
    2545 #line 319 "lex.ll"
     2557case 139:
     2558YY_RULE_SETUP
     2559#line 323 "lex.ll"
    25462560{ RETURN_VAL('{'); }
    25472561        YY_BREAK
    2548 case 138:
    2549 YY_RULE_SETUP
    2550 #line 320 "lex.ll"
     2562case 140:
     2563YY_RULE_SETUP
     2564#line 324 "lex.ll"
    25512565{ RETURN_VAL('}'); }
    25522566        YY_BREAK
    25532567/* operators */
    2554 case 139:
    2555 YY_RULE_SETUP
    2556 #line 323 "lex.ll"
    2557 { ASCIIOP_RETURN(); }
    2558         YY_BREAK
    2559 case 140:
    2560 YY_RULE_SETUP
    2561 #line 324 "lex.ll"
    2562 { ASCIIOP_RETURN(); }
    2563         YY_BREAK
    25642568case 141:
    2565 YY_RULE_SETUP
    2566 #line 325 "lex.ll"
    2567 { ASCIIOP_RETURN(); }
    2568         YY_BREAK
    2569 case 142:
    2570 YY_RULE_SETUP
    2571 #line 326 "lex.ll"
    2572 { ASCIIOP_RETURN(); }
    2573         YY_BREAK
    2574 case 143:
    25752569YY_RULE_SETUP
    25762570#line 327 "lex.ll"
    25772571{ ASCIIOP_RETURN(); }
    25782572        YY_BREAK
    2579 case 144:
     2573case 142:
    25802574YY_RULE_SETUP
    25812575#line 328 "lex.ll"
    25822576{ ASCIIOP_RETURN(); }
    25832577        YY_BREAK
    2584 case 145:
     2578case 143:
    25852579YY_RULE_SETUP
    25862580#line 329 "lex.ll"
    25872581{ ASCIIOP_RETURN(); }
    25882582        YY_BREAK
    2589 case 146:
     2583case 144:
    25902584YY_RULE_SETUP
    25912585#line 330 "lex.ll"
    25922586{ ASCIIOP_RETURN(); }
    25932587        YY_BREAK
    2594 case 147:
     2588case 145:
    25952589YY_RULE_SETUP
    25962590#line 331 "lex.ll"
    25972591{ ASCIIOP_RETURN(); }
    25982592        YY_BREAK
    2599 case 148:
     2593case 146:
    26002594YY_RULE_SETUP
    26012595#line 332 "lex.ll"
    26022596{ ASCIIOP_RETURN(); }
    26032597        YY_BREAK
    2604 case 149:
     2598case 147:
    26052599YY_RULE_SETUP
    26062600#line 333 "lex.ll"
    26072601{ ASCIIOP_RETURN(); }
    26082602        YY_BREAK
    2609 case 150:
     2603case 148:
    26102604YY_RULE_SETUP
    26112605#line 334 "lex.ll"
    26122606{ ASCIIOP_RETURN(); }
    26132607        YY_BREAK
    2614 case 151:
     2608case 149:
    26152609YY_RULE_SETUP
    26162610#line 335 "lex.ll"
    26172611{ ASCIIOP_RETURN(); }
    26182612        YY_BREAK
    2619 case 152:
     2613case 150:
    26202614YY_RULE_SETUP
    26212615#line 336 "lex.ll"
    26222616{ ASCIIOP_RETURN(); }
    26232617        YY_BREAK
     2618case 151:
     2619YY_RULE_SETUP
     2620#line 337 "lex.ll"
     2621{ ASCIIOP_RETURN(); }
     2622        YY_BREAK
     2623case 152:
     2624YY_RULE_SETUP
     2625#line 338 "lex.ll"
     2626{ ASCIIOP_RETURN(); }
     2627        YY_BREAK
    26242628case 153:
    26252629YY_RULE_SETUP
    2626 #line 338 "lex.ll"
     2630#line 339 "lex.ll"
     2631{ ASCIIOP_RETURN(); }
     2632        YY_BREAK
     2633case 154:
     2634YY_RULE_SETUP
     2635#line 340 "lex.ll"
     2636{ ASCIIOP_RETURN(); }
     2637        YY_BREAK
     2638case 155:
     2639YY_RULE_SETUP
     2640#line 342 "lex.ll"
    26272641{ NAMEDOP_RETURN(ICR); }
    26282642        YY_BREAK
    2629 case 154:
    2630 YY_RULE_SETUP
    2631 #line 339 "lex.ll"
     2643case 156:
     2644YY_RULE_SETUP
     2645#line 343 "lex.ll"
    26322646{ NAMEDOP_RETURN(DECR); }
    26332647        YY_BREAK
    2634 case 155:
    2635 YY_RULE_SETUP
    2636 #line 340 "lex.ll"
     2648case 157:
     2649YY_RULE_SETUP
     2650#line 344 "lex.ll"
    26372651{ NAMEDOP_RETURN(EQ); }
    26382652        YY_BREAK
    2639 case 156:
    2640 YY_RULE_SETUP
    2641 #line 341 "lex.ll"
     2653case 158:
     2654YY_RULE_SETUP
     2655#line 345 "lex.ll"
    26422656{ NAMEDOP_RETURN(NE); }
    26432657        YY_BREAK
    2644 case 157:
    2645 YY_RULE_SETUP
    2646 #line 342 "lex.ll"
     2658case 159:
     2659YY_RULE_SETUP
     2660#line 346 "lex.ll"
    26472661{ NAMEDOP_RETURN(LS); }
    26482662        YY_BREAK
    2649 case 158:
    2650 YY_RULE_SETUP
    2651 #line 343 "lex.ll"
     2663case 160:
     2664YY_RULE_SETUP
     2665#line 347 "lex.ll"
    26522666{ NAMEDOP_RETURN(RS); }
    26532667        YY_BREAK
    2654 case 159:
    2655 YY_RULE_SETUP
    2656 #line 344 "lex.ll"
     2668case 161:
     2669YY_RULE_SETUP
     2670#line 348 "lex.ll"
    26572671{ NAMEDOP_RETURN(LE); }
    26582672        YY_BREAK
    2659 case 160:
    2660 YY_RULE_SETUP
    2661 #line 345 "lex.ll"
     2673case 162:
     2674YY_RULE_SETUP
     2675#line 349 "lex.ll"
    26622676{ NAMEDOP_RETURN(GE); }
    26632677        YY_BREAK
    2664 case 161:
    2665 YY_RULE_SETUP
    2666 #line 346 "lex.ll"
     2678case 163:
     2679YY_RULE_SETUP
     2680#line 350 "lex.ll"
    26672681{ NAMEDOP_RETURN(ANDAND); }
    26682682        YY_BREAK
    2669 case 162:
    2670 YY_RULE_SETUP
    2671 #line 347 "lex.ll"
     2683case 164:
     2684YY_RULE_SETUP
     2685#line 351 "lex.ll"
    26722686{ NAMEDOP_RETURN(OROR); }
    26732687        YY_BREAK
    2674 case 163:
    2675 YY_RULE_SETUP
    2676 #line 348 "lex.ll"
     2688case 165:
     2689YY_RULE_SETUP
     2690#line 352 "lex.ll"
    26772691{ NAMEDOP_RETURN(ARROW); }
    26782692        YY_BREAK
    2679 case 164:
    2680 YY_RULE_SETUP
    2681 #line 349 "lex.ll"
     2693case 166:
     2694YY_RULE_SETUP
     2695#line 353 "lex.ll"
    26822696{ NAMEDOP_RETURN(PLUSassign); }
    26832697        YY_BREAK
    2684 case 165:
    2685 YY_RULE_SETUP
    2686 #line 350 "lex.ll"
     2698case 167:
     2699YY_RULE_SETUP
     2700#line 354 "lex.ll"
    26872701{ NAMEDOP_RETURN(MINUSassign); }
    26882702        YY_BREAK
    2689 case 166:
    2690 YY_RULE_SETUP
    2691 #line 351 "lex.ll"
     2703case 168:
     2704YY_RULE_SETUP
     2705#line 355 "lex.ll"
    26922706{ NAMEDOP_RETURN(MULTassign); }
    26932707        YY_BREAK
    2694 case 167:
    2695 YY_RULE_SETUP
    2696 #line 352 "lex.ll"
     2708case 169:
     2709YY_RULE_SETUP
     2710#line 356 "lex.ll"
    26972711{ NAMEDOP_RETURN(DIVassign); }
    26982712        YY_BREAK
    2699 case 168:
    2700 YY_RULE_SETUP
    2701 #line 353 "lex.ll"
     2713case 170:
     2714YY_RULE_SETUP
     2715#line 357 "lex.ll"
    27022716{ NAMEDOP_RETURN(MODassign); }
    27032717        YY_BREAK
    2704 case 169:
    2705 YY_RULE_SETUP
    2706 #line 354 "lex.ll"
     2718case 171:
     2719YY_RULE_SETUP
     2720#line 358 "lex.ll"
    27072721{ NAMEDOP_RETURN(ANDassign); }
    27082722        YY_BREAK
    2709 case 170:
    2710 YY_RULE_SETUP
    2711 #line 355 "lex.ll"
     2723case 172:
     2724YY_RULE_SETUP
     2725#line 359 "lex.ll"
    27122726{ NAMEDOP_RETURN(ORassign); }
    27132727        YY_BREAK
    2714 case 171:
    2715 YY_RULE_SETUP
    2716 #line 356 "lex.ll"
     2728case 173:
     2729YY_RULE_SETUP
     2730#line 360 "lex.ll"
    27172731{ NAMEDOP_RETURN(ERassign); }
    27182732        YY_BREAK
    2719 case 172:
    2720 YY_RULE_SETUP
    2721 #line 357 "lex.ll"
     2733case 174:
     2734YY_RULE_SETUP
     2735#line 361 "lex.ll"
    27222736{ NAMEDOP_RETURN(LSassign); }
    27232737        YY_BREAK
    2724 case 173:
    2725 YY_RULE_SETUP
    2726 #line 358 "lex.ll"
     2738case 175:
     2739YY_RULE_SETUP
     2740#line 362 "lex.ll"
    27272741{ NAMEDOP_RETURN(RSassign); }
    27282742        YY_BREAK
    2729 case 174:
    2730 YY_RULE_SETUP
    2731 #line 360 "lex.ll"
     2743case 176:
     2744YY_RULE_SETUP
     2745#line 364 "lex.ll"
    27322746{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27332747        YY_BREAK
    27342748/* CFA, operator identifier */
    2735 case 175:
    2736 YY_RULE_SETUP
    2737 #line 363 "lex.ll"
     2749case 177:
     2750YY_RULE_SETUP
     2751#line 367 "lex.ll"
    27382752{ IDENTIFIER_RETURN(); }                                // unary
    27392753        YY_BREAK
    2740 case 176:
    2741 YY_RULE_SETUP
    2742 #line 364 "lex.ll"
     2754case 178:
     2755YY_RULE_SETUP
     2756#line 368 "lex.ll"
    27432757{ IDENTIFIER_RETURN(); }
    27442758        YY_BREAK
    2745 case 177:
    2746 YY_RULE_SETUP
    2747 #line 365 "lex.ll"
     2759case 179:
     2760YY_RULE_SETUP
     2761#line 369 "lex.ll"
    27482762{ IDENTIFIER_RETURN(); }
    27492763        YY_BREAK
    2750 case 178:
    2751 YY_RULE_SETUP
    2752 #line 366 "lex.ll"
     2764case 180:
     2765YY_RULE_SETUP
     2766#line 370 "lex.ll"
    27532767{ IDENTIFIER_RETURN(); }                // binary
    27542768        YY_BREAK
     
    27792793          an argument list.
    27802794        */
    2781 case 179:
    2782 YY_RULE_SETUP
    2783 #line 393 "lex.ll"
     2795case 181:
     2796YY_RULE_SETUP
     2797#line 397 "lex.ll"
    27842798{
    27852799        // 1 or 2 character unary operator ?
     
    27942808        YY_BREAK
    27952809/* unknown characters */
    2796 case 180:
    2797 YY_RULE_SETUP
    2798 #line 405 "lex.ll"
     2810case 182:
     2811YY_RULE_SETUP
     2812#line 409 "lex.ll"
    27992813{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28002814        YY_BREAK
    2801 case 181:
    2802 YY_RULE_SETUP
    2803 #line 407 "lex.ll"
     2815case 183:
     2816YY_RULE_SETUP
     2817#line 411 "lex.ll"
    28042818ECHO;
    28052819        YY_BREAK
    2806 #line 2807 "Parser/lex.cc"
     2820#line 2821 "Parser/lex.cc"
    28072821case YY_STATE_EOF(INITIAL):
    28082822case YY_STATE_EOF(COMMENT):
     
    31013115                        {
    31023116                        yy_current_state = (int) yy_def[yy_current_state];
    3103                         if ( yy_current_state >= 892 )
     3117                        if ( yy_current_state >= 895 )
    31043118                                yy_c = yy_meta[(unsigned int) yy_c];
    31053119                        }
     
    31293143                {
    31303144                yy_current_state = (int) yy_def[yy_current_state];
    3131                 if ( yy_current_state >= 892 )
     3145                if ( yy_current_state >= 895 )
    31323146                        yy_c = yy_meta[(unsigned int) yy_c];
    31333147                }
    31343148        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3135         yy_is_jam = (yy_current_state == 891);
     3149        yy_is_jam = (yy_current_state == 894);
    31363150
    31373151        return yy_is_jam ? 0 : yy_current_state;
     
    37793793#define YYTABLES_NAME "yytables"
    37803794
    3781 #line 407 "lex.ll"
     3795#line 411 "lex.ll"
    37823796
    37833797
  • src/Parser/lex.ll

    r77971f6 r3f0c6a5  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue Oct 18 22:19:37 2016
    13  * Update Count     : 488
     12 * Last Modified On : Wed Oct 26 17:32:30 2016
     13 * Update Count     : 499
    1414 */
    1515
     
    9191
    9292decimal_digits ({decimal})|({decimal}({decimal}|"_")*{decimal})
    93 fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
     93real_decimal {decimal_digits}"."
     94real_fraction "."{decimal_digits}
     95real_constant {decimal_digits}?{real_fraction}
    9496exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    9597                                // GCC: D (double), DL (long double) and iI (imaginary) suffixes
    9698floating_suffix "_"?([fFdDlL][iI]?|"DL"|[iI][lLfFdD]?)
    9799                                //floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    98 floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
     100floating_constant (({real_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    99101
    100102binary_exponent "_"?[pP]"_"?[+-]?{decimal_digits}
     
    281283{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
    282284{hex_constant}  { NUMERIC_RETURN(INTEGERconstant); }
     285{real_decimal}  { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
     286{real_fraction} { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    283287{floating_constant}     { NUMERIC_RETURN(FLOATINGconstant); }
    284288{hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); }
  • src/Parser/parser.cc

    r77971f6 r3f0c6a5  
    201201     ATTR_TYPEGENname = 333,
    202202     INTEGERconstant = 334,
    203      FLOATINGconstant = 335,
    204      CHARACTERconstant = 336,
    205      STRINGliteral = 337,
    206      ZERO = 338,
    207      ONE = 339,
    208      ARROW = 340,
    209      ICR = 341,
    210      DECR = 342,
    211      LS = 343,
    212      RS = 344,
    213      LE = 345,
    214      GE = 346,
    215      EQ = 347,
    216      NE = 348,
    217      ANDAND = 349,
    218      OROR = 350,
    219      ELLIPSIS = 351,
    220      MULTassign = 352,
    221      DIVassign = 353,
    222      MODassign = 354,
    223      PLUSassign = 355,
    224      MINUSassign = 356,
    225      LSassign = 357,
    226      RSassign = 358,
    227      ANDassign = 359,
    228      ERassign = 360,
    229      ORassign = 361,
    230      ATassign = 362,
    231      THEN = 363
     203     CHARACTERconstant = 335,
     204     STRINGliteral = 336,
     205     REALDECIMALconstant = 337,
     206     REALFRACTIONconstant = 338,
     207     FLOATINGconstant = 339,
     208     ZERO = 340,
     209     ONE = 341,
     210     ARROW = 342,
     211     ICR = 343,
     212     DECR = 344,
     213     LS = 345,
     214     RS = 346,
     215     LE = 347,
     216     GE = 348,
     217     EQ = 349,
     218     NE = 350,
     219     ANDAND = 351,
     220     OROR = 352,
     221     ELLIPSIS = 353,
     222     MULTassign = 354,
     223     DIVassign = 355,
     224     MODassign = 356,
     225     PLUSassign = 357,
     226     MINUSassign = 358,
     227     LSassign = 359,
     228     RSassign = 360,
     229     ANDassign = 361,
     230     ERassign = 362,
     231     ORassign = 363,
     232     ATassign = 364,
     233     THEN = 365
    232234   };
    233235#endif
     
    310312#define ATTR_TYPEGENname 333
    311313#define INTEGERconstant 334
    312 #define FLOATINGconstant 335
    313 #define CHARACTERconstant 336
    314 #define STRINGliteral 337
    315 #define ZERO 338
    316 #define ONE 339
    317 #define ARROW 340
    318 #define ICR 341
    319 #define DECR 342
    320 #define LS 343
    321 #define RS 344
    322 #define LE 345
    323 #define GE 346
    324 #define EQ 347
    325 #define NE 348
    326 #define ANDAND 349
    327 #define OROR 350
    328 #define ELLIPSIS 351
    329 #define MULTassign 352
    330 #define DIVassign 353
    331 #define MODassign 354
    332 #define PLUSassign 355
    333 #define MINUSassign 356
    334 #define LSassign 357
    335 #define RSassign 358
    336 #define ANDassign 359
    337 #define ERassign 360
    338 #define ORassign 361
    339 #define ATassign 362
    340 #define THEN 363
     314#define CHARACTERconstant 335
     315#define STRINGliteral 336
     316#define REALDECIMALconstant 337
     317#define REALFRACTIONconstant 338
     318#define FLOATINGconstant 339
     319#define ZERO 340
     320#define ONE 341
     321#define ARROW 342
     322#define ICR 343
     323#define DECR 344
     324#define LS 345
     325#define RS 346
     326#define LE 347
     327#define GE 348
     328#define EQ 349
     329#define NE 350
     330#define ANDAND 351
     331#define OROR 352
     332#define ELLIPSIS 353
     333#define MULTassign 354
     334#define DIVassign 355
     335#define MODassign 356
     336#define PLUSassign 357
     337#define MINUSassign 358
     338#define LSassign 359
     339#define RSassign 360
     340#define ANDassign 361
     341#define ERassign 362
     342#define ORassign 363
     343#define ATassign 364
     344#define THEN 365
    341345
    342346
     
    348352
    349353/* Line 293 of yacc.c  */
    350 #line 116 "parser.yy"
     354#line 120 "parser.yy"
    351355
    352356        Token tok;
     
    368372
    369373/* Line 293 of yacc.c  */
    370 #line 371 "Parser/parser.cc"
     374#line 375 "Parser/parser.cc"
    371375} YYSTYPE;
    372376# define YYSTYPE_IS_TRIVIAL 1
     
    380384
    381385/* Line 343 of yacc.c  */
    382 #line 383 "Parser/parser.cc"
     386#line 387 "Parser/parser.cc"
    383387
    384388#ifdef short
     
    597601
    598602/* YYFINAL -- State number of the termination state.  */
    599 #define YYFINAL  250
     603#define YYFINAL  249
    600604/* YYLAST -- Last index in YYTABLE.  */
    601 #define YYLAST   10888
     605#define YYLAST   10266
    602606
    603607/* YYNTOKENS -- Number of terminals.  */
    604 #define YYNTOKENS  133
     608#define YYNTOKENS  135
    605609/* YYNNTS -- Number of nonterminals.  */
    606 #define YYNNTS  242
     610#define YYNNTS  243
    607611/* YYNRULES -- Number of rules.  */
    608 #define YYNRULES  754
     612#define YYNRULES  755
    609613/* YYNRULES -- Number of states.  */
    610 #define YYNSTATES  1558
     614#define YYNSTATES  1538
    611615
    612616/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    613617#define YYUNDEFTOK  2
    614 #define YYMAXUTOK   363
     618#define YYMAXUTOK   365
    615619
    616620#define YYTRANSLATE(YYX)                                                \
     
    623627       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624628       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    625        2,     2,     2,   121,     2,     2,     2,   124,   118,     2,
    626      109,   110,   117,   119,   116,   120,   113,   123,     2,     2,
    627        2,     2,     2,     2,     2,     2,     2,     2,   130,   132,
    628      125,   131,   126,   129,     2,     2,     2,     2,     2,     2,
     629       2,     2,     2,   123,     2,     2,     2,   126,   120,     2,
     630     111,   112,   119,   121,   118,   122,   115,   125,     2,     2,
     631       2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
     632     127,   133,   128,   131,     2,     2,     2,     2,     2,     2,
    629633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    630634       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    631        2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
     635       2,   113,     2,   114,   129,     2,     2,     2,     2,     2,
    632636       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    633637       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    634        2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
     638       2,     2,     2,   116,   130,   117,   124,     2,     2,     2,
    635639       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    636640       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    656660      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    657661      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    658      105,   106,   107,   108
     662     105,   106,   107,   108,   109,   110
    659663};
    660664
     
    665669{
    666670       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    667       17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    668       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    669       82,    90,    93,    96,   104,   109,   111,   115,   116,   118,
    670      120,   124,   126,   130,   138,   142,   150,   152,   154,   156,
    671      158,   160,   163,   166,   169,   172,   175,   178,   183,   186,
    672      191,   198,   200,   205,   210,   212,   214,   216,   218,   220,
    673      222,   224,   229,   234,   236,   240,   244,   248,   250,   254,
    674      258,   260,   264,   268,   270,   274,   278,   282,   286,   288,
    675      292,   296,   298,   302,   304,   308,   310,   314,   316,   320,
    676      322,   326,   328,   334,   339,   345,   347,   349,   353,   356,
    677      357,   359,   361,   363,   365,   367,   369,   371,   373,   375,
    678      377,   379,   381,   383,   386,   392,   399,   407,   409,   413,
    679      415,   419,   420,   422,   424,   426,   428,   430,   432,   434,
    680      436,   438,   445,   450,   453,   461,   463,   467,   469,   472,
    681      474,   477,   479,   482,   485,   491,   499,   505,   515,   521,
    682      531,   533,   537,   539,   541,   545,   549,   552,   554,   557,
    683      560,   561,   563,   566,   570,   571,   573,   576,   580,   584,
    684      589,   590,   592,   594,   597,   603,   611,   618,   625,   630,
    685      634,   639,   642,   646,   649,   653,   657,   661,   665,   671,
    686      675,   679,   684,   686,   692,   699,   705,   712,   722,   733,
    687      743,   754,   757,   759,   762,   765,   768,   770,   777,   786,
    688      797,   810,   825,   826,   828,   829,   831,   833,   837,   842,
    689      850,   851,   853,   857,   859,   863,   865,   867,   869,   873,
    690      875,   877,   879,   883,   884,   886,   890,   895,   897,   901,
    691      903,   905,   909,   913,   917,   921,   925,   928,   932,   939,
    692      943,   947,   952,   954,   957,   960,   964,   970,   979,   987,
    693      995,  1001,  1011,  1014,  1017,  1023,  1027,  1033,  1038,  1042,
    694     1047,  1052,  1060,  1064,  1068,  1072,  1076,  1081,  1088,  1090,
    695     1092,  1094,  1096,  1098,  1100,  1102,  1104,  1105,  1107,  1109,
    696     1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1127,  1133,
    697     1135,  1138,  1142,  1144,  1147,  1149,  1151,  1153,  1155,  1157,
    698     1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,
    699     1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1197,  1201,
    700     1205,  1207,  1211,  1213,  1216,  1219,  1222,  1227,  1232,  1237,
    701     1242,  1244,  1247,  1250,  1254,  1256,  1259,  1262,  1264,  1267,
    702     1270,  1274,  1276,  1279,  1282,  1284,  1286,  1291,  1294,  1295,
    703     1302,  1310,  1313,  1316,  1319,  1320,  1323,  1326,  1330,  1333,
    704     1337,  1339,  1342,  1346,  1349,  1352,  1357,  1358,  1360,  1363,
    705     1366,  1368,  1369,  1371,  1374,  1377,  1383,  1386,  1387,  1395,
    706     1398,  1403,  1404,  1407,  1408,  1410,  1412,  1414,  1420,  1426,
    707     1432,  1434,  1440,  1446,  1456,  1458,  1464,  1465,  1467,  1469,
    708     1475,  1477,  1479,  1485,  1491,  1493,  1497,  1501,  1506,  1508,
    709     1510,  1512,  1514,  1517,  1519,  1523,  1527,  1529,  1532,  1534,
    710     1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,
    711     1558,  1560,  1563,  1565,  1567,  1569,  1572,  1573,  1576,  1579,
    712     1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,  1607,  1609,
    713     1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,  1650,  1654,
    714     1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,  1684,  1686,
    715     1688,  1690,  1691,  1694,  1700,  1706,  1720,  1722,  1724,  1728,
    716     1732,  1735,  1739,  1743,  1746,  1751,  1753,  1760,  1770,  1771,
    717     1783,  1785,  1789,  1793,  1797,  1799,  1801,  1807,  1810,  1816,
    718     1817,  1819,  1821,  1825,  1826,  1828,  1830,  1832,  1834,  1835,
    719     1842,  1845,  1847,  1850,  1855,  1858,  1862,  1866,  1870,  1875,
    720     1881,  1887,  1893,  1900,  1902,  1904,  1906,  1910,  1911,  1917,
    721     1918,  1920,  1922,  1925,  1932,  1934,  1938,  1939,  1941,  1946,
    722     1948,  1950,  1952,  1954,  1957,  1959,  1962,  1965,  1967,  1971,
    723     1974,  1978,  1982,  1985,  1990,  1995,  1999,  2008,  2012,  2015,
    724     2017,  2020,  2027,  2036,  2040,  2043,  2047,  2051,  2056,  2061,
    725     2065,  2067,  2069,  2071,  2076,  2083,  2087,  2090,  2094,  2098,
    726     2103,  2108,  2112,  2115,  2117,  2120,  2123,  2125,  2129,  2132,
    727     2136,  2140,  2143,  2148,  2153,  2157,  2164,  2173,  2177,  2180,
    728     2182,  2185,  2188,  2191,  2195,  2199,  2202,  2207,  2212,  2216,
    729     2223,  2232,  2236,  2239,  2241,  2244,  2247,  2249,  2251,  2254,
    730     2258,  2262,  2265,  2270,  2277,  2286,  2288,  2291,  2294,  2296,
    731     2299,  2302,  2306,  2310,  2312,  2317,  2322,  2326,  2332,  2341,
    732     2345,  2348,  2352,  2354,  2360,  2366,  2373,  2380,  2382,  2385,
    733     2388,  2390,  2393,  2396,  2400,  2404,  2406,  2411,  2416,  2420,
    734     2426,  2435,  2439,  2441,  2444,  2446,  2449,  2456,  2462,  2469,
    735     2477,  2485,  2487,  2490,  2493,  2495,  2498,  2501,  2505,  2509,
    736     2511,  2516,  2521,  2525,  2534,  2538,  2540,  2542,  2545,  2547,
    737     2549,  2552,  2556,  2559,  2563,  2566,  2570,  2574,  2577,  2582,
    738     2586,  2589,  2593,  2596,  2601,  2605,  2608,  2615,  2622,  2629,
    739     2637,  2639,  2642,  2644,  2646,  2648,  2651,  2655,  2658,  2662,
    740     2665,  2669,  2673,  2678,  2681,  2685,  2690,  2693,  2699,  2705,
    741     2712,  2719,  2720,  2722,  2723
     671      17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
     672      37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
     673      72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
     674     120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
     675     157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
     676     187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
     677     224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
     678     253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
     679     287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
     680     321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
     681     353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
     682     377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
     683     408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
     684     431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
     685     468,   470,   473,   475,   478,   480,   483,   486,   492,   500,
     686     506,   516,   522,   532,   534,   538,   540,   542,   546,   550,
     687     553,   555,   558,   561,   562,   564,   567,   571,   572,   574,
     688     577,   581,   585,   590,   591,   593,   595,   598,   604,   612,
     689     619,   626,   631,   635,   640,   643,   647,   650,   654,   658,
     690     662,   666,   672,   676,   680,   685,   687,   693,   700,   706,
     691     713,   723,   734,   744,   755,   758,   760,   763,   766,   769,
     692     771,   778,   787,   798,   811,   826,   827,   829,   830,   832,
     693     834,   838,   843,   851,   852,   854,   858,   860,   864,   866,
     694     868,   870,   874,   876,   878,   880,   884,   885,   887,   891,
     695     896,   898,   902,   904,   906,   910,   914,   918,   922,   926,
     696     929,   933,   940,   944,   948,   953,   955,   958,   961,   965,
     697     971,   979,   987,   993,  1003,  1006,  1009,  1015,  1019,  1025,
     698    1030,  1034,  1039,  1044,  1052,  1056,  1060,  1064,  1068,  1073,
     699    1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,  1097,
     700    1099,  1101,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,
     701    1119,  1125,  1127,  1130,  1134,  1136,  1139,  1141,  1143,  1145,
     702    1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,  1165,
     703    1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1186,
     704    1189,  1193,  1197,  1199,  1203,  1205,  1208,  1211,  1214,  1219,
     705    1224,  1229,  1234,  1236,  1239,  1242,  1246,  1248,  1251,  1254,
     706    1256,  1259,  1262,  1266,  1268,  1271,  1274,  1276,  1278,  1283,
     707    1286,  1287,  1294,  1302,  1305,  1308,  1311,  1312,  1315,  1318,
     708    1322,  1325,  1329,  1331,  1334,  1338,  1341,  1344,  1349,  1350,
     709    1352,  1355,  1358,  1360,  1361,  1363,  1366,  1369,  1375,  1378,
     710    1379,  1387,  1390,  1395,  1396,  1399,  1400,  1402,  1404,  1406,
     711    1412,  1418,  1424,  1426,  1432,  1438,  1448,  1450,  1456,  1457,
     712    1459,  1461,  1467,  1469,  1471,  1477,  1483,  1485,  1489,  1493,
     713    1498,  1500,  1502,  1504,  1506,  1509,  1511,  1515,  1519,  1521,
     714    1524,  1526,  1530,  1532,  1534,  1536,  1538,  1540,  1542,  1544,
     715    1546,  1548,  1550,  1552,  1555,  1557,  1559,  1561,  1564,  1565,
     716    1568,  1571,  1573,  1578,  1579,  1581,  1584,  1588,  1593,  1596,
     717    1599,  1601,  1604,  1607,  1613,  1619,  1627,  1634,  1636,  1639,
     718    1642,  1646,  1648,  1651,  1654,  1659,  1662,  1667,  1668,  1673,
     719    1676,  1678,  1680,  1682,  1683,  1686,  1692,  1698,  1712,  1714,
     720    1716,  1720,  1724,  1727,  1731,  1735,  1738,  1743,  1745,  1752,
     721    1762,  1763,  1775,  1777,  1781,  1785,  1789,  1791,  1793,  1799,
     722    1802,  1808,  1809,  1811,  1813,  1817,  1818,  1820,  1822,  1824,
     723    1826,  1827,  1834,  1837,  1839,  1842,  1847,  1850,  1854,  1858,
     724    1862,  1867,  1873,  1879,  1885,  1892,  1894,  1896,  1898,  1902,
     725    1903,  1909,  1910,  1912,  1914,  1917,  1924,  1926,  1930,  1931,
     726    1933,  1938,  1940,  1942,  1944,  1946,  1949,  1951,  1954,  1957,
     727    1959,  1963,  1966,  1970,  1974,  1977,  1982,  1987,  1991,  2000,
     728    2004,  2007,  2009,  2012,  2019,  2028,  2032,  2035,  2039,  2043,
     729    2048,  2053,  2057,  2059,  2061,  2063,  2068,  2075,  2079,  2082,
     730    2086,  2090,  2095,  2100,  2104,  2107,  2109,  2112,  2115,  2117,
     731    2121,  2124,  2128,  2132,  2135,  2140,  2145,  2149,  2156,  2165,
     732    2169,  2172,  2174,  2177,  2180,  2183,  2187,  2191,  2194,  2199,
     733    2204,  2208,  2215,  2224,  2228,  2231,  2233,  2236,  2239,  2241,
     734    2243,  2246,  2250,  2254,  2257,  2262,  2269,  2278,  2280,  2283,
     735    2286,  2288,  2291,  2294,  2298,  2302,  2304,  2309,  2314,  2318,
     736    2324,  2333,  2337,  2340,  2344,  2346,  2352,  2358,  2365,  2372,
     737    2374,  2377,  2380,  2382,  2385,  2388,  2392,  2396,  2398,  2403,
     738    2408,  2412,  2418,  2427,  2431,  2433,  2436,  2438,  2441,  2448,
     739    2454,  2461,  2469,  2477,  2479,  2482,  2485,  2487,  2490,  2493,
     740    2497,  2501,  2503,  2508,  2513,  2517,  2526,  2530,  2532,  2534,
     741    2537,  2539,  2541,  2544,  2548,  2551,  2555,  2558,  2562,  2566,
     742    2569,  2574,  2578,  2581,  2585,  2588,  2593,  2597,  2600,  2607,
     743    2614,  2621,  2629,  2631,  2634,  2636,  2638,  2640,  2643,  2647,
     744    2650,  2654,  2657,  2661,  2665,  2670,  2673,  2677,  2682,  2685,
     745    2691,  2698,  2705,  2706,  2708,  2709
    742746};
    743747
     
    745749static const yytype_int16 yyrhs[] =
    746750{
    747      303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    748       -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    749       -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
    750       -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
    751      109,   171,   110,    -1,   109,   175,   110,    -1,   143,    -1,
    752      144,   111,   134,   166,   135,   112,    -1,   144,   109,   145,
    753      110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
    754      147,   135,   112,    -1,   144,   113,    79,    -1,   144,    85,
    755      139,    -1,   144,    85,   111,   134,   147,   135,   112,    -1,
    756      144,    86,    -1,   144,    87,    -1,   109,   276,   110,   114,
    757      280,   373,   115,    -1,   144,   114,   145,   115,    -1,   146,
    758       -1,   145,   116,   146,    -1,    -1,   166,    -1,   148,    -1,
    759      147,   116,   148,    -1,   149,    -1,   149,   113,   148,    -1,
    760      149,   113,   111,   134,   147,   135,   112,    -1,   149,    85,
    761      148,    -1,   149,    85,   111,   134,   147,   135,   112,    -1,
    762      139,    -1,    79,    -1,   144,    -1,   136,    -1,   141,    -1,
    763       40,   153,    -1,   151,   153,    -1,   152,   153,    -1,    86,
    764      150,    -1,    87,   150,    -1,    37,   150,    -1,    37,   109,
    765      276,   110,    -1,    66,   150,    -1,    66,   109,   276,   110,
    766       -1,    38,   109,   276,   116,   139,   110,    -1,    76,    -1,
    767       76,   109,   146,   110,    -1,    76,   109,   277,   110,    -1,
    768      117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
    769      122,    -1,   150,    -1,   109,   276,   110,   153,    -1,   109,
    770      276,   110,   169,    -1,   153,    -1,   154,   117,   153,    -1,
    771      154,   123,   153,    -1,   154,   124,   153,    -1,   154,    -1,
    772      155,   119,   154,    -1,   155,   120,   154,    -1,   155,    -1,
    773      156,    88,   155,    -1,   156,    89,   155,    -1,   156,    -1,
    774      157,   125,   156,    -1,   157,   126,   156,    -1,   157,    90,
    775      156,    -1,   157,    91,   156,    -1,   157,    -1,   158,    92,
    776      157,    -1,   158,    93,   157,    -1,   158,    -1,   159,   118,
    777      158,    -1,   159,    -1,   160,   127,   159,    -1,   160,    -1,
    778      161,   128,   160,    -1,   161,    -1,   162,    94,   161,    -1,
    779      162,    -1,   163,    95,   162,    -1,   163,    -1,   163,   129,
    780      171,   130,   164,    -1,   163,   129,   130,   164,    -1,   163,
    781      129,   171,   130,   169,    -1,   164,    -1,   164,    -1,   150,
    782      168,   166,    -1,   169,   374,    -1,    -1,   166,    -1,   131,
    783       -1,   107,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
    784       -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
    785       -1,   106,    -1,   111,   112,    -1,   111,   134,   166,   135,
    786      112,    -1,   111,   134,   116,   170,   135,   112,    -1,   111,
    787      134,   166,   116,   170,   135,   112,    -1,   167,    -1,   170,
    788      116,   167,    -1,   166,    -1,   171,   116,   166,    -1,    -1,
    789      171,    -1,   174,    -1,   175,    -1,   179,    -1,   180,    -1,
    790      192,    -1,   194,    -1,   195,    -1,   200,    -1,   127,   144,
    791      114,   145,   115,   132,    -1,    72,   130,   313,   173,    -1,
    792      114,   115,    -1,   114,   134,   134,   211,   176,   135,   115,
    793       -1,   177,    -1,   176,   134,   177,    -1,   214,    -1,    40,
    794      214,    -1,   309,    -1,   173,   135,    -1,   173,    -1,   178,
    795      173,    -1,   172,   132,    -1,    41,   109,   171,   110,   173,
    796       -1,    41,   109,   171,   110,   173,    42,   173,    -1,    43,
    797      109,   171,   110,   185,    -1,    43,   109,   171,   110,   114,
    798      134,   207,   186,   115,    -1,    53,   109,   171,   110,   185,
    799       -1,    53,   109,   171,   110,   114,   134,   207,   188,   115,
    800       -1,   165,    -1,   165,    96,   165,    -1,   311,    -1,   181,
    801       -1,   182,   116,   181,    -1,    44,   182,   130,    -1,    45,
    802      130,    -1,   183,    -1,   184,   183,    -1,   184,   173,    -1,
    803       -1,   187,    -1,   184,   178,    -1,   187,   184,   178,    -1,
    804       -1,   189,    -1,   184,   191,    -1,   184,   178,   190,    -1,
    805      189,   184,   191,    -1,   189,   184,   178,   190,    -1,    -1,
    806      191,    -1,    56,    -1,    56,   132,    -1,    47,   109,   171,
    807      110,   173,    -1,    46,   173,    47,   109,   171,   110,   132,
    808       -1,    48,   109,   134,   193,   110,   173,    -1,   172,   135,
    809      132,   172,   132,   172,    -1,   214,   172,   132,   172,    -1,
    810       51,    72,   132,    -1,    51,   117,   171,   132,    -1,    50,
    811      132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
    812       72,   132,    -1,    52,   172,   132,    -1,    61,   167,   132,
    813       -1,    62,   167,   132,    -1,    62,   167,    63,   166,   132,
    814       -1,    57,   175,   196,    -1,    57,   175,   198,    -1,    57,
    815      175,   196,   198,    -1,   197,    -1,    58,   109,    96,   110,
    816      175,    -1,   197,    58,   109,    96,   110,   175,    -1,    59,
    817      109,    96,   110,   175,    -1,   197,    59,   109,    96,   110,
    818      175,    -1,    58,   109,   134,   134,   199,   135,   110,   175,
    819      135,    -1,   197,    58,   109,   134,   134,   199,   135,   110,
    820      175,   135,    -1,    59,   109,   134,   134,   199,   135,   110,
    821      175,   135,    -1,   197,    59,   109,   134,   134,   199,   135,
    822      110,   175,   135,    -1,    60,   175,    -1,   227,    -1,   227,
    823      310,    -1,   227,   358,    -1,   367,   139,    -1,   367,    -1,
    824       64,   201,   109,   141,   110,   132,    -1,    64,   201,   109,
    825      141,   130,   202,   110,   132,    -1,    64,   201,   109,   141,
    826      130,   202,   130,   202,   110,   132,    -1,    64,   201,   109,
    827      141,   130,   202,   130,   202,   130,   205,   110,   132,    -1,
    828       64,   201,    51,   109,   141,   130,   130,   202,   130,   205,
    829      130,   206,   110,   132,    -1,    -1,    11,    -1,    -1,   203,
    830       -1,   204,    -1,   203,   116,   204,    -1,   141,   109,   165,
    831      110,    -1,   111,   165,   112,   141,   109,   165,   110,    -1,
    832       -1,   141,    -1,   205,   116,   141,    -1,   139,    -1,   206,
    833      116,   139,    -1,   135,    -1,   208,    -1,   214,    -1,   208,
    834      134,   214,    -1,   135,    -1,   210,    -1,   224,    -1,   210,
    835      134,   224,    -1,    -1,   212,    -1,    29,   213,   132,    -1,
    836      212,    29,   213,   132,    -1,   275,    -1,   213,   116,   275,
    837       -1,   215,    -1,   224,    -1,   216,   135,   132,    -1,   221,
    838      135,   132,    -1,   218,   135,   132,    -1,   294,   135,   132,
    839       -1,   297,   135,   132,    -1,   217,   278,    -1,   233,   217,
    840      278,    -1,   216,   135,   116,   134,   273,   278,    -1,   368,
    841      273,   312,    -1,   371,   273,   312,    -1,   229,   371,   273,
    842      312,    -1,   219,    -1,   229,   219,    -1,   233,   219,    -1,
    843      233,   229,   219,    -1,   218,   135,   116,   134,   273,    -1,
    844      111,   112,   273,   109,   134,   261,   135,   110,    -1,   371,
    845      273,   109,   134,   261,   135,   110,    -1,   220,   273,   109,
    846      134,   261,   135,   110,    -1,   111,   134,   263,   135,   112,
    847       -1,   111,   134,   263,   135,   116,   134,   264,   135,   112,
    848       -1,     3,   217,    -1,     3,   219,    -1,   221,   135,   116,
    849      134,   139,    -1,     3,   227,   310,    -1,   222,   135,   116,
    850      134,   310,    -1,   229,     3,   227,   310,    -1,   227,     3,
    851      310,    -1,   227,     3,   229,   310,    -1,     3,   139,   131,
    852      166,    -1,   223,   135,   116,   134,   139,   131,   166,    -1,
    853      225,   135,   132,    -1,   222,   135,   132,    -1,   223,   135,
    854      132,    -1,   241,   135,   132,    -1,   226,   310,   312,   278,
    855       -1,   225,   116,   313,   310,   312,   278,    -1,   237,    -1,
    856      241,    -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,
    857      244,    -1,   285,    -1,    -1,   229,    -1,   230,    -1,   229,
    858      230,    -1,   231,    -1,   315,    -1,    10,    -1,    12,    -1,
    859       11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   232,
    860      287,   110,    -1,   234,    -1,   229,   234,    -1,   233,   229,
    861      234,    -1,   235,    -1,   234,   235,    -1,     5,    -1,     7,
    862       -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
    863       -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
    864       -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
    865       -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   238,
    866       -1,   233,   238,    -1,   237,   235,    -1,   237,   235,   229,
    867       -1,   237,   235,   238,    -1,   239,    -1,   228,   240,   228,
    868       -1,   236,    -1,   229,   236,    -1,   239,   230,    -1,   239,
    869      236,    -1,    28,   109,   277,   110,    -1,    28,   109,   171,
    870      110,    -1,    78,   109,   277,   110,    -1,    78,   109,   171,
    871      110,    -1,   242,    -1,   233,   242,    -1,   241,   235,    -1,
    872      241,   235,   229,    -1,   245,    -1,   229,   245,    -1,   242,
    873      230,    -1,   244,    -1,   233,   244,    -1,   243,   235,    -1,
    874      243,   235,   229,    -1,    74,    -1,   229,    74,    -1,   244,
    875      230,    -1,   246,    -1,   257,    -1,   248,   114,   249,   115,
    876       -1,   248,   275,    -1,    -1,   248,   275,   247,   114,   249,
    877      115,    -1,   248,   109,   293,   110,   114,   249,   115,    -1,
    878      248,   286,    -1,    31,   313,    -1,    32,   313,    -1,    -1,
    879      249,   250,    -1,   251,   132,    -1,    40,   251,   132,    -1,
    880      252,   132,    -1,    40,   252,   132,    -1,   367,    -1,   367,
    881      275,    -1,   251,   116,   275,    -1,   251,   116,    -1,   227,
    882      253,    -1,   252,   116,   313,   253,    -1,    -1,   255,    -1,
    883      319,   254,    -1,   332,   254,    -1,   358,    -1,    -1,   255,
    884       -1,   130,   165,    -1,    30,   313,    -1,   256,   114,   259,
    885      373,   115,    -1,   256,   275,    -1,    -1,   256,   275,   258,
    886      114,   259,   373,   115,    -1,   275,   260,    -1,   259,   116,
    887      275,   260,    -1,    -1,   131,   165,    -1,    -1,   262,    -1,
    888      264,    -1,   263,    -1,   263,   135,   116,   134,   264,    -1,
    889      264,   135,   116,   134,    96,    -1,   263,   135,   116,   134,
    890       96,    -1,   268,    -1,   264,   135,   116,   134,   268,    -1,
    891      263,   135,   116,   134,   268,    -1,   263,   135,   116,   134,
    892      264,   135,   116,   134,   268,    -1,   269,    -1,   264,   135,
    893      116,   134,   269,    -1,    -1,   266,    -1,   267,    -1,   267,
    894      135,   116,   134,    96,    -1,   271,    -1,   270,    -1,   267,
    895      135,   116,   134,   271,    -1,   267,   135,   116,   134,   270,
    896       -1,   270,    -1,   363,   273,   374,    -1,   371,   273,   374,
    897       -1,   229,   371,   273,   374,    -1,   219,    -1,   271,    -1,
    898      363,    -1,   371,    -1,   229,   371,    -1,   372,    -1,   226,
    899      337,   374,    -1,   226,   341,   374,    -1,   226,    -1,   226,
    900      352,    -1,   139,    -1,   272,   116,   139,    -1,   137,    -1,
    901       74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
    902      139,    -1,    74,    -1,    75,    -1,   367,    -1,   227,    -1,
    903      227,   358,    -1,   367,    -1,   372,    -1,   227,    -1,   227,
    904      346,    -1,    -1,   131,   279,    -1,   107,   279,    -1,   166,
    905       -1,   114,   280,   373,   115,    -1,    -1,   279,    -1,   281,
    906      279,    -1,   280,   116,   279,    -1,   280,   116,   281,   279,
    907       -1,   282,   130,    -1,   275,   130,    -1,   283,    -1,   282,
    908      283,    -1,   113,   275,    -1,   111,   134,   166,   135,   112,
    909       -1,   111,   134,   311,   135,   112,    -1,   111,   134,   165,
    910       96,   165,   135,   112,    -1,   113,   111,   134,   147,   135,
    911      112,    -1,   285,    -1,   233,   285,    -1,   284,   235,    -1,
    912      284,   235,   229,    -1,   286,    -1,   229,   286,    -1,   285,
    913      230,    -1,    75,   109,   293,   110,    -1,   288,   374,    -1,
    914      287,   116,   288,   374,    -1,    -1,   290,   275,   289,   291,
    915       -1,   227,   337,    -1,    33,    -1,    35,    -1,    34,    -1,
    916       -1,   291,   292,    -1,   128,   275,   109,   293,   110,    -1,
    917      128,   114,   134,   299,   115,    -1,   128,   109,   134,   287,
    918      135,   110,   114,   134,   299,   115,   109,   293,   110,    -1,
    919      277,    -1,   166,    -1,   293,   116,   277,    -1,   293,   116,
    920      166,    -1,    33,   295,    -1,   234,    33,   295,    -1,   294,
    921      116,   295,    -1,   296,   291,    -1,   296,   291,   131,   277,
    922       -1,   275,    -1,   274,   109,   134,   287,   135,   110,    -1,
    923       36,   275,   109,   134,   287,   135,   110,   114,   115,    -1,
    924       -1,    36,   275,   109,   134,   287,   135,   110,   114,   298,
    925      299,   115,    -1,   300,    -1,   299,   134,   300,    -1,   301,
    926      135,   132,    -1,   302,   135,   132,    -1,   217,    -1,   219,
    927       -1,   301,   135,   116,   134,   273,    -1,   227,   310,    -1,
    928      302,   135,   116,   134,   310,    -1,    -1,   304,    -1,   306,
    929       -1,   304,   134,   306,    -1,    -1,   304,    -1,   214,    -1,
    930      308,    -1,   200,    -1,    -1,     5,    82,   307,   114,   305,
    931      115,    -1,    40,   306,    -1,   309,    -1,   324,   175,    -1,
    932      328,   134,   209,   175,    -1,   218,   175,    -1,   226,   324,
    933      175,    -1,   229,   324,   175,    -1,   233,   324,   175,    -1,
    934      233,   229,   324,   175,    -1,   226,   328,   134,   209,   175,
    935       -1,   229,   328,   134,   209,   175,    -1,   233,   328,   134,
    936      209,   175,    -1,   233,   229,   328,   134,   209,   175,    -1,
    937      319,    -1,   332,    -1,   324,    -1,   165,   122,   165,    -1,
    938       -1,    64,   109,   142,   110,   313,    -1,    -1,   314,    -1,
    939      315,    -1,   314,   315,    -1,    39,   109,   109,   316,   110,
    940      110,    -1,   317,    -1,   316,   116,   317,    -1,    -1,   318,
    941       -1,   318,   109,   172,   110,    -1,   273,    -1,   235,    -1,
    942      236,    -1,   230,    -1,   320,   313,    -1,   321,    -1,   322,
    943      313,    -1,   323,   313,    -1,   137,    -1,   109,   320,   110,
    944       -1,   151,   319,    -1,   151,   229,   319,    -1,   109,   321,
    945      110,    -1,   320,   350,    -1,   109,   321,   110,   350,    -1,
    946      109,   322,   110,   351,    -1,   109,   322,   110,    -1,   109,
    947      321,   110,   109,   134,   265,   135,   110,    -1,   109,   323,
    948      110,    -1,   325,   313,    -1,   326,    -1,   327,   313,    -1,
    949      320,   109,   134,   265,   135,   110,    -1,   109,   326,   110,
    950      109,   134,   265,   135,   110,    -1,   109,   325,   110,    -1,
    951      151,   324,    -1,   151,   229,   324,    -1,   109,   326,   110,
    952       -1,   109,   326,   110,   350,    -1,   109,   327,   110,   351,
    953       -1,   109,   327,   110,    -1,   329,    -1,   330,    -1,   331,
    954       -1,   320,   109,   272,   110,    -1,   109,   330,   110,   109,
    955      272,   110,    -1,   109,   329,   110,    -1,   151,   328,    -1,
    956      151,   229,   328,    -1,   109,   330,   110,    -1,   109,   330,
    957      110,   350,    -1,   109,   331,   110,   351,    -1,   109,   331,
    958      110,    -1,   333,   313,    -1,   334,    -1,   335,   313,    -1,
    959      336,   313,    -1,   342,    -1,   109,   333,   110,    -1,   151,
    960      332,    -1,   151,   229,   332,    -1,   109,   334,   110,    -1,
    961      333,   350,    -1,   109,   334,   110,   350,    -1,   109,   335,
    962      110,   351,    -1,   109,   335,   110,    -1,   333,   109,   134,
    963      265,   135,   110,    -1,   109,   334,   110,   109,   134,   265,
    964      135,   110,    -1,   109,   336,   110,    -1,   320,   313,    -1,
    965      338,    -1,   339,   313,    -1,   340,   313,    -1,   151,   337,
    966       -1,   151,   229,   337,    -1,   109,   338,   110,    -1,   320,
    967      356,    -1,   109,   338,   110,   350,    -1,   109,   339,   110,
    968      351,    -1,   109,   339,   110,    -1,   320,   109,   134,   265,
    969      135,   110,    -1,   109,   338,   110,   109,   134,   265,   135,
    970      110,    -1,   109,   340,   110,    -1,   342,   313,    -1,   343,
    971       -1,   344,   313,    -1,   345,   313,    -1,    74,    -1,    75,
    972       -1,   151,   341,    -1,   151,   229,   341,    -1,   109,   343,
    973      110,    -1,   342,   356,    -1,   109,   343,   110,   356,    -1,
    974      342,   109,   134,   265,   135,   110,    -1,   109,   343,   110,
    975      109,   134,   265,   135,   110,    -1,   347,    -1,   348,   313,
    976       -1,   349,   313,    -1,   151,    -1,   151,   229,    -1,   151,
    977      346,    -1,   151,   229,   346,    -1,   109,   347,   110,    -1,
    978      350,    -1,   109,   347,   110,   350,    -1,   109,   348,   110,
    979      351,    -1,   109,   348,   110,    -1,   109,   134,   265,   135,
    980      110,    -1,   109,   347,   110,   109,   134,   265,   135,   110,
    981       -1,   109,   349,   110,    -1,   111,   112,    -1,   111,   112,
    982      351,    -1,   351,    -1,   111,   134,   166,   135,   112,    -1,
    983      111,   134,   117,   135,   112,    -1,   351,   111,   134,   166,
    984      135,   112,    -1,   351,   111,   134,   117,   135,   112,    -1,
    985      353,    -1,   354,   313,    -1,   355,   313,    -1,   151,    -1,
    986      151,   229,    -1,   151,   352,    -1,   151,   229,   352,    -1,
    987      109,   353,   110,    -1,   356,    -1,   109,   353,   110,   356,
    988       -1,   109,   354,   110,   351,    -1,   109,   354,   110,    -1,
    989      109,   134,   265,   135,   110,    -1,   109,   353,   110,   109,
    990      134,   265,   135,   110,    -1,   109,   355,   110,    -1,   357,
    991       -1,   357,   351,    -1,   351,    -1,   111,   112,    -1,   111,
    992      134,   229,   117,   135,   112,    -1,   111,   134,   229,   135,
    993      112,    -1,   111,   134,   229,   166,   135,   112,    -1,   111,
    994      134,     7,   228,   166,   135,   112,    -1,   111,   134,   229,
    995        7,   166,   135,   112,    -1,   359,    -1,   360,   313,    -1,
    996      361,   313,    -1,   151,    -1,   151,   229,    -1,   151,   358,
    997       -1,   151,   229,   358,    -1,   109,   359,   110,    -1,   350,
    998       -1,   109,   359,   110,   350,    -1,   109,   360,   110,   351,
    999       -1,   109,   360,   110,    -1,   109,   359,   110,   109,   134,
    1000      265,   135,   110,    -1,   109,   361,   110,    -1,   363,    -1,
    1001      371,    -1,   229,   371,    -1,   364,    -1,   365,    -1,   151,
    1002      227,    -1,   229,   151,   227,    -1,   151,   372,    -1,   229,
    1003      151,   372,    -1,   151,   362,    -1,   229,   151,   362,    -1,
    1004      111,   112,   227,    -1,   366,   227,    -1,   111,   112,   351,
    1005      227,    -1,   366,   351,   227,    -1,   351,   227,    -1,   111,
    1006      112,   364,    -1,   366,   364,    -1,   111,   112,   351,   364,
    1007       -1,   366,   351,   364,    -1,   351,   364,    -1,   111,   134,
    1008      229,   117,   135,   112,    -1,   111,   134,   229,   166,   135,
    1009      112,    -1,   111,   134,   233,   166,   135,   112,    -1,   111,
    1010      134,   233,   229,   166,   135,   112,    -1,   371,    -1,   229,
    1011      371,    -1,   368,    -1,   369,    -1,   370,    -1,   151,   227,
    1012       -1,   229,   151,   227,    -1,   151,   372,    -1,   229,   151,
    1013      372,    -1,   151,   367,    -1,   229,   151,   367,    -1,   111,
    1014      112,   227,    -1,   111,   112,   351,   227,    -1,   351,   227,
    1015       -1,   111,   112,   369,    -1,   111,   112,   351,   369,    -1,
    1016      351,   369,    -1,   111,   134,   264,   135,   112,    -1,   111,
    1017      112,   109,   261,   110,    -1,   371,   109,   134,   261,   135,
    1018      110,    -1,   220,   109,   134,   261,   135,   110,    -1,    -1,
    1019      116,    -1,    -1,   131,   166,    -1
     751     306,     0,    -1,    -1,    -1,    79,    -1,    82,    -1,    83,
     752      -1,    84,    -1,    80,    -1,    72,    -1,    76,    -1,   142,
     753      -1,    72,    -1,    76,    -1,    72,    -1,   142,    -1,    85,
     754      -1,    86,    -1,   144,    -1,    81,    -1,   144,    81,    -1,
     755      72,    -1,   142,    -1,   172,    -1,   111,   174,   112,    -1,
     756     111,   178,   112,    -1,   145,    -1,   146,   113,   136,   169,
     757     137,   114,    -1,   146,   111,   147,   112,    -1,   146,   115,
     758     141,    -1,   146,   115,   113,   136,   149,   137,   114,    -1,
     759     146,    83,    -1,   146,    87,   141,    -1,   146,    87,   113,
     760     136,   149,   137,   114,    -1,   146,    88,    -1,   146,    89,
     761      -1,   111,   279,   112,   116,   283,   376,   117,    -1,   146,
     762     116,   147,   117,    -1,   148,    -1,   147,   118,   148,    -1,
     763      -1,   169,    -1,   150,    -1,   149,   118,   150,    -1,   151,
     764      -1,    82,   150,    -1,    82,   113,   136,   149,   137,   114,
     765      -1,   151,   115,   150,    -1,   151,   115,   113,   136,   149,
     766     137,   114,    -1,   151,    87,   150,    -1,   151,    87,   113,
     767     136,   149,   137,   114,    -1,    79,   152,    -1,    84,   152,
     768      -1,   141,   152,    -1,    -1,   152,    83,    -1,   146,    -1,
     769     138,    -1,   143,    -1,    40,   156,    -1,   154,   156,    -1,
     770     155,   156,    -1,    88,   153,    -1,    89,   153,    -1,    37,
     771     153,    -1,    37,   111,   279,   112,    -1,    66,   153,    -1,
     772      66,   111,   279,   112,    -1,    38,   111,   279,   118,   141,
     773     112,    -1,    76,    -1,    76,   111,   148,   112,    -1,    76,
     774     111,   280,   112,    -1,   119,    -1,   120,    -1,   121,    -1,
     775     122,    -1,   123,    -1,   124,    -1,   153,    -1,   111,   279,
     776     112,   156,    -1,   156,    -1,   157,   119,   156,    -1,   157,
     777     125,   156,    -1,   157,   126,   156,    -1,   157,    -1,   158,
     778     121,   157,    -1,   158,   122,   157,    -1,   158,    -1,   159,
     779      90,   158,    -1,   159,    91,   158,    -1,   159,    -1,   160,
     780     127,   159,    -1,   160,   128,   159,    -1,   160,    92,   159,
     781      -1,   160,    93,   159,    -1,   160,    -1,   161,    94,   160,
     782      -1,   161,    95,   160,    -1,   161,    -1,   162,   120,   161,
     783      -1,   162,    -1,   163,   129,   162,    -1,   163,    -1,   164,
     784     130,   163,    -1,   164,    -1,   165,    96,   164,    -1,   165,
     785      -1,   166,    97,   165,    -1,   166,    -1,   166,   131,   174,
     786     132,   167,    -1,   166,   131,   132,   167,    -1,   167,    -1,
     787     167,    -1,   153,   171,   169,    -1,    -1,   169,    -1,   133,
     788      -1,   109,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
     789      -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,
     790      -1,   108,    -1,   113,   136,   118,   173,   137,   114,    -1,
     791     113,   136,   169,   118,   173,   137,   114,    -1,   170,    -1,
     792     173,   118,   170,    -1,   169,    -1,   174,   118,   169,    -1,
     793      -1,   174,    -1,   177,    -1,   178,    -1,   182,    -1,   183,
     794      -1,   195,    -1,   197,    -1,   198,    -1,   203,    -1,   129,
     795     146,   116,   147,   117,   134,    -1,    72,   132,   316,   176,
     796      -1,   116,   117,    -1,   116,   136,   136,   214,   179,   137,
     797     117,    -1,   180,    -1,   179,   136,   180,    -1,   217,    -1,
     798      40,   217,    -1,   312,    -1,   176,   137,    -1,   176,    -1,
     799     181,   176,    -1,   175,   134,    -1,    41,   111,   174,   112,
     800     176,    -1,    41,   111,   174,   112,   176,    42,   176,    -1,
     801      43,   111,   174,   112,   188,    -1,    43,   111,   174,   112,
     802     116,   136,   210,   189,   117,    -1,    53,   111,   174,   112,
     803     188,    -1,    53,   111,   174,   112,   116,   136,   210,   191,
     804     117,    -1,   168,    -1,   168,    98,   168,    -1,   314,    -1,
     805     184,    -1,   185,   118,   184,    -1,    44,   185,   132,    -1,
     806      45,   132,    -1,   186,    -1,   187,   186,    -1,   187,   176,
     807      -1,    -1,   190,    -1,   187,   181,    -1,   190,   187,   181,
     808      -1,    -1,   192,    -1,   187,   194,    -1,   187,   181,   193,
     809      -1,   192,   187,   194,    -1,   192,   187,   181,   193,    -1,
     810      -1,   194,    -1,    56,    -1,    56,   134,    -1,    47,   111,
     811     174,   112,   176,    -1,    46,   176,    47,   111,   174,   112,
     812     134,    -1,    48,   111,   136,   196,   112,   176,    -1,   175,
     813     137,   134,   175,   134,   175,    -1,   217,   175,   134,   175,
     814      -1,    51,    72,   134,    -1,    51,   119,   174,   134,    -1,
     815      50,   134,    -1,    50,    72,   134,    -1,    49,   134,    -1,
     816      49,    72,   134,    -1,    52,   175,   134,    -1,    61,   170,
     817     134,    -1,    62,   170,   134,    -1,    62,   170,    63,   169,
     818     134,    -1,    57,   178,   199,    -1,    57,   178,   201,    -1,
     819      57,   178,   199,   201,    -1,   200,    -1,    58,   111,    98,
     820     112,   178,    -1,   200,    58,   111,    98,   112,   178,    -1,
     821      59,   111,    98,   112,   178,    -1,   200,    59,   111,    98,
     822     112,   178,    -1,    58,   111,   136,   136,   202,   137,   112,
     823     178,   137,    -1,   200,    58,   111,   136,   136,   202,   137,
     824     112,   178,   137,    -1,    59,   111,   136,   136,   202,   137,
     825     112,   178,   137,    -1,   200,    59,   111,   136,   136,   202,
     826     137,   112,   178,   137,    -1,    60,   178,    -1,   230,    -1,
     827     230,   313,    -1,   230,   361,    -1,   370,   141,    -1,   370,
     828      -1,    64,   204,   111,   143,   112,   134,    -1,    64,   204,
     829     111,   143,   132,   205,   112,   134,    -1,    64,   204,   111,
     830     143,   132,   205,   132,   205,   112,   134,    -1,    64,   204,
     831     111,   143,   132,   205,   132,   205,   132,   208,   112,   134,
     832      -1,    64,   204,    51,   111,   143,   132,   132,   205,   132,
     833     208,   132,   209,   112,   134,    -1,    -1,    11,    -1,    -1,
     834     206,    -1,   207,    -1,   206,   118,   207,    -1,   143,   111,
     835     168,   112,    -1,   113,   168,   114,   143,   111,   168,   112,
     836      -1,    -1,   143,    -1,   208,   118,   143,    -1,   141,    -1,
     837     209,   118,   141,    -1,   137,    -1,   211,    -1,   217,    -1,
     838     211,   136,   217,    -1,   137,    -1,   213,    -1,   227,    -1,
     839     213,   136,   227,    -1,    -1,   215,    -1,    29,   216,   134,
     840      -1,   215,    29,   216,   134,    -1,   278,    -1,   216,   118,
     841     278,    -1,   218,    -1,   227,    -1,   219,   137,   134,    -1,
     842     224,   137,   134,    -1,   221,   137,   134,    -1,   297,   137,
     843     134,    -1,   300,   137,   134,    -1,   220,   281,    -1,   236,
     844     220,   281,    -1,   219,   137,   118,   136,   276,   281,    -1,
     845     371,   276,   315,    -1,   374,   276,   315,    -1,   232,   374,
     846     276,   315,    -1,   222,    -1,   232,   222,    -1,   236,   222,
     847      -1,   236,   232,   222,    -1,   221,   137,   118,   136,   276,
     848      -1,   374,   276,   111,   136,   264,   137,   112,    -1,   223,
     849     276,   111,   136,   264,   137,   112,    -1,   113,   136,   266,
     850     137,   114,    -1,   113,   136,   266,   137,   118,   136,   267,
     851     137,   114,    -1,     3,   220,    -1,     3,   222,    -1,   224,
     852     137,   118,   136,   141,    -1,     3,   230,   313,    -1,   225,
     853     137,   118,   136,   313,    -1,   232,     3,   230,   313,    -1,
     854     230,     3,   313,    -1,   230,     3,   232,   313,    -1,     3,
     855     141,   133,   169,    -1,   226,   137,   118,   136,   141,   133,
     856     169,    -1,   228,   137,   134,    -1,   225,   137,   134,    -1,
     857     226,   137,   134,    -1,   244,   137,   134,    -1,   229,   313,
     858     315,   281,    -1,   228,   118,   316,   313,   315,   281,    -1,
     859     240,    -1,   244,    -1,   246,    -1,   287,    -1,   241,    -1,
     860     245,    -1,   247,    -1,   288,    -1,    -1,   232,    -1,   233,
     861      -1,   232,   233,    -1,   234,    -1,   318,    -1,    10,    -1,
     862      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
     863     111,   235,   290,   112,    -1,   237,    -1,   232,   237,    -1,
     864     236,   232,   237,    -1,   238,    -1,   237,   238,    -1,     5,
     865      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     866      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     867      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     868      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     869      -1,   241,    -1,   236,   241,    -1,   240,   238,    -1,   240,
     870     238,   232,    -1,   240,   238,   241,    -1,   242,    -1,   231,
     871     243,   231,    -1,   239,    -1,   232,   239,    -1,   242,   233,
     872      -1,   242,   239,    -1,    28,   111,   280,   112,    -1,    28,
     873     111,   174,   112,    -1,    78,   111,   280,   112,    -1,    78,
     874     111,   174,   112,    -1,   245,    -1,   236,   245,    -1,   244,
     875     238,    -1,   244,   238,   232,    -1,   248,    -1,   232,   248,
     876      -1,   245,   233,    -1,   247,    -1,   236,   247,    -1,   246,
     877     238,    -1,   246,   238,   232,    -1,    74,    -1,   232,    74,
     878      -1,   247,   233,    -1,   249,    -1,   260,    -1,   251,   116,
     879     252,   117,    -1,   251,   278,    -1,    -1,   251,   278,   250,
     880     116,   252,   117,    -1,   251,   111,   296,   112,   116,   252,
     881     117,    -1,   251,   289,    -1,    31,   316,    -1,    32,   316,
     882      -1,    -1,   252,   253,    -1,   254,   134,    -1,    40,   254,
     883     134,    -1,   255,   134,    -1,    40,   255,   134,    -1,   370,
     884      -1,   370,   278,    -1,   254,   118,   278,    -1,   254,   118,
     885      -1,   230,   256,    -1,   255,   118,   316,   256,    -1,    -1,
     886     258,    -1,   322,   257,    -1,   335,   257,    -1,   361,    -1,
     887      -1,   258,    -1,   132,   168,    -1,    30,   316,    -1,   259,
     888     116,   262,   376,   117,    -1,   259,   278,    -1,    -1,   259,
     889     278,   261,   116,   262,   376,   117,    -1,   278,   263,    -1,
     890     262,   118,   278,   263,    -1,    -1,   133,   168,    -1,    -1,
     891     265,    -1,   267,    -1,   266,    -1,   266,   137,   118,   136,
     892     267,    -1,   267,   137,   118,   136,    98,    -1,   266,   137,
     893     118,   136,    98,    -1,   271,    -1,   267,   137,   118,   136,
     894     271,    -1,   266,   137,   118,   136,   271,    -1,   266,   137,
     895     118,   136,   267,   137,   118,   136,   271,    -1,   272,    -1,
     896     267,   137,   118,   136,   272,    -1,    -1,   269,    -1,   270,
     897      -1,   270,   137,   118,   136,    98,    -1,   274,    -1,   273,
     898      -1,   270,   137,   118,   136,   274,    -1,   270,   137,   118,
     899     136,   273,    -1,   273,    -1,   366,   276,   377,    -1,   374,
     900     276,   377,    -1,   232,   374,   276,   377,    -1,   222,    -1,
     901     274,    -1,   366,    -1,   374,    -1,   232,   374,    -1,   375,
     902      -1,   229,   340,   377,    -1,   229,   344,   377,    -1,   229,
     903      -1,   229,   355,    -1,   141,    -1,   275,   118,   141,    -1,
     904     139,    -1,    74,    -1,    75,    -1,   140,    -1,    74,    -1,
     905      75,    -1,   141,    -1,    74,    -1,    75,    -1,   370,    -1,
     906     230,    -1,   230,   361,    -1,   370,    -1,   375,    -1,   230,
     907      -1,   230,   349,    -1,    -1,   133,   282,    -1,   109,   282,
     908      -1,   169,    -1,   116,   283,   376,   117,    -1,    -1,   282,
     909      -1,   284,   282,    -1,   283,   118,   282,    -1,   283,   118,
     910     284,   282,    -1,   285,   132,    -1,   278,   132,    -1,   286,
     911      -1,   285,   286,    -1,   115,   278,    -1,   113,   136,   169,
     912     137,   114,    -1,   113,   136,   314,   137,   114,    -1,   113,
     913     136,   168,    98,   168,   137,   114,    -1,   115,   113,   136,
     914     149,   137,   114,    -1,   288,    -1,   236,   288,    -1,   287,
     915     238,    -1,   287,   238,   232,    -1,   289,    -1,   232,   289,
     916      -1,   288,   233,    -1,    75,   111,   296,   112,    -1,   291,
     917     377,    -1,   290,   118,   291,   377,    -1,    -1,   293,   278,
     918     292,   294,    -1,   230,   340,    -1,    33,    -1,    35,    -1,
     919      34,    -1,    -1,   294,   295,    -1,   130,   278,   111,   296,
     920     112,    -1,   130,   116,   136,   302,   117,    -1,   130,   111,
     921     136,   290,   137,   112,   116,   136,   302,   117,   111,   296,
     922     112,    -1,   280,    -1,   169,    -1,   296,   118,   280,    -1,
     923     296,   118,   169,    -1,    33,   298,    -1,   237,    33,   298,
     924      -1,   297,   118,   298,    -1,   299,   294,    -1,   299,   294,
     925     133,   280,    -1,   278,    -1,   277,   111,   136,   290,   137,
     926     112,    -1,    36,   278,   111,   136,   290,   137,   112,   116,
     927     117,    -1,    -1,    36,   278,   111,   136,   290,   137,   112,
     928     116,   301,   302,   117,    -1,   303,    -1,   302,   136,   303,
     929      -1,   304,   137,   134,    -1,   305,   137,   134,    -1,   220,
     930      -1,   222,    -1,   304,   137,   118,   136,   276,    -1,   230,
     931     313,    -1,   305,   137,   118,   136,   313,    -1,    -1,   307,
     932      -1,   309,    -1,   307,   136,   309,    -1,    -1,   307,    -1,
     933     217,    -1,   311,    -1,   203,    -1,    -1,     5,    81,   310,
     934     116,   308,   117,    -1,    40,   309,    -1,   312,    -1,   327,
     935     178,    -1,   331,   136,   212,   178,    -1,   221,   178,    -1,
     936     229,   327,   178,    -1,   232,   327,   178,    -1,   236,   327,
     937     178,    -1,   236,   232,   327,   178,    -1,   229,   331,   136,
     938     212,   178,    -1,   232,   331,   136,   212,   178,    -1,   236,
     939     331,   136,   212,   178,    -1,   236,   232,   331,   136,   212,
     940     178,    -1,   322,    -1,   335,    -1,   327,    -1,   168,   124,
     941     168,    -1,    -1,    64,   111,   144,   112,   316,    -1,    -1,
     942     317,    -1,   318,    -1,   317,   318,    -1,    39,   111,   111,
     943     319,   112,   112,    -1,   320,    -1,   319,   118,   320,    -1,
     944      -1,   321,    -1,   321,   111,   175,   112,    -1,   276,    -1,
     945     238,    -1,   239,    -1,   233,    -1,   323,   316,    -1,   324,
     946      -1,   325,   316,    -1,   326,   316,    -1,   139,    -1,   111,
     947     323,   112,    -1,   154,   322,    -1,   154,   232,   322,    -1,
     948     111,   324,   112,    -1,   323,   353,    -1,   111,   324,   112,
     949     353,    -1,   111,   325,   112,   354,    -1,   111,   325,   112,
     950      -1,   111,   324,   112,   111,   136,   268,   137,   112,    -1,
     951     111,   326,   112,    -1,   328,   316,    -1,   329,    -1,   330,
     952     316,    -1,   323,   111,   136,   268,   137,   112,    -1,   111,
     953     329,   112,   111,   136,   268,   137,   112,    -1,   111,   328,
     954     112,    -1,   154,   327,    -1,   154,   232,   327,    -1,   111,
     955     329,   112,    -1,   111,   329,   112,   353,    -1,   111,   330,
     956     112,   354,    -1,   111,   330,   112,    -1,   332,    -1,   333,
     957      -1,   334,    -1,   323,   111,   275,   112,    -1,   111,   333,
     958     112,   111,   275,   112,    -1,   111,   332,   112,    -1,   154,
     959     331,    -1,   154,   232,   331,    -1,   111,   333,   112,    -1,
     960     111,   333,   112,   353,    -1,   111,   334,   112,   354,    -1,
     961     111,   334,   112,    -1,   336,   316,    -1,   337,    -1,   338,
     962     316,    -1,   339,   316,    -1,   345,    -1,   111,   336,   112,
     963      -1,   154,   335,    -1,   154,   232,   335,    -1,   111,   337,
     964     112,    -1,   336,   353,    -1,   111,   337,   112,   353,    -1,
     965     111,   338,   112,   354,    -1,   111,   338,   112,    -1,   336,
     966     111,   136,   268,   137,   112,    -1,   111,   337,   112,   111,
     967     136,   268,   137,   112,    -1,   111,   339,   112,    -1,   323,
     968     316,    -1,   341,    -1,   342,   316,    -1,   343,   316,    -1,
     969     154,   340,    -1,   154,   232,   340,    -1,   111,   341,   112,
     970      -1,   323,   359,    -1,   111,   341,   112,   353,    -1,   111,
     971     342,   112,   354,    -1,   111,   342,   112,    -1,   323,   111,
     972     136,   268,   137,   112,    -1,   111,   341,   112,   111,   136,
     973     268,   137,   112,    -1,   111,   343,   112,    -1,   345,   316,
     974      -1,   346,    -1,   347,   316,    -1,   348,   316,    -1,    74,
     975      -1,    75,    -1,   154,   344,    -1,   154,   232,   344,    -1,
     976     111,   346,   112,    -1,   345,   359,    -1,   111,   346,   112,
     977     359,    -1,   345,   111,   136,   268,   137,   112,    -1,   111,
     978     346,   112,   111,   136,   268,   137,   112,    -1,   350,    -1,
     979     351,   316,    -1,   352,   316,    -1,   154,    -1,   154,   232,
     980      -1,   154,   349,    -1,   154,   232,   349,    -1,   111,   350,
     981     112,    -1,   353,    -1,   111,   350,   112,   353,    -1,   111,
     982     351,   112,   354,    -1,   111,   351,   112,    -1,   111,   136,
     983     268,   137,   112,    -1,   111,   350,   112,   111,   136,   268,
     984     137,   112,    -1,   111,   352,   112,    -1,   113,   114,    -1,
     985     113,   114,   354,    -1,   354,    -1,   113,   136,   169,   137,
     986     114,    -1,   113,   136,   119,   137,   114,    -1,   354,   113,
     987     136,   169,   137,   114,    -1,   354,   113,   136,   119,   137,
     988     114,    -1,   356,    -1,   357,   316,    -1,   358,   316,    -1,
     989     154,    -1,   154,   232,    -1,   154,   355,    -1,   154,   232,
     990     355,    -1,   111,   356,   112,    -1,   359,    -1,   111,   356,
     991     112,   359,    -1,   111,   357,   112,   354,    -1,   111,   357,
     992     112,    -1,   111,   136,   268,   137,   112,    -1,   111,   356,
     993     112,   111,   136,   268,   137,   112,    -1,   111,   358,   112,
     994      -1,   360,    -1,   360,   354,    -1,   354,    -1,   113,   114,
     995      -1,   113,   136,   232,   119,   137,   114,    -1,   113,   136,
     996     232,   137,   114,    -1,   113,   136,   232,   169,   137,   114,
     997      -1,   113,   136,     7,   231,   169,   137,   114,    -1,   113,
     998     136,   232,     7,   169,   137,   114,    -1,   362,    -1,   363,
     999     316,    -1,   364,   316,    -1,   154,    -1,   154,   232,    -1,
     1000     154,   361,    -1,   154,   232,   361,    -1,   111,   362,   112,
     1001      -1,   353,    -1,   111,   362,   112,   353,    -1,   111,   363,
     1002     112,   354,    -1,   111,   363,   112,    -1,   111,   362,   112,
     1003     111,   136,   268,   137,   112,    -1,   111,   364,   112,    -1,
     1004     366,    -1,   374,    -1,   232,   374,    -1,   367,    -1,   368,
     1005      -1,   154,   230,    -1,   232,   154,   230,    -1,   154,   375,
     1006      -1,   232,   154,   375,    -1,   154,   365,    -1,   232,   154,
     1007     365,    -1,   113,   114,   230,    -1,   369,   230,    -1,   113,
     1008     114,   354,   230,    -1,   369,   354,   230,    -1,   354,   230,
     1009      -1,   113,   114,   367,    -1,   369,   367,    -1,   113,   114,
     1010     354,   367,    -1,   369,   354,   367,    -1,   354,   367,    -1,
     1011     113,   136,   232,   119,   137,   114,    -1,   113,   136,   232,
     1012     169,   137,   114,    -1,   113,   136,   236,   169,   137,   114,
     1013      -1,   113,   136,   236,   232,   169,   137,   114,    -1,   374,
     1014      -1,   232,   374,    -1,   371,    -1,   372,    -1,   373,    -1,
     1015     154,   230,    -1,   232,   154,   230,    -1,   154,   375,    -1,
     1016     232,   154,   375,    -1,   154,   370,    -1,   232,   154,   370,
     1017      -1,   113,   114,   230,    -1,   113,   114,   354,   230,    -1,
     1018     354,   230,    -1,   113,   114,   372,    -1,   113,   114,   354,
     1019     372,    -1,   354,   372,    -1,   113,   136,   267,   137,   114,
     1020      -1,   374,   111,   136,   264,   137,   112,    -1,   223,   111,
     1021     136,   264,   137,   112,    -1,    -1,   118,    -1,    -1,   133,
     1022     169,    -1
    10201023};
    10211024
     
    10231026static const yytype_uint16 yyrline[] =
    10241027{
    1025        0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
    1026      324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
    1027      357,   359,   361,   366,   367,   373,   377,   379,   381,   383,
    1028      385,   387,   389,   391,   393,   402,   403,   409,   410,   414,
    1029      415,   419,   422,   424,   426,   428,   433,   436,   441,   444,
    1030      446,   448,   453,   466,   468,   470,   472,   474,   476,   478,
    1031      480,   482,   484,   486,   493,   494,   500,   501,   502,   503,
    1032      507,   508,   510,   515,   516,   518,   520,   525,   526,   528,
    1033      533,   534,   536,   541,   542,   544,   546,   548,   553,   554,
    1034      556,   561,   562,   567,   568,   573,   574,   579,   580,   585,
    1035      586,   591,   592,   595,   597,   602,   607,   608,   610,   616,
    1036      617,   621,   622,   623,   624,   625,   626,   627,   628,   629,
    1037      630,   631,   632,   638,   640,   642,   644,   649,   650,   655,
    1038      656,   662,   663,   669,   670,   671,   672,   673,   674,   675,
    1039      676,   677,   687,   694,   696,   706,   707,   712,   714,   720,
    1040      722,   726,   727,   732,   737,   740,   742,   744,   754,   756,
    1041      767,   768,   770,   774,   776,   780,   781,   786,   787,   791,
    1042      796,   797,   801,   803,   809,   810,   814,   816,   818,   820,
    1043      826,   827,   831,   833,   838,   840,   842,   847,   849,   854,
    1044      856,   860,   863,   867,   870,   874,   876,   878,   880,   885,
    1045      887,   889,   894,   896,   898,   900,   902,   907,   909,   911,
    1046      913,   918,   930,   931,   936,   938,   943,   947,   949,   951,
    1047      953,   955,   961,   962,   968,   969,   973,   974,   979,   981,
    1048      987,   988,   990,   995,  1000,  1010,  1012,  1016,  1017,  1022,
    1049     1024,  1028,  1029,  1033,  1035,  1039,  1040,  1044,  1045,  1049,
    1050     1050,  1065,  1066,  1067,  1068,  1069,  1073,  1078,  1085,  1095,
    1051     1100,  1105,  1113,  1118,  1123,  1128,  1133,  1141,  1163,  1168,
    1052     1175,  1177,  1184,  1189,  1194,  1205,  1210,  1215,  1220,  1225,
    1053     1234,  1239,  1247,  1248,  1249,  1250,  1256,  1261,  1269,  1270,
    1054     1271,  1272,  1276,  1277,  1278,  1279,  1284,  1285,  1294,  1295,
    1055     1300,  1301,  1306,  1308,  1310,  1312,  1314,  1317,  1316,  1328,
    1056     1329,  1331,  1341,  1342,  1347,  1349,  1351,  1353,  1355,  1358,
    1057     1360,  1363,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
    1058     1384,  1386,  1388,  1390,  1392,  1398,  1399,  1401,  1403,  1405,
    1059     1410,  1411,  1417,  1418,  1420,  1422,  1427,  1429,  1431,  1433,
    1060     1438,  1439,  1441,  1443,  1448,  1449,  1451,  1456,  1457,  1459,
    1061     1461,  1466,  1468,  1470,  1475,  1476,  1480,  1482,  1488,  1487,
    1062     1491,  1493,  1498,  1500,  1506,  1507,  1512,  1513,  1515,  1516,
    1063     1525,  1526,  1528,  1530,  1535,  1537,  1543,  1544,  1546,  1549,
    1064     1552,  1557,  1558,  1563,  1568,  1572,  1574,  1580,  1579,  1586,
    1065     1588,  1594,  1595,  1603,  1604,  1608,  1609,  1610,  1612,  1614,
    1066     1621,  1622,  1624,  1626,  1631,  1632,  1638,  1639,  1643,  1644,
    1067     1649,  1650,  1651,  1653,  1661,  1662,  1664,  1667,  1669,  1673,
    1068     1674,  1675,  1677,  1679,  1683,  1688,  1696,  1697,  1706,  1708,
    1069     1713,  1714,  1715,  1719,  1720,  1721,  1725,  1726,  1727,  1731,
    1070     1732,  1733,  1738,  1739,  1740,  1741,  1747,  1748,  1750,  1755,
    1071     1756,  1761,  1762,  1763,  1764,  1765,  1780,  1781,  1786,  1787,
    1072     1793,  1795,  1798,  1800,  1802,  1825,  1826,  1828,  1830,  1835,
    1073     1836,  1838,  1843,  1848,  1849,  1855,  1854,  1858,  1862,  1864,
    1074     1866,  1872,  1873,  1878,  1883,  1885,  1890,  1892,  1893,  1895,
    1075     1900,  1902,  1904,  1909,  1911,  1916,  1921,  1929,  1935,  1934,
    1076     1948,  1949,  1954,  1955,  1959,  1964,  1969,  1977,  1982,  1993,
    1077     1994,  1999,  2000,  2006,  2007,  2011,  2012,  2013,  2016,  2015,
    1078     2026,  2035,  2041,  2047,  2056,  2062,  2068,  2074,  2080,  2088,
    1079     2094,  2102,  2108,  2117,  2118,  2119,  2123,  2127,  2129,  2134,
    1080     2135,  2139,  2140,  2145,  2151,  2152,  2155,  2157,  2158,  2162,
    1081     2163,  2164,  2165,  2199,  2201,  2202,  2204,  2209,  2214,  2219,
    1082     2221,  2223,  2228,  2230,  2232,  2234,  2239,  2241,  2250,  2252,
    1083     2253,  2258,  2260,  2262,  2267,  2269,  2271,  2276,  2278,  2280,
    1084     2289,  2290,  2291,  2295,  2297,  2299,  2304,  2306,  2308,  2313,
    1085     2315,  2317,  2332,  2334,  2335,  2337,  2342,  2343,  2348,  2350,
    1086     2352,  2357,  2359,  2361,  2363,  2368,  2370,  2372,  2382,  2384,
    1087     2385,  2387,  2392,  2394,  2396,  2401,  2403,  2405,  2407,  2412,
    1088     2414,  2416,  2447,  2449,  2450,  2452,  2457,  2462,  2470,  2472,
    1089     2474,  2479,  2481,  2486,  2488,  2502,  2503,  2505,  2510,  2512,
    1090     2514,  2516,  2518,  2523,  2524,  2526,  2528,  2533,  2535,  2537,
    1091     2543,  2545,  2547,  2551,  2553,  2555,  2557,  2571,  2572,  2574,
    1092     2579,  2581,  2583,  2585,  2587,  2592,  2593,  2595,  2597,  2602,
    1093     2604,  2606,  2612,  2613,  2615,  2624,  2627,  2629,  2632,  2634,
    1094     2636,  2649,  2650,  2652,  2657,  2659,  2661,  2663,  2665,  2670,
    1095     2671,  2673,  2675,  2680,  2682,  2690,  2691,  2692,  2697,  2698,
    1096     2702,  2704,  2706,  2708,  2710,  2712,  2719,  2721,  2723,  2725,
    1097     2727,  2730,  2732,  2734,  2736,  2738,  2743,  2745,  2747,  2752,
    1098     2778,  2779,  2781,  2785,  2786,  2790,  2792,  2794,  2796,  2798,
    1099     2800,  2807,  2809,  2811,  2813,  2815,  2817,  2822,  2827,  2829,
    1100     2831,  2849,  2851,  2856,  2857
     1028       0,   305,   305,   309,   316,   317,   318,   319,   320,   324,
     1029     325,   326,   330,   331,   335,   336,   340,   341,   345,   349,
     1030     350,   361,   363,   365,   366,   368,   373,   374,   380,   382,
     1031     384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
     1032     414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
     1033     435,   440,   442,   444,   448,   450,   454,   457,   459,   461,
     1034     466,   479,   481,   483,   485,   487,   489,   491,   493,   495,
     1035     497,   499,   506,   507,   513,   514,   515,   516,   520,   521,
     1036     528,   529,   531,   533,   538,   539,   541,   546,   547,   549,
     1037     554,   555,   557,   559,   561,   566,   567,   569,   574,   575,
     1038     580,   581,   586,   587,   592,   593,   598,   599,   604,   605,
     1039     608,   615,   620,   621,   629,   630,   634,   635,   636,   637,
     1040     638,   639,   640,   641,   642,   643,   644,   645,   655,   657,
     1041     662,   663,   668,   669,   675,   676,   682,   683,   684,   685,
     1042     686,   687,   688,   689,   690,   700,   707,   709,   719,   720,
     1043     725,   727,   733,   735,   739,   740,   745,   750,   753,   755,
     1044     757,   767,   769,   780,   781,   783,   787,   789,   793,   794,
     1045     799,   800,   804,   809,   810,   814,   816,   822,   823,   827,
     1046     829,   831,   833,   839,   840,   844,   846,   851,   853,   855,
     1047     860,   862,   867,   869,   873,   876,   880,   883,   887,   889,
     1048     891,   893,   898,   900,   902,   907,   909,   911,   913,   915,
     1049     920,   922,   924,   926,   931,   943,   944,   949,   951,   956,
     1050     960,   962,   964,   966,   968,   974,   975,   981,   982,   986,
     1051     987,   992,   994,  1000,  1001,  1003,  1008,  1013,  1023,  1025,
     1052    1029,  1030,  1035,  1037,  1041,  1042,  1046,  1048,  1052,  1053,
     1053    1057,  1058,  1062,  1063,  1078,  1079,  1080,  1081,  1082,  1086,
     1054    1091,  1098,  1108,  1113,  1118,  1126,  1131,  1136,  1141,  1146,
     1055    1176,  1181,  1188,  1190,  1197,  1202,  1207,  1218,  1223,  1228,
     1056    1233,  1238,  1247,  1252,  1260,  1261,  1262,  1263,  1269,  1274,
     1057    1282,  1283,  1284,  1285,  1289,  1290,  1291,  1292,  1297,  1298,
     1058    1307,  1308,  1313,  1314,  1319,  1321,  1323,  1325,  1327,  1330,
     1059    1329,  1341,  1342,  1344,  1354,  1355,  1360,  1362,  1364,  1366,
     1060    1368,  1371,  1373,  1376,  1381,  1383,  1385,  1387,  1389,  1391,
     1061    1393,  1395,  1397,  1399,  1401,  1403,  1405,  1411,  1412,  1414,
     1062    1416,  1418,  1423,  1424,  1430,  1431,  1433,  1435,  1440,  1442,
     1063    1444,  1446,  1451,  1452,  1454,  1456,  1461,  1462,  1464,  1469,
     1064    1470,  1472,  1474,  1479,  1481,  1483,  1488,  1489,  1493,  1495,
     1065    1501,  1500,  1504,  1506,  1511,  1513,  1519,  1520,  1525,  1526,
     1066    1528,  1529,  1538,  1539,  1541,  1543,  1548,  1550,  1556,  1557,
     1067    1559,  1562,  1565,  1570,  1571,  1576,  1581,  1585,  1587,  1593,
     1068    1592,  1599,  1601,  1607,  1608,  1616,  1617,  1621,  1622,  1623,
     1069    1625,  1627,  1634,  1635,  1637,  1639,  1644,  1645,  1651,  1652,
     1070    1656,  1657,  1662,  1663,  1664,  1666,  1674,  1675,  1677,  1680,
     1071    1682,  1686,  1687,  1688,  1690,  1692,  1696,  1701,  1709,  1710,
     1072    1719,  1721,  1726,  1727,  1728,  1732,  1733,  1734,  1738,  1739,
     1073    1740,  1744,  1745,  1746,  1751,  1752,  1753,  1754,  1760,  1761,
     1074    1763,  1768,  1769,  1774,  1775,  1776,  1777,  1778,  1793,  1794,
     1075    1799,  1800,  1806,  1808,  1811,  1813,  1815,  1838,  1839,  1841,
     1076    1843,  1848,  1849,  1851,  1856,  1861,  1862,  1868,  1867,  1871,
     1077    1875,  1877,  1879,  1885,  1886,  1891,  1896,  1898,  1903,  1905,
     1078    1906,  1908,  1913,  1915,  1917,  1922,  1924,  1929,  1934,  1942,
     1079    1948,  1947,  1961,  1962,  1967,  1968,  1972,  1977,  1982,  1990,
     1080    1995,  2006,  2007,  2012,  2013,  2019,  2020,  2024,  2025,  2026,
     1081    2029,  2028,  2039,  2048,  2054,  2060,  2069,  2075,  2081,  2087,
     1082    2093,  2101,  2107,  2115,  2121,  2130,  2131,  2132,  2136,  2140,
     1083    2142,  2147,  2148,  2152,  2153,  2158,  2164,  2165,  2168,  2170,
     1084    2171,  2175,  2176,  2177,  2178,  2212,  2214,  2215,  2217,  2222,
     1085    2227,  2232,  2234,  2236,  2241,  2243,  2245,  2247,  2252,  2254,
     1086    2263,  2265,  2266,  2271,  2273,  2275,  2280,  2282,  2284,  2289,
     1087    2291,  2293,  2302,  2303,  2304,  2308,  2310,  2312,  2317,  2319,
     1088    2321,  2326,  2328,  2330,  2345,  2347,  2348,  2350,  2355,  2356,
     1089    2361,  2363,  2365,  2370,  2372,  2374,  2376,  2381,  2383,  2385,
     1090    2395,  2397,  2398,  2400,  2405,  2407,  2409,  2414,  2416,  2418,
     1091    2420,  2425,  2427,  2429,  2460,  2462,  2463,  2465,  2470,  2475,
     1092    2483,  2485,  2487,  2492,  2494,  2499,  2501,  2515,  2516,  2518,
     1093    2523,  2525,  2527,  2529,  2531,  2536,  2537,  2539,  2541,  2546,
     1094    2548,  2550,  2556,  2558,  2560,  2564,  2566,  2568,  2570,  2584,
     1095    2585,  2587,  2592,  2594,  2596,  2598,  2600,  2605,  2606,  2608,
     1096    2610,  2615,  2617,  2619,  2625,  2626,  2628,  2637,  2640,  2642,
     1097    2645,  2647,  2649,  2662,  2663,  2665,  2670,  2672,  2674,  2676,
     1098    2678,  2683,  2684,  2686,  2688,  2693,  2695,  2703,  2704,  2705,
     1099    2710,  2711,  2715,  2717,  2719,  2721,  2723,  2725,  2732,  2734,
     1100    2736,  2738,  2740,  2743,  2745,  2747,  2749,  2751,  2756,  2758,
     1101    2760,  2765,  2791,  2792,  2794,  2798,  2799,  2803,  2805,  2807,
     1102    2809,  2811,  2813,  2820,  2822,  2824,  2826,  2828,  2830,  2835,
     1103    2842,  2844,  2862,  2864,  2869,  2870
    11011104};
    11021105#endif
     
    11191122  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    11201123  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    1121   "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
    1122   "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
    1123   "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
    1124   "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
    1125   "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
    1126   "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
    1127   "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
    1128   "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
    1129   "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    1130   "string_literal", "string_literal_list", "primary_expression",
    1131   "postfix_expression", "argument_expression_list", "argument_expression",
    1132   "field_list", "field", "field_name", "unary_expression",
     1124  "INTEGERconstant", "CHARACTERconstant", "STRINGliteral",
     1125  "REALDECIMALconstant", "REALFRACTIONconstant", "FLOATINGconstant",
     1126  "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ",
     1127  "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign", "DIVassign",
     1128  "MODassign", "PLUSassign", "MINUSassign", "LSassign", "RSassign",
     1129  "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", "'('", "')'",
     1130  "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", "'+'", "'-'",
     1131  "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'",
     1132  "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
     1133  "no_01_identifier", "no_attr_identifier", "zero_one", "string_literal",
     1134  "string_literal_list", "primary_expression", "postfix_expression",
     1135  "argument_expression_list", "argument_expression", "field_list", "field",
     1136  "field_name", "fraction_constants", "unary_expression",
    11331137  "ptrref_operator", "unary_operator", "cast_expression",
    11341138  "multiplicative_expression", "additive_expression", "shift_expression",
     
    12301234     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12311235     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1232      355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
    1233       41,    91,    93,    46,   123,   125,    44,    42,    38,    43,
    1234       45,    33,   126,    47,    37,    60,    62,    94,   124,    63,
    1235       58,    61,    59
     1236     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     1237     365,    40,    41,    91,    93,    46,   123,   125,    44,    42,
     1238      38,    43,    45,    33,   126,    47,    37,    60,    62,    94,
     1239     124,    63,    58,    61,    59
    12361240};
    12371241# endif
     
    12401244static const yytype_uint16 yyr1[] =
    12411245{
    1242        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    1243      138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    1244      143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    1245      144,   144,   144,   144,   144,   145,   145,   146,   146,   147,
    1246      147,   148,   148,   148,   148,   148,   149,   149,   150,   150,
    1247      150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
    1248      150,   150,   150,   150,   151,   151,   152,   152,   152,   152,
    1249      153,   153,   153,   154,   154,   154,   154,   155,   155,   155,
    1250      156,   156,   156,   157,   157,   157,   157,   157,   158,   158,
    1251      158,   159,   159,   160,   160,   161,   161,   162,   162,   163,
    1252      163,   164,   164,   164,   164,   165,   166,   166,   166,   167,
    1253      167,   168,   168,   168,   168,   168,   168,   168,   168,   168,
    1254      168,   168,   168,   169,   169,   169,   169,   170,   170,   171,
    1255      171,   172,   172,   173,   173,   173,   173,   173,   173,   173,
    1256      173,   173,   174,   175,   175,   176,   176,   177,   177,   177,
    1257      177,   178,   178,   179,   180,   180,   180,   180,   180,   180,
    1258      181,   181,   181,   182,   182,   183,   183,   184,   184,   185,
    1259      186,   186,   187,   187,   188,   188,   189,   189,   189,   189,
    1260      190,   190,   191,   191,   192,   192,   192,   193,   193,   194,
    1261      194,   194,   194,   194,   194,   194,   194,   194,   194,   195,
    1262      195,   195,   196,   196,   196,   196,   196,   197,   197,   197,
    1263      197,   198,   199,   199,   199,   199,   199,   200,   200,   200,
    1264      200,   200,   201,   201,   202,   202,   203,   203,   204,   204,
    1265      205,   205,   205,   206,   206,   207,   207,   208,   208,   209,
    1266      209,   210,   210,   211,   211,   212,   212,   213,   213,   214,
    1267      214,   215,   215,   215,   215,   215,   216,   216,   216,   217,
    1268      217,   217,   218,   218,   218,   218,   218,   219,   219,   219,
    1269      220,   220,   221,   221,   221,   222,   222,   222,   222,   222,
    1270      223,   223,   224,   224,   224,   224,   225,   225,   226,   226,
    1271      226,   226,   227,   227,   227,   227,   228,   228,   229,   229,
    1272      230,   230,   231,   231,   231,   231,   231,   232,   231,   233,
    1273      233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
    1274      235,   235,   236,   236,   236,   236,   236,   236,   236,   236,
    1275      236,   236,   236,   236,   236,   237,   237,   237,   237,   237,
    1276      238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
    1277      241,   241,   241,   241,   242,   242,   242,   243,   243,   243,
    1278      243,   244,   244,   244,   245,   245,   246,   246,   247,   246,
    1279      246,   246,   248,   248,   249,   249,   250,   250,   250,   250,
    1280      251,   251,   251,   251,   252,   252,   253,   253,   253,   253,
    1281      253,   254,   254,   255,   256,   257,   257,   258,   257,   259,
    1282      259,   260,   260,   261,   261,   262,   262,   262,   262,   262,
    1283      263,   263,   263,   263,   264,   264,   265,   265,   266,   266,
    1284      267,   267,   267,   267,   268,   268,   268,   268,   268,   269,
    1285      269,   269,   269,   269,   270,   270,   271,   271,   272,   272,
    1286      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1287      276,   276,   277,   277,   277,   277,   278,   278,   278,   279,
    1288      279,   280,   280,   280,   280,   280,   281,   281,   282,   282,
    1289      283,   283,   283,   283,   283,   284,   284,   284,   284,   285,
    1290      285,   285,   286,   287,   287,   289,   288,   288,   290,   290,
    1291      290,   291,   291,   292,   292,   292,   293,   293,   293,   293,
    1292      294,   294,   294,   295,   295,   296,   296,   297,   298,   297,
    1293      299,   299,   300,   300,   301,   301,   301,   302,   302,   303,
    1294      303,   304,   304,   305,   305,   306,   306,   306,   307,   306,
    1295      306,   308,   308,   308,   309,   309,   309,   309,   309,   309,
    1296      309,   309,   309,   310,   310,   310,   311,   312,   312,   313,
    1297      313,   314,   314,   315,   316,   316,   317,   317,   317,   318,
    1298      318,   318,   318,   319,   319,   319,   319,   320,   320,   321,
    1299      321,   321,   322,   322,   322,   322,   323,   323,   324,   324,
    1300      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    1301      328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1302      331,   331,   332,   332,   332,   332,   333,   333,   334,   334,
    1303      334,   335,   335,   335,   335,   336,   336,   336,   337,   337,
    1304      337,   337,   338,   338,   338,   339,   339,   339,   339,   340,
    1305      340,   340,   341,   341,   341,   341,   342,   342,   343,   343,
    1306      343,   344,   344,   345,   345,   346,   346,   346,   347,   347,
    1307      347,   347,   347,   348,   348,   348,   348,   349,   349,   349,
    1308      350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
    1309      353,   353,   353,   353,   353,   354,   354,   354,   354,   355,
    1310      355,   355,   356,   356,   356,   357,   357,   357,   357,   357,
    1311      357,   358,   358,   358,   359,   359,   359,   359,   359,   360,
    1312      360,   360,   360,   361,   361,   362,   362,   362,   363,   363,
    1313      364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
    1314      365,   365,   365,   365,   365,   365,   366,   366,   366,   366,
    1315      367,   367,   367,   368,   368,   369,   369,   369,   369,   369,
    1316      369,   370,   370,   370,   370,   370,   370,   371,   372,   372,
    1317      372,   373,   373,   374,   374
     1246       0,   135,   136,   137,   138,   138,   138,   138,   138,   139,
     1247     139,   139,   140,   140,   141,   141,   142,   142,   143,   144,
     1248     144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
     1249     146,   146,   146,   146,   146,   146,   146,   146,   147,   147,
     1250     148,   148,   149,   149,   150,   150,   150,   150,   150,   150,
     1251     150,   151,   151,   151,   152,   152,   153,   153,   153,   153,
     1252     153,   153,   153,   153,   153,   153,   153,   153,   153,   153,
     1253     153,   153,   154,   154,   155,   155,   155,   155,   156,   156,
     1254     157,   157,   157,   157,   158,   158,   158,   159,   159,   159,
     1255     160,   160,   160,   160,   160,   161,   161,   161,   162,   162,
     1256     163,   163,   164,   164,   165,   165,   166,   166,   167,   167,
     1257     167,   168,   169,   169,   170,   170,   171,   171,   171,   171,
     1258     171,   171,   171,   171,   171,   171,   171,   171,   172,   172,
     1259     173,   173,   174,   174,   175,   175,   176,   176,   176,   176,
     1260     176,   176,   176,   176,   176,   177,   178,   178,   179,   179,
     1261     180,   180,   180,   180,   181,   181,   182,   183,   183,   183,
     1262     183,   183,   183,   184,   184,   184,   185,   185,   186,   186,
     1263