#include "config.h"

#line 2 "<stdout>"

#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */

#define yy_create_buffer c__create_buffer
#define yy_delete_buffer c__delete_buffer
#define yy_scan_buffer c__scan_buffer
#define yy_scan_string c__scan_string
#define yy_scan_bytes c__scan_bytes
#define yy_init_buffer c__init_buffer
#define yy_flush_buffer c__flush_buffer
#define yy_load_buffer_state c__load_buffer_state
#define yy_switch_to_buffer c__switch_to_buffer
#define yypush_buffer_state c_push_buffer_state
#define yypop_buffer_state c_pop_buffer_state
#define yyensure_buffer_stack c_ensure_buffer_stack
#define yy_flex_debug c__flex_debug
#define yyin c_in
#define yyleng c_leng
#define yylex c_lex
#define yylineno c_lineno
#define yyout c_out
#define yyrestart c_restart
#define yytext c_text
#define yywrap c_wrap
#define yyalloc c_alloc
#define yyrealloc c_realloc
#define yyfree c_free

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 6
#define YY_FLEX_SUBMINOR_VERSION 4
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

#ifdef yy_create_buffer
#define c__create_buffer_ALREADY_DEFINED
#else
#define yy_create_buffer c__create_buffer
#endif

#ifdef yy_delete_buffer
#define c__delete_buffer_ALREADY_DEFINED
#else
#define yy_delete_buffer c__delete_buffer
#endif

#ifdef yy_scan_buffer
#define c__scan_buffer_ALREADY_DEFINED
#else
#define yy_scan_buffer c__scan_buffer
#endif

#ifdef yy_scan_string
#define c__scan_string_ALREADY_DEFINED
#else
#define yy_scan_string c__scan_string
#endif

#ifdef yy_scan_bytes
#define c__scan_bytes_ALREADY_DEFINED
#else
#define yy_scan_bytes c__scan_bytes
#endif

#ifdef yy_init_buffer
#define c__init_buffer_ALREADY_DEFINED
#else
#define yy_init_buffer c__init_buffer
#endif

#ifdef yy_flush_buffer
#define c__flush_buffer_ALREADY_DEFINED
#else
#define yy_flush_buffer c__flush_buffer
#endif

#ifdef yy_load_buffer_state
#define c__load_buffer_state_ALREADY_DEFINED
#else
#define yy_load_buffer_state c__load_buffer_state
#endif

#ifdef yy_switch_to_buffer
#define c__switch_to_buffer_ALREADY_DEFINED
#else
#define yy_switch_to_buffer c__switch_to_buffer
#endif

#ifdef yypush_buffer_state
#define c_push_buffer_state_ALREADY_DEFINED
#else
#define yypush_buffer_state c_push_buffer_state
#endif

#ifdef yypop_buffer_state
#define c_pop_buffer_state_ALREADY_DEFINED
#else
#define yypop_buffer_state c_pop_buffer_state
#endif

#ifdef yyensure_buffer_stack
#define c_ensure_buffer_stack_ALREADY_DEFINED
#else
#define yyensure_buffer_stack c_ensure_buffer_stack
#endif

#ifdef yylex
#define c_lex_ALREADY_DEFINED
#else
#define yylex c_lex
#endif

#ifdef yyrestart
#define c_restart_ALREADY_DEFINED
#else
#define yyrestart c_restart
#endif

#ifdef yylex_init
#define c_lex_init_ALREADY_DEFINED
#else
#define yylex_init c_lex_init
#endif

#ifdef yylex_init_extra
#define c_lex_init_extra_ALREADY_DEFINED
#else
#define yylex_init_extra c_lex_init_extra
#endif

#ifdef yylex_destroy
#define c_lex_destroy_ALREADY_DEFINED
#else
#define yylex_destroy c_lex_destroy
#endif

#ifdef yyget_debug
#define c_get_debug_ALREADY_DEFINED
#else
#define yyget_debug c_get_debug
#endif

#ifdef yyset_debug
#define c_set_debug_ALREADY_DEFINED
#else
#define yyset_debug c_set_debug
#endif

#ifdef yyget_extra
#define c_get_extra_ALREADY_DEFINED
#else
#define yyget_extra c_get_extra
#endif

#ifdef yyset_extra
#define c_set_extra_ALREADY_DEFINED
#else
#define yyset_extra c_set_extra
#endif

#ifdef yyget_in
#define c_get_in_ALREADY_DEFINED
#else
#define yyget_in c_get_in
#endif

#ifdef yyset_in
#define c_set_in_ALREADY_DEFINED
#else
#define yyset_in c_set_in
#endif

#ifdef yyget_out
#define c_get_out_ALREADY_DEFINED
#else
#define yyget_out c_get_out
#endif

#ifdef yyset_out
#define c_set_out_ALREADY_DEFINED
#else
#define yyset_out c_set_out
#endif

#ifdef yyget_leng
#define c_get_leng_ALREADY_DEFINED
#else
#define yyget_leng c_get_leng
#endif

#ifdef yyget_text
#define c_get_text_ALREADY_DEFINED
#else
#define yyget_text c_get_text
#endif

#ifdef yyget_lineno
#define c_get_lineno_ALREADY_DEFINED
#else
#define yyget_lineno c_get_lineno
#endif

#ifdef yyset_lineno
#define c_set_lineno_ALREADY_DEFINED
#else
#define yyset_lineno c_set_lineno
#endif

#ifdef yywrap
#define c_wrap_ALREADY_DEFINED
#else
#define yywrap c_wrap
#endif

#ifdef yyalloc
#define c_alloc_ALREADY_DEFINED
#else
#define yyalloc c_alloc
#endif

#ifdef yyrealloc
#define c_realloc_ALREADY_DEFINED
#else
#define yyrealloc c_realloc
#endif

#ifdef yyfree
#define c_free_ALREADY_DEFINED
#else
#define yyfree c_free
#endif

#ifdef yytext
#define c_text_ALREADY_DEFINED
#else
#define yytext c_text
#endif

#ifdef yyleng
#define c_leng_ALREADY_DEFINED
#else
#define yyleng c_leng
#endif

#ifdef yyin
#define c_in_ALREADY_DEFINED
#else
#define yyin c_in
#endif

#ifdef yyout
#define c_out_ALREADY_DEFINED
#else
#define yyout c_out
#endif

#ifdef yy_flex_debug
#define c__flex_debug_ALREADY_DEFINED
#else
#define yy_flex_debug c__flex_debug
#endif

#ifdef yylineno
#define c_lineno_ALREADY_DEFINED
#else
#define yylineno c_lineno
#endif

/* First, we deal with  platform-specific or compiler-specific issues. */

/* begin standard C headers. */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>

/* end standard C headers. */

/* flex integer type definitions */

#ifndef FLEXINT_H
#define FLEXINT_H

/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */

#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L

/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif

#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;

/* Limits of integral types. */
#ifndef INT8_MIN
#define INT8_MIN               (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN              (-32767-1)
#endif
#ifndef INT32_MIN
#define INT32_MIN              (-2147483647-1)
#endif
#ifndef INT8_MAX
#define INT8_MAX               (127)
#endif
#ifndef INT16_MAX
#define INT16_MAX              (32767)
#endif
#ifndef INT32_MAX
#define INT32_MAX              (2147483647)
#endif
#ifndef UINT8_MAX
#define UINT8_MAX              (255U)
#endif
#ifndef UINT16_MAX
#define UINT16_MAX             (65535U)
#endif
#ifndef UINT32_MAX
#define UINT32_MAX             (4294967295U)
#endif

#ifndef SIZE_MAX
#define SIZE_MAX               (~(size_t)0)
#endif

#endif /* ! C99 */

#endif /* ! FLEXINT_H */

/* begin standard C++ headers. */

/* TODO: this is always defined, so inline it */
#define yyconst const

#if defined(__GNUC__) && __GNUC__ >= 3
#define yynoreturn __attribute__((__noreturn__))
#else
#define yynoreturn
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* Promotes a possibly negative, possibly signed char to an
*   integer in range [0..255] for use as an array index.
*/
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))

/* Enter a start condition.  This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
*/
#define BEGIN (yy_start) = 1 + 2 *
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state.  The YYSTATE alias is for lex
* compatibility.
*/
#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin  )
#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k.
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
* Ditto for the __ia64__ case accordingly.
*/
#define YY_BUF_SIZE 32768
#else
#define YY_BUF_SIZE 16384
#endif /* __ia64__ */
#endif

/* The state buf must be large enough to hold one state per character in the main buffer.
*/
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))

#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif

#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif

extern int yyleng;

extern FILE *yyin, *yyout;

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

   #define YY_LESS_LINENO(n)
   #define YY_LINENO_REWIND_TO(ptr)

/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
       do \
               { \
               /* Undo effects of setting up yytext. */ \
       int yyless_macro_arg = (n); \
       YY_LESS_LINENO(yyless_macro_arg);\
               *yy_cp = (yy_hold_char); \
               YY_RESTORE_YY_MORE_OFFSET \
               (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
               } \
       while ( 0 )
#define unput(c) yyunput( c, (yytext_ptr)  )

#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
       {
       FILE *yy_input_file;

       char *yy_ch_buf;                /* input buffer */
       char *yy_buf_pos;               /* current position in input buffer */

       /* Size of input buffer in bytes, not including room for EOB
        * characters.
        */
       int yy_buf_size;

       /* Number of characters read into yy_ch_buf, not including EOB
        * characters.
        */
       int yy_n_chars;

       /* Whether we "own" the buffer - i.e., we know we created it,
        * and can realloc() it to grow it, and should free() it to
        * delete it.
        */
       int yy_is_our_buffer;

       /* Whether this is an "interactive" input source; if so, and
        * if we're using stdio for input, then we want to use getc()
        * instead of fread(), to make sure we stop fetching input after
        * each newline.
        */
       int yy_is_interactive;

       /* Whether we're considered to be at the beginning of a line.
        * If so, '^' rules will be active on the next match, otherwise
        * not.
        */
       int yy_at_bol;

   int yy_bs_lineno; /**< The line count. */
   int yy_bs_column; /**< The column count. */

       /* Whether to try to fill the input buffer when we reach the
        * end of it.
        */
       int yy_fill_buffer;

       int yy_buffer_status;

#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
       /* When an EOF's been seen but there's still some text to process
        * then we mark the buffer as YY_EOF_PENDING, to indicate that we
        * shouldn't try reading from the input source any more.  We might
        * still have a bunch of tokens to match, though, because of
        * possible backing-up.
        *
        * When we actually see the EOF, we change the status to "new"
        * (via yyrestart()), so that the user can continue scanning by
        * just pointing yyin at a new input file.
        */
#define YY_BUFFER_EOF_PENDING 2

       };
#endif /* !YY_STRUCT_YY_BUFFER_STATE */

/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */

/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state".
*
* Returns the top of the stack, or NULL.
*/
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                         ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                         : NULL)
/* Same as previous macro, but useful when we know that the buffer stack is not
* NULL or when we need an lvalue. For internal use only.
*/
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]

/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
static int yy_n_chars;          /* number of characters read into yy_ch_buf */
int yyleng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = NULL;
static int yy_init = 0;         /* whether we need to initialize */
static int yy_start = 0;        /* start state number */

/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin.  A bit of a hack ...
*/
static int yy_did_buffer_switch_on_eof;

void yyrestart ( FILE *input_file  );
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
void yy_delete_buffer ( YY_BUFFER_STATE b  );
void yy_flush_buffer ( YY_BUFFER_STATE b  );
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
void yypop_buffer_state ( void );

static void yyensure_buffer_stack ( void );
static void yy_load_buffer_state ( void );
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )

YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );

void *yyalloc ( yy_size_t  );
void *yyrealloc ( void *, yy_size_t  );
void yyfree ( void *  );

#define yy_new_buffer yy_create_buffer
#define yy_set_interactive(is_interactive) \
       { \
       if ( ! YY_CURRENT_BUFFER ){ \
       yyensure_buffer_stack (); \
               YY_CURRENT_BUFFER_LVALUE =    \
           yy_create_buffer( yyin, YY_BUF_SIZE ); \
       } \
       YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
       }
#define yy_set_bol(at_bol) \
       { \
       if ( ! YY_CURRENT_BUFFER ){\
       yyensure_buffer_stack (); \
               YY_CURRENT_BUFFER_LVALUE =    \
           yy_create_buffer( yyin, YY_BUF_SIZE ); \
       } \
       YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
       }
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)

/* Begin user sect3 */
typedef flex_uint8_t YY_CHAR;

FILE *yyin = NULL, *yyout = NULL;

typedef int yy_state_type;

extern int yylineno;
int yylineno = 1;

extern char *yytext;
#ifdef yytext_ptr
#undef yytext_ptr
#endif
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state ( void );
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
static int yy_get_next_buffer ( void );
static void yynoreturn yy_fatal_error ( const char* msg  );

/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext.
*/
#define YY_DO_BEFORE_ACTION \
       (yytext_ptr) = yy_bp; \
       (yytext_ptr) -= (yy_more_len); \
       yyleng = (int) (yy_cp - (yytext_ptr)); \
       (yy_hold_char) = *yy_cp; \
       *yy_cp = '\0'; \
       (yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 158
#define YY_END_OF_BUFFER 159
/* This struct is not used in this scanner,
  but its presence is necessary. */
struct yy_trans_info
       {
       flex_int32_t yy_verify;
       flex_int32_t yy_nxt;
       };
static const flex_int16_t yy_accept[1380] =
   {   0,
       1,    1,  146,  146,  150,  150,  154,  154,  159,  157,
       1,  138,  145,    2,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  158,  146,  147,  158,  148,  158,
     153,  150,  151,  152,  158,  154,  155,  156,  158,  157,
       0,    1,    2,    2,    2,    2,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  146,    0,  153,    0,  150,  154,
       0,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,   79,  157,
     157,  157,  157,  157,  157,  157,  157,   78,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  157,   65,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,    4,  157,   23,  157,  157,  157,   36,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,   48,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,   39,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,   89,   18,
      19,  157,  131,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,   54,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,   67,  157,  157,    3,  157,
     141,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  157,  157,  157,  157,  130,  157,
     157,  157,  157,  157,   45,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  149,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      24,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      68,   35,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     139,  141,    0,  157,  157,  157,  157,   31,  157,  157,

     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      22,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,   20,  157,   43,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,   21,  157,  157,  157,  157,  157,   16,   17,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,   80,   82,  157,  157,  157,
     157,  157,  157,  157,  139,    0,  157,  157,  157,  157,

     157,  157,  157,   60,  157,  122,  157,  157,   40,  157,
     157,  134,  157,  157,  157,  157,   44,   49,  157,  157,
      41,  157,   66,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,   92,  157,  157,  157,  157,  157,  157,
     157,  157,  157,    6,  157,  157,  157,  157,  157,  157,
     115,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,   37,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,   27,  157,  157,  157,  157,  157,  157,

      47,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,   50,  157,  157,  157,  157,  157,  157,  157,  157,
      63,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      11,  157,  157,  157,  157,  157,  157,   93,  157,  157,
     157,  157,  157,    5,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  108,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,   38,  114,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,   57,

     157,  157,  157,   62,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  117,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,    8,  157,  157,  157,
     116,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,   56,  157,  157,  157,   53,  105,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,   30,  157,  157,   12,  157,  157,  157,  132,  157,
     157,  157,  157,  157,  157,  157,  157,  157,   51,  157,
     157,  140,  157,  157,  157,  157,  157,  157,   73,  157,
     142,  157,  157,  157,  157,  157,  157,  157,  157,  157,

     157,   15,  157,   13,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,   55,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      26,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  133,  157,  157,  128,  157,  157,  157,   42,
     157,  125,  157,  140,    0,   64,  157,  157,  157,  157,
     157,  157,  126,   90,  157,  157,  157,  157,  157,  157,
     157,  157,  157,   14,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,   81,  157,   86,  157,  157,  157,

     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
      71,  157,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  101,  157,    7,   33,   34,  157,  104,  157,
     111,  157,  157,  112,  157,  157,  157,  157,  157,  157,
      70,  157,  157,  157,  157,  157,  157,  157,   52,  157,
     157,  157,  157,  157,  157,  135,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  107,  157,  157,  157,  157,
     100,  157,  157,  157,  157,  157,  157,  157,   69,   25,
     157,  113,  157,  157,  157,  157,  157,  157,  157,  157,

     157,  157,  157,  157,  157,   74,   29,  157,  123,  119,
     157,  121,  157,  157,  157,  157,  157,   87,   88,  157,
      61,  157,  157,   76,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  109,  110,  157,  157,  157,   32,  157,
     157,  157,  157,  157,    9,  157,   75,  157,  120,  157,
     137,  157,  157,  157,  157,   77,   72,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  106,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  143,  157,  129,
     157,  127,  157,  157,  157,  157,   91,  157,  157,  157,
     157,  118,   58,  157,  157,  157,  157,  157,  157,  157,

     136,  157,   59,  157,  157,  157,   99,  157,  157,  157,
     157,  124,   10,  157,  157,  157,  157,   28,   46,  157,
     157,   98,  157,  157,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,  157,  157,  157,  157,  144,
     157,  157,   95,  157,  157,   94,   83,   84,  157,  157,
     157,  157,  157,   85,  157,  157,  157,  157,  157,  157,
     157,  157,  157,  157,  157,   96,  157,  157,   97,  157,
     157,  157,  157,  102,  157,  157,  157,  103,    0
   } ;

static const YY_CHAR yy_ec[256] =
   {   0,
       1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
       1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    7,    1,    1,    8,    9,    9,
       9,   10,    9,   11,    9,    9,    9,   12,    1,    1,
      13,    1,    1,    1,   14,   15,   16,   17,   18,   19,
      20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
      30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
       1,   40,    1,    1,    1,    1,   41,   42,   43,   44,

      45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
      55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
      65,   66,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1
   } ;

static const YY_CHAR yy_meta[67] =
   {   0,
       1,    2,    3,    4,    4,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1
   } ;

static const flex_int16_t yy_base[1392] =
   {   0,
       0,    0,   64,   67,   71,   75,   78,   81, 3883, 3842,
      85, 3884, 3884,   88,   72,   73,  116,  161,   62,   74,
     113,   80,   77,  121,  159,  120,  181,  180,  209,  201,
     146,  140,  119,   91,  147, 3841, 3884, 3884, 3884,   96,
    3840, 3877, 3884, 3884,  192, 3838, 3884, 3884,  219, 3837,
     241,  226,    0,  246,    0,    0,  227,  197,  200,  215,
     230,  108,  240,  236,  231,  248,  235,  257,  254,  245,
      87,  268,  269,  261,  280,  286,  296,  292,  274,  293,
     278,  290,  297,  295,  294,  319,  310,  312,  307,  322,
     327,  367,  323,  335,  363,  325,  364,  359,  341,  369,

     371,  387,  391,  399, 3836,  277, 3835,  372, 3872, 3833,
     425,  404,  406,  372,  393,  407,  420,  408,  422,  433,
     418,  321,  436,  440,  417,  449,  442,  434,  456,  457,
     466,  460,  446,  470,  489,  362,  483,  481,  473,  164,
     498,  487,  494,  485,  501,  502,  492,  500,  493,  518,
     515,  517,  521,  516,  415,  525,  528,  536,  555,  538,
     553,  532,  552,  562,  549,  543,  566,  577, 3832,  581,
     588,  574,  582,  568,  575,  595,  609, 3831,  591,  601,
     592,  603,  602,  614,  630,  615,  619,  625,  634,  636,
     628,  651,  641,  655,  645,  633,  648,  652,  658,  659,

     669,  672,  675,  679,  680, 3830,  674,  661,  673,  690,
     685,  696,  247,  703,  711,  700,  714,  704,  721,  717,
     712,  720,  724,  725,  723,  744,  730,  750,  753,  739,
     755,  754,  771,  765,  757,  799,  804,  748,  777,  782,
     800,  794,  831,  829,  827,  784,  824,  818,  838,  832,
     846,  843,  845,  783,  849,  856,  870,  880,  868,  862,
     888,  869,  876,  891,  883,  895,  896,  897,  889,  905,
     898,  916,  904,  915,  927,  921,  925,  926,  932,  931,
     939,  948,  951, 3829,  942, 3828,  947,  945,  958, 3827,
     973,  957,  959,  974,  975,  968,  972,  966,  976,  990,

    1000,  997,  969,  996,  993, 1008, 1001, 1002, 1028, 1015,
    1007, 1020, 1038, 1022, 1023, 1040, 1036, 1047, 1029, 1032,
    1042, 1037, 1060, 1073, 1068, 1065, 3826, 1071, 1081, 1092,
    1074, 1108, 1072, 1099, 1101, 1086, 1088, 1079, 1104, 1103,
    1118, 1133, 1110, 1121, 1126, 1148, 1141, 1145, 1130, 1151,
    1150, 1153, 1135, 1159, 1162, 1149, 1161, 1156, 1157, 1175,
    1188, 1191, 1177, 1190, 1189, 1193, 1200, 1203, 1194, 1218,
    1217, 1221, 1180, 1225, 1226, 1230, 1236, 1215, 1242, 1219,
    1249, 1244, 1245, 1252, 1232, 1253, 1251, 1266, 1274, 1285,
    1261, 1295, 1286, 1281, 1272, 1289, 1284, 1288, 1291, 1293,

    1308, 1304, 1309, 1310, 1311, 1320, 1313, 1333, 1338, 1350,
    1331, 1330, 1347, 1356, 1349, 1351, 1355, 1344, 1353, 1374,
    1360, 1357, 1370, 1371, 1388, 1380, 1394, 3824, 1400, 1402,
    1406, 1386, 1395, 1401, 1409, 1408, 1412, 1446, 3816, 3800,
    3799, 1421, 3798, 1429, 1422, 1418, 1448, 1450, 1449, 1457,
    1444, 1435, 1447, 1469, 1474, 1476, 1471, 1475, 1486, 1480,
    1487, 1490, 1485, 1493, 1501, 1430, 1503, 1507, 3797, 1499,
    1510, 1523, 1529, 1518, 1535, 1538, 1537, 1547, 1524, 1528,
    1550, 1544, 1548, 1541, 1534, 3795, 1552, 1590, 3794, 1306,
    3792, 1565, 1563, 1567, 1568, 1584, 1571, 1592, 1595, 1588,

    1583, 1586, 1580, 1594, 1599, 1605, 1616, 1609, 3791, 1613,
    1617, 1627, 1621, 1640, 3789, 1641, 1622, 1629, 1630, 1657,
    1649, 1631, 1648, 1644, 1662, 1661, 1674, 1676, 1665, 1710,
    1682, 1677, 1669, 1695, 1696, 1703, 1684, 1701, 1709, 1728,
    1722, 1730, 1737, 1725, 1731, 1732, 1729, 3779, 1736, 1748,
    1760, 1755, 1774, 1775, 1757, 1759, 1752, 1780, 1753, 1789,
    3761, 1783, 1765, 1773, 1792, 1768, 1781, 1787, 1804, 1795,
    3748, 3715, 1801, 1796, 1819, 1813, 1814, 1808, 1810, 1837,
    1840, 1848, 1831, 1845, 1846, 1842, 1844, 1884, 1871, 1856,
    3613, 3594, 1871, 1878, 1862, 1879, 1870, 3550, 1866, 1892,

    1881, 1900, 1857, 1901, 1893, 1889, 1905, 1882, 1916, 1909,
    3535, 1874, 1910, 1932, 1931, 1934, 1929, 1939, 1921, 1942,
    1927, 1937, 1947, 1948, 1941, 1951, 1952, 1930, 1956, 1976,
    1972, 1974, 1979, 1978, 1982, 1980, 1990, 3529, 1995, 3524,
    2001, 1999, 1992, 1987, 2010, 2015, 2006, 2012, 2014, 2016,
    2023, 3495, 2037, 2041, 2027, 2021, 2043, 3489, 3455, 2053,
    2055, 2051, 2054, 2039, 2059, 2048, 2061, 2064, 2057, 2078,
    2072, 2070, 2073, 2086, 2083, 2081, 2071, 2082, 2088, 2105,
    2113, 2109, 2098, 2108, 2112, 3443, 3400, 2115, 2125, 2120,
    2164, 2119, 2122, 2128, 3396, 2174, 2147, 2149, 2151, 2145,

    2162, 2155, 2150, 3385, 2177, 3364, 2170, 2172, 3345, 2182,
    2181, 3335, 2176, 2191, 2204, 2194, 3311, 3291, 2189, 2206,
    3210, 2214, 3175, 2199, 2216, 2198, 2209, 2213, 2221, 2218,
    2236, 2235, 2226, 2245, 2232, 2230, 2240, 2242, 2241, 2248,
    2257, 2262, 2256, 3112, 2280, 2272, 2267, 2287, 2271, 2291,
    2268, 2285, 2281, 2989, 2293, 2298, 2288, 2292, 2294, 2304,
    2988, 2299, 2315, 2308, 2310, 2338, 2328, 2319, 2325, 2340,
    2323, 2333, 2350, 2346, 2343, 2342, 2355, 2356, 2360, 2978,
    2365, 2363, 2366, 2373, 2380, 2370, 2382, 2374, 2385, 2368,
    2402, 2403, 2405, 2907, 2407, 2420, 2397, 2401, 2413, 2415,

    2871, 2408, 2426, 2424, 2434, 2421, 2432, 2437, 2443, 2453,
    2445, 2839, 2435, 2442, 2444, 2446, 2480, 2470, 2478, 2465,
    2826, 2459, 2468, 2487, 2486, 2484, 2473, 2494, 2471, 2502,
    2822, 2492, 2490, 2505, 2515, 2517, 2521, 2819, 2516, 2508,
    2514, 2531, 2519, 2724, 2529, 2533, 2541, 2544, 2537, 2528,
    2554, 2536, 2560, 2555, 2565, 2561, 2546, 2558, 2566, 2559,
    2567, 2596, 2587, 2572, 2631, 2580, 2601, 2602, 2599, 2603,
    2600, 2592, 2618, 2594, 2619, 2612, 2610, 2617, 2463, 2460,
    2607, 2625, 2621, 2633, 2630, 2634, 2629, 2646, 2642, 2664,
    2648, 2659, 2638, 2660, 2658, 2652, 2667, 2679, 2665, 2393,

    2685, 2657, 1949, 2332, 2673, 2686, 2694, 2692, 2684, 2689,
    2706, 2688, 2710, 2329, 2709, 2711, 2697, 2717, 2705, 2722,
    2735, 2715, 2744, 2721, 2751, 2750, 2283, 2742, 2732, 2737,
    2282, 2748, 2759, 2745, 2757, 2767, 2754, 2766, 2773, 2786,
    2790, 2791, 2797, 2253, 2783, 2794, 2787, 2212, 2161, 2801,
    2803, 2784, 2785, 2789, 2825, 2814, 2823, 2818, 2831, 2812,
    2816, 2159, 2836, 2846, 2104, 2828, 2844, 2851, 2099, 2845,
    2850, 2854, 2852, 2863, 2865, 2867, 2881, 2873, 2052, 2883,
    2886, 2047, 2892, 2879, 2890, 2894, 2898, 2900, 1983, 2908,
    1968, 2906, 2891, 2895, 2912, 2919, 2934, 2914, 2920, 2922,

    2923, 1920, 2931, 1917, 2926, 2925, 2943, 2949, 2942, 2946,
    2951, 2958, 2952, 2953, 2961, 2969, 2971, 1915, 2950, 2973,
    2979, 2976, 2985, 2990, 2993, 3005, 3015, 2998, 3010, 3013,
    1912, 2996, 3001, 3016, 3026, 3021, 3034, 3024, 3036, 3025,
    3042, 3029, 1904, 3048, 3038, 1828, 3043, 3056, 3053, 1826,
    3052, 1822, 3054, 1786, 3096, 1777, 3071, 3068, 3051, 3083,
    3078, 3086, 1702, 1689, 3072, 3085, 3091, 3088, 3098, 3081,
    3102, 3094, 3103, 1680, 3095, 3127, 3128, 3132, 3130, 3133,
    3122, 3139, 3140, 3129, 3141, 3125, 3138, 3147, 3131, 3154,
    3157, 3148, 3152, 3158, 1672, 3143, 1668, 3160, 3172, 3171,

    3184, 3164, 3170, 3174, 3188, 3169, 3181, 3191, 3196, 3180,
    3201, 3203, 3211, 3205, 3215, 3220, 3227, 3230, 3237, 3228,
    1633, 3231, 3238, 3236, 3247, 3250, 3246, 3249, 3258, 3254,
    3252, 3264, 1581, 3251, 1546, 1533, 1532, 3272, 1517, 3270,
    1442, 3281, 3277, 1437, 3278, 3279, 3287, 3271, 3273, 3293,
    1419, 3298, 3300, 3302, 3296, 3307, 3314, 3308, 1389, 3322,
    3318, 3323, 3327, 3315, 3333, 1382, 3321, 3317, 3332, 3338,
    3339, 3334, 3348, 3354, 3357, 1379, 3362, 3363, 3358, 3359,
    1337, 3356, 3349, 3378, 3372, 3375, 3383, 3370, 1268, 1258,
    3379, 1228, 3394, 3389, 3404, 3406, 3412, 3398, 3411, 3405,

    3410, 3421, 3419, 3415, 3427, 1222, 1185, 3416, 1184, 1181,
    3430, 1176, 3431, 3451, 3434, 3437, 3448, 1173, 1144, 3457,
    1132, 3463, 3464, 1106, 3461, 3444, 3462, 3447, 3454, 3468,
    3477, 3479, 3483, 1059,  923, 3486, 3488, 3492,  887, 3482,
    3475, 3502, 3503, 3506,  884, 3491,  864, 3516,  811, 3509,
     787, 3513, 3496, 3521, 3526,  786,  781, 3522, 3534, 3523,
    3525, 3532, 3548, 3540, 3552, 3543,  772, 3561, 3566, 3551,
    3569, 3562, 3572, 3556, 3578, 3577, 3581,  766, 3565,  756,
    3592,  752, 3579, 3591, 3584, 3595,  727, 3598, 3605, 3611,
    3614,  697,  663, 3618, 3621, 3619, 3623, 3622, 3608, 3624,

     624, 3634,  583, 3627, 3629, 3640,  565, 3635, 3641, 3638,
    3651,  564,  545, 3646, 3649, 3657, 3650,  488,  467, 3678,
    3667,  355, 3655, 3665, 3686, 3683, 3687, 3690, 3680, 3684,
    3691, 3682, 3700, 3706, 3697, 3707, 3720, 3721, 3709,  345,
    3718, 3727,  331, 3731, 3717,  326,  316,  276, 3722, 3716,
    3744, 3730, 3728,  173, 3733, 3738, 3734, 3736, 3768, 3765,
    3767, 3775, 3773, 3757, 3778,  167, 3777, 3762,  153, 3764,
    3784, 3787, 3786,  144, 3796, 3771, 3788,   94, 3884, 3841,
    3845, 3849,  128, 3853, 3857,  109, 3859, 3861,  107,  102,
      87

   } ;

static const flex_int16_t yy_def[1392] =
   {   0,
    1379,    1, 1380, 1380, 1381, 1381, 1382, 1382, 1379, 1383,
    1379, 1379, 1379, 1384, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1385, 1379, 1379, 1379, 1385,
    1386, 1379, 1379, 1379, 1386, 1387, 1379, 1379, 1387, 1383,
    1383, 1379, 1388, 1384, 1388, 1384, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1385, 1385, 1386, 1386, 1379, 1387,
    1387, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1389, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1390, 1389, 1389, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1390, 1390, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1391, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1391, 1391, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,

    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
    1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,    0, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379

   } ;

static const flex_int16_t yy_nxt[3951] =
   {   0,
      10,   11,   12,   12,   13,   14,   10,   10,   10,   10,
      10,   10,   10,   15,   16,   17,   18,   19,   10,   10,
      20,   21,   10,   22,   23,   24,   25,   26,   27,   10,
      28,   29,   30,   31,   32,   10,   33,   10,   34,   35,
      15,   16,   17,   18,   19,   10,   10,   20,   21,   10,
      22,   23,   24,   25,   26,   27,   10,   28,   29,   30,
      31,   32,   10,   33,   10,   34,   37,   38,   39,   37,
      38,   39,   42,   43,   43,   44,   42,   43,   43,   44,
      47,   47,   48,   47,   47,   48,   52, 1054,   73,   55,
      53,   55,   55,  128,   61,   74,   57,   79,   58,  105,

     105,   51,  695,   40,   80,   59,   40,  592,   60,  107,
      45,   51,   51,   51,   45,   73,   51,   49,  104,   51,
      49,   61,   74,   57,   79,   58,   51,   56,   50,   75,
      51,   80,   59,   51,   81,   60,   62,  103,  118,   76,
      63,   77,   82,   64,   65,  104,   66,   51,   50,   78,
      50,   50,   51,   87,   83,   51,   75,  102,   51,   51,
      51,   81,  100,   62,  103,  118,   76,   63,   77,   82,
      64,   65,   84,   66,   67,  206,   78,  101,   68,   51,
      87,   83,   69,   51,  102,   51,   85,   70,   71,  100,
      86,   72,   51,  107,   88,  107,  107,   92,   51,   84,

      51,   67,   89,   51,  101,   68,   51,   93,   90,   69,
      94,   91,   51,   85,   70,   71,   98,   86,   72,   51,
      51,   88,  110,  110,   92,   99,   95,   52,  114,   89,
      96,   53,  115,  116,   93,   90,   51,   94,   91,   51,
      51,   97,   50,   98,   50,   50,  112,   55,   51,   55,
      55,  113,   99,   95,   51,  114,  117,   96,  284,  115,
     116,  119,  120,  121,  122,  123,   51,  124,   97,   51,
      51,  125,  126,  112,   51,   51,  127,  131,  113,   51,
     105,  105,  130,  117,   51,   56,   51,   51,  119,  120,
     121,  122,  123,   51,  124,  129,   51,  132,  125,  126,

      51,  133,  135,  127,  131,  136,  137,   51,   51,  130,
     139,  140,  141,   51,  142,   51,  143,   51,  134,   51,
     145,  144,  129,  150,  132,   51,  146,  185,  133,   51,
     138,   51,   51,   51,   51,   51,   51,  139,  140,  141,
     147,  142,  148,  143,  149,  134,   51,  145,  144,   51,
     150,   51,  151,  146,  152,   51,  158,  138,   51,  159,
      51,   51,   51,  164,   51,   51,   51,  147,  201,  148,
      51,  149,  168,  107,   51,  107,  107,  165,  160,  151,
      51,  152,  153,  158,   51,  154,  159,  167,  170,  161,
     164,  166,  155,  162,   51,  163,  156,  169,   51,  168,

     157,   51,   51,   51,  165,  160,   51,  176,   51,  153,
      51,   51,  154,  177,  167,  170,  161,  171,  166,  155,
     162,  172,  163,  156,  169,  173,   51,  157,  110,  110,
      51,  174,   51,  175,  176,  180,  179,  178,   51,  181,
     177,  184,  224,   51,  171,   51,   51,   51,  172,  186,
     188,  182,  173,  187,   51,  191,   51,   51,  174,   51,
     175,   51,  180,  179,  178,  183,  181,  189,  184,  224,
     196,  193,   51,   51,  190,   51,  186,  188,  182,   51,
     187,   51,  191,  194,  192,   51,  195,  197,   51,  202,
     203,  204,  183,  209,  189,   51,   51,  196,  193,   51,

     210,  190,  198,  205,  207,   51,   51,  199,  215,   51,
     194,  192,   51,  195,  197,  211,  208,  212,  213,  216,
      51,  200,   51,  214,   51,  217,   51,   51,   51,  198,
     205,   51,   51,   51,  199,  215,  218,   51,  222,   51,
      51,   51,  211,  208,  212,  213,  216,  219,  200,  223,
     214,  220,  217,  221,   51,   51,   51,   51,  225,  226,
      51,  228,  227,  218,   51,  222,  231,   51,  229,  230,
     232,   51,  236,  235,  219,   51,  223,   51,  220,  233,
     221,  234,   51,  237,   51,  225,  226,  238,   51,  227,
     243,   51,   51,  231,   51,  229,  230,  232,  245,  244,

     235,   51,  240,   51,   51,   51,  233,   51,  234,  241,
     246,  239,  247,   51,   51,  248,   51,  243,  251,  242,
      51,   51,   51,  249,  252,  245,  244,   51,  250,  240,
      51,   51,  253,  257,   51,  254,  241,  246,  239,  247,
      51,   51,   51,  255,  258,  251,  242,  256,   51,  260,
     249,  252,  259,   51,   51,  250,  261,  262,   51,  253,
     257,  264,  254,   51,   51,  263,  266,   51,  268,   51,
     255,  258,   51,   51,  256,   51,  260,  265,  267,  259,
      51,  273,  278,  261,   51,  274,  275,   51,  269,  270,
      51,   51,  263,  266,   51,  268,  271,   51,   51,  272,

      51,  276,   51,  279,  265,  267,  277,  280,   51,  278,
     282,   51,   51,   51,   51,  269,  270,  283,   51,   51,
     281,  285,  286,  271,   51,  289,  272,  287,  276,   51,
     279,  288,  290,  277,  280,   51,   51,  282,  291,   51,
     296,  293,   51,   51,  283,  304,  298,  281,  285,  292,
      51,   51,  289,   51,  287,  294,   51,  295,  288,   51,
      51,  297,   51,   51,   51,  291,   51,  296,  293,   51,
     303,  299,  305,  298,  309,  306,  292,  307,   51,  319,
     300,  301,  294,   51,  295,  302,  308,   51,  297,   51,
     332,   51,   51,   51,   51,   51,   51,  303,  299,  305,

     340,  309,  306,  320,   51,   51,  319,  300,  301,  321,
      51,   51,  302,  308,  310,  323,   51,  315,  322,  316,
      51,   51,   51,   51,  311,   51,   51,  340,  312,  313,
     320,  314,  317,   51,  334,  318,  321,  324,   51,   51,
     327,  310,  323,   51,  315,  322,  316,  328,  331,  325,
      51,  311,  326,  329,  333,  312,  313,   51,  314,  317,
     330,  334,  318,   51,  336,  335,   51,  341,   51,  338,
      51,   51,  339,  342,  328,  331,  325,   51,  337,  326,
     329,  333,   51,  343,   51,   51,  344,  330,   51,  345,
     346,  336,  335,  350,  341,   51,  338,  347,  348,  339,

     342,   51,  349,   51,  353,  337,  357,   51,   51,   51,
     343,  354,  351,  356,  355,   51,  345,  346,  358,   51,
     350,  361,   51,   51,  359,  352,   51,   51,   51,  349,
      51,  353,  362,  357,   51,   51,   51,   51,  354,  351,
     356,  355,  360,   51,   51,  358,  366,  365,  361,  368,
     367,  359,  352,  363,   51,   51,  370,  372,  364,  362,
      51,  371,   51,  378,   51,   51,   51,  369,  374,  360,
      51,   51,  384,  366,  365,  375,  368,  367,   51,  373,
     363,   51,  376,  370,   51,  364,   51,   51,  371,  377,
      51,  380,  381,  379,  369,  374,   51,   51,   51,  382,

     383,  390,  375,  386,  385,   51,  373,   51,   51,  376,
     391,   51,   51,   51,   51,   51,  377,  389,  380,  381,
     379,  387,  393,  392,  388,  394,  382,  383,  390,   51,
     386,  385,   51,  395,  396,   51,   51,  391,  398,   51,
      51,   51,  397,  401,  389,  407,   51,   51,  387,  393,
     392,  388,  394,  399,   51,  400,  402,  403,  409,   51,
     395,   51,   51,  404,  405,  398,  406,   51,   51,  397,
     401,   51,  407,  408,  410,   51,   51,   51,  425,   51,
     399,   51,  400,  402,  403,  409,   51,  411,  412,  415,
     404,  405,  417,  406,  429,  416,  430,  428,   51,   51,

     408,  410,  418,  413,   51,  414,  421,   51,  419,  432,
      51,   51,   51,   51,  411,  412,  415,  427,   51,  417,
      51,  422,  416,  430,  420,   51,  426,   51,  431,  418,
     413,   51,  414,  421,  423,  419,  433,  424,   51,  434,
      51,  435,   51,   51,  427,   51,  436,   51,  422,   51,
     437,  420,  440,  426,  438,  431,  441,   51,  442,  439,
      51,  423,  443,  433,  424,   51,  444,  446,  435,   51,
     445,   51,   51,  436,   51,  448,  447,  437,  450,  449,
      51,  452,  451,   51,   51,  442,  468,   51,   51,   51,
      51,  469,   51,  444,  446,   51,   51,  445,   51,  453,

      51,   51,  448,  447,  454,  450,  449,  455,  452,  451,
     456,  457,   51,  458,   51,   51,   51,  460,  459,   51,
      51,  461,  463,   51,   51,  476,  453,   51,   51,   51,
      51,  454,   51,   51,  455,  462,  464,  456,  457,   51,
     458,  466,   51,  474,  460,  459,  467,  472,  461,  463,
     465,  470,  471,  473,   51,  477,   51,   51,   51,  475,
      51,   51,  462,  464,   51,   51,  481,   51,  466,   51,
     474,   51,  479,  467,  472,   51,  478,  465,  470,  471,
     473,   51,  480,   51,   51,  482,  475,  484,   51,  483,
      51,   51,   51,  481,  487,  485,  486,   51,  491,  479,

      51,  488,  492,  478,  493,   51,  489,   51,  497,  480,
     494,   51,  482,   51,  484,  498,  483,  495,  591,  496,
      51,  487,  485,   51,   51,   51,  490,   51,   51,  492,
      51,  493,   51,  499,   51,  497,  500,  494,  505,  501,
     502,  503,  498,   51,  495,   51,  496,   51,   51,   51,
      51,  504,   51,  490,  506,  507,  508,  510,  511,   51,
     499,  509,  515,  500,  512,  505,  501,  502,  503,   51,
      51,  513,   51,  514,  518,  517,   51,   51,  504,  516,
     520,  506,  507,   51,  510,  511,   51,  519,   51,   51,
      51,  512,   51,  521,   51,   51,   51,  522,  513,   51,

     514,  518,  517,  524,  523,  525,  516,  520,  529,   51,
      51,  526,  530,   51,  519,  527,  532,  531,   51,   51,
     521,   51,  533,  528,  522,   51,  534,   51,   51,  536,
     524,  523,  525,   51,   51,  535,  567,  543,  526,   51,
      51,   51,  527,  532,  531,   51,  544,   51,   51,  533,
     528,   51,  545,  534,  547,  546,  536,   51,   51,  548,
      51,   51,  535,  537,  543,  549,  550,  538,   51,   51,
     539,  551,  553,  544,   51,  552,   51,  540,  541,  545,
     542,   51,  546,   51,  554,   51,   51,   51,   51,   51,
     537,  561,  549,  550,  538,  555,   51,  539,  551,  553,

     556,  557,  552,  560,  540,  541,  564,  542,   51,  558,
      51,  554,  559,   51,   51,   51,  568,  562,  570,   51,
     563,  571,  555,  565,   51,   51,   51,  556,  557,   51,
     560,  566,   51,  564,  572,  573,  558,  569,   51,  559,
      51,  575,   51,  568,  562,  570,   51,  563,  574,   51,
     565,  576,  577,  578,  579,  580,   51,   51,  566,  581,
     582,  583,   51,   51,  569,  584,  586,   51,   51,  585,
     587,   51,   51,   51,   51,  574,   51,   51,  576,  577,
      51,  579,  580,   51,  595,   51,   51,   51,  583,   51,
     594,   51,  584,  586,  597,  598,  585,  587,  588,  588,

     588,  599,   51,  596,   51,  589,   51,   51,  602,  600,
      51,  595,  601,  590,  605,  603,  607,  594,  604,   51,
      51,  597,   51,   51,  611,   51,  606,   51,  599,   51,
     596,   51,  589,   51,   51,  602,  600,  608,   51,  601,
     590,  605,  603,  607,   51,  604,  609,  610,   51,  614,
     612,  613,   51,  606,  617,   51,   51,  615,  616,  618,
      51,   51,  619,  622,  608,  623,   51,  621,   51,   51,
      51,  624,   51,  609,  610,  625,  614,  612,  613,   51,
      51,  617,  620,   51,  615,  616,  618,   51,   51,  619,
     622,  627,  623,  628,  621,  626,   51,  629,  624,  635,

      51,   51,  625,  636,   51,  637,  638,   51,   51,  620,
     641,   51,  639,   51,  640,   51,   51,  642,  627,   51,
     628,   51,  626,   51,  629,  630,  635,  631,   51,  643,
     636,  632,  637,  633,   51,   51,  644,  641,  634,  639,
      51,   51,   51,  652,  642,  645,  647,  648,   51,   51,
     649,  650,  630,  654,  631,  646,  643,  653,  632,  664,
     633,   51,  651,  644,   51,  634,  662,   51,   51,   51,
      51,   51,  645,  647,  648,   51,   51,  649,  650,  655,
     654,  656,  646,  657,  653,  658,  659,   51,  660,  651,
     661,   51,   51,  662,   51,  665,   51,  663,   51,   51,

     666,  674,  667,  668,   51,  670,  655,   51,  656,  669,
     657,  671,   51,   51,   51,  660,   51,  661,  672,   51,
      51,  673,   51,  676,  663, 1055,   51,  666,   51,  667,
     668,   51,  670,  677,   51,   51,  669,  675,  671,  678,
      51,  679,  681,   51,  680,  672,  683,   51,  673,   51,
     676,  682,   51,   51,  684,  685,  686,  687,   51,  688,
     677,   51,  689,  705,  675,   51,  678,   51,  679,  681,
      51,  680,  592,  694,  592,  592,   51,  698,  682,   51,
     714,   51,  685,   51,   51,   51,  688,   51,  692,  689,
     690,  691,  691,  691,  691,   51,   51,  699,  693,  697,

     694,   51,  700,  701,  698,   51,  708,  702,  703,   51,
      51,  704,  706,   51,  707,  692,  709,   51,   51,  710,
      51,   51,  711,   51,  699,  693,  697,  712,   51,  700,
     701,   51,   51,  708,  702,  703,  713,  715,  716,   51,
      51,  707,  717,   51,   51,  718,  710,  720,   51,   51,
     721,   51,  722,  723,   51,   51,   51,  724,  725,   51,
      51,  982,  728,  713,  715,  719,   51,  731,   51,   51,
      51,   51,  729,   51,  720,  727,   51,  726,   51,  722,
      51,   51,  730,  732,  724,  725,   51,   51,   51,  728,
      51,   51,  719,  733,  731,   51,  736,  738,  734,  729,

     735,  739,  727,  744,  726,  737,  745,   51,  740,  730,
     732,   51,  741,   51,  742,   51,  743,   51,   51,   51,
     733,   51,   51,  736,  738,  734,   51,  735,  739,   51,
     747,   51,  737,  745,   51,  740,  746,  748,   51,  741,
      51,  742,  749,  743,  752,   51,  750,  756,  751,   51,
     753,   51,  754,   51,   51,   51,  757,  747,  755,  758,
      51,  759,   51,  746,  748,  761,   51,  765,  760,  749,
     762,  752,  763,  750,  756,  751,   51,  753,   51,  764,
      51,  766,   51,  757,  768,  755, 1055,   51,  767,  769,
      51,   51,   51,   51,   51,  760,   51,  762,   51,  763,

      51,  774,  770,   51,  776,  771,  764,  772,  766,   51,
      51,   51,   51,  775,  778,  767,  769,   51,  773,  777,
      51,   51,   51,  779,  780,   51,  782,   51,  774,  770,
     781,  776,  771,  784,  772,  787,  783,   51,   51,  785,
     775,  778,  786,   51,   51,  773,  777,   51,   51,  788,
     779,   51,   51,  782,   51,  789,  794,  781,   51,   51,
     784,   51,  787,  783,   51,  790,  785,   51,  795,  786,
     690,  691,  691,  691,  691,  695,  788,  695,  695,  791,
     792,  793,  789,  797,   51,  799,   51,  796,   51,   51,
      51,  798,  790,  801,   51,  810,  802,  800,   51,  803,

      51,   51,  805,   51,  806,  813,  791,  792,  793,   51,
     797,   51,  799,  804,  796,   51,   51,  807,  798,  808,
      51,   51,  809,  802,  800,  812,  803,  811,   51,  805,
      51,  806,  816,   51,  814,  815,  818,   51,   51,  817,
     804,  822,  820,   51,  807,   51,  808,  821,   51,  809,
     819,   51,   51,   51,  811,   51,  823,   51,  824,  816,
      51,  814,  815,  818,  825,   51,  817,  826,  831,   51,
     827,   51,  828,  829,   51,   51,  832,  819,  830,   51,
      51,   51,  833,  823,   51,  824,  834,   51,  835,  841,
     836,  825,   51,  837,  826,   51,   51,  827,  838,  828,

     829,   51,  839,  832,  844,  830,   51,   51,  840,  833,
      51,   51,  842,  843,  845,  835,  841,  836,  846,   51,
      51,   51,   51,  847,   51,  848,   51,   51,  852,  839,
      51,   51,   51,   51,  849,  840,  850,   51,   51,  842,
     843,  845,  853,   51,  854,  846,  851,   51,  855,   51,
     847,  856,  848,  859,   51,  852,  857,  858,   51,  860,
     864,  849,   51,  850,   51,  861,  865,   51,   51,  853,
     863,   51,   51,  851,  877,  855,  862,   51,  856,   51,
     859,   51,   51,  857,  858,   51,  860,  864,  866,   51,
     867,  868,  861,  869,   51,   51,  870,  863,  871,   51,

     873,  872,   51,  862,   51,   51,  875,   51,  878,   51,
     874,  876,   51,   51,  879,  866,  880,  867,  868,   51,
     869,   51,  881,  870,   51,  871,  882,  873,  872,  883,
     885,  886,   51,  875,  884,  887,   51,  874,  876,  891,
      51,   51,   51,  888,   51,  889,   51,   51,  892,  881,
     893,  890,   51,  898,   51,  900,  883,  885,  886,   51,
      51,  884,  887,   51,  894,   51,  891,  901,  895,  897,
     888,   51,  889,   51,   51,  892,   51,  893,  890,  899,
     898,   51,   51,   51,   51,   51,  902,  903,  896,  904,
     910,  894,   51,  905,  901,  895,  897,  906,   51,   51,

     907,  908,   51,  909,   51,  911,  899,   51,  913,   51,
      51,  912,   51,  914,  903,  896,  915,   51,  917,   51,
     905,  918,  916,   51,  906,   51,   51,  907,  908,   51,
     909,   51,  911,   51,  919,  913,  920,  922,  912,  923,
     927,   51,  934,  915,   51,  917,  924,   51,  931,  916,
     928,  926,  921,   51,   51,   51,   51,  925,   51,  932,
      51,  919,  929,  920,  922,  930,  923,   51,   51,  933,
      51,  937,   51,  924,  939,   51,   51,  928,  926,  921,
      51,  935,  938,   51,  925,   51,  932,  936,  940,  929,
     946,  942,  930,   51,   51,  943,  933,   51,   51,   51,

      51,  939,  945,  941,   51,   51,   51,  944,  935,  938,
     947,   51,  948,  949,  936,  940,  950,  946,  942,   51,
     951,  952,  943,  953,  954,  956,   51,  955,  958,  945,
     941,   51,  962,   51,  960,   51,  964,  947,   51,   51,
      51,   51,   51,  950,  957,  965,   51,  951,  952,   51,
     953,   51,  961,  959,  955,  958,   51,   51,   51,  963,
      51,  960,  966,  967,   51,  972,  971,  968,   51,   51,
      51,  957,   51,   51,  973,  969,  979,   51,  975,  961,
     959,   51,  976,  981,  977,   51,  963,   51,  974,  966,
     967,   51,  978,  971,  968,  970,   51,   51,   51,   51,

     985,  973,  980,   51,   51,  975,   51,  988,  983,  976,
     981,  977,   51,  984,  987,  974,  986,  989,   51,  978,
     990,  991,  970,   51,   51,   51,  992,   51,   51,  980,
     994,   51,  993,   51,  988,  983,   51,  997,  995,  998,
     984,  987, 1001,  986,   51,   51,  999,  990,   51,   51,
      51,  996, 1000,  992,   51, 1002,   51,  994, 1003,  993,
      51,   51, 1004,   51,  997,  995,  998, 1005, 1006, 1001,
    1007,   51, 1009,  999,   51, 1008,   51, 1011,  996, 1000,
    1010,   51, 1012,   51,   51, 1003, 1014,   51, 1013,   51,
      51, 1015, 1017,   51, 1005, 1006,   51, 1007,   51, 1009,

    1016, 1018, 1008, 1020, 1011,   51,   51, 1010, 1019, 1012,
    1021, 1022,   51, 1014, 1023, 1013, 1026, 1027, 1015, 1024,
    1028, 1025,   51,   51,   51,   51,   51, 1016,   51,   51,
      51, 1029, 1030,   51, 1031, 1019,   51, 1021, 1022, 1032,
      51, 1023,   51, 1026, 1027, 1034, 1024, 1028, 1025, 1033,
    1035,   51, 1036,   51, 1040,   51, 1043,   51,   51, 1030,
    1041,   51,   51, 1046,   51,   51, 1032,   51, 1042, 1037,
      51, 1044, 1034, 1038, 1039,   51, 1033, 1035,   51, 1036,
    1047, 1040, 1048,   51,   51,   51, 1045, 1041, 1049,   51,
      51,   51, 1050,   51, 1052, 1042, 1037, 1051, 1044, 1053,

    1038, 1039,   51, 1056,   51, 1057,   51, 1047, 1058, 1048,
      51, 1059,   51, 1045, 1062, 1049, 1060, 1064,   51, 1063,
      51, 1061,   51, 1065, 1051,   51, 1053, 1066, 1067,   51,
      51,   51, 1057,   51,   51, 1058, 1068,   51, 1059,   51,
    1069, 1071, 1074, 1060, 1070,   51,   51,   51, 1061, 1073,
    1065,   51, 1072,   51, 1066, 1067, 1075, 1076,   51,   51,
    1077,   51,   51, 1068,   51,   51, 1078, 1080, 1071, 1079,
      51, 1070, 1081,   51, 1084, 1082, 1073, 1083, 1085, 1072,
    1088,   51,   51, 1075, 1076,   51, 1087, 1077,   51,   51,
      51,   51,   51, 1078, 1080, 1086, 1079,   51, 1089, 1081,

      51, 1084, 1082, 1090, 1083, 1085, 1091, 1088,   51, 1092,
      51, 1093,   51, 1087, 1094,   51, 1095,   51,   51, 1098,
    1101, 1096, 1086, 1099,   51, 1089, 1097,   51,   51,   51,
    1090, 1102,   51, 1091, 1100,   51, 1092,   51, 1093, 1107,
      51, 1094, 1103, 1104,   51, 1105, 1098, 1101, 1110,   51,
    1099, 1106,   51, 1108,   51,   51, 1111, 1109, 1102, 1113,
      51, 1100, 1121,   51,   51,   51, 1107, 1114,   51, 1103,
    1104, 1115, 1105,   51, 1112,   51, 1117,   51, 1106, 1118,
    1108,   51,   51, 1111, 1109, 1116, 1113,   51, 1119, 1120,
      51,   51,   51,   51, 1114,   51, 1122, 1054, 1115, 1054,

    1054, 1112, 1123, 1117, 1124, 1126, 1118,   51, 1127, 1125,
      51,   51, 1116, 1130, 1133, 1119, 1120,   51, 1128, 1131,
      51, 1134,   51, 1122,   51,   51, 1129,   51, 1132, 1123,
      51, 1124, 1126,   51,   51, 1127, 1125,   51, 1135, 1136,
    1130,   51,   51, 1137, 1139, 1128, 1131, 1140, 1134, 1138,
    1141,   51, 1144, 1129, 1143, 1132, 1145, 1142, 1146, 1151,
    1149,   51, 1148, 1150,   51, 1147,   51,   51,   51,   51,
      51,   51,   51, 1154, 1140, 1159, 1138,   51,   51,   51,
      51, 1143,   51, 1145, 1142, 1146,   51,   51, 1152, 1148,
    1156,   51, 1147,   51, 1153, 1157,   51,   51, 1155,   51,

    1154, 1158, 1160,   51, 1161, 1162, 1163, 1166,   51,   51,
      51,   51, 1164,   51,   51, 1152, 1165, 1156, 1167,   51,
      51, 1153, 1157,   51, 1169, 1155, 1171,   51, 1158, 1160,
      51, 1161, 1162, 1163, 1168,   51, 1170, 1173, 1172, 1164,
      51, 1174,   51, 1165,   51, 1167, 1178, 1175, 1176,   51,
      51, 1169, 1177, 1171,   51, 1179, 1182, 1180, 1181,   51,
    1186, 1168, 1189, 1170, 1173, 1172,   51,   51, 1174,   51,
      51, 1185, 1183, 1178, 1175,   51,   51,   51, 1187, 1177,
    1184, 1188, 1179, 1190, 1180,   51,   51, 1191,   51,   51,
      51,   51, 1192,   51, 1193, 1194, 1195,   51, 1185, 1183,

    1196, 1198, 1197,   51, 1200, 1187, 1201, 1184, 1188,   51,
      51,   51,   51, 1203, 1191, 1202,   51,   51,   51, 1206,
      51, 1193, 1194, 1195, 1199, 1204,   51, 1196, 1198, 1197,
      51, 1205,   51, 1207, 1209,   51, 1208,   51, 1210,   51,
    1203,   51, 1202, 1211, 1212, 1218,   51,   51, 1213, 1214,
      51, 1199, 1204,   51,   51, 1216,   51,   51, 1205, 1219,
      51,   51,   51, 1208, 1215, 1217,   51, 1220, 1221, 1224,
    1211,   51,   51,   51,   51, 1213, 1214,   51,   51, 1222,
    1223, 1228, 1216, 1225,   51, 1226, 1227,   51,   51, 1231,
    1234, 1215, 1217,   51, 1220,   51,   51,   51,   51, 1229,

    1233,   51,   51,   51, 1230, 1235, 1222, 1223, 1228,   51,
    1225,   51, 1226, 1227,   51, 1232, 1231,   51,   51, 1237,
    1236, 1238,   51, 1239,   51, 1240, 1229, 1233,   51, 1242,
    1245, 1230, 1241,   51, 1243,  696, 1246,   51, 1247,   51,
    1248, 1249, 1232,   51,   51,   51, 1237, 1236, 1238,   51,
      51,   51, 1240, 1244,   51,   51, 1242, 1250,   51, 1241,
      51, 1243, 1251, 1246, 1253, 1254,   51, 1248, 1261,   51,
      51, 1252, 1255,   51, 1256, 1257,   51, 1259, 1258, 1260,
    1244, 1262,   51,   51, 1250, 1265,   51,   51, 1263, 1266,
      51, 1253, 1254,   51,   51, 1261,   51, 1267, 1252, 1255,

      51,   51,   51,   51, 1259, 1258, 1260,   51, 1262, 1269,
    1264, 1268, 1270, 1271,   51, 1263,   51, 1275,   51, 1272,
    1273,   51,   51, 1274, 1278,   51, 1277,   51,   51, 1279,
      51,   51, 1280, 1282,   51,   51, 1269, 1264, 1268, 1270,
    1271,   51,   51, 1276, 1275,   51, 1272, 1273,   51, 1281,
    1274, 1283,   51, 1277, 1284,   51, 1279, 1285, 1286, 1287,
      51,   51,   51,   51,   51,   51, 1288, 1289,   51, 1291,
    1276,   51, 1292,   51,   51, 1290, 1281, 1293, 1283,   51,
    1298, 1284,   51, 1294, 1285, 1286, 1295,   51, 1296,   51,
      51,   51, 1301, 1288, 1289,   51, 1291, 1302, 1297, 1299,

      51,   51, 1290, 1303,   51,   51, 1307, 1298,   51, 1304,
    1294,   51, 1300, 1295, 1308, 1296,   51,   51,   51, 1305,
      51, 1306, 1309,   51, 1302, 1297, 1299, 1311, 1310, 1312,
      51,   51, 1313,  593,   51, 1318, 1304,   51, 1314, 1300,
    1317, 1308, 1315, 1316,   51, 1319, 1305,   51, 1306, 1309,
      51, 1322,  696,   51, 1311, 1310, 1321,   51,   51, 1323,
      51,   51,   51,   51, 1320, 1314,   51, 1317,   51, 1315,
    1316, 1324, 1333,   51,   51, 1325, 1326,   51, 1327,   51,
      51, 1328, 1329, 1321, 1331,   51, 1323, 1330,   51,   51,
      51, 1320, 1335, 1332,   51, 1340,   51, 1334, 1324, 1333,

    1336, 1339, 1325, 1326,   51, 1327,   51, 1337, 1328, 1329,
    1338, 1343, 1344, 1342, 1330, 1345, 1341,   51, 1346,   51,
    1332,   51,   51,   51, 1334,   51,   51, 1336, 1339,   51,
      51, 1347, 1348, 1354, 1337, 1350,   51, 1338, 1353,   51,
    1342, 1349, 1345, 1341, 1351,   51,   51, 1355,   51, 1352,
    1356, 1357, 1358, 1362,   51,   51,   51,   51, 1361,   51,
      51,   51, 1350, 1360, 1359, 1353,   51,   51, 1349,   51,
      51, 1351,   51,   51, 1355,   51, 1352,   51, 1357, 1358,
    1362, 1363, 1364,   51, 1365, 1361, 1366,   51, 1368, 1369,
    1360, 1359, 1367, 1371, 1370, 1372,   51, 1373, 1374, 1378,

      51,   51, 1377,   51,   51, 1375,   51,   51, 1363, 1364,
      51, 1365,   51, 1376,   51, 1368,   51,   51,   51, 1367,
    1371, 1370, 1372,   51, 1373,   51,   51,   51,   51, 1377,
      51,  593, 1375,   51,   51,   51,   51,   51,   51,   51,
    1376,   36,   36,   36,   36,   41,   41,   41,   41,   46,
      46,   46,   46,   54,   54,   51,   54,  105,  105,  110,
     110,   55,   55,   51,   55,   51,   51,   51,   51,   51,
      51,   51,  111,  109,  108,  106,   51,  111,  109,  108,
     106,   51, 1379,    9, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,

    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379
   } ;

static const flex_int16_t yy_chk[3951] =
   {   0,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
       1,    1,    1,    1,    1,    1,    3,    3,    3,    4,
       4,    4,    5,    5,    5,    5,    6,    6,    6,    6,
       7,    7,    7,    8,    8,    8,   11, 1391,   19,   14,
      11,   14,   14,   71,   16,   20,   15,   22,   15,   40,

      40,   19, 1390,    3,   23,   15,    4, 1389,   15, 1386,
       5,   15,   16,   20,    6,   19,   23,    7,   34,   22,
       8,   16,   20,   15,   22,   15,   71,   14, 1383,   21,
      34,   23,   15, 1378,   24,   15,   17,   33,   62,   21,
      17,   21,   24,   17,   17,   34,   17,   62,   35,   21,
      35,   35,   21,   26,   24,   17,   21,   32,   33,   26,
      24,   24,   31,   17,   33,   62,   21,   17,   21,   24,
      17,   17,   25,   17,   18,  140,   21,   31,   18,   32,
      26,   24,   18, 1374,   32,   31,   25,   18,   18,   31,
      25,   18, 1369,   45,   27,   45,   45,   28,   25,   25,

      18,   18,   27,  140,   31,   18, 1366,   28,   27,   18,
      28,   27, 1354,   25,   18,   18,   30,   25,   18,   28,
      27,   27,   49,   49,   28,   30,   29,   52,   58,   27,
      29,   52,   59,   60,   28,   27,   58,   28,   27,   59,
      30,   29,   51,   30,   51,   51,   57,   54,   29,   54,
      54,   57,   30,   29,   60,   58,   61,   29,  213,   59,
      60,   63,   64,   64,   65,   66,   57,   67,   29,   61,
      65,   68,   69,   57,   67,   64,   70,   74,   57,   63,
     106,  106,   73,   61,   70,   54,  213,   66,   63,   64,
      64,   65,   66,   69,   67,   72,   68,   75,   68,   69,

      74,   76,   77,   70,   74,   77,   77,   72,   73,   73,
      78,   79,   80,   79,   81, 1348,   82,   81,   76,   75,
      84,   83,   72,   89,   75,   76,   85,  122,   76,   82,
      77,   78,   80,   85,   84,   77,   83,   78,   79,   80,
      86,   81,   87,   82,   88,   76,   89,   84,   83,   87,
      89,   88,   90,   85,   91, 1347,   93,   77,   86,   94,
     122,   90,   93,   96,   96, 1346,   91,   86,  136,   87,
    1343,   88,   99,  108,   94,  108,  108,   97,   95,   90,
      99,   91,   92,   93, 1340,   92,   94,   98,  101,   95,
      96,   97,   92,   95, 1322,   95,   92,  100,   98,   99,

      92,  136,   95,   97,   97,   95,   92,  114,  100,   92,
     101,  114,   92,  115,   98,  101,   95,  102,   97,   92,
      95,  103,   95,   92,  100,  104,  102,   92,  111,  111,
     103,  112,  115,  113,  114,  118,  117,  116,  104,  119,
     115,  121,  155,  112,  102,  113,  116,  118,  103,  123,
     125,  120,  104,  124,  155,  128,  125,  121,  112,  117,
     113,  119,  118,  117,  116,  120,  119,  126,  121,  155,
     133,  130,  120,  128,  127,  123,  123,  125,  120,  124,
     124,  127,  128,  131,  129,  133,  132,  134,  126,  137,
     138,  138,  120,  142,  126,  129,  130,  133,  130,  132,

     143,  127,  135,  139,  141,  131, 1319,  135,  147,  134,
     131,  129,  139,  132,  134,  143,  141,  144,  145,  148,
     138,  135,  137,  146,  144,  149,  142, 1318,  135,  135,
     139,  147,  149,  143,  135,  147,  150,  141,  153,  148,
     145,  146,  143,  141,  144,  145,  148,  151,  135,  154,
     146,  152,  149,  152,  151,  154,  152,  150,  156,  157,
     153,  159,  158,  150,  156,  153,  162,  157,  160,  161,
     163,  162,  167,  166,  151,  158,  154,  160,  152,  164,
     152,  165,  166,  168, 1313,  156,  157,  170,  165,  158,
     172,  163,  161,  162,  159,  160,  161,  163,  174,  173,

     166,  164,  171, 1312, 1307,  167,  164,  174,  165,  171,
     175,  170,  176,  172,  175,  177,  168,  172,  181,  171,
     170,  173, 1303,  179,  182,  174,  173,  171,  180,  171,
     179,  181,  183,  187,  176,  184,  171,  175,  170,  176,
     180,  183,  182,  185,  188,  181,  171,  186,  177,  190,
     179,  182,  189,  184,  186,  180,  191,  192,  187,  183,
     187,  194,  184, 1301,  188,  193,  196,  191,  198,  185,
     185,  188,  196,  189,  186,  190,  190,  195,  197,  189,
     193,  203,  208,  191,  195,  204,  205,  197,  199,  200,
     192,  198,  193,  196,  194,  198,  201,  199,  200,  202,

     208,  207, 1293,  209,  195,  197,  207,  210,  201,  208,
     211,  202,  209,  207,  203,  199,  200,  212,  204,  205,
     210,  214,  215,  201,  211,  218,  202,  216,  207,  210,
     209,  217,  219,  207,  210,  212, 1292,  211,  220,  216,
     225,  222,  214,  218,  212,  230,  227,  210,  214,  221,
     215,  221,  218,  217,  216,  223,  220,  224,  217,  222,
     219,  226,  225,  223,  224,  220, 1287,  225,  222,  227,
     229,  228,  231,  227,  235,  232,  221,  233,  230,  238,
     228,  228,  223,  226,  224,  228,  234,  238,  226,  228,
     246, 1282,  229,  232,  231, 1280,  235,  229,  228,  231,

     254,  235,  232,  239,  234, 1278,  238,  228,  228,  240,
     233, 1267,  228,  234,  236,  242,  239,  237,  241,  237,
    1257,  240,  254,  246,  236, 1256, 1251,  254,  236,  236,
     239,  236,  237,  242,  248,  237,  240,  243,  236,  241,
     244,  236,  242,  237,  237,  241,  237,  244,  245,  243,
    1249,  236,  243,  244,  247,  236,  236,  248,  236,  237,
     244,  248,  237,  247,  250,  249,  245,  255,  244,  252,
     243,  250,  253,  256,  244,  245,  243,  249,  251,  243,
     244,  247,  252,  257,  253,  251,  258,  244,  255,  259,
     260,  250,  249,  263,  255,  256,  252,  261,  261,  253,

     256,  260,  262, 1247,  265,  251,  269,  259,  262,  257,
     257,  266,  264,  268,  267,  263,  259,  260,  270,  258,
     263,  273,  265, 1245,  271,  264, 1239,  261,  269,  262,
     264,  265,  274,  269,  266,  267,  268,  271,  266,  264,
     268,  267,  272,  273,  270,  270,  277,  276,  273,  279,
     278,  271,  264,  275,  274,  272,  281,  283,  275,  274,
     276,  282, 1235,  292,  277,  278,  275,  280,  287,  272,
     280,  279,  298,  277,  276,  288,  279,  278,  281,  285,
     275,  285,  289,  281,  288,  275,  287,  282,  282,  291,
     283,  294,  295,  293,  280,  287,  292,  289,  293,  296,

     297,  303,  288,  300,  299,  298,  285,  296,  303,  289,
     304,  297,  291,  294,  295,  299,  291,  302,  294,  295,
     293,  301,  306,  305,  301,  307,  296,  297,  303,  300,
     300,  299,  305,  308,  309,  304,  302,  304,  311,  301,
     307,  308,  310,  314,  302,  320,  311,  306,  301,  306,
     305,  301,  307,  312,  310,  313,  315,  316,  322,  312,
     308,  314,  315,  317,  318,  311,  319,  309,  319,  310,
     314,  320,  320,  321,  322,  317,  322,  313,  333,  316,
     312,  321,  313,  315,  316,  322,  318,  323,  324,  325,
     317,  318,  328,  319,  337,  326,  338,  336, 1234,  323,

     321,  322,  329,  324,  326,  324,  331,  325,  330,  340,
     328,  333,  324,  331,  323,  324,  325,  335,  338,  328,
     329,  332,  326,  338,  330,  336,  334,  337,  339,  329,
     324,  330,  324,  331,  332,  330,  341,  332,  334,  342,
     335,  343,  340,  339,  335, 1224,  344,  332,  332,  343,
     345,  330,  347,  334,  346,  339,  348,  341,  349,  346,
     344,  332,  350,  341,  332,  345,  351,  353,  343,  349,
     352, 1221,  342,  344,  353,  355,  354,  345,  357,  356,
     347,  359,  358, 1219,  348,  349,  373,  346,  356,  351,
     350,  373,  352,  351,  353,  358,  359,  352,  354,  360,

     357,  355,  355,  354,  361,  357,  356,  362,  359,  358,
     363,  364, 1218,  365,  360, 1212,  363,  367,  366,  373,
    1210,  368,  369, 1209, 1207,  380,  360,  361,  365,  364,
     362,  361,  366,  369,  362,  368,  370,  363,  364,  367,
     365,  371,  368,  378,  367,  366,  372,  376,  368,  369,
     370,  374,  375,  377,  378,  381,  371,  370,  380,  379,
     372, 1206,  368,  370,  374,  375,  385, 1192,  371,  376,
     378,  385,  383,  372,  376,  377,  382,  370,  374,  375,
     377,  379,  384,  382,  383,  386,  379,  388,  381,  387,
     387,  384,  386,  385,  391,  389,  390, 1190,  393,  383,

     391,  392,  394,  382,  395,  388,  392, 1189,  399,  384,
     396,  395,  386,  389,  388,  400,  387,  397,  490,  398,
     394,  391,  389,  397,  390,  393,  392,  398,  396,  394,
     399,  395,  400,  401,  392,  399,  402,  396,  407,  403,
     404,  405,  400,  402,  397,  490,  398,  401,  403,  404,
     405,  406,  407,  392,  408,  409,  410,  411,  412,  406,
     401,  410,  416,  402,  413,  407,  403,  404,  405,  412,
     411,  414,  408,  415,  419,  418, 1181,  409,  406,  417,
     421,  408,  409,  418,  411,  412,  413,  420,  415,  410,
     416,  413,  419,  422,  417,  414,  422,  423,  414,  421,

     415,  419,  418,  425,  424,  426,  417,  421,  430,  423,
     424,  427,  431,  420,  420,  429,  433,  432, 1176,  426,
     422, 1166,  434,  429,  423,  432,  435,  425, 1159,  437,
     425,  424,  426,  427,  433,  436,  466,  442,  427,  429,
     434,  430,  429,  433,  432,  431,  444,  436,  435,  434,
     429,  437,  445,  435,  447,  446,  437,  446, 1151,  447,
     442,  445,  436,  438,  442,  448,  449,  438,  444,  466,
     438,  450,  452,  444,  452,  451, 1144,  438,  438,  445,
     438, 1141,  446,  451,  453,  438,  453,  447,  449,  448,
     438,  460,  448,  449,  438,  454,  450,  438,  450,  452,

     455,  456,  451,  459,  438,  438,  463,  438,  454,  457,
     457,  453,  458,  455,  458,  456,  467,  461,  470,  460,
     462,  471,  454,  464,  463,  459,  461,  455,  456,  462,
     459,  465,  464,  463,  472,  473,  457,  468,  470,  458,
     465,  475,  467,  467,  461,  470,  468,  462,  474,  471,
     464,  476,  477,  478,  479,  480, 1139,  474,  465,  481,
     481,  482,  472,  479,  468,  483,  485,  480,  473,  484,
     487, 1137, 1136,  485,  475,  474,  477,  476,  476,  477,
     484,  479,  480,  482,  493, 1135,  478,  483,  482,  481,
     492,  487,  483,  485,  495,  496,  484,  487,  488,  488,

     488,  497,  493,  494,  492,  488,  494,  495,  500,  498,
     497,  493,  499,  488,  503,  501,  505,  492,  502,  503,
    1133,  495,  501,  496,  510,  502,  504,  500,  497,  488,
     494,  498,  488,  504,  499,  500,  498,  506,  505,  499,
     488,  503,  501,  505,  506,  502,  507,  508,  508,  513,
     511,  512,  510,  504,  517,  507,  511,  514,  516,  518,
     513,  517,  519,  522,  506,  523,  512,  521,  518,  519,
     522,  524, 1121,  507,  508,  525,  513,  511,  512,  514,
     516,  517,  520,  524,  514,  516,  518,  523,  521,  519,
     522,  527,  523,  528,  521,  526,  520,  529,  524,  531,

     526,  525,  525,  532,  529,  533,  534, 1097,  533,  520,
     537, 1095,  535,  527,  536,  528,  532,  538,  527, 1074,
     528,  531,  526,  537,  529,  530,  531,  530, 1064,  538,
     532,  530,  533,  530,  534,  535,  539,  537,  530,  535,
     538, 1063,  536,  546,  538,  540,  541,  542,  539,  530,
     543,  544,  530,  549,  530,  540,  538,  547,  530,  559,
     530,  541,  545,  539,  544,  530,  557,  540,  547,  542,
     545,  546,  540,  541,  542,  549,  543,  543,  544,  550,
     549,  551,  540,  552,  547,  553,  554,  550,  555,  545,
     556,  557,  559,  557,  552,  560,  555,  558,  556,  551,

     562,  570,  563,  564,  563,  566,  550,  566,  551,  565,
     552,  567,  564,  553,  554,  555, 1056,  556,  568,  558,
     567,  569,  562,  574,  558, 1054,  568,  562,  560,  563,
     564,  565,  566,  575,  570,  574,  565,  573,  567,  576,
     573,  577,  579,  569,  578,  568,  581,  578,  569,  579,
     574,  580,  576,  577,  582,  583,  584,  585,  575,  586,
     575, 1052,  587,  603,  573, 1050,  576, 1046,  577,  579,
     583,  578,  593,  590,  593,  593,  580,  595,  580,  581,
     612,  586,  583,  587,  584,  585,  586,  582,  589,  587,
     588,  588,  588,  588,  588,  590,  603,  596,  589,  594,

     590,  595,  597,  599,  595,  599,  606,  600,  601,  597,
     589,  602,  604,  612,  605,  589,  607,  594,  596,  608,
     601,  608,  609,  588,  596,  589,  594,  609,  606,  597,
     599,  600,  605,  606,  600,  601,  610,  613,  614,  602,
     604,  605,  615, 1043,  607,  616,  608,  617,  610,  613,
     618, 1031,  619,  620, 1018,  609, 1004,  621,  622, 1002,
     619,  903,  625,  610,  613,  616,  621,  628,  617,  628,
     615,  614,  626,  616,  617,  624,  622,  623,  618,  619,
     625,  620,  627,  629,  621,  622,  623,  624,  903,  625,
     626,  627,  616,  630,  628,  629,  633,  635,  631,  626,

     632,  636,  624,  643,  623,  634,  644,  991,  637,  627,
     629,  631,  639,  632,  641,  630,  642,  634,  633,  636,
     630,  635,  989,  633,  635,  631,  644,  632,  636,  637,
     646,  643,  634,  644,  639,  637,  645,  647,  642,  639,
     641,  641,  648,  642,  651,  647,  649,  656,  650,  645,
     653,  648,  654,  649,  646,  650,  657,  646,  655,  660,
     656,  661,  651,  645,  647,  663,  655,  667,  662,  648,
     664,  651,  665,  649,  656,  650,  653,  653,  664,  666,
     654,  668,  657,  657,  670,  655,  982,  666,  669,  671,
     662,  979,  660,  663,  661,  662,  669,  664,  665,  665,

     667,  675,  672,  668,  677,  673,  666,  674,  668,  672,
     677,  671,  673,  676,  679,  669,  671,  670,  674,  678,
     676,  678,  675,  680,  681,  674,  683,  679,  675,  672,
     682,  677,  673,  685,  674,  690,  684,  683,  969,  688,
     676,  679,  689,  965,  680,  674,  678,  684,  682,  692,
     680,  685,  681,  683,  688,  693,  700,  682,  692,  690,
     685,  693,  690,  684,  689,  694,  688,  694,  701,  689,
     691,  691,  691,  691,  691,  696,  692,  696,  696,  697,
     698,  699,  693,  703,  700,  707,  697,  702,  698,  703,
     699,  705,  694,  710,  702,  719,  711,  708,  962,  711,

     949,  701,  713,  691,  714,  724,  697,  698,  699,  707,
     703,  708,  707,  711,  702,  713,  705,  715,  705,  716,
     711,  710,  716,  711,  708,  722,  711,  720,  719,  713,
     714,  714,  727,  716,  725,  726,  729,  726,  724,  728,
     711,  732,  731,  715,  715,  720,  716,  731,  727,  716,
     730,  948,  728,  722,  720,  725,  733,  730,  734,  727,
     729,  725,  726,  729,  735,  733,  728,  736,  741,  736,
     737,  735,  738,  739,  732,  731,  742,  730,  740,  737,
     739,  738,  743,  733,  734,  734,  745,  740,  746,  751,
     747,  735,  944,  748,  736,  743,  741,  737,  748,  738,

     739,  742,  749,  742,  755,  740,  747,  751,  750,  743,
     749,  746,  752,  753,  756,  746,  751,  747,  757,  745,
     753,  931,  927,  758,  752,  759,  748,  757,  764,  749,
     750,  758,  755,  759,  760,  750,  762,  756,  762,  752,
     753,  756,  765,  760,  766,  757,  763,  764,  767,  765,
     758,  768,  759,  771,  763,  764,  769,  770,  768,  772,
     776,  760,  771,  762,  769,  773,  777,  767,  914,  765,
     775,  904,  772,  763,  790,  767,  774,  766,  768,  770,
     771,  776,  775,  769,  770,  774,  772,  776,  778,  773,
     779,  781,  773,  782,  777,  778,  783,  775,  784,  779,

     786,  785,  782,  774,  781,  783,  788,  790,  791,  786,
     787,  789,  784,  788,  792,  778,  793,  779,  781,  785,
     782,  787,  795,  783,  789,  784,  796,  786,  785,  797,
     799,  800,  900,  788,  798,  802,  797,  787,  789,  806,
     798,  791,  792,  803,  793,  804,  795,  802,  807,  795,
     808,  805,  799,  813,  800,  815,  797,  799,  800,  796,
     806,  798,  802,  804,  809,  803,  806,  816,  810,  811,
     803,  807,  804,  805,  813,  807,  808,  808,  805,  814,
     813,  814,  809,  815,  811,  816,  817,  818,  810,  819,
     826,  809,  810,  820,  816,  810,  811,  822,  822,  880,

     823,  824,  879,  825,  820,  827,  814,  823,  829,  818,
     829,  828,  827,  830,  818,  810,  832,  819,  834,  817,
     820,  835,  833,  826,  822,  825,  824,  823,  824,  833,
     825,  832,  827,  828,  836,  829,  837,  839,  828,  840,
     845,  830,  852,  832,  834,  834,  841,  840,  849,  833,
     846,  843,  837,  841,  835,  839,  836,  842,  843,  850,
     837,  836,  847,  837,  839,  848,  840,  850,  845,  851,
     842,  855,  846,  841,  857,  852,  849,  846,  843,  837,
     847,  853,  856,  848,  842,  857,  850,  854,  858,  847,
     864,  860,  848,  851,  854,  861,  851,  858,  860,  853,

     856,  857,  863,  859,  855,  859,  861,  862,  853,  856,
     866,  864,  867,  868,  854,  858,  869,  864,  860,  866,
     870,  871,  861,  872,  873,  875,  863,  874,  877,  863,
     859,  872,  883,  874,  881,  862,  885,  866,  869,  871,
     867,  868,  870,  869,  876,  886,  881,  870,  871,  877,
     872,  876,  882,  878,  874,  877,  878,  873,  875,  884,
     883,  881,  887,  888,  882,  892,  891,  889,  887,  885,
     865,  876,  884,  886,  893,  890,  899,  893,  895,  882,
     878,  889,  896,  902,  897,  888,  884,  891,  894,  887,
     888,  896,  898,  891,  889,  890,  902,  895,  892,  894,

     907,  893,  901,  890,  899,  895,  897,  910,  905,  896,
     902,  897,  905,  906,  909,  894,  908,  911,  898,  898,
     912,  913,  890,  909,  901,  906,  915,  912,  910,  901,
     917,  908,  916,  907,  910,  905,  917,  919,  918,  920,
     906,  909,  922,  908,  919,  911,  920,  912,  915,  913,
     916,  918,  921,  915,  922,  923,  918,  917,  924,  916,
     924,  920,  925,  844,  919,  918,  920,  926,  928,  922,
     929,  929,  932,  920,  921,  930,  930,  934,  918,  921,
     933,  928,  935,  923,  934,  924,  937,  932,  936,  926,
     925,  938,  940,  937,  926,  928,  935,  929,  933,  932,

     939,  941,  930,  943,  934,  938,  936,  933,  942,  935,
     945,  946,  939,  937,  947,  936,  952,  953,  938,  950,
     954,  951,  945,  952,  953,  940,  947,  939,  954,  941,
     942,  955,  956,  946,  957,  942,  943,  945,  946,  958,
     950,  947,  951,  952,  953,  960,  950,  954,  951,  959,
     961,  960,  963,  956,  966,  961,  970,  958,  838,  956,
     967,  831,  957,  973,  955,  821,  958,  966,  968,  964,
     959,  971,  960,  964,  964,  963,  959,  961,  812,  963,
     974,  966,  975,  967,  970,  964,  972,  967,  976,  971,
     968,  973,  977,  972,  980,  968,  964,  978,  971,  981,

     964,  964,  974,  983,  975,  984,  976,  974,  985,  975,
     801,  986,  978,  972,  990,  976,  987,  992,  984,  990,
     977,  988,  980,  993,  978,  981,  981,  994,  995,  985,
     993,  983,  984,  986,  994,  985,  996,  987,  986,  988,
     997,  999, 1003,  987,  998,  992,  794,  990,  988, 1001,
     993,  995, 1000,  998,  994,  995, 1005, 1006,  996,  999,
    1007, 1000, 1001,  996, 1006, 1005, 1008, 1010,  999, 1009,
    1003,  998, 1011,  997, 1014, 1012, 1001, 1013, 1015, 1000,
    1019, 1009, 1007, 1005, 1006, 1010, 1017, 1007, 1008, 1019,
    1011, 1013, 1014, 1008, 1010, 1016, 1009, 1012, 1020, 1011,

    1015, 1014, 1012, 1021, 1013, 1015, 1022, 1019, 1016, 1023,
    1017, 1024, 1020, 1017, 1025, 1022, 1026,  780, 1021, 1028,
    1032, 1027, 1016, 1029, 1023, 1020, 1027,  761,  754, 1024,
    1021, 1033, 1025, 1022, 1030, 1032, 1023, 1028, 1024, 1038,
    1033, 1025, 1034, 1035, 1026, 1036, 1028, 1032, 1041, 1029,
    1029, 1037, 1030, 1039, 1027, 1034, 1042, 1040, 1033, 1045,
    1036, 1030, 1059, 1038, 1040, 1035, 1038, 1047, 1042, 1034,
    1035, 1048, 1036, 1037, 1044, 1039, 1051, 1045, 1037, 1053,
    1039, 1041, 1047, 1042, 1040, 1049, 1045, 1044, 1057, 1058,
    1059, 1051, 1049, 1053, 1047, 1048, 1060, 1055, 1048, 1055,

    1055, 1044, 1061, 1051, 1062, 1066, 1053, 1058, 1067, 1065,
    1057, 1065, 1049, 1070, 1073, 1057, 1058, 1061, 1068, 1071,
    1070, 1075, 1060, 1060, 1066, 1062, 1069, 1068, 1072, 1061,
    1067, 1062, 1066, 1072, 1075, 1067, 1065, 1069, 1076, 1077,
    1070, 1071, 1073, 1078, 1080, 1068, 1071, 1081, 1075, 1079,
    1082,  744, 1085, 1069, 1084, 1072, 1086, 1083, 1087, 1092,
    1090, 1081, 1089, 1091, 1086, 1088, 1076, 1077, 1084, 1079,
    1089, 1078, 1080, 1096, 1081, 1102, 1079, 1087, 1082, 1083,
    1085, 1084, 1096, 1086, 1083, 1087, 1088, 1092, 1093, 1089,
    1099, 1093, 1088, 1090, 1094, 1100, 1091, 1094, 1098, 1098,

    1096, 1101, 1103, 1102, 1104, 1105, 1106, 1109, 1106, 1103,
    1100, 1099, 1107, 1104,  723, 1093, 1108, 1099, 1110, 1110,
    1107, 1094, 1100, 1101, 1112, 1098, 1114, 1105, 1101, 1103,
    1108, 1104, 1105, 1106, 1111, 1109, 1113, 1116, 1115, 1107,
    1111, 1117, 1112, 1108, 1114, 1110, 1122, 1118, 1119,  721,
    1113, 1112, 1120, 1114, 1115, 1123, 1126, 1124, 1125, 1116,
    1130, 1111, 1134, 1113, 1116, 1115, 1117, 1120, 1117, 1118,
    1122, 1129, 1127, 1122, 1118, 1124, 1119, 1123, 1131, 1120,
    1128, 1132, 1123, 1138, 1124, 1127, 1125, 1140, 1128, 1126,
    1134, 1131, 1142, 1130, 1143, 1145, 1146, 1129, 1129, 1127,

    1147, 1149, 1148, 1132, 1152, 1131, 1153, 1128, 1132, 1140,
    1148, 1138, 1149, 1155, 1140, 1154, 1143, 1145, 1146, 1158,
    1142, 1143, 1145, 1146, 1150, 1156, 1147, 1147, 1149, 1148,
     718, 1157, 1150, 1160, 1162, 1155, 1161, 1152, 1163, 1153,
    1155, 1154, 1154, 1164, 1165, 1172, 1156, 1158, 1167, 1168,
     717, 1150, 1156, 1157, 1164, 1170, 1168, 1161, 1157, 1173,
    1167, 1160, 1162, 1161, 1169, 1171, 1163, 1174, 1175, 1179,
    1164, 1169, 1165, 1172,  712, 1167, 1168, 1170, 1171, 1177,
    1178, 1183, 1170, 1180,  709, 1182, 1182, 1173, 1183, 1186,
    1191, 1169, 1171, 1174, 1174, 1182, 1175, 1179, 1180, 1184,

    1188, 1177, 1178,  706, 1185, 1193, 1177, 1178, 1183, 1188,
    1180, 1185, 1182, 1182, 1186, 1187, 1186, 1184, 1191, 1195,
    1194, 1196, 1187, 1197,  704, 1198, 1184, 1188, 1194, 1200,
    1203, 1185, 1199, 1193, 1201,  695, 1204, 1198, 1205,  687,
    1208, 1211, 1187, 1195, 1200, 1196, 1195, 1194, 1196, 1201,
    1199, 1197, 1198, 1202, 1204, 1208, 1200, 1213, 1203, 1199,
    1202, 1201, 1214, 1204, 1216, 1217, 1205, 1208, 1228, 1211,
    1213, 1215, 1220, 1215, 1222, 1223, 1216, 1226, 1225, 1227,
    1202, 1229,  686, 1226, 1213, 1232, 1228, 1217, 1230, 1233,
    1214, 1216, 1217, 1229,  659, 1228, 1220, 1236, 1215, 1220,

    1225, 1227, 1222, 1223, 1226, 1225, 1227, 1230, 1229, 1238,
    1231, 1237, 1240, 1241, 1241, 1230, 1231, 1246, 1232, 1242,
    1243, 1240, 1233, 1244, 1252, 1236, 1250, 1237,  658, 1253,
    1246, 1238, 1254, 1258,  652, 1253, 1238, 1231, 1237, 1240,
    1241, 1242, 1243, 1248, 1246, 1244, 1242, 1243, 1250, 1255,
    1244, 1259, 1252, 1250, 1260, 1248, 1253, 1261, 1262, 1263,
    1254, 1258, 1260,  640, 1261, 1255, 1264, 1265,  638, 1266,
    1248, 1262, 1268, 1259,  611, 1265, 1255, 1269, 1259, 1264,
    1274, 1260, 1266, 1270, 1261, 1262, 1271, 1263, 1272,  598,
    1270, 1265, 1277, 1264, 1265, 1274, 1266, 1279, 1273, 1275,

    1268, 1272, 1265, 1281, 1279, 1269, 1286, 1274, 1271, 1283,
    1270, 1273, 1276, 1271, 1288, 1272, 1276, 1275, 1283, 1284,
    1277, 1285, 1289, 1285, 1279, 1273, 1275, 1291, 1290, 1294,
    1284, 1281, 1295,  592, 1286, 1300, 1283, 1288, 1296, 1276,
    1299, 1288, 1297, 1298, 1289, 1302, 1284, 1299, 1285, 1289,
    1290, 1306,  591, 1291, 1291, 1290, 1305, 1294, 1296, 1308,
    1295, 1298, 1297, 1300, 1304, 1296, 1304, 1299, 1305, 1297,
    1298, 1309, 1323, 1302, 1308, 1310, 1311, 1310, 1314, 1306,
    1309, 1315, 1316, 1305, 1320, 1314, 1308, 1317, 1315, 1317,
    1311, 1304, 1325, 1321, 1323, 1330, 1316, 1324, 1309, 1323,

    1326, 1329, 1310, 1311, 1324, 1314, 1321, 1327, 1315, 1316,
    1328, 1333, 1334, 1332, 1317, 1335, 1331, 1320, 1336, 1329,
    1321, 1332, 1326, 1330, 1324, 1325, 1327, 1326, 1329, 1328,
    1331, 1337, 1338, 1349, 1327, 1341, 1335, 1328, 1345, 1333,
    1332, 1339, 1335, 1331, 1342, 1334, 1336, 1350, 1339, 1344,
    1351, 1352, 1353, 1358,  572, 1350, 1345, 1341, 1357, 1337,
    1338, 1349, 1341, 1356, 1355, 1345, 1342, 1353, 1339, 1352,
    1344, 1342, 1355, 1357, 1350, 1358, 1344, 1356, 1352, 1353,
    1358, 1359, 1360, 1351, 1361, 1357, 1362,  571, 1364, 1365,
    1356, 1355, 1363, 1368, 1367, 1370, 1364, 1371, 1372, 1377,

     561, 1368, 1376, 1370, 1360, 1373, 1361, 1359, 1359, 1360,
    1376, 1361, 1363, 1375, 1362, 1364, 1367, 1365,  548, 1363,
    1368, 1367, 1370, 1371, 1371, 1373, 1372, 1377,  515, 1376,
     509,  491, 1373,  489,  486, 1375,  469,  443,  441,  440,
    1375, 1380, 1380, 1380, 1380, 1381, 1381, 1381, 1381, 1382,
    1382, 1382, 1382, 1384, 1384,  439, 1384, 1385, 1385, 1387,
    1387, 1388, 1388,  428, 1388,  327,  290,  286,  284,  206,
     178,  169,  110,  109,  107,  105,   50,   46,   42,   41,
      36,   10,    9, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,

    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379,
    1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379, 1379
   } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

extern int yy_flex_debug;
int yy_flex_debug = 0;

/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
*/
#define REJECT reject_used_but_not_detected
static int yy_more_flag = 0;
static int yy_more_len = 0;
#define yymore() ((yy_more_flag) = 1)
#define YY_MORE_ADJ (yy_more_len)
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "configlexer.lex"
#line 2 "configlexer.lex"
/*
* configlexer.lex - lexical analyzer for NSD config file
*
* Copyright (c) 2001-2006, NLnet Labs. All rights reserved
*
* See LICENSE for the license.
*
*/
/* because flex keeps having sign-unsigned compare problems that are unfixed*/
#if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
#include <ctype.h>
#include <errno.h>
#include <string.h>
#include <strings.h>
#ifdef HAVE_GLOB_H
# include <glob.h>
#endif

#include "options.h"
#include "configparser.h"

#if 0
#define LEXOUT(s)  printf s /* used ONLY when debugging */
#else
#define LEXOUT(s)
#endif

struct inc_state {
       char* filename;
       int line;
       YY_BUFFER_STATE buffer;
       struct inc_state* next;
};
static struct inc_state* config_include_stack = NULL;
static int inc_depth = 0;

static void config_start_include(const char* filename)
{
       FILE *input;
       struct inc_state* s;
       char* nm;
       if(inc_depth++ > 10000000) {
               c_error("too many include files");
               return;
       }
       if(strlen(filename) == 0) {
               c_error("empty include file name");
               return;
       }
       s = (struct inc_state*)malloc(sizeof(*s));
       if(!s) {
               c_error("include %s: malloc failure", filename);
               return;
       }
       nm = strdup(filename);
       if(!nm) {
               c_error("include %s: strdup failure", filename);
               free(s);
               return;
       }
       input = fopen(filename, "r");
       if(!input) {
               c_error("cannot open include file '%s': %s",
                       filename, strerror(errno));
               free(s);
               free(nm);
               return;
       }
       LEXOUT(("switch_to_include_file(%s) ", filename));
       s->filename = cfg_parser->filename;
       s->line = cfg_parser->line;
       s->buffer = YY_CURRENT_BUFFER;
       s->next = config_include_stack;
       config_include_stack = s;

       cfg_parser->filename = nm;
       cfg_parser->line = 1;
       yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE));
}

static void config_start_include_glob(const char* filename)
{
       /* check for wildcards */
#ifdef HAVE_GLOB
       glob_t g;
       int i, r, flags;
#endif /* HAVE_GLOB */
       if (cfg_parser->chroot) {
               int l = strlen(cfg_parser->chroot); /* chroot has trailing slash */
               if (strncmp(cfg_parser->chroot, filename, l) != 0) {
                       c_error("include file '%s' is not relative to chroot '%s'",
                               filename, cfg_parser->chroot);
                       return;
               }
               filename += l - 1; /* strip chroot without trailing slash */
       }
#ifdef HAVE_GLOB
       if(!(!strchr(filename, '*') && !strchr(filename, '?') &&
                !strchr(filename, '[') && !strchr(filename, '{') &&
                !strchr(filename, '~'))) {
                flags = 0
#ifdef GLOB_ERR
                        | GLOB_ERR
#endif
                        /* do not set GLOB_NOSORT so the results are sorted
                           and in a predictable order. */
#ifdef GLOB_BRACE
                        | GLOB_BRACE
#endif
#ifdef GLOB_TILDE
                        | GLOB_TILDE
#endif
               ;
               memset(&g, 0, sizeof(g));
               r = glob(filename, flags, NULL, &g);
               if(r) {
                       /* some error */
                       globfree(&g);
                       if(r == GLOB_NOMATCH)
                               return; /* no matches for pattern */
                       config_start_include(filename); /* let original deal with it */
                       return;
               }
               /* process files found, if any */
               for(i=(int)g.gl_pathc-1; i>=0; i--) {
                       config_start_include(g.gl_pathv[i]);
               }
               globfree(&g);
               return;
       }
#endif /* HAVE_GLOB */
       config_start_include(filename);
}

static void config_end_include(void)
{
       struct inc_state* s = config_include_stack;
       --inc_depth;
       if(!s) return;
       free(cfg_parser->filename);
       cfg_parser->filename = s->filename;
       cfg_parser->line = s->line;
       yy_delete_buffer(YY_CURRENT_BUFFER);
       yy_switch_to_buffer(s->buffer);
       config_include_stack = s->next;
       free(s);
}

#ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
#define yy_set_bol(at_bol) \
       { \
               if ( ! yy_current_buffer ) \
                       yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
               yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
       }
#endif

#line 2190 "<stdout>"
#define YY_NO_INPUT 1
#line 165 "configlexer.lex"
#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT 1
#endif
#ifndef YY_NO_INPUT
#define YY_NO_INPUT 1
#endif
#line 2199 "<stdout>"

#line 2201 "<stdout>"

#define INITIAL 0
#define quotedstring 1
#define include 2
#define include_quoted 3

#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user's section 1 to have been scanned first.
* The user has a chance to override it with an option.
*/
#include <unistd.h>
#endif

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

static int yy_init_globals ( void );

/* Accessor methods to globals.
  These are made visible to non-reentrant scanners for convenience. */

int yylex_destroy ( void );

int yyget_debug ( void );

void yyset_debug ( int debug_flag  );

YY_EXTRA_TYPE yyget_extra ( void );

void yyset_extra ( YY_EXTRA_TYPE user_defined  );

FILE *yyget_in ( void );

void yyset_in  ( FILE * _in_str  );

FILE *yyget_out ( void );

void yyset_out  ( FILE * _out_str  );

                       int yyget_leng ( void );

char *yyget_text ( void );

int yyget_lineno ( void );

void yyset_lineno ( int _line_number  );

/* Macros after this point can all be overridden by user definitions in
* section 1.
*/

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap ( void );
#else
extern int yywrap ( void );
#endif
#endif

#ifndef YY_NO_UNPUT

#endif

#ifndef yytext_ptr
static void yy_flex_strncpy ( char *, const char *, int );
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen ( const char * );
#endif

#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput ( void );
#else
static int input ( void );
#endif

#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k */
#define YY_READ_BUF_SIZE 16384
#else
#define YY_READ_BUF_SIZE 8192
#endif /* __ia64__ */
#endif

/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
* is returned in "result".
*/
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
       if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
               { \
               int c = '*'; \
               int n; \
               for ( n = 0; n < max_size && \
                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                       buf[n] = (char) c; \
               if ( c == '\n' ) \
                       buf[n++] = (char) c; \
               if ( c == EOF && ferror( yyin ) ) \
                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
               result = n; \
               } \
       else \
               { \
               errno=0; \
               while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
                       { \
                       if( errno != EINTR) \
                               { \
                               YY_FATAL_ERROR( "input in flex scanner failed" ); \
                               break; \
                               } \
                       errno=0; \
                       clearerr(yyin); \
                       } \
               }\
\

#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
* we don't want an extra ';' after the "return" because that will cause
* some compilers to complain about unreachable statements.
*/
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* end tables serialization structures and prototypes */

/* Default declaration of generated scanner - a define so the user can
* easily add parameters.
*/
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1

extern int yylex (void);

#define YY_DECL int yylex (void)
#endif /* !YY_DECL */

/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up.
*/
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK /*LINTED*/break;
#endif

#define YY_RULE_SETUP \
       YY_USER_ACTION

/** The main scanner function which does all the work.
*/
YY_DECL
{
       yy_state_type yy_current_state;
       char *yy_cp, *yy_bp;
       int yy_act;

       if ( !(yy_init) )
               {
               (yy_init) = 1;

#ifdef YY_USER_INIT
               YY_USER_INIT;
#endif

               if ( ! (yy_start) )
                       (yy_start) = 1; /* first start state */

               if ( ! yyin )
                       yyin = stdin;

               if ( ! yyout )
                       yyout = stdout;

               if ( ! YY_CURRENT_BUFFER ) {
                       yyensure_buffer_stack ();
                       YY_CURRENT_BUFFER_LVALUE =
                               yy_create_buffer( yyin, YY_BUF_SIZE );
               }

               yy_load_buffer_state(  );
               }

       {
#line 183 "configlexer.lex"

#line 2421 "<stdout>"

       while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
               {
               (yy_more_len) = 0;
               if ( (yy_more_flag) )
                       {
                       (yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr));
                       (yy_more_flag) = 0;
                       }
               yy_cp = (yy_c_buf_p);

               /* Support of yytext. */
               *yy_cp = (yy_hold_char);

               /* yy_bp points to the position in yy_ch_buf of the start of
                * the current run.
                */
               yy_bp = yy_cp;

               yy_current_state = (yy_start);
yy_match:
               do
                       {
                       YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
                       if ( yy_accept[yy_current_state] )
                               {
                               (yy_last_accepting_state) = yy_current_state;
                               (yy_last_accepting_cpos) = yy_cp;
                               }
                       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                               {
                               yy_current_state = (int) yy_def[yy_current_state];
                               if ( yy_current_state >= 1380 )
                                       yy_c = yy_meta[yy_c];
                               }
                       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
                       ++yy_cp;
                       }
               while ( yy_base[yy_current_state] != 3884 );

yy_find_action:
               yy_act = yy_accept[yy_current_state];
               if ( yy_act == 0 )
                       { /* have to back up */
                       yy_cp = (yy_last_accepting_cpos);
                       yy_current_state = (yy_last_accepting_state);
                       yy_act = yy_accept[yy_current_state];
                       }

               YY_DO_BEFORE_ACTION;

do_action:      /* This label is used only to access EOF actions. */

               switch ( yy_act )
       { /* beginning of action switch */
                       case 0: /* must back up */
                       /* undo the effects of YY_DO_BEFORE_ACTION */
                       *yy_cp = (yy_hold_char);
                       yy_cp = (yy_last_accepting_cpos);
                       yy_current_state = (yy_last_accepting_state);
                       goto yy_find_action;

case 1:
YY_RULE_SETUP
#line 184 "configlexer.lex"
{ LEXOUT(("SP ")); /* ignore */ }
       YY_BREAK
case 2:
YY_RULE_SETUP
#line 185 "configlexer.lex"
{ LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
       YY_BREAK
case 3:
YY_RULE_SETUP
#line 186 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER;}
       YY_BREAK
case 4:
YY_RULE_SETUP
#line 187 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NAME;}
       YY_BREAK
case 5:
YY_RULE_SETUP
#line 188 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
       YY_BREAK
case 6:
YY_RULE_SETUP
#line 189 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
       YY_BREAK
case 7:
YY_RULE_SETUP
#line 190 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_TRANSPARENT;}
       YY_BREAK
case 8:
YY_RULE_SETUP
#line 191 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_FREEBIND;}
       YY_BREAK
case 9:
YY_RULE_SETUP
#line 192 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SEND_BUFFER_SIZE;}
       YY_BREAK
case 10:
YY_RULE_SETUP
#line 193 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RECEIVE_BUFFER_SIZE;}
       YY_BREAK
case 11:
YY_RULE_SETUP
#line 194 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DEBUG_MODE;}
       YY_BREAK
case 12:
YY_RULE_SETUP
#line 195 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_USE_SYSTEMD;}
       YY_BREAK
case 13:
YY_RULE_SETUP
#line 196 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_HIDE_VERSION;}
       YY_BREAK
case 14:
YY_RULE_SETUP
#line 197 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_HIDE_IDENTITY;}
       YY_BREAK
case 15:
YY_RULE_SETUP
#line 198 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DROP_UPDATES; }
       YY_BREAK
case 16:
YY_RULE_SETUP
#line 199 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP4_ONLY;}
       YY_BREAK
case 17:
YY_RULE_SETUP
#line 200 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP6_ONLY;}
       YY_BREAK
case 18:
YY_RULE_SETUP
#line 201 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP4;}
       YY_BREAK
case 19:
YY_RULE_SETUP
#line 202 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP6;}
       YY_BREAK
case 20:
YY_RULE_SETUP
#line 203 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DATABASE;}
       YY_BREAK
case 21:
YY_RULE_SETUP
#line 204 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IDENTITY;}
       YY_BREAK
case 22:
YY_RULE_SETUP
#line 205 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERSION;}
       YY_BREAK
case 23:
YY_RULE_SETUP
#line 206 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NSID;}
       YY_BREAK
case 24:
YY_RULE_SETUP
#line 207 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOGFILE;}
       YY_BREAK
case 25:
YY_RULE_SETUP
#line 208 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOG_ONLY_SYSLOG;}
       YY_BREAK
case 26:
YY_RULE_SETUP
#line 209 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_COUNT;}
       YY_BREAK
case 27:
YY_RULE_SETUP
#line 210 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_COUNT;}
       YY_BREAK
case 28:
YY_RULE_SETUP
#line 211 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_REJECT_OVERFLOW;}
       YY_BREAK
case 29:
YY_RULE_SETUP
#line 212 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_QUERY_COUNT;}
       YY_BREAK
case 30:
YY_RULE_SETUP
#line 213 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_TIMEOUT;}
       YY_BREAK
case 31:
YY_RULE_SETUP
#line 214 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_MSS;}
       YY_BREAK
case 32:
YY_RULE_SETUP
#line 215 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_TCP_MSS;}
       YY_BREAK
case 33:
YY_RULE_SETUP
#line 216 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IPV4_EDNS_SIZE;}
       YY_BREAK
case 34:
YY_RULE_SETUP
#line 217 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IPV6_EDNS_SIZE;}
       YY_BREAK
case 35:
YY_RULE_SETUP
#line 218 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PIDFILE;}
       YY_BREAK
case 36:
YY_RULE_SETUP
#line 219 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PORT;}
       YY_BREAK
case 37:
YY_RULE_SETUP
#line 220 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REUSEPORT;}
       YY_BREAK
case 38:
YY_RULE_SETUP
#line 221 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_STATISTICS;}
       YY_BREAK
case 39:
YY_RULE_SETUP
#line 222 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CHROOT;}
       YY_BREAK
case 40:
YY_RULE_SETUP
#line 223 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_USERNAME;}
       YY_BREAK
case 41:
YY_RULE_SETUP
#line 224 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONESDIR;}
       YY_BREAK
case 42:
YY_RULE_SETUP
#line 225 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONELISTFILE;}
       YY_BREAK
case 43:
YY_RULE_SETUP
#line 226 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DIFFFILE;}
       YY_BREAK
case 44:
YY_RULE_SETUP
#line 227 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRDFILE;}
       YY_BREAK
case 45:
YY_RULE_SETUP
#line 228 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRDIR;}
       YY_BREAK
case 46:
YY_RULE_SETUP
#line 229 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_RELOAD_TIMEOUT;}
       YY_BREAK
case 47:
YY_RULE_SETUP
#line 230 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERBOSITY;}
       YY_BREAK
case 48:
YY_RULE_SETUP
#line 231 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONE;}
       YY_BREAK
case 49:
YY_RULE_SETUP
#line 232 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILE;}
       YY_BREAK
case 50:
YY_RULE_SETUP
#line 233 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONESTATS;}
       YY_BREAK
case 51:
YY_RULE_SETUP
#line 234 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_NOTIFY;}
       YY_BREAK
case 52:
YY_RULE_SETUP
#line 235 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SIZE_LIMIT_XFR;}
       YY_BREAK
case 53:
YY_RULE_SETUP
#line 236 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REQUEST_XFR;}
       YY_BREAK
case 54:
YY_RULE_SETUP
#line 237 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY;}
       YY_BREAK
case 55:
YY_RULE_SETUP
#line 238 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY_RETRY;}
       YY_BREAK
case 56:
YY_RULE_SETUP
#line 239 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PROVIDE_XFR;}
       YY_BREAK
case 57:
YY_RULE_SETUP
#line 240 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_QUERY;}
       YY_BREAK
case 58:
YY_RULE_SETUP
#line 241 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_INTERFACE;}
       YY_BREAK
case 59:
YY_RULE_SETUP
#line 242 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_AXFR_FALLBACK;}
       YY_BREAK
case 60:
YY_RULE_SETUP
#line 243 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH;}
       YY_BREAK
case 61:
YY_RULE_SETUP
#line 244 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_DOMAIN_NAME;}
       YY_BREAK
case 62:
YY_RULE_SETUP
#line 245 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_CERT;}
       YY_BREAK
case 63:
YY_RULE_SETUP
#line 246 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_KEY;}
       YY_BREAK
case 64:
YY_RULE_SETUP
#line 247 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_KEY_PW;}
       YY_BREAK
case 65:
YY_RULE_SETUP
#line 248 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_KEY;}
       YY_BREAK
case 66:
YY_RULE_SETUP
#line 249 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALGORITHM;}
       YY_BREAK
case 67:
YY_RULE_SETUP
#line 250 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SECRET;}
       YY_BREAK
case 68:
YY_RULE_SETUP
#line 251 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PATTERN;}
       YY_BREAK
case 69:
YY_RULE_SETUP
#line 252 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_INCLUDE_PATTERN;}
       YY_BREAK
case 70:
YY_RULE_SETUP
#line 253 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REMOTE_CONTROL;}
       YY_BREAK
case 71:
YY_RULE_SETUP
#line 254 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_ENABLE;}
       YY_BREAK
case 72:
YY_RULE_SETUP
#line 255 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_INTERFACE;}
       YY_BREAK
case 73:
YY_RULE_SETUP
#line 256 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_PORT;}
       YY_BREAK
case 74:
YY_RULE_SETUP
#line 257 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_KEY_FILE;}
       YY_BREAK
case 75:
YY_RULE_SETUP
#line 258 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_CERT_FILE;}
       YY_BREAK
case 76:
YY_RULE_SETUP
#line 259 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_KEY_FILE;}
       YY_BREAK
case 77:
YY_RULE_SETUP
#line 260 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_CERT_FILE;}
       YY_BREAK
case 78:
YY_RULE_SETUP
#line 261 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_AXFR;}
       YY_BREAK
case 79:
YY_RULE_SETUP
#line 262 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_UDP;}
       YY_BREAK
case 80:
YY_RULE_SETUP
#line 263 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SIZE;}
       YY_BREAK
case 81:
YY_RULE_SETUP
#line 264 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_RATELIMIT;}
       YY_BREAK
case 82:
YY_RULE_SETUP
#line 265 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SLIP;}
       YY_BREAK
case 83:
YY_RULE_SETUP
#line 266 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV4_PREFIX_LENGTH;}
       YY_BREAK
case 84:
YY_RULE_SETUP
#line 267 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV6_PREFIX_LENGTH;}
       YY_BREAK
case 85:
YY_RULE_SETUP
#line 268 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST_RATELIMIT;}
       YY_BREAK
case 86:
YY_RULE_SETUP
#line 269 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST;}
       YY_BREAK
case 87:
YY_RULE_SETUP
#line 270 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_CHECK;}
       YY_BREAK
case 88:
YY_RULE_SETUP
#line 271 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_WRITE;}
       YY_BREAK
case 89:
YY_RULE_SETUP
#line 272 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP;}
       YY_BREAK
case 90:
YY_RULE_SETUP
#line 273 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_ENABLE;}
       YY_BREAK
case 91:
YY_RULE_SETUP
#line 274 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SOCKET_PATH; }
       YY_BREAK
case 92:
YY_RULE_SETUP
#line 275 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_IP; }
       YY_BREAK
case 93:
YY_RULE_SETUP
#line 276 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS; }
       YY_BREAK
case 94:
YY_RULE_SETUP
#line 277 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_SERVER_NAME; }
       YY_BREAK
case 95:
YY_RULE_SETUP
#line 278 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CERT_BUNDLE; }
       YY_BREAK
case 96:
YY_RULE_SETUP
#line 279 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CLIENT_KEY_FILE; }
       YY_BREAK
case 97:
YY_RULE_SETUP
#line 280 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CLIENT_CERT_FILE; }
       YY_BREAK
case 98:
YY_RULE_SETUP
#line 281 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SEND_IDENTITY; }
       YY_BREAK
case 99:
YY_RULE_SETUP
#line 282 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SEND_VERSION; }
       YY_BREAK
case 100:
YY_RULE_SETUP
#line 283 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_IDENTITY; }
       YY_BREAK
case 101:
YY_RULE_SETUP
#line 284 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_VERSION; }
       YY_BREAK
case 102:
YY_RULE_SETUP
#line 285 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES; }
       YY_BREAK
case 103:
YY_RULE_SETUP
#line 286 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES; }
       YY_BREAK
case 104:
YY_RULE_SETUP
#line 287 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOG_TIME_ASCII;}
       YY_BREAK
case 105:
YY_RULE_SETUP
#line 288 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ROUND_ROBIN;}
       YY_BREAK
case 106:
YY_RULE_SETUP
#line 289 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MINIMAL_RESPONSES;}
       YY_BREAK
case 107:
YY_RULE_SETUP
#line 290 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONFINE_TO_ZONE;}
       YY_BREAK
case 108:
YY_RULE_SETUP
#line 291 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REFUSE_ANY;}
       YY_BREAK
case 109:
YY_RULE_SETUP
#line 292 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MAX_REFRESH_TIME;}
       YY_BREAK
case 110:
YY_RULE_SETUP
#line 293 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_REFRESH_TIME;}
       YY_BREAK
case 111:
YY_RULE_SETUP
#line 294 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MAX_RETRY_TIME;}
       YY_BREAK
case 112:
YY_RULE_SETUP
#line 295 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_RETRY_TIME;}
       YY_BREAK
case 113:
YY_RULE_SETUP
#line 296 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_EXPIRE_TIME;}
       YY_BREAK
case 114:
YY_RULE_SETUP
#line 297 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_STORE_IXFR;}
       YY_BREAK
case 115:
YY_RULE_SETUP
#line 298 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IXFR_SIZE;}
       YY_BREAK
case 116:
YY_RULE_SETUP
#line 299 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IXFR_NUMBER;}
       YY_BREAK
case 117:
YY_RULE_SETUP
#line 300 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CREATE_IXFR;}
       YY_BREAK
case 118:
YY_RULE_SETUP
#line 301 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MULTI_MASTER_CHECK;}
       YY_BREAK
case 119:
YY_RULE_SETUP
#line 302 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_KEY;}
       YY_BREAK
case 120:
YY_RULE_SETUP
#line 303 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_OCSP;}
       YY_BREAK
case 121:
YY_RULE_SETUP
#line 304 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_PEM;}
       YY_BREAK
case 122:
YY_RULE_SETUP
#line 305 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_PORT;}
       YY_BREAK
case 123:
YY_RULE_SETUP
#line 306 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_CERT_BUNDLE; }
       YY_BREAK
case 124:
YY_RULE_SETUP
#line 307 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PROXY_PROTOCOL_PORT; }
       YY_BREAK
case 125:
YY_RULE_SETUP
#line 308 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ANSWER_COOKIE;}
       YY_BREAK
case 126:
YY_RULE_SETUP
#line 309 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_COOKIE_SECRET;}
       YY_BREAK
case 127:
YY_RULE_SETUP
#line 310 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_COOKIE_SECRET_FILE;}
       YY_BREAK
case 128:
YY_RULE_SETUP
#line 311 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_TCP_MAX;}
       YY_BREAK
case 129:
YY_RULE_SETUP
#line 312 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_TCP_PIPELINE;}
       YY_BREAK
case 130:
YY_RULE_SETUP
#line 313 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY; }
       YY_BREAK
case 131:
YY_RULE_SETUP
#line 314 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ENABLE; }
       YY_BREAK
case 132:
YY_RULE_SETUP
#line 315 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY_ZONE; }
       YY_BREAK
case 133:
YY_RULE_SETUP
#line 316 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY_ZONES; }
       YY_BREAK
case 134:
YY_RULE_SETUP
#line 317 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER; }
       YY_BREAK
case 135:
YY_RULE_SETUP
#line 318 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_COUNT; }
       YY_BREAK
case 136:
YY_RULE_SETUP
#line 319 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_FEED_ZONE; }
       YY_BREAK
case 137:
YY_RULE_SETUP
#line 320 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_TIMEOUT; }
       YY_BREAK
case 138:
/* rule 138 can match eol */
YY_RULE_SETUP
#line 321 "configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
       YY_BREAK
case 139:
YY_RULE_SETUP
#line 323 "configlexer.lex"
{
       yyless(yyleng - (yyleng - 8));
       LEXOUT(("v(%s) ", yytext));
       return VAR_SERVERS;
}
       YY_BREAK
case 140:
YY_RULE_SETUP
#line 328 "configlexer.lex"
{
       yyless(yyleng - (yyleng - 13));
       LEXOUT(("v(%s) ", yytext));
       return VAR_BINDTODEVICE;
}
       YY_BREAK
case 141:
YY_RULE_SETUP
#line 333 "configlexer.lex"
{
       yyless(yyleng - (yyleng - 7));
       LEXOUT(("v(%s) ", yytext));
       return VAR_SETFIB;
}
       YY_BREAK
case 142:
YY_RULE_SETUP
#line 339 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CPU_AFFINITY; }
       YY_BREAK
case 143:
YY_RULE_SETUP
#line 340 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_CPU_AFFINITY; }
       YY_BREAK
case 144:
YY_RULE_SETUP
#line 341 "configlexer.lex"
{
               char *str = yytext;
               LEXOUT(("v(%s) ", yytext));
               /* Skip server- */
               while (*str != '\0' && (*str < '0' || *str > '9')) {
                       str++;
               }
               c_lval.llng = strtoll(str, NULL, 10);
               return VAR_SERVER_CPU_AFFINITY;
       }
       YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
case 145:
YY_RULE_SETUP
#line 353 "configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
       YY_BREAK
case YY_STATE_EOF(quotedstring):
#line 354 "configlexer.lex"
{
       c_error("EOF inside quoted string");
       BEGIN(INITIAL);
}
       YY_BREAK
case 146:
YY_RULE_SETUP
#line 358 "configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
       YY_BREAK
case 147:
/* rule 147 can match eol */
YY_RULE_SETUP
#line 359 "configlexer.lex"
{ cfg_parser->line++; yymore(); }
       YY_BREAK
case 148:
YY_RULE_SETUP
#line 360 "configlexer.lex"
{
       LEXOUT(("QE "));
       BEGIN(INITIAL);
       yytext[yyleng - 1] = '\0';
       c_lval.str = region_strdup(cfg_parser->opt->region, yytext);
       return STRING;
}
       YY_BREAK
/* include: directive */
case 149:
YY_RULE_SETUP
#line 369 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); BEGIN(include); }
       YY_BREAK
case YY_STATE_EOF(include):
#line 370 "configlexer.lex"
{
       c_error("EOF inside include directive");
       BEGIN(INITIAL);
}
       YY_BREAK
case 150:
YY_RULE_SETUP
#line 374 "configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
       YY_BREAK
case 151:
/* rule 151 can match eol */
YY_RULE_SETUP
#line 375 "configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
       YY_BREAK
case 152:
YY_RULE_SETUP
#line 376 "configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
       YY_BREAK
case 153:
YY_RULE_SETUP
#line 377 "configlexer.lex"
{
       LEXOUT(("Iunquotedstr(%s) ", yytext));
       config_start_include_glob(yytext);
       BEGIN(INITIAL);
}
       YY_BREAK
case YY_STATE_EOF(include_quoted):
#line 382 "configlexer.lex"
{
       c_error("EOF inside quoted string");
       BEGIN(INITIAL);
}
       YY_BREAK
case 154:
YY_RULE_SETUP
#line 386 "configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
       YY_BREAK
case 155:
/* rule 155 can match eol */
YY_RULE_SETUP
#line 387 "configlexer.lex"
{ cfg_parser->line++; yymore(); }
       YY_BREAK
case 156:
YY_RULE_SETUP
#line 388 "configlexer.lex"
{
       LEXOUT(("IQE "));
       yytext[yyleng - 1] = '\0';
       config_start_include_glob(yytext);
       BEGIN(INITIAL);
}
       YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 394 "configlexer.lex"
{
       yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
       if (!config_include_stack) {
               yyterminate();
       } else {
               fclose(yyin);
               config_end_include();
       }
}
       YY_BREAK
case 157:
YY_RULE_SETUP
#line 404 "configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
                       c_lval.str = region_strdup(cfg_parser->opt->region, yytext); return STRING; }
       YY_BREAK
case 158:
YY_RULE_SETUP
#line 407 "configlexer.lex"
ECHO;
       YY_BREAK
#line 3350 "<stdout>"

       case YY_END_OF_BUFFER:
               {
               /* Amount of text matched not including the EOB char. */
               int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;

               /* Undo the effects of YY_DO_BEFORE_ACTION. */
               *yy_cp = (yy_hold_char);
               YY_RESTORE_YY_MORE_OFFSET

               if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
                       {
                       /* We're scanning a new file or input source.  It's
                        * possible that this happened because the user
                        * just pointed yyin at a new source and called
                        * yylex().  If so, then we have to assure
                        * consistency between YY_CURRENT_BUFFER and our
                        * globals.  Here is the right place to do so, because
                        * this is the first action (other than possibly a
                        * back-up) that will match for the new input source.
                        */
                       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
                       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
                       }

               /* Note that here we test for yy_c_buf_p "<=" to the position
                * of the first EOB in the buffer, since yy_c_buf_p will
                * already have been incremented past the NUL character
                * (since all states make transitions on EOB to the
                * end-of-buffer state).  Contrast this with the test
                * in input().
                */
               if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
                       { /* This was really a NUL. */
                       yy_state_type yy_next_state;

                       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;

                       yy_current_state = yy_get_previous_state(  );

                       /* Okay, we're now positioned to make the NUL
                        * transition.  We couldn't have
                        * yy_get_previous_state() go ahead and do it
                        * for us because it doesn't know how to deal
                        * with the possibility of jamming (and we don't
                        * want to build jamming into it because then it
                        * will run more slowly).
                        */

                       yy_next_state = yy_try_NUL_trans( yy_current_state );

                       yy_bp = (yytext_ptr) + YY_MORE_ADJ;

                       if ( yy_next_state )
                               {
                               /* Consume the NUL. */
                               yy_cp = ++(yy_c_buf_p);
                               yy_current_state = yy_next_state;
                               goto yy_match;
                               }

                       else
                               {
                               yy_cp = (yy_c_buf_p);
                               goto yy_find_action;
                               }
                       }

               else switch ( yy_get_next_buffer(  ) )
                       {
                       case EOB_ACT_END_OF_FILE:
                               {
                               (yy_did_buffer_switch_on_eof) = 0;

                               if ( yywrap(  ) )
                                       {
                                       /* Note: because we've taken care in
                                        * yy_get_next_buffer() to have set up
                                        * yytext, we can now set up
                                        * yy_c_buf_p so that if some total
                                        * hoser (like flex itself) wants to
                                        * call the scanner after we return the
                                        * YY_NULL, it'll still work - another
                                        * YY_NULL will get returned.
                                        */
                                       (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;

                                       yy_act = YY_STATE_EOF(YY_START);
                                       goto do_action;
                                       }

                               else
                                       {
                                       if ( ! (yy_did_buffer_switch_on_eof) )
                                               YY_NEW_FILE;
                                       }
                               break;
                               }

                       case EOB_ACT_CONTINUE_SCAN:
                               (yy_c_buf_p) =
                                       (yytext_ptr) + yy_amount_of_matched_text;

                               yy_current_state = yy_get_previous_state(  );

                               yy_cp = (yy_c_buf_p);
                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
                               goto yy_match;

                       case EOB_ACT_LAST_MATCH:
                               (yy_c_buf_p) =
                               &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];

                               yy_current_state = yy_get_previous_state(  );

                               yy_cp = (yy_c_buf_p);
                               yy_bp = (yytext_ptr) + YY_MORE_ADJ;
                               goto yy_find_action;
                       }
               break;
               }

       default:
               YY_FATAL_ERROR(
                       "fatal flex scanner internal error--no action found" );
       } /* end of action switch */
               } /* end of scanning one token */
       } /* end of user's declarations */
} /* end of yylex */

/* yy_get_next_buffer - try to read in a new buffer
*
* Returns a code representing an action:
*      EOB_ACT_LAST_MATCH -
*      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
*      EOB_ACT_END_OF_FILE - end of file
*/
static int yy_get_next_buffer (void)
{
       char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
       char *source = (yytext_ptr);
       int number_to_move, i;
       int ret_val;

       if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
               YY_FATAL_ERROR(
               "fatal flex scanner internal error--end of buffer missed" );

       if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
               { /* Don't try to fill the buffer, so this is an EOF. */
               if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
                       {
                       /* We matched a single character, the EOB, so
                        * treat this as a final EOF.
                        */
                       return EOB_ACT_END_OF_FILE;
                       }

               else
                       {
                       /* We matched some text prior to the EOB, first
                        * process it.
                        */
                       return EOB_ACT_LAST_MATCH;
                       }
               }

       /* Try to read more data. */

       /* First move last chars to start of buffer. */
       number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);

       for ( i = 0; i < number_to_move; ++i )
               *(dest++) = *(source++);

       if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
               /* don't do the read, it's not guaranteed to return an EOF,
                * just force an EOF
                */
               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;

       else
               {
                       int num_to_read =
                       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;

               while ( num_to_read <= 0 )
                       { /* Not enough room in the buffer - grow it. */

                       /* just a shorter name for the current buffer */
                       YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;

                       int yy_c_buf_p_offset =
                               (int) ((yy_c_buf_p) - b->yy_ch_buf);

                       if ( b->yy_is_our_buffer )
                               {
                               int new_size = b->yy_buf_size * 2;

                               if ( new_size <= 0 )
                                       b->yy_buf_size += b->yy_buf_size / 8;
                               else
                                       b->yy_buf_size *= 2;

                               b->yy_ch_buf = (char *)
                                       /* Include room in for 2 EOB chars. */
                                       yyrealloc( (void *) b->yy_ch_buf,
                                                        (yy_size_t) (b->yy_buf_size + 2)  );
                               }
                       else
                               /* Can't grow it, we don't own it. */
                               b->yy_ch_buf = NULL;

                       if ( ! b->yy_ch_buf )
                               YY_FATAL_ERROR(
                               "fatal error - scanner input buffer overflow" );

                       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];

                       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
                                               number_to_move - 1;

                       }

               if ( num_to_read > YY_READ_BUF_SIZE )
                       num_to_read = YY_READ_BUF_SIZE;

               /* Read in more data. */
               YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
                       (yy_n_chars), num_to_read );

               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
               }

       if ( (yy_n_chars) == 0 )
               {
               if ( number_to_move == YY_MORE_ADJ )
                       {
                       ret_val = EOB_ACT_END_OF_FILE;
                       yyrestart( yyin  );
                       }

               else
                       {
                       ret_val = EOB_ACT_LAST_MATCH;
                       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
                               YY_BUFFER_EOF_PENDING;
                       }
               }

       else
               ret_val = EOB_ACT_CONTINUE_SCAN;

       if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
               /* Extend the array by 50%, plus the number we really need. */
               int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
                       (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
               if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
                       YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
               /* "- 2" to take care of EOB's */
               YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
       }

       (yy_n_chars) += number_to_move;
       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
       YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;

       (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];

       return ret_val;
}

/* yy_get_previous_state - get the state just before the EOB char was reached */

   static yy_state_type yy_get_previous_state (void)
{
       yy_state_type yy_current_state;
       char *yy_cp;

       yy_current_state = (yy_start);

       for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
               {
               YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
               if ( yy_accept[yy_current_state] )
                       {
                       (yy_last_accepting_state) = yy_current_state;
                       (yy_last_accepting_cpos) = yy_cp;
                       }
               while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                       {
                       yy_current_state = (int) yy_def[yy_current_state];
                       if ( yy_current_state >= 1380 )
                               yy_c = yy_meta[yy_c];
                       }
               yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
               }

       return yy_current_state;
}

/* yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
*      next_state = yy_try_NUL_trans( current_state );
*/
   static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
{
       int yy_is_jam;
       char *yy_cp = (yy_c_buf_p);

       YY_CHAR yy_c = 1;
       if ( yy_accept[yy_current_state] )
               {
               (yy_last_accepting_state) = yy_current_state;
               (yy_last_accepting_cpos) = yy_cp;
               }
       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
               {
               yy_current_state = (int) yy_def[yy_current_state];
               if ( yy_current_state >= 1380 )
                       yy_c = yy_meta[yy_c];
               }
       yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
       yy_is_jam = (yy_current_state == 1379);

               return yy_is_jam ? 0 : yy_current_state;
}

#ifndef YY_NO_UNPUT

#endif

#ifndef YY_NO_INPUT
#ifdef __cplusplus
   static int yyinput (void)
#else
   static int input  (void)
#endif

{
       int c;

       *(yy_c_buf_p) = (yy_hold_char);

       if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
               {
               /* yy_c_buf_p now points to the character we want to return.
                * If this occurs *before* the EOB characters, then it's a
                * valid NUL; if not, then we've hit the end of the buffer.
                */
               if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
                       /* This was really a NUL. */
                       *(yy_c_buf_p) = '\0';

               else
                       { /* need more input */
                       int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
                       ++(yy_c_buf_p);

                       switch ( yy_get_next_buffer(  ) )
                               {
                               case EOB_ACT_LAST_MATCH:
                                       /* This happens because yy_g_n_b()
                                        * sees that we've accumulated a
                                        * token and flags that we need to
                                        * try matching the token before
                                        * proceeding.  But for input(),
                                        * there's no matching to consider.
                                        * So convert the EOB_ACT_LAST_MATCH
                                        * to EOB_ACT_END_OF_FILE.
                                        */

                                       /* Reset buffer status. */
                                       yyrestart( yyin );

                                       /*FALLTHROUGH*/

                               case EOB_ACT_END_OF_FILE:
                                       {
                                       if ( yywrap(  ) )
                                               return 0;

                                       if ( ! (yy_did_buffer_switch_on_eof) )
                                               YY_NEW_FILE;
#ifdef __cplusplus
                                       return yyinput();
#else
                                       return input();
#endif
                                       }

                               case EOB_ACT_CONTINUE_SCAN:
                                       (yy_c_buf_p) = (yytext_ptr) + offset;
                                       break;
                               }
                       }
               }

       c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
       *(yy_c_buf_p) = '\0';   /* preserve yytext */
       (yy_hold_char) = *++(yy_c_buf_p);

       return c;
}
#endif  /* ifndef YY_NO_INPUT */

/** Immediately switch to a different input stream.
* @param input_file A readable stream.
*
* @note This function does not reset the start condition to @c INITIAL .
*/
   void yyrestart  (FILE * input_file )
{

       if ( ! YY_CURRENT_BUFFER ){
       yyensure_buffer_stack ();
               YY_CURRENT_BUFFER_LVALUE =
           yy_create_buffer( yyin, YY_BUF_SIZE );
       }

       yy_init_buffer( YY_CURRENT_BUFFER, input_file );
       yy_load_buffer_state(  );
}

/** Switch to a different input buffer.
* @param new_buffer The new input buffer.
*
*/
   void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
{

       /* TODO. We should be able to replace this entire function body
        * with
        *              yypop_buffer_state();
        *              yypush_buffer_state(new_buffer);
    */
       yyensure_buffer_stack ();
       if ( YY_CURRENT_BUFFER == new_buffer )
               return;

       if ( YY_CURRENT_BUFFER )
               {
               /* Flush out information for old buffer. */
               *(yy_c_buf_p) = (yy_hold_char);
               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
               }

       YY_CURRENT_BUFFER_LVALUE = new_buffer;
       yy_load_buffer_state(  );

       /* We don't actually know whether we did this switch during
        * EOF (yywrap()) processing, but the only time this flag
        * is looked at is after yywrap() is called, so it's safe
        * to go ahead and always set it.
        */
       (yy_did_buffer_switch_on_eof) = 1;
}

static void yy_load_buffer_state  (void)
{
       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
       (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
       yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
       (yy_hold_char) = *(yy_c_buf_p);
}

/** Allocate and initialize an input buffer state.
* @param file A readable stream.
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
*
* @return the allocated buffer state.
*/
   YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
{
       YY_BUFFER_STATE b;

       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
       if ( ! b )
               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

       b->yy_buf_size = size;

       /* yy_ch_buf has to be 2 characters longer than the size given because
        * we need to put in 2 end-of-buffer characters.
        */
       b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
       if ( ! b->yy_ch_buf )
               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

       b->yy_is_our_buffer = 1;

       yy_init_buffer( b, file );

       return b;
}

/** Destroy the buffer.
* @param b a buffer created with yy_create_buffer()
*
*/
   void yy_delete_buffer (YY_BUFFER_STATE  b )
{

       if ( ! b )
               return;

       if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
               YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;

       if ( b->yy_is_our_buffer )
               yyfree( (void *) b->yy_ch_buf  );

       yyfree( (void *) b  );
}

/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
*/
   static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )

{
       int oerrno = errno;

       yy_flush_buffer( b );

       b->yy_input_file = file;
       b->yy_fill_buffer = 1;

   /* If b is the current buffer, then yy_init_buffer was _probably_
    * called from yyrestart() or through yy_get_next_buffer.
    * In that case, we don't want to reset the lineno or column.
    */
   if (b != YY_CURRENT_BUFFER){
       b->yy_bs_lineno = 1;
       b->yy_bs_column = 0;
   }

       b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;

       errno = oerrno;
}

/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
*
*/
   void yy_flush_buffer (YY_BUFFER_STATE  b )
{
       if ( ! b )
               return;

       b->yy_n_chars = 0;

       /* We always need two end-of-buffer characters.  The first causes
        * a transition to the end-of-buffer state.  The second causes
        * a jam in that state.
        */
       b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
       b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;

       b->yy_buf_pos = &b->yy_ch_buf[0];

       b->yy_at_bol = 1;
       b->yy_buffer_status = YY_BUFFER_NEW;

       if ( b == YY_CURRENT_BUFFER )
               yy_load_buffer_state(  );
}

/** Pushes the new state onto the stack. The new state becomes
*  the current state. This function will allocate the stack
*  if necessary.
*  @param new_buffer The new state.
*
*/
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
       if (new_buffer == NULL)
               return;

       yyensure_buffer_stack();

       /* This block is copied from yy_switch_to_buffer. */
       if ( YY_CURRENT_BUFFER )
               {
               /* Flush out information for old buffer. */
               *(yy_c_buf_p) = (yy_hold_char);
               YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
               YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
               }

       /* Only push if top exists. Otherwise, replace top. */
       if (YY_CURRENT_BUFFER)
               (yy_buffer_stack_top)++;
       YY_CURRENT_BUFFER_LVALUE = new_buffer;

       /* copied from yy_switch_to_buffer. */
       yy_load_buffer_state(  );
       (yy_did_buffer_switch_on_eof) = 1;
}

/** Removes and deletes the top of the stack, if present.
*  The next element becomes the new top.
*
*/
void yypop_buffer_state (void)
{
       if (!YY_CURRENT_BUFFER)
               return;

       yy_delete_buffer(YY_CURRENT_BUFFER );
       YY_CURRENT_BUFFER_LVALUE = NULL;
       if ((yy_buffer_stack_top) > 0)
               --(yy_buffer_stack_top);

       if (YY_CURRENT_BUFFER) {
               yy_load_buffer_state(  );
               (yy_did_buffer_switch_on_eof) = 1;
       }
}

/* Allocates the stack if it does not exist.
*  Guarantees space for at least one push.
*/
static void yyensure_buffer_stack (void)
{
       yy_size_t num_to_alloc;

       if (!(yy_buffer_stack)) {

               /* First allocation is just for 2 elements, since we don't know if this
                * scanner will even need a stack. We use 2 instead of 1 to avoid an
                * immediate realloc on the next call.
        */
     num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
               (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
                                                               (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                               );
               if ( ! (yy_buffer_stack) )
                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );

               memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));

               (yy_buffer_stack_max) = num_to_alloc;
               (yy_buffer_stack_top) = 0;
               return;
       }

       if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){

               /* Increase the buffer to prepare for a possible push. */
               yy_size_t grow_size = 8 /* arbitrary grow size */;

               num_to_alloc = (yy_buffer_stack_max) + grow_size;
               (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
                                                               ((yy_buffer_stack),
                                                               num_to_alloc * sizeof(struct yy_buffer_state*)
                                                               );
               if ( ! (yy_buffer_stack) )
                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );

               /* zero only the new slots.*/
               memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
               (yy_buffer_stack_max) = num_to_alloc;
       }
}

/** Setup the input buffer state to scan directly from a user-specified character buffer.
* @param base the character buffer
* @param size the size in bytes of the character buffer
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
{
       YY_BUFFER_STATE b;

       if ( size < 2 ||
            base[size-2] != YY_END_OF_BUFFER_CHAR ||
            base[size-1] != YY_END_OF_BUFFER_CHAR )
               /* They forgot to leave room for the EOB's. */
               return NULL;

       b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
       if ( ! b )
               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );

       b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
       b->yy_buf_pos = b->yy_ch_buf = base;
       b->yy_is_our_buffer = 0;
       b->yy_input_file = NULL;
       b->yy_n_chars = b->yy_buf_size;
       b->yy_is_interactive = 0;
       b->yy_at_bol = 1;
       b->yy_fill_buffer = 0;
       b->yy_buffer_status = YY_BUFFER_NEW;

       yy_switch_to_buffer( b  );

       return b;
}

/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
* @param yystr a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
*       yy_scan_bytes() instead.
*/
YY_BUFFER_STATE yy_scan_string (const char * yystr )
{

       return yy_scan_bytes( yystr, (int) strlen(yystr) );
}

/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
{
       YY_BUFFER_STATE b;
       char *buf;
       yy_size_t n;
       int i;

       /* Get memory for full buffer, including space for trailing EOB's. */
       n = (yy_size_t) (_yybytes_len + 2);
       buf = (char *) yyalloc( n  );
       if ( ! buf )
               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );

       for ( i = 0; i < _yybytes_len; ++i )
               buf[i] = yybytes[i];

       buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;

       b = yy_scan_buffer( buf, n );
       if ( ! b )
               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );

       /* It's okay to grow etc. this buffer, and we should throw it
        * away when we're done.
        */
       b->yy_is_our_buffer = 1;

       return b;
}

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

static void yynoreturn yy_fatal_error (const char* msg )
{
                       fprintf( stderr, "%s\n", msg );
       exit( YY_EXIT_FAILURE );
}

/* Redefine yyless() so it works in section 3 code. */

#undef yyless
#define yyless(n) \
       do \
               { \
               /* Undo effects of setting up yytext. */ \
       int yyless_macro_arg = (n); \
       YY_LESS_LINENO(yyless_macro_arg);\
               yytext[yyleng] = (yy_hold_char); \
               (yy_c_buf_p) = yytext + yyless_macro_arg; \
               (yy_hold_char) = *(yy_c_buf_p); \
               *(yy_c_buf_p) = '\0'; \
               yyleng = yyless_macro_arg; \
               } \
       while ( 0 )

/* Accessor  methods (get/set functions) to struct members. */

/** Get the current line number.
*
*/
int yyget_lineno  (void)
{

   return yylineno;
}

/** Get the input stream.
*
*/
FILE *yyget_in  (void)
{
       return yyin;
}

/** Get the output stream.
*
*/
FILE *yyget_out  (void)
{
       return yyout;
}

/** Get the length of the current token.
*
*/
int yyget_leng  (void)
{
       return yyleng;
}

/** Get the current token.
*
*/

char *yyget_text  (void)
{
       return yytext;
}

/** Set the current line number.
* @param _line_number line number
*
*/
void yyset_lineno (int  _line_number )
{

   yylineno = _line_number;
}

/** Set the input stream. This does not discard the current
* input buffer.
* @param _in_str A readable stream.
*
* @see yy_switch_to_buffer
*/
void yyset_in (FILE *  _in_str )
{
       yyin = _in_str ;
}

void yyset_out (FILE *  _out_str )
{
       yyout = _out_str ;
}

int yyget_debug  (void)
{
       return yy_flex_debug;
}

void yyset_debug (int  _bdebug )
{
       yy_flex_debug = _bdebug ;
}

static int yy_init_globals (void)
{
       /* Initialization is the same as for the non-reentrant scanner.
    * This function is called from yylex_destroy(), so don't allocate here.
    */

   (yy_buffer_stack) = NULL;
   (yy_buffer_stack_top) = 0;
   (yy_buffer_stack_max) = 0;
   (yy_c_buf_p) = NULL;
   (yy_init) = 0;
   (yy_start) = 0;

/* Defined in main.c */
#ifdef YY_STDINIT
   yyin = stdin;
   yyout = stdout;
#else
   yyin = NULL;
   yyout = NULL;
#endif

   /* For future reference: Set errno on error, since we are called by
    * yylex_init()
    */
   return 0;
}

/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy  (void)
{

   /* Pop the buffer stack, destroying each element. */
       while(YY_CURRENT_BUFFER){
               yy_delete_buffer( YY_CURRENT_BUFFER  );
               YY_CURRENT_BUFFER_LVALUE = NULL;
               yypop_buffer_state();
       }

       /* Destroy the stack itself. */
       yyfree((yy_buffer_stack) );
       (yy_buffer_stack) = NULL;

   /* Reset the globals. This is important in a non-reentrant scanner so the next time
    * yylex() is called, initialization will occur. */
   yy_init_globals( );

   return 0;
}

/*
* Internal utility routines.
*/

#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, const char * s2, int n )
{

       int i;
       for ( i = 0; i < n; ++i )
               s1[i] = s2[i];
}
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (const char * s )
{
       int n;
       for ( n = 0; s[n]; ++n )
               ;

       return n;
}
#endif

void *yyalloc (yy_size_t  size )
{
                       return malloc(size);
}

void *yyrealloc  (void * ptr, yy_size_t  size )
{

       /* The cast to (char *) in the following accommodates both
        * implementations that use char* generic pointers, and those
        * that use void* generic pointers.  It works with the latter
        * because both ANSI C and C++ allow castless assignment from
        * any pointer type to void*, and deal with argument conversions
        * as though doing an assignment.
        */
       return realloc(ptr, size);
}

void yyfree (void * ptr )
{
                       free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
}

#define YYTABLES_NAME "yytables"

#line 407 "configlexer.lex"