#line 2 "asn1p_l.c"

#line 4 "asn1p_l.c"

#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */

/* %not-for-header */

/* %if-c-only */
/* %if-not-reentrant */
#define yy_create_buffer asn1p__create_buffer
#define yy_delete_buffer asn1p__delete_buffer
#define yy_flex_debug asn1p__flex_debug
#define yy_init_buffer asn1p__init_buffer
#define yy_flush_buffer asn1p__flush_buffer
#define yy_load_buffer_state asn1p__load_buffer_state
#define yy_switch_to_buffer asn1p__switch_to_buffer
#define yyin asn1p_in
#define yyleng asn1p_leng
#define yylex asn1p_lex
#define yylineno asn1p_lineno
#define yyout asn1p_out
#define yyrestart asn1p_restart
#define yytext asn1p_text
#define yywrap asn1p_wrap
#define yyalloc asn1p_alloc
#define yyrealloc asn1p_realloc
#define yyfree asn1p_free

/* %endif */
/* %endif */
/* %ok-for-header */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

/* %if-c++-only */
/* %endif */

/* %if-c-only */
    
/* %endif */

/* %if-c-only */

/* %endif */

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

/* begin standard C headers. */
/* %if-c-only */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
/* %endif */

/* %if-tables-serialization */
/* %endif */
/* end standard C headers. */

/* %if-c-or-c++ */
/* 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;
typedef uint64_t flex_uint64_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;
#endif /* ! C99 */

/* 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

#endif /* ! FLEXINT_H */

/* %endif */

/* %if-c++-only */
/* %endif */

#ifdef __cplusplus

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

#else	/* ! __cplusplus */

/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)

#define YY_USE_CONST

#endif	/* defined (__STDC__) */
#endif	/* ! __cplusplus */

#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif

/* %not-for-header */

/* Returned upon end-of-file. */
#define YY_NULL 0
/* %ok-for-header */

/* %not-for-header */

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* %ok-for-header */

/* %if-reentrant */
/* %endif */

/* %if-not-reentrant */

/* %endif */

/* 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 asn1p_restart(asn1p_in  )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE 16384
#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

/* %if-not-reentrant */
extern yy_size_t asn1p_leng;
/* %endif */

/* %if-c-only */
/* %if-not-reentrant */
extern FILE *asn1p_in, *asn1p_out;
/* %endif */
/* %endif */

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

    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
     *       access to the local variable yy_act. Since yyless() is a macro, it would break
     *       existing scanners that call yyless() from OUTSIDE asn1p_lex. 
     *       One obvious solution it to make yy_act a global. I tried that, and saw
     *       a 5% performance hit in a non-asn1p_lineno scanner, because yy_act is
     *       normally declared as a register variable-- so it is not worth it.
     */
    #define  YY_LESS_LINENO(n) \
            do { \
                yy_size_t yyl;\
                for ( yyl = n; yyl < asn1p_leng; ++yyl )\
                    if ( asn1p_text[yyl] == '\n' )\
                        --asn1p_lineno;\
            }while(0)
    
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up asn1p_text. */ \
        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 asn1p_text 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
	{
/* %if-c-only */
	FILE *yy_input_file;
/* %endif */

/* %if-c++-only */
/* %endif */

	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.
	 */
	yy_size_t yy_buf_size;

	/* Number of characters read into yy_ch_buf, not including EOB
	 * characters.
	 */
	yy_size_t 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 asn1p_restart()), so that the user can continue scanning by
	 * just pointing asn1p_in at a new input file.
	 */
#define YY_BUFFER_EOF_PENDING 2

	};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */

/* %if-c-only Standard (non-C++) definition */
/* %not-for-header */

/* %if-not-reentrant */

/* 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 = 0; /**< Stack as an array. */
/* %endif */
/* %ok-for-header */

/* %endif */

/* 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)]

/* %if-c-only Standard (non-C++) definition */

/* %if-not-reentrant */
/* %not-for-header */

/* yy_hold_char holds the character lost when asn1p_text is formed. */
static char yy_hold_char;
static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
yy_size_t asn1p_leng;

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

/* Flag which is used to allow asn1p_wrap()'s to do buffer switches
 * instead of setting up a fresh asn1p_in.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;
/* %ok-for-header */

/* %endif */

void asn1p_restart (FILE *input_file  );
void asn1p__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE asn1p__create_buffer (FILE *file,int size  );
void asn1p__delete_buffer (YY_BUFFER_STATE b  );
void asn1p__flush_buffer (YY_BUFFER_STATE b  );
void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer  );
void asn1p_pop_buffer_state (void );

static void asn1p_ensure_buffer_stack (void );
static void asn1p__load_buffer_state (void );
static void asn1p__init_buffer (YY_BUFFER_STATE b,FILE *file  );

#define YY_FLUSH_BUFFER asn1p__flush_buffer(YY_CURRENT_BUFFER )

YY_BUFFER_STATE asn1p__scan_buffer (char *base,yy_size_t size  );
YY_BUFFER_STATE asn1p__scan_string (yyconst char *yy_str  );
YY_BUFFER_STATE asn1p__scan_bytes (yyconst char *bytes,yy_size_t len  );

/* %endif */

void *asn1p_alloc (yy_size_t  );
void *asn1p_realloc (void *,yy_size_t  );
void asn1p_free (void *  );

#define yy_new_buffer asn1p__create_buffer

#define yy_set_interactive(is_interactive) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){ \
        asn1p_ensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
	}

#define yy_set_bol(at_bol) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){\
        asn1p_ensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
	}

#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)

/* %% [1.0] asn1p_text/asn1p_in/asn1p_out/yy_state_type/asn1p_lineno etc. def's & init go here */
/* Begin user sect3 */

#define asn1p_wrap(n) 1
#define YY_SKIP_YYWRAP

#define FLEX_DEBUG

typedef unsigned char YY_CHAR;

FILE *asn1p_in = (FILE *) 0, *asn1p_out = (FILE *) 0;

typedef int yy_state_type;

extern int asn1p_lineno;

int asn1p_lineno = 1;

extern char *asn1p_text;
#define yytext_ptr asn1p_text

/* %if-c-only Standard (non-C++) definition */

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 yy_fatal_error (yyconst char msg[]  );

/* %endif */

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up asn1p_text.
 */
#define YY_DO_BEFORE_ACTION \
	(yytext_ptr) = yy_bp; \
/* %% [2.0] code to fiddle asn1p_text and asn1p_leng for yymore() goes here \ */\
	asn1p_leng = (yy_size_t) (yy_cp - yy_bp); \
	(yy_hold_char) = *yy_cp; \
	*yy_cp = '\0'; \
/* %% [3.0] code to copy yytext_ptr to asn1p_text[] goes here, if %array \ */\
	(yy_c_buf_p) = yy_cp;

/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
#define YY_NUM_RULES 141
#define YY_END_OF_BUFFER 142
/* 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 yyconst flex_int16_t yy_acclist[1275] =
    {   0,
      142,  140,  141,  133,  140,  141,  133,  141,  138,  140,
      141,   20,  140,  141,  138,  140,  141,  140,  141,  138,
      140,  141,  140,  141,  140,  141,  138,  140,  141,  140,
      141,   34,  140,  141,   33,  140,  141,  138,  140,  141,
      140,  141,  121,  122,  140,  141,  121,  122,  140,  141,
      121,  122,  140,  141,  121,  122,  140,  141,  121,  122,
      140,  141,  121,  122,  140,  141,  121,  122,  140,  141,
      121,  122,  140,  141,  121,  122,  140,  141,  121,  122,
      140,  141,  121,  122,  140,  141,  121,  122,  140,  141,
      121,  122,  140,  141,  121,  122,  140,  141,  121,  122,

      140,  141,  121,  122,  140,  141,  121,  122,  140,  141,
      121,  122,  140,  141,  121,  122,  140,  141,  138,  140,
      141,  138,  140,  141,  120,  140,  141,  138,  140,  141,
      140,  141,   10,  140,  141,    7,  141,    7,  140,  141,
        9,  140,  141,    9,  140,  141,   12,   14,  140,  141,
       12,  141,   14,  140,  141,   14,  140,  141,   14,  140,
      141,   22,  140,  141,   22,  141,   23,  140,  141,   17,
      140,  141,   17,  141,   19,  140,  141,   19,  140,  141,
       15,  140,  141,   16,  140,  141,   26,   28,  140,  141,
       28,  140,  141,   29,  141,   26,   27,   28,  140,  141,

       26,   27,   28,  140,  141,  131,  140,  141,  131,  141,
      140,  141,  127,  140,  141,  140,  141,  140,  141,  126,
      140,  141,  129,  140,  141,  130,  140,  141,  128,  140,
      141,  132,  140,  141,  133,   20,   20,  118,  119,    6,
       32,  125,   11,   35,   33,   35,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  122,  121,
      122,  121,  122,  121,  122,  121,  122,   45,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  122,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,

      121,  122,  121,  122,  121,  122,  122,  121,  122,  121,
      122,   90,  121,  122,  121,  122,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  122,  121,  122,  121,  122,  122,  122,  121,
      122,  136,  137,  120,   10,    8,    8,   13,   22,   21,
       17,   26,   26,   27,   26,   27,  131,    6,  126,  139,
      118,  119,   32,   35,  124,   35,  123,  121,  122,  122,
      121,  122,   37,  121,  122,   38,  121,  122,  121,  122,
      121,  122,  121,  122,   42,  121,  122,  121,  122,  121,

      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,   59,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  122,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,   82,  121,
      122,   83,  121,  122,  121,  122,  122,  121,  122,  121,
      122,  121,  122,  122,  121,  122,   93,  121,  122,  121,
      122,  121,  122,  121,  122,  122,  121,  122,  121,  122,
      121,  122,  101,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  122,  121,  122,

      121,  122,  121,  122,  122,  122,  122,  121,  122,  120,
        1,    4,   18,   26,   27,   25,   26,   27,  126,  118,
      119,   31,   30,    3,    2,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,   67,
      121,  122,  122,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,   85,  121,  122,  122,  121,  122,  121,  122,

      121,  122,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  122,   98,  121,  122,  121,  122,  121,  122,  102,
      121,  122,  121,  122,  121,  122,  121,  122,  106,  121,
      122,  108,  121,  122,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  122,  122,  122,  117,  121,
      122,    4,   26,   27,  121,  122,  121,  122,  121,  122,
       41,  121,  122,  122,  121,  122,  121,  122,  121,  122,
       48,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,   66,

      121,  122,  122,  122,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  121,  122,  122,  121,  122,   89,  121,
      122,  121,  122,  122,  121,  122,  121,  122,  121,  122,
      122,  121,  122,  121,  122,  121,  122,  121,  122,  122,
      122,  109,  121,  122,  121,  122,  121,  122,  122,  121,
      122,  122,  122,  122,  134,   26,   27,   36,  121,  122,
      121,  122,  121,  122,  122,  121,  122,  121,  122,   47,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,

      121,  122,   61,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,  122,  122,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  122,   87,  121,  122,
      121,  122,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  122,  121,  122,  121,  122,  103,  121,  122,  104,
      121,  122,  122,  122,  110,  121,  122,  121,  122,  122,
      122,  122,  122,  122,   26,   27,  121,  122,  121,  122,
      122,   44,  121,  122,  121,  122,  121,  122,  121,  122,
      121,  122,   53,  121,  122,   54,  121,  122,  121,  122,

      121,  122,   57,  121,  122,  121,  122,  121,  122,  121,
      122,   63,  121,  122,  121,  122,  121,  122,  122,  122,
      122,  121,  122,  121,  122,   74,  121,  122,   75,  121,
      122,  121,  122,  121,  122,  121,  122,   79,  121,  122,
      121,  122,  121,  122,  121,  122,  122,  121,  122,  122,
       92,  121,  122,  121,  122,   95,  121,  122,   97,  121,
      122,  122,  121,  122,  121,  122,  122,  122,  121,  122,
      113,  122,  122,  122,  122,  122,   26,   27,  121,  122,
      121,  122,  122,  121,  122,  121,  122,  121,  122,  121,
      122,  121,  122,   56,  121,  122,  121,  122,  121,  122,

       62,  121,  122,  121,  122,   65,  121,  122,  122,  122,
      122,  122,  121,  122,   73,  121,  122,   76,  121,  122,
       77,  121,  122,  121,  122,  121,  122,  122,  121,  122,
      122,   91,  121,  122,  122,  121,  122,  122,  121,  122,
      100,  121,  122,  122,  122,  121,  122,  122,  122,  122,
      122,   26,   27,  121,  122,   40,  121,  122,   43,  122,
       46,  121,  122,   49,  121,  122,  121,  122,  121,  122,
      121,  122,  121,  122,  121,  122,  122,  122,  122,   71,
      122,  121,  122,  121,  122,  121,  122,  122,  121,  122,
      122,  122,  121,  122,  122,  105,  122,  122,  111,  121,

      122,  122,  122,  122,  122,  135,   26,  121,  122,   50,
      121,  122,  121,  122,   52,  121,  122,  121,  122,  121,
      122,   60,  121,  122,  121,  122,  122,  122,  122,   72,
      121,  122,  121,  122,  121,  122,  122,  121,  122,  122,
      122,  121,  122,  122,  121,  122,  122,  114,  122,  122,
      122,  122,   26,   39,  121,  122,   51,  121,  122,   55,
      121,  122,  121,  122,  121,  122,  122,  122,  122,  121,
      122,  121,  122,  122,  121,  122,  122,  122,  121,  122,
      122,  121,  122,  122,  122,  122,  122,   26,  121,  122,
      121,  122,  122,  122,  122,   78,  121,  122,   80,  121,

      122,   81,  122,  121,  122,  122,  122,  121,  122,  122,
       99,  121,  122,  122,  122,  122,  122,   26,  121,  122,
       64,  121,  122,   69,  122,  122,   70,  122,  121,  122,
       86,  122,  122,   94,  121,  122,  122,  107,  122,  122,
      122,  116,  122,   26,  121,  122,  122,   84,  121,  122,
      122,  122,  122,  115,  122,   26,  121,  122,   68,  122,
      122,   96,  122,  112,  122,   26,   58,  121,  122,   88,
      122,   24,   26,    5
    } ;

static yyconst flex_int16_t yy_accept[750] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    2,    4,    7,
        9,   12,   15,   18,   20,   23,   25,   27,   30,   32,
       35,   38,   41,   43,   47,   51,   55,   59,   63,   67,
       71,   75,   79,   83,   87,   91,   95,   99,  103,  107,
      111,  115,  119,  122,  125,  128,  131,  133,  136,  138,
      141,  144,  147,  151,  153,  156,  159,  162,  165,  167,
      170,  173,  175,  178,  181,  184,  187,  191,  194,  196,
      201,  206,  209,  211,  213,  216,  218,  220,  223,  226,
      229,  232,  235,  235,  236,  237,  238,  238,  239,  239,

      240,  240,  240,  240,  241,  242,  243,  244,  244,  245,
      245,  247,  247,  247,  249,  251,  253,  255,  257,  259,
      260,  262,  264,  266,  268,  271,  273,  275,  277,  279,
      281,  283,  285,  287,  289,  290,  291,  293,  295,  297,
      299,  301,  303,  305,  307,  308,  310,  312,  315,  317,
      318,  320,  322,  324,  326,  327,  329,  331,  333,  335,
      337,  339,  341,  343,  344,  346,  348,  349,  350,  352,
      353,  354,  354,  355,  355,  355,  355,  355,  356,  357,
      358,  359,  360,  361,  362,  362,  363,  365,  367,  368,
      369,  369,  370,  371,  371,  371,  372,  372,  373,  373,

      373,  373,  373,  375,  376,  377,  377,  378,  380,  381,
      383,  386,  389,  391,  393,  393,  395,  398,  400,  402,
      404,  406,  408,  410,  412,  414,  416,  418,  421,  423,
      425,  427,  429,  431,  433,  434,  435,  437,  439,  441,
      443,  445,  447,  449,  452,  455,  457,  458,  460,  462,
      464,  465,  467,  470,  472,  474,  476,  477,  479,  481,
      483,  486,  488,  490,  492,  494,  496,  498,  499,  501,
      503,  505,  506,  507,  508,  510,  511,  511,  511,  512,
      513,  514,  516,  519,  520,  520,  521,  522,  523,  524,
      525,  526,  526,  526,  526,  528,  530,  532,  534,  536,

      538,  540,  542,  544,  546,  548,  550,  552,  554,  556,
      558,  560,  562,  564,  566,  568,  570,  573,  574,  575,
      577,  579,  581,  583,  585,  587,  589,  591,  593,  596,
      597,  599,  601,  603,  604,  606,  608,  610,  612,  613,
      616,  618,  620,  623,  625,  627,  629,  632,  635,  636,
      638,  640,  642,  644,  646,  647,  648,  649,  652,  652,
      652,  652,  652,  653,  655,  655,  657,  659,  661,  664,
      665,  667,  669,  671,  674,  676,  678,  680,  682,  684,
      686,  688,  690,  692,  694,  696,  698,  700,  703,  704,
      705,  706,  708,  710,  712,  714,  716,  718,  720,  722,

      724,  726,  727,  729,  732,  734,  735,  737,  737,  739,
      741,  742,  744,  746,  748,  750,  751,  752,  755,  757,
      759,  760,  762,  763,  764,  765,  765,  765,  766,  768,
      768,  771,  773,  775,  776,  778,  780,  783,  785,  787,
      789,  791,  793,  795,  797,  799,  801,  803,  806,  808,
      810,  812,  814,  815,  816,  817,  819,  821,  823,  825,
      827,  829,  831,  833,  835,  837,  837,  838,  841,  843,
      844,  846,  848,  850,  852,  853,  855,  857,  860,  863,
      864,  865,  868,  870,  871,  872,  873,  874,  875,  875,
      875,  877,  877,  879,  881,  882,  885,  887,  889,  891,

      893,  896,  899,  901,  903,  906,  908,  910,  912,  915,
      917,  919,  920,  921,  922,  924,  926,  929,  932,  934,
      936,  938,  941,  943,  945,  947,  948,  950,  951,  954,
      956,  959,  962,  963,  965,  967,  968,  969,  971,  973,
      974,  975,  976,  977,  977,  979,  979,  981,  983,  984,
      986,  988,  990,  992,  994,  997,  999, 1001, 1004, 1006,
     1009, 1010, 1011, 1012, 1013, 1015, 1018, 1021, 1024, 1026,
     1028, 1029, 1031, 1032, 1035, 1036, 1038, 1039, 1041, 1044,
     1045, 1046, 1048, 1049, 1050, 1051, 1052, 1052, 1052, 1054,
     1054, 1056, 1059, 1061, 1064, 1067, 1069, 1071, 1073, 1073,

     1075, 1077, 1078, 1079, 1080, 1082, 1084, 1086, 1088, 1089,
     1091, 1092, 1093, 1095, 1096, 1096, 1098, 1099, 1102, 1103,
     1104, 1105, 1106, 1106, 1107, 1108, 1108, 1110, 1113, 1115,
     1118, 1120, 1122, 1125, 1127, 1128, 1129, 1130, 1133, 1135,
     1137, 1138, 1140, 1141, 1142, 1144, 1145, 1147, 1148, 1150,
     1151, 1152, 1153, 1154, 1154, 1157, 1160, 1163, 1165, 1167,
     1168, 1169, 1170, 1172, 1174, 1175, 1177, 1178, 1179, 1181,
     1182, 1184, 1185, 1186, 1187, 1188, 1189, 1189, 1191, 1193,
     1194, 1195, 1196, 1199, 1202, 1204, 1206, 1207, 1208, 1210,
     1211, 1214, 1215, 1216, 1217, 1218, 1219, 1219, 1221, 1224,

     1226, 1227, 1229, 1231, 1233, 1234, 1237, 1238, 1240, 1241,
     1242, 1244, 1245, 1245, 1247, 1248, 1251, 1252, 1253, 1254,
     1256, 1257, 1257, 1259, 1261, 1262, 1264, 1266, 1267, 1267,
     1270, 1272, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
     1274, 1274, 1274, 1274, 1274, 1274, 1274, 1275, 1275
    } ;

static yyconst flex_int32_t yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    6,    7,    1,    1,    1,    8,    9,   10,
       10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
       19,   20,   21,   22,   19,   23,   24,   25,   26,   27,
       28,   29,    1,   10,   30,   31,   32,   33,   34,   35,
       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
       46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
       56,    1,   57,   58,    1,    1,   59,   60,   61,   62,

       63,   64,   65,   66,   67,   68,   64,   69,   70,   71,
       72,   73,   64,   74,   75,   76,   77,   78,   64,   79,
       64,   80,   81,   82,   83,    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,   84,    1,    1,    1,
       85,    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,   86,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static yyconst flex_int32_t yy_meta[87] =
    {   0,
        1,    2,    3,    4,    4,    1,    5,    1,    6,    1,
        1,    1,    1,    7,    1,    1,    8,    8,    8,    8,
        8,    8,    8,    8,    9,    1,    1,    9,    1,   10,
       10,   10,   10,   10,   10,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,    1,    1,    1,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       12,    1,   13,    1,    1,    1
    } ;

static yyconst flex_int16_t yy_base[775] =
    {   0,
        0,    0,   84,   87,   90,  102,   97,   99,   96,  111,
       94,  106,  189,  275,  361,    0, 1663, 1648,  133,  141,
     1646, 1640,  439,  149, 4544,  161,  210, 1632,  112,  233,
      505, 1621, 4544,  555,  274,  118,  280,  295,  500,  605,
      194,  611,  521,  218,  503,  633,  418,  650,  667,  670,
      690,  701, 1584,  103, 1622,  745,   87,    0, 4544, 4544,
     1620, 1618, 4544, 4544, 1614, 1618, 4544,    0,    0, 1616,
        0,    0, 1596, 4544, 4544, 4544,    0, 4544, 4544,  769,
      855,  125,  204,  130, 4544, 1605, 1605, 1599, 4544, 4544,
     4544, 4544, 1605,  208,    0, 1598, 1595, 1586,   99, 1585,

      668, 1586,  784,  106,  814, 1578, 4544,  868,  886,  904,
      933, 1563,  938,  693,  769,  799,  927,  928,  943, 1575,
      944,  988,  989, 1004, 1010, 1026, 1032, 1043, 1056, 1059,
     1079, 1076, 1087, 1100,  103,  127, 1115, 1118, 1126, 1141,
     1152, 1163, 1169, 1180,  150, 1193, 1196, 1209, 1217,   97,
     1220, 1233, 1244, 1257,  155, 1273, 1279, 1290, 1296, 1307,
     1318, 1324, 1335,  224, 1341, 1357,  159,  280, 1356, 4544,
     4544,    0, 1572,  769, 1391, 1403, 1492,    0, 4544, 1559,
     4544,    0, 4544,    0, 1541,    0, 1524,  311,  238, 4544,
        0, 1552, 4544, 1551,    0, 1548,    0, 1539,  227, 1515,

      336,  146, 1413, 4544, 1004, 1421, 4544, 1463, 1537, 1415,
     1421, 1437, 1438, 1453, 1536, 1461, 1464, 1513, 1514, 1529,
     1537, 1540, 1553, 1561, 1577, 1583, 1594, 1600, 1611, 1617,
     1628, 1634, 1645, 1656,  158,  278, 1669, 1677, 1680, 1695,
     1698, 1701, 1727, 1719, 1730, 1743,  283, 1751, 1764, 1772,
      284, 1775, 1788, 1796, 1804, 1812,  251, 1825, 1828, 1836,
     1849, 1857, 1865, 1873, 1886, 1894, 1907,  507, 1915, 1931,
     1932,  482,  518,  246, 1947, 1535, 1991, 1999, 4544, 1534,
     4544,  263, 1504, 1532, 1464, 1506, 1501, 4544, 4544, 4544,
     4544,  448,  297, 1465, 1993, 1994, 2009, 2015, 2026, 2032,

     2048, 2049, 2064, 2072, 2080, 2096, 2093, 2104, 2117, 2120,
     2135, 2141, 2152, 2158, 2169, 2184, 2190,  255,  547, 2201,
     2207, 2222, 2223, 2238, 2244, 2259, 2262, 2270, 2283,  481,
     2291, 2294, 2307,  519, 2315, 2328, 2336, 2344,  535, 2352,
     2360, 2373, 2381, 2384, 2402, 2399, 2405, 2420,  569, 2423,
     2426, 2443, 2449, 2460,  624,  248,  522, 2476, 2510, 2533,
     2556, 2568, 1498,  417, 1467, 2552, 2567, 2583, 2580,  629,
     2601, 2604, 2607, 2622, 2625, 2633, 2646, 2654, 2667, 2678,
     2684, 2695, 2706, 2721, 2727, 2738, 2744, 2759,  553,  570,
      635, 2760, 2780, 2777, 2798, 2797, 2813, 2819, 2830, 2843,

     2854,  625, 2851, 2867, 2875,  626, 2883,  296, 2891, 2904,
      637, 2917, 2920, 2928, 2941,  644,  643, 2952, 2958, 2969,
      646, 2980,  648,  651,  668,  756, 3024, 4544,  499, 1490,
     3008, 3024, 3021,  661, 3032, 3045, 3048, 3065, 3071, 3082,
     3088, 3103, 3109, 3126, 3132, 3143, 3149, 3160, 3166, 3177,
     3183, 3199,  676,  633,  742, 3200, 3215, 3221, 3232, 3238,
     3253, 3259, 3270, 3285, 3291,  691,  797, 3302, 3318,  808,
     3315, 1457, 3326, 3339,  799, 3347, 3362, 3365, 3368,  806,
      814, 3383, 3386,  809,  741,  860,  831,  832, 3435, 3447,
     1450, 1459, 3401, 3441,  655, 3442, 3459, 3458, 3474, 3475,

     3490, 3491, 3506, 3512, 3523, 3529, 3540, 3551, 3562, 3568,
     3579,  915,  802,  807, 3585, 3596, 3607, 3613, 3624, 3630,
     3645, 3646, 3661, 3667, 1447,  882, 3678,  883, 3684, 1454,
     3695, 3701,  810, 3716, 3722,  829,  885, 3738, 1471,  924,
      901,  838,  918, 3772,  104,    0, 3766, 3767,  900, 3782,
     3790, 3793, 3806, 3814, 3822, 3830, 3843, 3851, 3859, 3867,
      843,  862,  976,  930, 3880, 3888, 3891, 3904, 3912, 3915,
      962, 1438, 1029, 3928,  861, 1434,  920, 3949, 3936, 1030,
     1047, 3952, 1032, 1044,  931, 1051, 4001, 1391,  709, 1423,
     3967, 3985, 1453, 3996, 4002, 4017, 4018, 4033,  321, 4039,

     4050, 1064, 1026, 1065, 1449, 4056, 4067, 4078, 1066, 1423,
     1080, 1054, 1414, 1050,  222, 1441, 1100, 4084, 1069, 1133,
     1102, 1141, 1514, 4544, 1421, 1388, 4095, 4101, 4116, 4117,
     4132, 1404, 4133, 4148, 1121, 1078, 1134, 4154, 4165, 4176,
     1082, 1386, 1150, 1148, 1343, 1152, 1339, 1166, 1361, 1171,
     1161, 1189, 1329, 1297, 4182, 4193, 4199, 1321, 4210, 1128,
     1156, 1173, 4221, 4227, 1184, 1313, 1206, 1204, 1298, 1212,
     1284, 1228, 1239, 1215, 1241, 1272, 1232, 1248, 4242, 1243,
     1259, 1254, 4243, 4258, 1278, 1223, 1265, 1217, 1155, 1267,
        0, 1279, 1287, 1282, 1291, 1143, 1116, 1130, 4259, 1067,

     1137, 1058, 1012, 1045, 1266,    0, 1348, 1036, 1404, 1318,
     1028,  917,  887,  917, 1295,    0,  653, 1389, 1436,  933,
      899,  797,  713,  739, 1297,  551,  544,  516,  485,    0,
      540,    0,  464,  437,  391,  419,  386,  390,  385,  379,
      391,  278, 1388, 1457,  335,  118, 4544, 4544, 4309, 4322,
     4335, 4348, 4361, 4374, 4386, 4390, 4401, 4414, 4427, 4438,
     4449, 4454, 4459, 4464, 4468, 4473, 4477, 4481, 4485, 4489,
     4500, 4507, 4518, 4530
    } ;

static yyconst flex_int16_t yy_def[775] =
    {   0,
      748,    1,  749,  749,  749,  749,  750,  750,  751,  751,
      752,  752,  753,  753,  748,   15,  748,  748,  748,  748,
      748,  754,  748,  755,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  748,  748,  756,  748,  748,  757,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  758,  758,  748,
      759,  759,  748,  748,  748,  748,  760,  748,  748,  761,
      761,  748,  748,   23,  748,  748,  748,  762,  748,  748,
      748,  748,  748,  748,  754,  754,  748,  763,  748,  764,

      755,  755,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  765,   34,   34,   34,   34,   34,   34,  766,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  766,  766,   34,   34,   34,   34,
       34,   34,   34,   34,  766,   34,   34,   34,   34,  766,
       34,   34,   34,   34,  766,   34,   34,   34,   34,   34,
       34,   34,   34,  766,   34,   34,  766,  766,   34,  748,
      748,  767,  756,  748,  748,  748,  748,  757,  748,  748,
      748,  758,  748,  759,  748,  760,   81,   81,  748,  748,
      768,  762,  748,  748,  769,  763,  770,  764,  748,  748,

      771,  748,  748,  748,  748,  748,  748,  765,  772,   34,
       34,   34,   34,   34,  772,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  766,  766,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,  766,   34,   34,   34,
      766,   34,   34,   34,   34,   34,  766,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,  766,   34,   34,
       34,  766,  766,  766,   34,  767,  748,  748,  748,  748,
      748,   81,   81,  768,  748,  769,  770,  748,  748,  748,
      748,  771,  748,  748,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,  766,  766,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,  766,
       34,   34,   34,  766,   34,   34,   34,   34,  766,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  766,   34,
       34,   34,   34,   34,  766,  766,  766,   34,  748,  748,
      748,  748,  748,   81,  748,   34,   34,   34,   34,  766,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  766,  766,
      766,   34,   34,   34,   34,   34,   34,   34,   34,   34,

       34,  766,   34,   34,   34,  766,   34,  208,   34,   34,
      766,   34,   34,   34,   34,  766,  766,   34,   34,   34,
      766,   34,  766,  766,  766,  748,  748,  748,   81,  748,
       34,   34,   34,  766,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  766,  766,  766,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,  208,  766,   34,   34,  766,
       34,  208,   34,   34,  766,   34,   34,   34,   34,  766,
      766,   34,   34,  766,  766,  766,  766,  766,  748,  748,
       81,  748,   34,   34,  766,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  766,  766,  766,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  208,  766,   34,  766,   34,  208,
       34,   34,  766,   34,   34,  766,  766,   34,  766,  766,
      766,  766,  766,  748,   81,  773,   34,   34,  766,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
      766,  766,  766,  766,   34,   34,   34,   34,   34,   34,
      766,  208,  766,   34,  766,  208,  766,   34,   34,  766,
      766,   34,  766,  766,  766,  766,  748,  774,   81,  748,
       34,   34,  766,   34,   34,   34,   34,   34,  208,   34,

       34,  766,  766,  766,  766,   34,   34,   34,  766,  208,
      766,  766,  208,  766,  208,  766,  766,   34,  766,  766,
      766,  766,  748,  748,  760,  748,   34,   34,   34,   34,
       34,  208,   34,   34,  766,  766,  766,   34,   34,   34,
      766,  208,  766,  766,  208,  766,  208,  766,  766,  766,
      766,  766,  760,  748,   34,   34,   34,  208,   34,  766,
      766,  766,   34,   34,  766,  208,  766,  766,  208,  766,
      208,  766,  766,  766,  766,  760,  748,  208,   34,  766,
      766,  766,   34,   34,  766,  208,  766,  766,  208,  766,
      208,  766,  766,  766,  766,  760,  748,  208,   34,  766,

      766,  766,  208,  766,  766,  208,  766,  766,  766,  766,
      766,  760,  748,  208,  766,  208,  766,  766,  766,  766,
      760,  748,  208,  766,  766,  766,  766,  760,  748,  208,
      766,  760,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,    0,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748
    } ;

static yyconst flex_int16_t yy_nxt[4631] =
    {   0,
       18,   19,   20,   19,   19,   21,   22,   23,   24,   25,
       18,   26,   25,   27,   28,   29,   30,   31,   31,   31,
       31,   31,   31,   31,   32,   21,   33,   33,   18,   34,
       35,   36,   37,   38,   39,   40,   41,   42,   41,   41,
       41,   43,   44,   45,   46,   41,   47,   48,   49,   50,
       51,   52,   41,   41,   41,   53,   54,   21,   55,   55,
       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
       56,   21,   25,   18,   18,   57,   59,   60,   60,   59,
       60,   60,   59,   60,   60,   93,   72,   61,   69,   64,

       61,   64,   70,   62,   59,   60,   60,   65,   72,   65,
      215,   93,   66,   69,   66,   62,  215,   70,   73,  201,
       93,   74,  107,   67,   97,   67,  189,  189,  189,  189,
       73,  747,  202,   74,   94,   94,   94,   94,  748,  589,
      215,   93,   94,   94,   94,   94,  187,  293,  114,   93,
      101,  101,  101,  101,  126,  748,   99,   93,  127,  171,
      114,  128,  114,  215,  251,  101,  101,  114,  215,   93,
      177,  215,  215,  235,   75,  294,   76,  103,  103,  103,
      103,  103,  103,  103,  103,  236,   75,  748,   76,   77,
       78,   79,   78,   78,   77,   77,   77,   77,   77,   77,

       77,   77,   77,   77,   77,  189,  189,  189,  189,   94,
       94,   94,   94,   77,   77,   77,   77,   77,   93,  247,
      318,  257,   81,  104,  114,  272,  103,  105,  105,  105,
      105,  105,  105,  105,  114,  748,  114,  215,  114,  189,
      189,  189,  189,  114,   77,   77,   77,  108,  114,  109,
      109,  109,  109,  109,  109,  109,  109,  288,  114,  215,
      114,  215,  114,  289,  215,  647,  110,  144,  215,   78,
       77,   78,   77,   77,   77,   77,   78,   79,   78,   78,
       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
       77,  215,  268,  215,  145,  110,  215,  215,  293,   77,

       77,   77,   77,   77,  114,  187,  364,  121,   81,  748,
      114,  122,  357,  129,  114,  123,  114,  124,  114,  424,
      114,  339,  114,  114,  114,  114,  294,  125,  389,  114,
       77,   77,   77,  472,  748,  114,  130,  131,  291,  114,
      291,  273,  282,  283,  114,  330,  334,  132,  746,  292,
      319,  743,  632,  187,  274,   78,   77,   78,   77,   77,
       77,   33,   82,   83,   82,   82,   33,   33,   84,   33,
       33,   33,   33,   85,   86,   33,   87,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,

       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
       88,   88,   88,   88,   88,   88,   89,   90,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   91,   33,   92,   33,   33,   33,   93,  114,  429,
      291,  156,  291,  742,  741,  740,  739,  738,  114,  187,
      114,  292,  114,  737,   97,  736,  735,  114,   98,   98,
       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
       98,   98,   98,   98,  215,  215,   99,  100,  100,  100,

      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
      100,  100,  100,  100,  100,  100,  100,  100,  100,  108,
      215,  111,  111,  111,  111,  111,  111,  111,  111,  133,
      114,  215,  215,  146,  147,  215,  491,  148,  110,  734,
      114,  187,  114,  114,  114,  114,  134,  149,  215,  114,
      142,  114,  114,  215,  402,  733,  732,  215,  143,  355,
      215,  114,  150,  114,  215,  114,  215,  110,  113,  349,
      114,  114,  114,  114,  114,  114,  114,  114,  114,  406,
      356,  425,  215,  215,  114,  115,  114,  114,  114,  114,
      114,  114,  114,  114,  114,  116,  114,  117,  114,  118,

      114,  114,  114,  114,  119,  114,  114,  114,  114,  114,
      411,  453,  390,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  114,  454,  215,  215,  215,
      137,  114,  215,  138,  417,  114,  215,  114,  215,  114,
      215,  114,  139,  140,  114,  114,  215,  215,  141,  215,
      114,  215,  151,  114,  215,  152,  215,  135,  215,  101,
      101,  101,  101,  153,  215,  114,  199,  114,  136,  154,
      114,  215,  114,  157,  101,  101,  423,  158,  161,  215,
      114,  467,  114,  513,  114,  475,  162,  114,  159,  114,

      114,  470,  434,  160,  748,  481,  155,  114,  455,  114,
      114,  114,  165,  163,  114,  484,  114,  480,  166,  114,
      114,  486,  625,  114,  725,  549,  487,  495,  525,  164,
      114,  114,  114,  114,  114,  114,  488,  114,  169,  114,
      167,  114,  114,  114,  512,  114,  174,  174,  174,  174,
      114,  187,  215,  730,  215,  215,  168,  426,  426,  426,
      426,  175,  175,  175,  175,  175,  175,  176,  176,  186,
      174,  174,  174,  174,  186,  186,  186,  186,  186,  186,
      186,  186,  186,  186,  186,  175,  175,  175,  175,  175,
      175,  176,  176,  186,  186,  186,  186,  186,  108,  114,

      109,  109,  109,  109,  109,  109,  109,  109,  514,  114,
      215,  114,  215,  114,  540,  215,  210,  110,  114,  215,
      215,  215,  215,  215,  186,  186,  186,  215,  108,  114,
      203,  203,  203,  203,  203,  203,  203,  203,  428,  211,
      528,  114,  215,  114,  215,  215,  110,  110,  114,  563,
      186,  215,  186,  186,  186,  186,  215,  526,  533,  729,
      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
      186,  539,  536,  215,  215,  215,  110,  564,  577,  186,
      186,  186,  186,  186,  205,  205,  205,  205,  205,  205,
      205,  205,  537,  542,  543,  215,  215,  188,  215,  580,

      108,  110,  109,  109,  109,  109,  109,  109,  109,  109,
      186,  186,  186,  215,  215,  206,  585,  206,  602,  110,
      205,  205,  205,  205,  205,  205,  205,  205,  215,  573,
      110,  215,  581,  215,  541,  612,  186,  215,  186,  186,
      186,  603,  728,  215,  215,  575,  215,  108,  110,  111,
      111,  111,  111,  111,  111,  111,  111,  114,  114,  584,
      723,  722,  561,  721,  593,  586,  110,  114,  114,  114,
      114,  114,  213,  114,  114,  215,  114,  114,  621,  216,
      212,  562,  614,  114,  114,  114,  114,  114,  114,  215,
      583,  214,  114,  114,  605,  110,  209,  209,  209,  209,

      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
      209,  209,  209,  209,  209,  209,  209,  209,  114,  114,
      205,  205,  205,  205,  205,  205,  205,  205,  114,  114,
      114,  114,  114,  218,  114,  609,  217,  114,  114,  215,
      114,  215,  215,  215,  114,  215,  114,  219,  114,  215,
      114,  604,  114,  114,  114,  220,  114,  215,  215,  114,
      215,  222,  114,  215,  215,  716,  114,  215,  114,  221,
      114,  215,  114,  114,  114,  114,  114,  215,  215,  215,
      215,  114,  215,  114,  223,  224,  114,  114,  636,  226,
      225,  215,  114,  215,  616,  215,  114,  646,  114,  114,

      114,  114,  619,  114,  611,  114,  114,  230,  114,  114,
      227,  228,  620,  215,  644,  215,  114,  114,  114,  114,
      231,  114,  617,  114,  232,  114,  622,  233,  229,  114,
      114,  114,  641,  649,  215,  237,  114,  635,  637,  661,
      114,  215,  114,  234,  114,  114,  215,  215,  114,  114,
      215,  238,  665,  643,  215,  114,  114,  114,  114,  114,
      114,  215,  114,  215,  114,  215,  114,  114,  114,  215,
      239,  114,  240,  648,  215,  114,  714,  651,  713,  215,
      650,  114,  114,  114,  215,  114,  215,  660,  241,  242,
      114,  712,  114,  114,  114,  243,  114,  215,  680,  114,

      662,  114,  215,  114,  681,  114,  715,  114,  706,  114,
      114,  245,  114,  114,  652,  244,  667,  215,  114,  215,
      246,  668,  114,  114,  114,  215,  114,  670,  215,  114,
      215,  248,  672,  114,  674,  114,  114,  114,  114,  114,
      114,  215,  114,  682,  249,  114,  673,  114,  685,  114,
      114,  114,  215,  114,  215,  675,  215,  114,  114,  114,
      114,  114,  114,  114,  114,  250,  114,  215,  252,  114,
      688,  703,  215,  114,  114,  114,  687,  114,  215,  215,
      215,  694,  114,  253,  114,  690,  114,  114,  114,  705,
      255,  215,  215,  254,  256,  215,  698,  114,  692,  114,

      215,  114,  258,  114,  215,  697,  114,  700,  215,  114,
      215,  695,  693,  259,  696,  114,  691,  114,  702,  114,
      114,  114,  114,  114,  260,  701,  114,  261,  114,  704,
      114,  215,  114,  707,  114,  265,  114,  114,  114,  114,
      114,  717,  263,  708,  262,  114,  689,  114,  114,  264,
      686,  114,  710,  709,  114,  711,  114,  724,  114,  266,
      114,  215,  114,  678,  114,  114,  114,  114,  114,  677,
      731,  114,  676,  114,  215,  114,  671,  114,  269,  114,
      669,  114,  720,  114,  267,  114,  114,  114,  270,  744,
      114,  271,  623,  623,  623,  623,  114,  114,  114,  114,

      114,  114,  215,  277,  275,  114,  114,  176,  176,  176,
      176,  176,  176,  176,  176,  278,  745,  215,  718,  176,
      176,  176,  176,  176,  176,  176,  176,  108,  666,  203,
      203,  203,  203,  203,  203,  203,  203,  205,  205,  205,
      205,  205,  205,  205,  205,  114,  110,  658,  295,  215,
      654,  114,  653,  726,  215,  114,  645,  114,  744,  114,
      642,  114,  215,  114,  114,  114,  215,  114,  114,  626,
      114,  613,  610,  624,  719,  110,  113,  114,  296,  114,
      114,  114,  114,  114,  215,  745,  114,  114,  576,  572,
      546,  114,  545,  114,  114,  114,  297,  114,  298,  530,

      727,  114,  114,  114,  114,  114,  114,  492,  114,  430,
      114,  363,  365,  114,  197,  623,  623,  623,  623,  195,
      193,  209,  209,  209,  209,  209,  209,  209,  209,  209,
      209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
      209,  209,  209,  114,  114,  191,  187,  363,  172,  748,
      215,  289,  197,  114,  300,  114,  114,  114,  114,  114,
      299,  195,  114,  114,  285,  191,  187,  114,  281,  114,
      114,  114,  280,  114,  302,  301,  279,  114,  114,  114,
      114,  114,  114,  114,  114,  172,  114,  303,  215,  114,
      207,  114,  204,  114,  200,  114,  624,  304,  197,  195,

      194,  114,  114,  114,  193,  114,  307,  114,  305,  306,
      114,  193,  191,  114,  308,  107,  309,  114,  190,  114,
      185,  114,  183,  114,  114,  114,  114,  114,  107,  181,
      114,  180,  114,  179,  114,  172,  114,  310,  114,  170,
      114,  114,  114,  114,  114,  112,  106,  114,   96,  114,
      312,  114,  311,  114,   93,  114,   93,  114,  114,  114,
      114,  114,  748,  748,  114,  748,  114,  315,  313,  748,
      114,  314,  114,  748,  114,  114,  114,  114,  114,  748,
      748,  748,  748,  114,  748,  114,  114,  114,  748,  114,
      748,  748,  316,  748,  114,  748,  114,  317,  114,  114,

      114,  748,  748,  748,  748,  114,  748,  114,  748,  114,
      114,  114,  748,  114,  748,  748,  320,  114,  114,  321,
      322,  114,  114,  323,  114,  114,  114,  748,  114,  114,
      748,  114,  748,  748,  326,  324,  748,  114,  114,  114,
      114,  114,  114,  114,  114,  114,  325,  114,  327,  114,
      114,  748,  748,  748,  748,  748,  748,  114,  748,  114,
      114,  114,  748,  114,  748,  748,  748,  114,  114,  114,
      114,  114,  114,  114,  114,  748,  114,  748,  748,  328,
      748,  114,  748,  329,  331,  114,  748,  114,  748,  748,
      748,  114,  114,  114,  114,  114,  748,  332,  748,  748,

      114,  748,  114,  748,  114,  114,  114,  748,  114,  333,
      748,  748,  114,  114,  114,  114,  114,  114,  114,  114,
      748,  114,  748,  335,  114,  748,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  748,  114,  114,  114,  748,
      114,  748,  114,  336,  114,  114,  114,  748,  114,  748,
      748,  337,  114,  114,  114,  114,  114,  341,  114,  748,
      748,  114,  338,  748,  748,  340,  114,  114,  114,  114,
      114,  748,  114,  748,  114,  748,  114,  114,  114,  114,
      114,  748,  748,  748,  748,  342,  748,  114,  748,  114,
      343,  114,  748,  114,  748,  114,  748,  114,  114,  114,

      748,  114,  344,  114,  748,  114,  114,  114,  748,  114,
      748,  748,  748,  114,  114,  114,  114,  114,  748,  748,
      748,  345,  114,  748,  114,  748,  114,  748,  114,  748,
      114,  748,  748,  346,  114,  114,  114,  114,  114,  748,
      348,  347,  748,  114,  748,  114,  748,  114,  748,  114,
      748,  114,  748,  748,  354,  114,  114,  114,  350,  114,
      351,  114,  114,  748,  114,  352,  748,  748,  748,  748,
      748,  114,  114,  114,  114,  114,  114,  114,  748,  353,
      114,  114,  748,  358,  748,  748,  748,  114,  748,  114,
      748,  114,  359,  359,  359,  359,  114,  748,  748,  748,

      361,  361,  361,  361,  748,  748,  748,  360,  360,  360,
      360,  360,  360,  360,  360,  362,  362,  362,  362,  362,
      362,  362,  362,  114,  114,  748,  748,  748,  748,  748,
      748,  367,  748,  114,  114,  366,  114,  114,  114,  114,
      748,  748,  114,  114,  748,  114,  748,  748,  748,  114,
      368,  114,  748,  114,  748,  114,  114,  369,  114,  114,
      748,  748,  114,  748,  114,  371,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  372,  114,  114,
      373,  114,  748,  748,  748,  748,  748,  748,  114,  114,
      114,  114,  114,  114,  114,  748,  748,  114,  114,  748,

      748,  370,  114,  748,  114,  748,  114,  748,  114,  748,
      114,  374,  114,  114,  114,  375,  114,  748,  748,  748,
      114,  114,  114,  114,  114,  377,  114,  748,  376,  114,
      748,  748,  748,  114,  114,  114,  114,  114,  114,  748,
      114,  748,  378,  748,  114,  114,  379,  114,  114,  380,
      114,  748,  381,  114,  748,  748,  748,  114,  748,  114,
      114,  114,  114,  748,  114,  114,  114,  748,  382,  114,
      748,  114,  748,  748,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  114,  383,  748,  748,  114,  384,
      114,  748,  114,  748,  114,  748,  114,  748,  114,  114,

      114,  114,  114,  748,  385,  748,  748,  114,  748,  114,
      748,  386,  748,  114,  114,  387,  748,  388,  114,  748,
      114,  748,  748,  748,  114,  748,  114,  748,  114,  748,
      114,  114,  114,  114,  114,  748,  748,  114,  748,  114,
      748,  114,  748,  114,  748,  114,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  392,  114,  748,  748,  393,
      748,  748,  114,  114,  114,  114,  114,  114,  114,  394,
      748,  114,  114,  396,  114,  748,  391,  748,  114,  748,
      114,  400,  114,  748,  114,  748,  114,  395,  114,  114,
      397,  748,  114,  114,  398,  748,  748,  748,  748,  114,

      114,  114,  114,  114,  114,  399,  114,  748,  114,  748,
      114,  114,  114,  114,  114,  748,  748,  401,  748,  114,
      748,  114,  403,  114,  114,  114,  748,  114,  748,  748,
      748,  114,  114,  114,  114,  114,  114,  114,  114,  748,
      114,  408,  404,  114,  748,  114,  748,  114,  407,  114,
      405,  114,  748,  748,  748,  114,  114,  114,  114,  114,
      748,  748,  748,  748,  114,  748,  114,  748,  114,  409,
      114,  748,  114,  410,  114,  748,  114,  114,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  748,  114,  748,
      114,  748,  114,  114,  114,  748,  114,  748,  748,  748,

      114,  114,  114,  114,  114,  748,  413,  748,  412,  114,
      748,  114,  748,  114,  114,  114,  748,  114,  748,  748,
      748,  114,  114,  114,  114,  114,  414,  748,  114,  114,
      114,  415,  114,  114,  748,  114,  748,  748,  748,  114,
      748,  114,  114,  114,  114,  114,  114,  114,  114,  114,
      114,  114,  748,  114,  114,  748,  114,  748,  748,  748,
      114,  748,  114,  114,  114,  418,  114,  114,  114,  114,
      114,  748,  114,  114,  416,  419,  420,  748,  748,  114,
      748,  748,  748,  114,  748,  114,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  748,  748,  748,  114,  748,

      114,  748,  114,  748,  114,  748,  114,  422,  748,  114,
      748,  359,  359,  359,  359,  421,  114,  748,  114,  748,
      114,  748,  748,  748,  748,  114,  360,  360,  360,  360,
      360,  360,  360,  360,  426,  426,  426,  426,  748,  748,
      748,  748,  748,  748,  748,  427,  748,  748,  748,  360,
      360,  360,  360,  360,  360,  360,  360,  361,  361,  361,
      361,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  362,  362,  362,  362,  362,  362,  362,  362,
      427,  748,  114,  748,  362,  362,  362,  362,  362,  362,
      362,  362,  114,  748,  114,  748,  114,  114,  432,  748,

      431,  114,  748,  748,  748,  748,  748,  114,  748,  114,
      114,  114,  433,  114,  748,  428,  114,  748,  748,  748,
      114,  748,  114,  114,  114,  114,  748,  114,  748,  114,
      435,  114,  114,  748,  114,  436,  748,  114,  748,  748,
      437,  114,  748,  114,  114,  114,  114,  114,  114,  114,
      114,  114,  114,  114,  748,  114,  114,  748,  748,  748,
      748,  748,  114,  114,  114,  114,  114,  438,  748,  114,
      748,  114,  748,  114,  114,  114,  114,  114,  748,  439,
      748,  748,  114,  440,  114,  748,  114,  748,  114,  748,
      114,  748,  748,  748,  441,  114,  114,  114,  114,  748,

      442,  748,  748,  114,  443,  748,  748,  114,  114,  114,
      444,  114,  748,  748,  114,  748,  114,  445,  114,  748,
      114,  446,  114,  748,  114,  114,  114,  114,  114,  748,
      748,  748,  748,  114,  748,  114,  114,  114,  748,  114,
      748,  447,  748,  748,  114,  748,  114,  748,  114,  748,
      114,  114,  449,  748,  448,  114,  748,  114,  748,  748,
      748,  114,  748,  114,  748,  114,  748,  114,  114,  114,
      114,  114,  748,  748,  114,  450,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  451,  452,  114,  114,  114,
      114,  748,  748,  114,  748,  748,  748,  456,  748,  114,

      114,  114,  114,  114,  114,  748,  748,  114,  114,  114,
      114,  457,  748,  458,  748,  748,  748,  114,  748,  114,
      114,  114,  114,  748,  114,  459,  114,  114,  114,  114,
      460,  748,  748,  748,  748,  748,  748,  114,  114,  461,
      114,  114,  114,  114,  748,  748,  114,  114,  748,  114,
      748,  748,  463,  114,  748,  114,  748,  114,  748,  114,
      114,  114,  462,  114,  465,  748,  748,  466,  114,  748,
      114,  748,  114,  114,  114,  748,  748,  464,  748,  114,
      748,  114,  748,  114,  114,  114,  748,  114,  748,  748,
      748,  114,  114,  114,  114,  114,  114,  114,  114,  468,

      114,  748,  748,  114,  748,  114,  748,  114,  748,  114,
      748,  114,  748,  114,  748,  114,  114,  469,  748,  114,
      748,  114,  748,  114,  114,  114,  748,  114,  748,  471,
      748,  114,  114,  473,  114,  114,  748,  748,  748,  748,
      114,  748,  748,  748,  114,  748,  114,  114,  114,  748,
      114,  748,  474,  114,  476,  748,  748,  114,  114,  114,
      114,  114,  477,  478,  114,  748,  114,  748,  114,  114,
      114,  114,  114,  748,  748,  748,  748,  114,  748,  748,
      748,  114,  114,  114,  748,  114,  748,  748,  114,  748,
      114,  482,  114,  479,  114,  748,  114,  748,  114,  114,

      114,  114,  114,  748,  748,  748,  748,  114,  748,  114,
      114,  114,  748,  114,  748,  483,  748,  748,  114,  748,
      114,  748,  114,  748,  114,  489,  489,  489,  489,  114,
      748,  748,  748,  748,  748,  748,  748,  748,  114,  748,
      490,  490,  490,  490,  490,  490,  490,  490,  114,  748,
      114,  114,  114,  493,  114,  485,  748,  114,  748,  748,
      748,  114,  114,  114,  114,  114,  114,  748,  114,  494,
      114,  748,  114,  114,  496,  114,  114,  748,  114,  748,
      748,  114,  748,  748,  748,  114,  748,  114,  114,  114,
      114,  748,  114,  497,  114,  114,  748,  114,  498,  748,

      499,  114,  748,  748,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  114,  114,  748,  748,  114,  748,
      114,  748,  114,  748,  500,  748,  114,  748,  114,  748,
      114,  114,  114,  114,  748,  502,  501,  114,  748,  114,
      748,  748,  748,  114,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  748,  748,  114,  503,  114,  504,
      748,  748,  114,  748,  505,  748,  114,  748,  114,  748,
      114,  748,  114,  114,  114,  114,  114,  748,  507,  114,
      748,  114,  748,  114,  748,  506,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  748,  114,  748,  114,  748,

      114,  748,  114,  508,  114,  748,  114,  114,  114,  114,
      114,  748,  748,  114,  748,  114,  748,  114,  748,  114,
      510,  114,  748,  114,  509,  114,  114,  114,  511,  114,
      114,  748,  114,  748,  515,  748,  748,  748,  748,  114,
      114,  114,  114,  114,  114,  114,  748,  748,  114,  114,
      748,  114,  516,  517,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  114,  114,  748,  748,  114,  748,
      114,  519,  114,  748,  114,  748,  114,  748,  114,  518,
      114,  114,  114,  114,  520,  748,  748,  114,  748,  114,
      521,  748,  748,  114,  748,  114,  748,  114,  748,  114,

      114,  114,  114,  114,  748,  748,  748,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  522,  748,  523,  114,
      748,  114,  748,  748,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  114,  114,  748,  748,  524,  748,
      114,  748,  114,  748,  114,  114,  114,  527,  114,  748,
      748,  114,  748,  748,  748,  114,  114,  529,  114,  114,
      114,  748,  114,  748,  114,  748,  114,  114,  114,  114,
      114,  748,  532,  748,  531,  114,  748,  114,  748,  114,
      748,  114,  748,  114,  748,  748,  748,  114,  114,  114,
      748,  114,  114,  535,  748,  114,  114,  534,  114,  748,

      748,  748,  114,  748,  114,  114,  114,  114,  114,  114,
      114,  114,  114,  114,  114,  748,  114,  114,  748,  748,
      748,  748,  748,  114,  748,  114,  114,  114,  114,  748,
      114,  114,  114,  538,  748,  114,  489,  489,  489,  489,
      748,  114,  748,  114,  748,  114,  748,  748,  748,  547,
      114,  490,  490,  490,  490,  490,  490,  490,  490,  544,
      748,  748,  748,  490,  490,  490,  490,  490,  490,  490,
      490,  114,  114,  748,  748,  748,  748,  748,  548,  748,
      748,  114,  114,  114,  114,  114,  114,  748,  114,  114,
      114,  114,  550,  748,  748,  748,  748,  748,  114,  114,

      551,  114,  114,  114,  114,  114,  748,  114,  114,  748,
      748,  552,  553,  748,  114,  114,  114,  114,  114,  114,
      114,  114,  748,  114,  114,  748,  748,  748,  748,  748,
      114,  114,  114,  114,  114,  114,  114,  748,  748,  114,
      114,  748,  114,  554,  555,  748,  114,  748,  114,  748,
      114,  748,  114,  114,  114,  114,  114,  748,  748,  114,
      748,  114,  748,  114,  556,  114,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  748,  748,  748,  114,  748,
      114,  114,  114,  748,  114,  748,  748,  748,  557,  114,
      748,  114,  114,  114,  748,  114,  748,  748,  559,  558,

      114,  748,  114,  748,  114,  748,  114,  748,  114,  114,
      114,  114,  114,  748,  748,  114,  748,  114,  748,  560,
      748,  114,  565,  114,  748,  114,  114,  114,  114,  114,
      748,  748,  748,  748,  114,  748,  114,  114,  114,  748,
      114,  748,  748,  114,  566,  114,  748,  114,  748,  114,
      748,  114,  748,  114,  114,  114,  114,  114,  748,  748,
      114,  748,  114,  568,  114,  748,  114,  748,  114,  748,
      114,  567,  114,  114,  114,  114,  114,  748,  748,  114,
      748,  748,  748,  748,  748,  114,  114,  114,  114,  114,
      114,  114,  570,  569,  114,  114,  748,  114,  748,  748,

      748,  114,  748,  114,  748,  114,  748,  114,  114,  114,
      114,  114,  748,  748,  114,  748,  114,  748,  574,  748,
      114,  748,  114,  748,  114,  114,  114,  114,  114,  748,
      748,  114,  748,  114,  748,  114,  748,  114,  748,  114,
      748,  114,  571,  114,  114,  114,  114,  748,  748,  578,
      114,  748,  114,  748,  748,  579,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  582,  114,  748,
      748,  114,  748,  587,  587,  587,  587,  748,  114,  748,
      114,  748,  114,  748,  748,  748,  748,  114,  588,  588,
      588,  588,  588,  588,  588,  588,  114,  114,  592,  748,

      748,  748,  748,  591,  748,  748,  114,  114,  114,  114,
      114,  114,  114,  748,  748,  114,  114,  748,  748,  748,
      114,  748,  114,  114,  114,  748,  114,  748,  594,  748,
      114,  114,  114,  114,  114,  596,  114,  114,  595,  114,
      748,  748,  114,  599,  114,  748,  114,  748,  597,  748,
      114,  748,  114,  748,  114,  114,  114,  598,  114,  748,
      114,  748,  114,  114,  114,  748,  114,  748,  748,  748,
      114,  114,  114,  114,  114,  748,  600,  748,  748,  114,
      748,  114,  748,  114,  748,  114,  748,  114,  748,  114,
      748,  114,  114,  114,  748,  114,  601,  114,  748,  114,

      114,  114,  748,  114,  748,  748,  748,  114,  114,  114,
      114,  114,  748,  606,  748,  748,  114,  748,  114,  748,
      114,  114,  114,  748,  114,  748,  748,  748,  114,  114,
      114,  114,  114,  114,  114,  114,  748,  114,  748,  748,
      114,  748,  114,  748,  114,  114,  114,  748,  114,  607,
      748,  748,  114,  114,  114,  114,  114,  114,  114,  114,
      748,  114,  615,  608,  114,  748,  114,  748,  114,  748,
      114,  748,  114,  748,  748,  748,  114,  114,  114,  114,
      114,  748,  114,  748,  748,  114,  748,  748,  748,  114,
      748,  114,  618,  114,  114,  748,  114,  114,  114,  748,

      748,  114,  587,  587,  587,  587,  748,  114,  748,  114,
      627,  114,  748,  748,  748,  114,  114,  588,  588,  588,
      588,  588,  588,  588,  588,  114,  114,  114,  748,  114,
      748,  748,  114,  748,  114,  748,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  114,  114,  628,
      629,  114,  748,  630,  748,  748,  748,  114,  114,  114,
      114,  114,  114,  114,  748,  748,  114,  114,  748,  114,
      748,  633,  748,  114,  748,  631,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  748,  114,  748,  114,  748,
      634,  748,  114,  748,  114,  748,  114,  114,  114,  114,

      114,  748,  638,  748,  748,  114,  748,  114,  114,  114,
      639,  114,  748,  748,  114,  640,  114,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  114,  114,  748,
      748,  114,  748,  114,  748,  114,  748,  655,  748,  114,
      748,  114,  748,  114,  114,  114,  114,  114,  656,  748,
      114,  748,  748,  748,  748,  748,  114,  114,  114,  114,
      114,  114,  114,  114,  748,  114,  114,  748,  748,  748,
      748,  748,  114,  114,  114,  114,  114,  114,  114,  657,
      748,  114,  114,  748,  114,  659,  748,  748,  114,  748,
      114,  748,  114,  748,  114,  114,  114,  114,  114,  748,

      748,  748,  748,  114,  748,  114,  114,  663,  748,  114,
      748,  748,  114,  748,  114,  748,  114,  748,  114,  664,
      114,  748,  114,  114,  114,  114,  114,  748,  748,  114,
      748,  114,  748,  114,  748,  114,  748,  114,  748,  114,
      114,  114,  114,  114,  748,  748,  748,  748,  114,  748,
      114,  114,  114,  748,  114,  748,  748,  114,  679,  114,
      748,  114,  748,  114,  748,  114,  748,  114,  683,  684,
      114,  114,  114,  114,  748,  748,  114,  748,  748,  748,
      748,  748,  114,  114,  114,  114,  114,  114,  114,  114,
      748,  114,  114,  748,  748,  699,  748,  748,  114,  114,

      114,  114,  114,  114,  748,  748,  748,  114,  114,   58,
       58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
       58,   58,   63,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,   68,   68,   68,   68,   68,
       68,   68,   68,   68,   68,   68,   68,   68,   71,   71,
       71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
       71,   80,   80,   80,   80,   80,   80,   80,   80,   80,
       80,   80,   80,   80,   95,   95,   95,   95,  748,   95,
       95,   95,   95,   95,   95,   95,   95,  102,  102,  102,
      748,  102,  748,  102,  748,  102,  173,  173,  748,  173,

      173,  178,  178,  748,  748,  178,  178,  748,  178,  178,
      178,  178,  178,  178,  182,  182,  182,  182,  748,  182,
      182,  182,  182,  182,  182,  182,  182,  184,  184,  184,
      184,  184,  184,  184,  184,  748,  184,  184,  186,  748,
      748,  748,  186,  186,  186,  186,  186,  186,  186,  187,
      748,  748,  748,  187,  187,  187,  187,  187,  187,  187,
      192,  192,  748,  192,  192,  196,  196,  748,  196,  196,
      198,  198,  748,  198,  198,  208,  748,  208,  208,  120,
      120,  748,  120,  120,  276,  748,  276,  276,  284,  748,
      284,  284,  286,  748,  286,  286,  287,  748,  287,  287,

      290,  290,  290,  290,  290,  290,  290,  290,  290,  290,
      290,  290,  290,  209,  209,  748,  209,  209,  590,  590,
      748,  590,  590,  590,  590,  590,  590,  590,  590,  590,
      590,  588,  588,  588,  748,  748,  748,  588,  748,  748,
      748,  748,  588,   17,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,

      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748
    } ;

static yyconst flex_int16_t yy_chk[4631] =
    {   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,    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,   57,   11,    3,    9,    7,

        4,    8,    9,    5,    6,    6,    6,    7,   12,    8,
      150,   54,    7,   10,    8,    6,  135,   10,   11,  104,
       29,   11,   29,    7,   99,    8,   82,   82,   82,   82,
       12,  746,  104,   12,   19,   19,   19,   19,   84,  545,
      136,   19,   20,   20,   20,   20,  545,  202,   36,   20,
       24,   24,   24,   24,   36,   84,   99,   24,   36,   54,
       36,   36,   36,  145,  150,   24,   24,   36,  155,   26,
       57,  235,  167,  135,   11,  202,   11,   26,   26,   26,
       26,   26,   26,   26,   26,  136,   12,   84,   12,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,

       13,   13,   13,   13,   13,   83,   83,   83,   83,   94,
       94,   94,   94,   13,   13,   13,   13,   13,   27,  145,
      235,  155,   13,   27,   41,  167,   27,   27,   27,   27,
       27,   27,   27,   27,   41,  615,   41,  164,   41,  189,
      189,  189,  189,   41,   13,   13,   13,   30,   44,   30,
       30,   30,   30,   30,   30,   30,   30,  199,   44,  274,
       44,  356,   44,  199,  257,  615,   30,   44,  318,   13,
       13,   13,   13,   13,   13,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,  236,  164,  168,   44,   30,  247,  251,  293,   14,

       14,   14,   14,   14,   35,  282,  282,   35,   14,  408,
       37,   35,  274,   37,   35,   35,   35,   35,   35,  356,
       37,  257,   37,   35,   37,   38,  293,   35,  318,   37,
       14,   14,   14,  408,  599,   38,   38,   38,  201,   38,
      201,  168,  188,  188,   38,  247,  251,   38,  745,  201,
      236,  742,  599,  188,  168,   14,   14,   14,   14,   14,
       14,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   23,   47,  364,
      292,   47,  292,  741,  740,  739,  738,  737,   47,  364,
       47,  292,   47,  736,   23,  735,  734,   47,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,  330,  272,   23,   23,   23,   23,

       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   31,
      268,   31,   31,   31,   31,   31,   31,   31,   31,   39,
       39,  273,  334,   45,   45,  357,  429,   45,   31,  733,
       39,  429,   39,   45,   39,   45,   39,   45,  339,   39,
       43,   43,   45,  731,  330,  729,  728,  727,   43,  272,
      319,   43,   45,   43,  726,   43,  389,   31,   34,  268,
       43,   34,   34,   34,   34,   34,   34,   34,   34,  334,
      273,  357,  349,  390,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
      339,  389,  319,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   40,  390,  355,  402,  406,
       42,   42,  370,   42,  349,   40,  454,   40,  391,   40,
      411,   42,   42,   42,   40,   42,  417,  416,   42,  421,
       42,  423,   46,   46,  424,   46,  717,   40,  495,  101,
      101,  101,  101,   46,  434,   46,  101,   46,   40,   46,
       48,  425,   46,   48,  101,  101,  355,   48,   49,  453,
       48,  402,   48,  454,   48,  411,   49,   49,   48,   48,

       50,  406,  370,   48,  466,  417,   46,   49,  391,   49,
       50,   49,   50,   49,   50,  421,   49,  416,   50,   50,
       51,  423,  589,  114,  717,  495,  424,  434,  466,   49,
       51,   52,   51,  114,   51,  114,  425,  114,   52,   51,
       50,   52,  114,   52,  453,   52,   56,   56,   56,   56,
       52,  589,  724,  723,  485,  455,   51,  426,  426,  426,
      426,   56,   56,   56,   56,   56,   56,   56,   56,   80,
      174,  174,  174,  174,   80,   80,   80,   80,   80,   80,
       80,   80,   80,   80,   80,  174,  174,  174,  174,  174,
      174,  174,  174,   80,   80,   80,   80,   80,  103,  115,

      103,  103,  103,  103,  103,  103,  103,  103,  455,  115,
      467,  115,  475,  115,  485,  513,  115,  103,  115,  480,
      514,  470,  484,  533,   80,   80,   80,  481,  105,  116,
      105,  105,  105,  105,  105,  105,  105,  105,  426,  116,
      470,  116,  536,  116,  487,  488,  103,  105,  116,  513,
       80,  542,   80,   80,   80,   81,  561,  467,  475,  722,
       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
       81,  484,  480,  486,  575,  562,  105,  514,  533,   81,
       81,   81,   81,   81,  108,  108,  108,  108,  108,  108,
      108,  108,  481,  487,  488,  526,  528,   81,  537,  536,

      109,  108,  109,  109,  109,  109,  109,  109,  109,  109,
       81,   81,   81,  549,  541,  110,  542,  110,  561,  109,
      110,  110,  110,  110,  110,  110,  110,  110,  512,  526,
      108,  543,  537,  577,  486,  575,   81,  540,   81,   81,
       81,  562,  721,  564,  585,  528,  720,  111,  109,  111,
      111,  111,  111,  111,  111,  111,  111,  117,  118,  541,
      714,  713,  512,  712,  549,  543,  111,  117,  118,  117,
      118,  117,  118,  119,  121,  571,  117,  118,  585,  121,
      117,  512,  577,  119,  121,  119,  121,  119,  121,  563,
      540,  119,  119,  121,  564,  111,  113,  113,  113,  113,

      113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
      113,  113,  113,  113,  113,  113,  113,  113,  122,  123,
      205,  205,  205,  205,  205,  205,  205,  205,  122,  123,
      122,  123,  122,  123,  124,  571,  122,  122,  123,  603,
      125,  711,  573,  580,  124,  583,  124,  124,  124,  708,
      125,  563,  125,  124,  125,  126,  126,  584,  704,  125,
      581,  127,  127,  614,  586,  703,  126,  612,  126,  126,
      126,  702,  127,  128,  127,  126,  127,  602,  604,  609,
      700,  127,  619,  128,  128,  128,  129,  128,  603,  130,
      129,  636,  128,  611,  580,  641,  129,  614,  129,  130,

      129,  130,  583,  130,  573,  129,  132,  132,  130,  131,
      131,  131,  584,  617,  612,  621,  132,  133,  132,  131,
      132,  131,  581,  131,  132,  132,  586,  133,  131,  133,
      134,  133,  609,  619,  635,  137,  133,  602,  604,  636,
      134,  660,  134,  134,  134,  137,  620,  637,  138,  134,
      701,  138,  641,  611,  622,  137,  139,  137,  138,  137,
      138,  644,  138,  643,  137,  646,  139,  138,  139,  661,
      139,  140,  140,  617,  651,  139,  698,  621,  697,  648,
      620,  140,  141,  140,  650,  140,  662,  635,  140,  140,
      140,  696,  141,  142,  141,  141,  141,  665,  660,  143,

      637,  141,  652,  142,  661,  142,  701,  142,  689,  143,
      144,  143,  142,  143,  622,  142,  643,  668,  143,  667,
      144,  644,  144,  146,  144,  670,  147,  646,  674,  144,
      688,  146,  648,  146,  651,  146,  147,  146,  147,  148,
      147,  672,  146,  662,  147,  147,  650,  149,  665,  148,
      151,  148,  673,  148,  675,  652,  680,  149,  148,  149,
      151,  149,  151,  152,  151,  149,  149,  682,  151,  151,
      668,  686,  681,  152,  153,  152,  667,  152,  687,  705,
      690,  674,  152,  152,  153,  670,  153,  154,  153,  688,
      154,  685,  692,  153,  154,  694,  678,  154,  672,  154,

      693,  154,  156,  156,  695,  677,  154,  680,  715,  157,
      725,  675,  673,  156,  676,  156,  671,  156,  682,  157,
      158,  157,  156,  157,  157,  681,  159,  157,  157,  687,
      158,  710,  158,  690,  158,  161,  159,  160,  159,  158,
      159,  705,  159,  692,  158,  159,  669,  160,  161,  160,
      666,  160,  694,  693,  162,  695,  160,  715,  161,  162,
      161,  707,  161,  658,  162,  163,  162,  161,  162,  654,
      725,  165,  653,  162,  649,  163,  647,  163,  165,  163,
      645,  165,  710,  165,  163,  165,  169,  166,  166,  743,
      165,  166,  588,  588,  588,  588,  169,  166,  169,  166,

      169,  166,  718,  175,  169,  169,  166,  175,  175,  175,
      175,  175,  175,  175,  175,  176,  743,  709,  707,  176,
      176,  176,  176,  176,  176,  176,  176,  203,  642,  203,
      203,  203,  203,  203,  203,  203,  203,  206,  206,  206,
      206,  206,  206,  206,  206,  210,  203,  632,  210,  719,
      626,  211,  625,  718,  616,  210,  613,  210,  744,  210,
      610,  211,  605,  211,  210,  211,  593,  212,  213,  590,
      211,  576,  572,  588,  709,  203,  208,  212,  213,  212,
      213,  212,  213,  214,  539,  744,  212,  213,  530,  525,
      492,  216,  491,  214,  217,  214,  214,  214,  216,  472,

      719,  216,  214,  216,  217,  216,  217,  430,  217,  365,
      216,  363,  294,  217,  287,  623,  623,  623,  623,  286,
      285,  208,  208,  208,  208,  208,  208,  208,  208,  208,
      208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
      208,  208,  208,  218,  219,  284,  283,  280,  276,  215,
      209,  200,  198,  218,  219,  218,  219,  218,  219,  220,
      218,  196,  218,  219,  194,  192,  187,  221,  185,  220,
      222,  220,  180,  220,  221,  220,  177,  221,  220,  221,
      222,  221,  222,  223,  222,  173,  221,  222,  120,  222,
      112,  224,  106,  223,  102,  223,  623,  223,  100,   98,

       97,  224,  223,  224,   96,  224,  225,  225,  224,  224,
      224,   93,   88,  226,  225,   87,  226,  225,   86,  225,
       73,  225,   70,  226,  227,  226,  225,  226,   66,   65,
      228,   62,  226,   61,  227,   55,  227,  227,  227,   53,
      228,  229,  228,  227,  228,   32,   28,  230,   22,  228,
      230,  229,  229,  229,   21,  229,   18,  230,  231,  230,
      229,  230,   17,    0,  232,    0,  230,  232,  231,    0,
      231,  231,  231,    0,  232,  233,  232,  231,  232,    0,
        0,    0,    0,  232,    0,  233,  234,  233,    0,  233,
        0,    0,  233,    0,  233,    0,  234,  234,  234,  237,

      234,    0,    0,    0,    0,  234,    0,  238,    0,  237,
      239,  237,    0,  237,    0,    0,  237,  238,  237,  238,
      239,  238,  239,  239,  239,  240,  238,    0,  241,  239,
        0,  242,    0,    0,  242,  240,    0,  240,  241,  240,
      241,  242,  241,  242,  240,  242,  241,  241,  243,  244,
      242,    0,    0,    0,    0,    0,    0,  243,    0,  244,
      245,  244,    0,  244,    0,    0,    0,  243,  244,  243,
      245,  243,  245,  246,  245,    0,  243,    0,    0,  245,
        0,  248,    0,  246,  248,  246,    0,  246,    0,    0,
        0,  248,  246,  248,  249,  248,    0,  249,    0,    0,

      248,    0,  250,    0,  249,  252,  249,    0,  249,  250,
        0,    0,  250,  249,  250,  252,  250,  252,  253,  252,
        0,  250,    0,  252,  252,    0,  254,    0,  253,    0,
      253,    0,  253,    0,  255,    0,  254,  253,  254,    0,
      254,    0,  256,  254,  255,  254,  255,    0,  255,    0,
        0,  255,  256,  255,  256,  258,  256,  259,  259,    0,
        0,  256,  256,    0,    0,  258,  260,  258,  259,  258,
      259,    0,  259,    0,  258,    0,  260,  259,  260,  261,
      260,    0,    0,    0,    0,  260,    0,  262,    0,  261,
      262,  261,    0,  261,    0,  263,    0,  262,  261,  262,

        0,  262,  263,  264,    0,  263,  262,  263,    0,  263,
        0,    0,    0,  264,  263,  264,  265,  264,    0,    0,
        0,  264,  264,    0,  266,    0,  265,    0,  265,    0,
      265,    0,    0,  265,  266,  265,  266,  267,  266,    0,
      267,  266,    0,  266,    0,  269,    0,  267,    0,  267,
        0,  267,    0,    0,  271,  269,  267,  269,  269,  269,
      269,  270,  271,    0,  269,  269,    0,    0,    0,    0,
        0,  270,  271,  270,  271,  270,  271,  275,    0,  270,
      270,  271,    0,  275,    0,    0,    0,  275,    0,  275,
        0,  275,  277,  277,  277,  277,  275,    0,    0,    0,

      278,  278,  278,  278,    0,    0,    0,  277,  277,  277,
      277,  277,  277,  277,  277,  278,  278,  278,  278,  278,
      278,  278,  278,  295,  296,    0,    0,    0,    0,    0,
        0,  296,    0,  295,  296,  295,  296,  295,  296,  297,
        0,    0,  295,  296,    0,  298,    0,    0,    0,  297,
      297,  297,    0,  297,    0,  298,  299,  298,  297,  298,
        0,    0,  300,    0,  298,  300,  299,    0,  299,    0,
      299,    0,  300,    0,  300,  299,  300,  301,  301,  302,
      302,  300,    0,    0,    0,    0,    0,    0,  301,  302,
      301,  302,  301,  302,  303,    0,    0,  301,  302,    0,

        0,  299,  304,    0,  303,    0,  303,    0,  303,    0,
      305,  303,  304,  303,  304,  304,  304,    0,    0,    0,
      305,  304,  305,  307,  305,  306,  306,    0,  305,  305,
        0,    0,    0,  307,  308,  307,  306,  307,  306,    0,
      306,    0,  307,    0,  308,  306,  308,  309,  308,  309,
      310,    0,  310,  308,    0,    0,    0,  309,    0,  309,
      310,  309,  310,    0,  310,  311,  309,    0,  311,  310,
        0,  312,    0,    0,    0,  311,    0,  311,    0,  311,
        0,  312,  313,  312,  311,  312,    0,    0,  314,  313,
      312,    0,  313,    0,  313,    0,  313,    0,  314,  315,

      314,  313,  314,    0,  314,    0,    0,  314,    0,  315,
        0,  315,    0,  315,  316,  315,    0,  316,  315,    0,
      317,    0,    0,    0,  316,    0,  316,    0,  316,    0,
      317,  320,  317,  316,  317,    0,    0,  321,    0,  317,
        0,  320,    0,  320,    0,  320,    0,  321,    0,  321,
      320,  321,  322,  323,    0,  321,  321,    0,    0,  322,
        0,    0,  322,  323,  322,  323,  322,  323,  324,  323,
        0,  322,  323,  325,  325,    0,  320,    0,  324,    0,
      324,  327,  324,    0,  325,    0,  325,  324,  325,  326,
      325,    0,  327,  325,  326,    0,    0,    0,    0,  326,

      328,  326,  327,  326,  327,  326,  327,    0,  326,    0,
      328,  327,  328,  329,  328,    0,    0,  328,    0,  328,
        0,  331,  331,  329,  332,  329,    0,  329,    0,    0,
        0,  331,  329,  331,  332,  331,  332,  333,  332,    0,
      331,  336,  332,  332,    0,  335,    0,  333,  335,  333,
      333,  333,    0,    0,    0,  335,  333,  335,  336,  335,
        0,    0,    0,    0,  335,    0,  337,    0,  336,  337,
      336,    0,  336,  338,  338,    0,  337,  336,  337,    0,
      337,    0,  340,    0,  338,  337,  338,    0,  338,    0,
      341,    0,  340,  338,  340,    0,  340,    0,    0,    0,

      341,  340,  341,  342,  341,    0,  342,    0,  341,  341,
        0,  343,    0,  342,  344,  342,    0,  342,    0,    0,
        0,  343,  342,  343,  344,  343,  344,    0,  344,  346,
      343,  345,  345,  344,    0,  347,    0,    0,    0,  346,
        0,  346,  345,  346,  345,  347,  345,  347,  346,  347,
      348,  345,    0,  350,  347,    0,  351,    0,    0,    0,
      348,    0,  348,  350,  348,  350,  351,  350,  351,  348,
      351,    0,  350,  352,  346,  351,  352,    0,    0,  353,
        0,    0,    0,  352,    0,  352,    0,  352,    0,  353,
      354,  353,  352,  353,    0,    0,    0,    0,  353,    0,

      354,    0,  354,    0,  354,    0,  358,  354,    0,  354,
        0,  359,  359,  359,  359,  353,  358,    0,  358,    0,
      358,    0,    0,    0,    0,  358,  359,  359,  359,  359,
      359,  359,  359,  359,  360,  360,  360,  360,    0,    0,
        0,    0,    0,    0,    0,  360,    0,    0,    0,  360,
      360,  360,  360,  360,  360,  360,  360,  361,  361,  361,
      361,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  361,  361,  361,  361,  361,  361,  361,  361,
      362,    0,  366,    0,  362,  362,  362,  362,  362,  362,
      362,  362,  366,    0,  366,    0,  366,  367,  367,    0,

      366,  366,    0,    0,    0,    0,    0,  367,    0,  367,
      369,  367,  368,  368,    0,  360,  367,    0,    0,    0,
      369,    0,  369,  368,  369,  368,    0,  368,    0,  369,
      371,  371,  368,    0,  372,  372,    0,  373,    0,    0,
      373,  371,    0,  371,  372,  371,  372,  373,  372,  373,
      371,  373,  374,  372,    0,  375,  373,    0,    0,    0,
        0,    0,  374,  376,  374,  375,  374,  375,    0,  375,
        0,  374,    0,  376,  375,  376,  377,  376,    0,  376,
        0,    0,  376,  377,  378,    0,  377,    0,  377,    0,
      377,    0,    0,    0,  378,  377,  378,  379,  378,    0,

      379,    0,    0,  378,  379,    0,    0,  379,  380,  379,
      380,  379,    0,    0,  381,    0,  379,  381,  380,    0,
      380,  381,  380,    0,  381,  382,  381,  380,  381,    0,
        0,    0,    0,  381,    0,  382,  383,  382,    0,  382,
        0,  382,    0,    0,  382,    0,  383,    0,  383,    0,
      383,  384,  384,    0,  383,  383,    0,  385,    0,    0,
        0,  384,    0,  384,    0,  384,    0,  385,  386,  385,
      384,  385,    0,    0,  387,  385,  385,    0,  386,    0,
      386,    0,  386,    0,  387,  386,  387,  386,  387,  388,
      392,    0,    0,  387,    0,    0,    0,  392,    0,  388,

      392,  388,  392,  388,  392,    0,    0,  394,  388,  392,
      393,  393,    0,  393,    0,    0,    0,  394,    0,  394,
      393,  394,  393,    0,  393,  394,  394,  396,  395,  393,
      395,    0,    0,    0,    0,    0,    0,  396,  395,  396,
      395,  396,  395,  397,    0,    0,  396,  395,    0,  398,
        0,    0,  398,  397,    0,  397,    0,  397,    0,  398,
      399,  398,  397,  398,  400,    0,    0,  401,  398,    0,
      399,    0,  399,  400,  399,    0,    0,  399,    0,  399,
        0,  403,    0,  400,  401,  400,    0,  400,    0,    0,
        0,  403,  400,  403,  401,  403,  401,  404,  401,  403,

      403,    0,    0,  401,    0,  405,    0,  404,    0,  404,
        0,  404,    0,  407,    0,  405,  404,  405,    0,  405,
        0,  409,    0,  407,  405,  407,    0,  407,    0,  407,
        0,  409,  407,  409,  410,  409,    0,    0,    0,    0,
      409,    0,    0,    0,  410,    0,  410,  412,  410,    0,
      413,    0,  410,  410,  412,    0,    0,  412,  414,  412,
      413,  412,  413,  414,  413,    0,  412,    0,  414,  413,
      414,  415,  414,    0,    0,    0,    0,  414,    0,    0,
        0,  415,  418,  415,    0,  415,    0,    0,  419,    0,
      415,  419,  418,  415,  418,    0,  418,    0,  419,  420,

      419,  418,  419,    0,    0,    0,    0,  419,    0,  420,
      422,  420,    0,  420,    0,  420,    0,    0,  420,    0,
      422,    0,  422,    0,  422,  427,  427,  427,  427,  422,
        0,    0,    0,    0,    0,    0,    0,    0,  431,    0,
      427,  427,  427,  427,  427,  427,  427,  427,  431,    0,
      431,  433,  431,  432,  432,  422,    0,  431,    0,    0,
        0,  433,  435,  433,  432,  433,  432,    0,  432,  433,
      433,    0,  435,  432,  435,  436,  435,    0,  437,    0,
        0,  435,    0,    0,    0,  436,    0,  436,  437,  436,
      437,    0,  437,  436,  436,  438,    0,  437,  438,    0,

      439,  439,    0,    0,    0,  438,    0,  438,    0,  438,
        0,  439,  440,  439,  438,  439,    0,    0,  441,    0,
      439,    0,  440,    0,  440,    0,  440,    0,  441,    0,
      441,  440,  441,  442,    0,  442,  441,  441,    0,  443,
        0,    0,    0,  442,    0,  442,    0,  442,    0,  443,
        0,  443,  442,  443,    0,    0,  444,  443,  443,  444,
        0,    0,  445,    0,  445,    0,  444,    0,  444,    0,
      444,    0,  445,  446,  445,  444,  445,    0,  447,  447,
        0,  445,    0,  446,    0,  446,    0,  446,    0,  447,
      448,  447,  446,  447,    0,    0,  449,    0,  447,    0,

      448,    0,  448,  449,  448,    0,  449,  450,  449,  448,
      449,    0,    0,  451,    0,  449,    0,  450,    0,  450,
      451,  450,    0,  451,  450,  451,  450,  451,  452,  452,
      456,    0,  451,    0,  456,    0,    0,    0,    0,  452,
      456,  452,  456,  452,  456,  457,    0,    0,  452,  456,
        0,  458,  457,  458,    0,  457,    0,  457,    0,  457,
        0,  458,  459,  458,  457,  458,    0,    0,  460,    0,
      458,  460,  459,    0,  459,    0,  459,    0,  460,  459,
      460,  459,  460,  461,  461,    0,    0,  460,    0,  462,
      462,    0,    0,  461,    0,  461,    0,  461,    0,  462,

      463,  462,  461,  462,    0,    0,    0,    0,  462,    0,
      463,    0,  463,    0,  463,  464,  463,    0,  464,  463,
        0,  465,    0,    0,    0,  464,    0,  464,    0,  464,
        0,  465,  468,  465,  464,  465,    0,    0,  465,    0,
      465,    0,  468,    0,  468,  471,  468,  469,  469,    0,
        0,  468,    0,    0,    0,  471,  473,  471,  469,  471,
      469,    0,  469,    0,  471,    0,  473,  469,  473,  474,
      473,    0,  474,    0,  473,  473,    0,  476,    0,  474,
        0,  474,    0,  474,    0,    0,    0,  476,  474,  476,
        0,  476,  477,  477,    0,  478,  476,  476,  479,    0,

        0,    0,  477,    0,  477,  478,  477,  478,  479,  478,
      479,  477,  479,  482,  478,    0,  483,  479,    0,    0,
        0,    0,    0,  482,    0,  482,  483,  482,  483,    0,
      483,  493,  482,  483,    0,  483,  489,  489,  489,  489,
        0,  493,    0,  493,    0,  493,    0,    0,    0,  493,
      493,  489,  489,  489,  489,  489,  489,  489,  489,  490,
        0,    0,    0,  490,  490,  490,  490,  490,  490,  490,
      490,  494,  496,    0,    0,    0,    0,    0,  494,    0,
        0,  494,  496,  494,  496,  494,  496,    0,  498,  497,
      494,  496,  497,    0,    0,    0,    0,    0,  498,  497,

      498,  497,  498,  497,  499,  500,    0,  498,  497,    0,
        0,  499,  500,    0,  499,  500,  499,  500,  499,  500,
      501,  502,    0,  499,  500,    0,    0,    0,    0,    0,
      501,  502,  501,  502,  501,  502,  503,    0,    0,  501,
      502,    0,  504,  503,  504,    0,  503,    0,  503,    0,
      503,    0,  504,  505,  504,  503,  504,    0,    0,  506,
        0,  504,    0,  505,  506,  505,    0,  505,    0,  506,
      507,  506,  505,  506,    0,    0,    0,    0,  506,    0,
      507,  508,  507,    0,  507,    0,    0,    0,  507,  507,
        0,  508,  509,  508,    0,  508,    0,    0,  510,  508,

      508,    0,  509,    0,  509,    0,  509,    0,  510,  511,
      510,  509,  510,    0,    0,  515,    0,  510,    0,  511,
        0,  511,  515,  511,    0,  515,  516,  515,  511,  515,
        0,    0,    0,    0,  515,    0,  516,  517,  516,    0,
      516,    0,    0,  518,  516,  516,    0,  517,    0,  517,
        0,  517,    0,  518,  519,  518,  517,  518,    0,    0,
      520,    0,  518,  520,  519,    0,  519,    0,  519,    0,
      520,  519,  520,  519,  520,  521,  522,    0,    0,  520,
        0,    0,    0,    0,    0,  521,  522,  521,  522,  521,
      522,  523,  523,  521,  521,  522,    0,  524,    0,    0,

        0,  523,    0,  523,    0,  523,    0,  524,  527,  524,
      523,  524,    0,    0,  529,    0,  524,    0,  527,    0,
      527,    0,  527,    0,  529,  531,  529,  527,  529,    0,
        0,  532,    0,  529,    0,  531,    0,  531,    0,  531,
        0,  532,  524,  532,  531,  532,  534,    0,    0,  534,
      532,    0,  535,    0,    0,  535,  534,    0,  534,    0,
      534,    0,  535,    0,  535,  534,  535,  538,  538,    0,
        0,  535,    0,  544,  544,  544,  544,    0,  538,    0,
      538,    0,  538,    0,    0,    0,    0,  538,  544,  544,
      544,  544,  544,  544,  544,  544,  547,  548,  548,    0,

        0,    0,    0,  547,    0,    0,  547,  548,  547,  548,
      547,  548,  550,    0,    0,  547,  548,    0,    0,    0,
      551,    0,  550,  552,  550,    0,  550,    0,  550,    0,
      551,  550,  551,  552,  551,  552,  553,  552,  551,  551,
        0,    0,  552,  556,  554,    0,  553,    0,  553,    0,
      553,    0,  555,    0,  554,  553,  554,  554,  554,    0,
      556,    0,  555,  554,  555,    0,  555,    0,    0,    0,
      556,  555,  556,  557,  556,    0,  557,    0,    0,  556,
        0,  558,    0,  557,    0,  557,    0,  557,    0,  559,
        0,  558,  557,  558,    0,  558,  559,  560,    0,  559,

      558,  559,    0,  559,    0,    0,    0,  560,  559,  560,
      565,  560,    0,  565,    0,    0,  560,    0,  566,    0,
      565,  567,  565,    0,  565,    0,    0,    0,  566,  565,
      566,  567,  566,  567,  568,  567,    0,  566,    0,    0,
      567,    0,  569,    0,  568,  570,  568,    0,  568,  569,
        0,    0,  569,  568,  569,  570,  569,  570,  574,  570,
        0,  569,  578,  570,  570,    0,  579,    0,  574,    0,
      574,    0,  574,    0,    0,    0,  579,  574,  579,  578,
      579,    0,  582,    0,    0,  579,    0,    0,    0,  578,
        0,  578,  582,  578,  582,    0,  582,  591,  578,    0,

        0,  582,  587,  587,  587,  587,    0,  591,    0,  591,
      591,  591,    0,    0,    0,  592,  591,  587,  587,  587,
      587,  587,  587,  587,  587,  592,  594,  592,    0,  592,
        0,    0,  595,    0,  592,    0,  594,    0,  594,    0,
      594,    0,  595,    0,  595,  594,  595,  596,  597,  595,
      596,  595,    0,  597,    0,    0,    0,  596,  597,  596,
      597,  596,  597,  598,    0,    0,  596,  597,    0,  600,
        0,  600,    0,  598,    0,  598,    0,  598,    0,  600,
      601,  600,  598,  600,    0,    0,  606,    0,  600,    0,
      601,    0,  601,    0,  601,    0,  606,  607,  606,  601,

      606,    0,  606,    0,    0,  606,    0,  607,  608,  607,
      607,  607,    0,    0,  618,  608,  607,    0,  608,    0,
      608,    0,  608,    0,  618,  627,  618,  608,  618,    0,
        0,  628,    0,  618,    0,  627,    0,  627,    0,  627,
        0,  628,    0,  628,  627,  628,  629,  630,  629,    0,
      628,    0,    0,    0,    0,    0,  629,  630,  629,  630,
      629,  630,  631,  633,    0,  629,  630,    0,    0,    0,
        0,    0,  631,  633,  631,  633,  631,  633,  634,  631,
        0,  631,  633,    0,  638,  634,    0,    0,  634,    0,
      634,    0,  634,    0,  638,  639,  638,  634,  638,    0,

        0,    0,    0,  638,    0,  639,  640,  639,    0,  639,
        0,    0,  655,    0,  639,    0,  640,    0,  640,  640,
      640,    0,  655,  656,  655,  640,  655,    0,    0,  657,
        0,  655,    0,  656,    0,  656,    0,  656,    0,  657,
      659,  657,  656,  657,    0,    0,    0,    0,  657,    0,
      659,  663,  659,    0,  659,    0,    0,  664,  659,  659,
        0,  663,    0,  663,    0,  663,    0,  664,  663,  664,
      663,  664,  679,  683,    0,    0,  664,    0,    0,    0,
        0,    0,  679,  683,  679,  683,  679,  683,  684,  699,
        0,  679,  683,    0,    0,  679,    0,    0,  684,  699,

      684,  699,  684,  699,    0,    0,    0,  684,  699,  749,
      749,  749,  749,  749,  749,  749,  749,  749,  749,  749,
      749,  749,  750,  750,  750,  750,  750,  750,  750,  750,
      750,  750,  750,  750,  750,  751,  751,  751,  751,  751,
      751,  751,  751,  751,  751,  751,  751,  751,  752,  752,
      752,  752,  752,  752,  752,  752,  752,  752,  752,  752,
      752,  753,  753,  753,  753,  753,  753,  753,  753,  753,
      753,  753,  753,  753,  754,  754,  754,  754,    0,  754,
      754,  754,  754,  754,  754,  754,  754,  755,  755,  755,
        0,  755,    0,  755,    0,  755,  756,  756,    0,  756,

      756,  757,  757,    0,    0,  757,  757,    0,  757,  757,
      757,  757,  757,  757,  758,  758,  758,  758,    0,  758,
      758,  758,  758,  758,  758,  758,  758,  759,  759,  759,
      759,  759,  759,  759,  759,    0,  759,  759,  760,    0,
        0,    0,  760,  760,  760,  760,  760,  760,  760,  761,
        0,    0,    0,  761,  761,  761,  761,  761,  761,  761,
      762,  762,    0,  762,  762,  763,  763,    0,  763,  763,
      764,  764,    0,  764,  764,  765,    0,  765,  765,  766,
      766,    0,  766,  766,  767,    0,  767,  767,  768,    0,
      768,  768,  769,    0,  769,  769,  770,    0,  770,  770,

      771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
      771,  771,  771,  772,  772,    0,  772,  772,  773,  773,
        0,  773,  773,  773,  773,  773,  773,  773,  773,  773,
      773,  774,  774,  774,    0,    0,    0,  774,    0,    0,
        0,    0,  774,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,

      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748
    } ;

/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[142] =
    {   0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 
    1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 
    0, 0,     };

extern int asn1p__flex_debug;
int asn1p__flex_debug = 1;

static yyconst flex_int16_t yy_rule_linenum[141] =
    {   0,
       96,   98,   99,  101,  104,  106,  109,  111,  112,  113,
      116,  118,  119,  120,  132,  139,  146,  152,  161,  169,
      177,  178,  180,  199,  205,  206,  207,  208,  209,  212,
      218,  225,  232,  239,  246,  253,  254,  255,  263,  264,
      265,  266,  267,  272,  273,  274,  275,  276,  277,  278,
      279,  280,  281,  282,  291,  292,  293,  294,  295,  296,
      297,  298,  299,  300,  301,  302,  303,  304,  305,  306,
      307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
      317,  318,  319,  320,  321,  322,  323,  324,  325,  326,
      327,  328,  329,  330,  331,  332,  333,  334,  335,  336,

      337,  338,  339,  340,  341,  342,  343,  344,  345,  346,
      347,  348,  353,  354,  359,  360,  361,  364,  369,  375,
      383,  393,  398,  400,  401,  405,  410,  415,  421,  422,
      424,  430,  443,  446,  471,  515,  516,  518,  520,  531
    } ;

static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
static char *yy_full_match;
static int yy_lp;
#define REJECT \
{ \
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */ \
yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
++(yy_lp); \
goto find_rule; \
}

#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *asn1p_text;
#line 1 "asn1p_l.l"
#line 2 "asn1p_l.l"

#include <string.h>
#include <errno.h>
#include <assert.h>

#include "asn1parser.h"
#include "asn1p_y.h"

int asn1p_lex(void);
void asn1p_lexer_hack_push_opaque_state(void);		/* Used in .y */
void asn1p_lexer_hack_enable_with_syntax(void);		/* Used in .y */
void asn1p_lexer_hack_push_encoding_control(void);	/* Used in .y */

#define	YY_FATAL_ERROR(msg)	do {			\
		fprintf(stderr,				\
			"lexer error at line %d, "	\
			"text \"%s\"\n",		\
			asn1p_lineno, asn1p_text);		\
		exit(1);				\
	} while(0)

int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;

int asn1p_as_pointer;

static asn1c_integer_t _lex_atoi(const char *ptr);
static double          _lex_atod(const char *ptr);

/*
 * Check that the type is defined in the year of the standard choosen.
 */
#define	TYPE_LIFETIME(fyr, lyr)				\
	(!asn1p_lexer_types_year			\
	|| (fyr && fyr <= asn1p_lexer_types_year)	\
	|| (lyr && lyr  > asn1p_lexer_types_year))

/*
 * Check the the construction (or concept, i.e. CLASS) is defined in
 * a given year.
 */
#define	CONSTRUCT_LIFETIME(fyr, lyr)			\
	(!asn1p_lexer_constructs_year			\
	|| (fyr && fyr <= asn1p_lexer_constructs_year)	\
	|| (lyr && lyr  > asn1p_lexer_constructs_year))

/*
 * Append quoted string.
 */
#define	QAPPEND(text, tlen)	do {				\
		char *prev_text = asn1p_lval.tv_opaque.buf;	\
		int prev_len = asn1p_lval.tv_opaque.len;	\
		char *p;					\
								\
		p = malloc((tlen) + prev_len + 1);		\
		if(p == NULL) return -1;			\
								\
		if(prev_text) memcpy(p, prev_text, prev_len);	\
		memcpy(p + prev_len, text, tlen);		\
		p[prev_len + (tlen)] = '\0';			\
								\
		free(asn1p_lval.tv_opaque.buf);			\
		asn1p_lval.tv_opaque.buf = p;			\
		asn1p_lval.tv_opaque.len = (tlen) + prev_len;	\
	} while(0)

#define YY_NO_INPUT 1
/* Performance penalty is OK */
/* Controlled from within application */







/* Newline */
/* White-space */
#line 2100 "asn1p_l.c"

#define INITIAL 0
#define dash_comment 1
#define idash_comment 2
#define cpp_comment 3
#define quoted 4
#define opaque 5
#define encoding_control 6
#define with_syntax 7

#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.
 */
/* %if-c-only */
#include <unistd.h>
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

/* %if-c-only Reentrant structure and macros (non-C++). */
/* %if-reentrant */
/* %if-c-only */

static int yy_init_globals (void );

/* %endif */
/* %if-reentrant */
/* %endif */
/* %endif End reentrant structures and macros. */

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

int asn1p_lex_destroy (void );

int asn1p_get_debug (void );

void asn1p_set_debug (int debug_flag  );

YY_EXTRA_TYPE asn1p_get_extra (void );

void asn1p_set_extra (YY_EXTRA_TYPE user_defined  );

FILE *asn1p_get_in (void );

void asn1p_set_in  (FILE * in_str  );

FILE *asn1p_get_out (void );

void asn1p_set_out  (FILE * out_str  );

yy_size_t asn1p_get_leng (void );

char *asn1p_get_text (void );

int asn1p_get_lineno (void );

void asn1p_set_lineno (int line_number  );

/* %if-bison-bridge */
/* %endif */

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

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

/* %not-for-header */

    static void yyunput (int c,char *buf_ptr  );
    
/* %ok-for-header */

/* %endif */

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

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

#ifndef YY_NO_INPUT
/* %if-c-only Standard (non-C++) definition */
/* %not-for-header */

#ifdef __cplusplus
static int yyinput (void );
#else
static int input (void );
#endif
/* %ok-for-header */

/* %endif */
#endif

/* %if-c-only */

        static int yy_start_stack_ptr = 0;
        static int yy_start_stack_depth = 0;
        static int *yy_start_stack = NULL;
    
    static void yy_push_state (int new_state );
    
    static void yy_pop_state (void );
    
    static int yy_top_state (void );
    
/* %endif */

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* %if-c-only Standard (non-C++) definition */
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO fwrite( asn1p_text, asn1p_leng, 1, asn1p_out )
/* %endif */
/* %if-c++-only C++ definition */
/* %endif */
#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) \
/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
		yy_size_t n; \
		for ( n = 0; n < max_size && \
			     (c = getc( asn1p_in )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( asn1p_in ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else \
		{ \
		errno=0; \
		while ( (result = fread(buf, 1, max_size, asn1p_in))==0 && ferror(asn1p_in)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(asn1p_in); \
			} \
		}\
\
/* %if-c++-only C++ definition \ */\
/* %endif */

#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
/* %if-c-only */
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

/* %if-tables-serialization structures and prototypes */
/* %not-for-header */

/* %ok-for-header */

/* %not-for-header */

/* %tables-yydmap generated elements */
/* %endif */
/* end tables serialization structures and prototypes */

/* %ok-for-header */

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1
/* %if-c-only Standard (non-C++) definition */

extern int asn1p_lex (void);

#define YY_DECL int asn1p_lex (void)
/* %endif */
/* %if-c++-only C++ definition */
/* %endif */
#endif /* !YY_DECL */

/* Code executed at the beginning of each rule, after asn1p_text and asn1p_leng
 * 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 break;
#endif

/* %% [6.0] YY_RULE_SETUP definition goes here */
#define YY_RULE_SETUP \
	YY_USER_ACTION

/* %not-for-header */

/** The main scanner function which does all the work.
 */
YY_DECL
{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;
    
/* %% [7.0] user's declarations go here */
#line 94 "asn1p_l.l"


#line 2362 "asn1p_l.c"

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

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

        /* Create the reject buffer large enough to save one state per allowed character. */
        if ( ! (yy_state_buf) )
            (yy_state_buf) = (yy_state_type *)asn1p_alloc(YY_STATE_BUF_SIZE  );
            if ( ! (yy_state_buf) )
                YY_FATAL_ERROR( "out of dynamic memory in asn1p_lex()" );

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

		if ( ! asn1p_in )
/* %if-c-only */
			asn1p_in = stdin;
/* %endif */
/* %if-c++-only */
/* %endif */

		if ( ! asn1p_out )
/* %if-c-only */
			asn1p_out = stdout;
/* %endif */
/* %if-c++-only */
/* %endif */

		if ( ! YY_CURRENT_BUFFER ) {
			asn1p_ensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
		}

		asn1p__load_buffer_state( );
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
/* %% [8.0] yymore()-related code goes here */
		yy_cp = (yy_c_buf_p);

		/* Support of asn1p_text. */
		*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;

/* %% [9.0] code to set up and find next match goes here */
		yy_current_state = (yy_start);

		(yy_state_ptr) = (yy_state_buf);
		*(yy_state_ptr)++ = yy_current_state;

yy_match:
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*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 >= 749 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			*(yy_state_ptr)++ = yy_current_state;
			++yy_cp;
			}
		while ( yy_current_state != 748 );

yy_find_action:
/* %% [10.0] code to find the action number goes here */
		yy_current_state = *--(yy_state_ptr);
		(yy_lp) = yy_accept[yy_current_state];
goto find_rule; /* Shut up GCC warning -Wall */
find_rule: /* we branch to this label when backing up */
		for ( ; ; ) /* until we find what rule we matched */
			{
			if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
				{
				yy_act = yy_acclist[(yy_lp)];
					{
					(yy_full_match) = yy_cp;
					break;
					}
				}
			--yy_cp;
			yy_current_state = *--(yy_state_ptr);
			(yy_lp) = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;

/* %% [11.0] code for asn1p_lineno update goes here */

		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
			{
			yy_size_t yyl;
			for ( yyl = 0; yyl < asn1p_leng; ++yyl )
				if ( asn1p_text[yyl] == '\n' )
					   
    asn1p_lineno++;
;
			}

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

/* %% [12.0] debug code goes here */
		if ( asn1p__flex_debug )
			{
			if ( yy_act == 0 )
				fprintf( stderr, "--scanner backing up\n" );
			else if ( yy_act < 141 )
				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
				         (long)yy_rule_linenum[yy_act], asn1p_text );
			else if ( yy_act == 141 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         asn1p_text );
			else if ( yy_act == 142 )
				fprintf( stderr, "--(end of buffer or a NUL)\n" );
			else
				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
			}

		switch ( yy_act )
	{ /* beginning of action switch */
/* %% [13.0] actions go here */
case 1:
YY_RULE_SETUP
#line 96 "asn1p_l.l"
return UTF8_BOM;
	YY_BREAK
case 2:
/* rule 2 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
YY_RULE_SETUP
#line 98 "asn1p_l.l"
/* Immediately terminated long comment */
	YY_BREAK
case 3:
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
YY_RULE_SETUP
#line 99 "asn1p_l.l"
yy_push_state(idash_comment);	/* Incorrect, but acceptable */
	YY_BREAK

case 4:
YY_RULE_SETUP
#line 101 "asn1p_l.l"
yy_pop_state(); /* Acceptable end of comment */
	YY_BREAK

case 5:
YY_RULE_SETUP
#line 104 "asn1p_l.l"
asn1p_as_pointer = 1;
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 106 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 7:
/* rule 7 can match eol */
YY_RULE_SETUP
#line 109 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 111 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 112 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 113 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 11:
YY_RULE_SETUP
#line 116 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 12:
/* rule 12 can match eol */
YY_RULE_SETUP
#line 118 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 119 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 120 "asn1p_l.l"
/* Eat */
	YY_BREAK

/*
	 * This is state is being set from corresponding .y module when
	 * higher-level data is necessary to make proper parsing of the
	 * underlying data. Thus, we enter the <opaque> state and save
	 * everything for later processing.
	 */

case 15:
YY_RULE_SETUP
#line 132 "asn1p_l.l"
{
			yy_push_state(opaque);
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 139 "asn1p_l.l"
{
			yy_pop_state();
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 17:
/* rule 17 can match eol */
YY_RULE_SETUP
#line 146 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 152 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser syncronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 161 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK

case 20:
/* rule 20 can match eol */
YY_RULE_SETUP
#line 169 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = 0;
			asn1p_lval.tv_opaque.len = 0;
			QAPPEND(asn1p_text+1, asn1p_leng-1);
			yy_push_state(quoted);
		}
	YY_BREAK

case 21:
YY_RULE_SETUP
#line 177 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng-1); }	/* Add a single quote */
	YY_BREAK
case 22:
/* rule 22 can match eol */
YY_RULE_SETUP
#line 178 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng); }
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 180 "asn1p_l.l"
{
			yy_pop_state();
			/* Do not append last quote:
			// QAPPEND(asn1p_text, asn1p_leng); */

			if(asn1p_lexer_pedantic_1990
			&& strchr(asn1p_text, '\n')) {
				fprintf(stderr, "%s: "
				"Newlines are prohibited by ASN.1:1990\n",
				asn1p_lval.tv_opaque.buf);
				return -1;
			}

			return TOK_cstring;
		}
	YY_BREAK


case 24:
YY_RULE_SETUP
#line 199 "asn1p_l.l"
{
			const char *s = "ENCODING-CONTROL";
			const char *p = s + sizeof("ENCODING-CONTROL") - 2;
			for(; p >= s; p--) unput(*p);
			yy_pop_state();
		}
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 205 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 206 "asn1p_l.l"

	YY_BREAK
case 27:
YY_RULE_SETUP
#line 207 "asn1p_l.l"

	YY_BREAK
case 28:
YY_RULE_SETUP
#line 208 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 29:
/* rule 29 can match eol */
YY_RULE_SETUP
#line 209 "asn1p_l.l"

	YY_BREAK

case 30:
/* rule 30 can match eol */
YY_RULE_SETUP
#line 212 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_hstring;
	}
	YY_BREAK
case 31:
/* rule 31 can match eol */
YY_RULE_SETUP
#line 218 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_bstring;
	}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 225 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 232 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 239 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 246 "asn1p_l.l"
{
		asn1p_lval.a_dbl = _lex_atod(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_realnumber;
	}
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 253 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 254 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 255 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_ANY;	
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", asn1p_text, asn1p_lineno);
				REJECT;
			}
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 263 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 264 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 265 "asn1p_l.l"
return TOK_BEGIN;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 266 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 267 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 272 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 273 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 274 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 275 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 276 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 277 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 278 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 279 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 280 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 281 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 282 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_DEFINED;
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", asn1p_text, asn1p_lineno);
				/* Deprecated since */
				REJECT;
			}
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 293 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 294 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 295 "asn1p_l.l"
return TOK_END;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 296 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 297 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 298 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 299 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 300 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 301 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 302 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 303 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 304 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 305 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 306 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 307 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 308 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 310 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 311 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 312 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 313 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 314 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 320 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 321 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 322 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 323 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 324 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 325 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 326 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 327 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 338 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 339 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 340 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 341 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 343 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 344 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 345 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 346 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 347 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 348 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 353 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 354 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 359 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 360 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 361 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 364 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 369 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 375 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 121:
YY_RULE_SETUP
#line 383 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_capitalreference;
	}
	YY_BREAK
/*
	 * typereference, modulereference
	 * NOTE: TOK_objectclassreference must be combined
	 * with this token to produce true typereference.
	 */
case 122:
YY_RULE_SETUP
#line 393 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typereference;
	}
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 398 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 400 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 401 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK

case 126:
YY_RULE_SETUP
#line 405 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 410 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 415 "asn1p_l.l"
{
				yy_push_state(with_syntax);
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 421 "asn1p_l.l"
return '[';
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 422 "asn1p_l.l"
return ']';
	YY_BREAK
case 131:
/* rule 131 can match eol */
YY_RULE_SETUP
#line 424 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_whitespace;
			}
	YY_BREAK
case 132:
YY_RULE_SETUP
#line 430 "asn1p_l.l"
{
				yy_pop_state();
				if(YYSTATE == with_syntax) {
					asn1p_lval.tv_str = strdup(asn1p_text);
					return TOK_Literal;
				} else {
					return '}';
				}
			}
	YY_BREAK

case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
#line 443 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 446 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1;
		char *p;
		for(p = asn1p_text; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = _lex_atoi(p); break; }
		if(v1 < 0 || v1 > 7) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
				"mandates 0..7 range for Tuple's TableColumn\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v2 < 0 || v2 > 15) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
				"mandates 0..15 range for Tuple's TableRow\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 4) + v2;
		return TOK_tuple;
	}
	YY_BREAK
case 135:
/* rule 135 can match eol */
YY_RULE_SETUP
#line 471 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
		char *p;
		for(p = asn1p_text; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v3 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v4 = _lex_atoi(p); break; }
		if(v1 < 0 || v1 > 127) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..127 range for Quadruple's Group\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v2 < 0 || v2 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Plane\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v3 < 0 || v3 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Row\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v4 < 0 || v4 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Cell\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4;
		return TOK_quadruple;
	}
	YY_BREAK
case 136:
YY_RULE_SETUP
#line 515 "asn1p_l.l"
return TOK_VBracketLeft;
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 516 "asn1p_l.l"
return TOK_VBracketRight;
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 518 "asn1p_l.l"
return asn1p_text[0];
	YY_BREAK
case 139:
/* rule 139 can match eol */
YY_RULE_SETUP
#line 520 "asn1p_l.l"
{
		if(TYPE_LIFETIME(1994, 0))
			fprintf(stderr, "ERROR: ");
		fprintf(stderr,
		"Symbol '%c' at line %d is prohibited "
		"by ASN.1:1994 and ASN.1:1997\n",
			asn1p_text[0], asn1p_lineno);
		if(TYPE_LIFETIME(1994, 0))
			return -1;
	}
	YY_BREAK
case 140:
YY_RULE_SETUP
#line 531 "asn1p_l.l"
{
		fprintf(stderr,
			"Unexpected token at line %d: \"%s\"\n",
			asn1p_lineno, asn1p_text);
		while(YYSTATE != INITIAL)
			yy_pop_state();
		if(0) {
			yy_top_state();	/* Just to use this function. */
			yy_fatal_error("Parse error");
		}
		return -1;
}
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(dash_comment):
case YY_STATE_EOF(idash_comment):
case YY_STATE_EOF(cpp_comment):
case YY_STATE_EOF(quoted):
case YY_STATE_EOF(opaque):
case YY_STATE_EOF(encoding_control):
case YY_STATE_EOF(with_syntax):
#line 544 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 141:
YY_RULE_SETUP
#line 551 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3489 "asn1p_l.c"

	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 asn1p_in at a new source and called
			 * asn1p_lex().  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 = asn1p_in;
			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
				{
/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
				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 ( asn1p_wrap( ) )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * asn1p_text, 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 asn1p_lex */
/* %ok-for-header */

/* %if-c++-only */
/* %not-for-header */

/* %ok-for-header */

/* %endif */

/* 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
 */
/* %if-c-only */
static int yy_get_next_buffer (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
	register char *source = (yytext_ptr);
	register 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
		{
			yy_size_t 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. */

			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );

			}

		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;
			asn1p_restart(asn1p_in  );
			}

		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_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
		/* Extend the array by 50%, plus the number we really need. */
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) asn1p_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
	}

	(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 */

/* %if-c-only */
/* %not-for-header */

    static yy_state_type yy_get_previous_state (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register yy_state_type yy_current_state;
	register char *yy_cp;
    
/* %% [15.0] code to get the start state into yy_current_state goes here */
	yy_current_state = (yy_start);

	(yy_state_ptr) = (yy_state_buf);
	*(yy_state_ptr)++ = yy_current_state;

	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
		{
/* %% [16.0] code to find the next state goes here */
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		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 >= 749 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		*(yy_state_ptr)++ = yy_current_state;
		}

	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 );
 */
/* %if-c-only */
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register int yy_is_jam;
    /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */

	register YY_CHAR yy_c = 1;
	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 >= 749 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 748);
	if ( ! yy_is_jam )
		*(yy_state_ptr)++ = yy_current_state;

	return yy_is_jam ? 0 : yy_current_state;
}

/* %if-c-only */

    static void yyunput (int c, register char * yy_bp )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register char *yy_cp;
    
    yy_cp = (yy_c_buf_p);

	/* undo effects of setting up asn1p_text */
	*yy_cp = (yy_hold_char);

	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
		{ /* need to shift things up to make room */
		/* +2 for EOB chars. */
		register yy_size_t number_to_move = (yy_n_chars) + 2;
		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
		register char *source =
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];

		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			*--dest = *--source;

		yy_cp += (int) (dest - source);
		yy_bp += (int) (dest - source);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;

		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
		}

	*--yy_cp = (char) c;

/* %% [18.0] update asn1p_lineno here */

    if ( c == '\n' ){
        --asn1p_lineno;
    }

	(yytext_ptr) = yy_bp;
	(yy_hold_char) = *yy_cp;
	(yy_c_buf_p) = yy_cp;
}
/* %if-c-only */

/* %endif */

/* %if-c-only */
#ifndef YY_NO_INPUT
#ifdef __cplusplus
    static int yyinput (void)
#else
    static int input  (void)
#endif

/* %endif */
/* %if-c++-only */
/* %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 */
			yy_size_t offset = (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. */
					asn1p_restart(asn1p_in );

					/*FALLTHROUGH*/

				case EOB_ACT_END_OF_FILE:
					{
					if ( asn1p_wrap( ) )
						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 asn1p_text */
	(yy_hold_char) = *++(yy_c_buf_p);

/* %% [19.0] update BOL and asn1p_lineno */
	if ( c == '\n' )
		   
    asn1p_lineno++;
;

	return c;
}
/* %if-c-only */
#endif	/* ifndef YY_NO_INPUT */
/* %endif */

/** 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 .
 */
/* %if-c-only */
    void asn1p_restart  (FILE * input_file )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	if ( ! YY_CURRENT_BUFFER ){
        asn1p_ensure_buffer_stack ();
		YY_CURRENT_BUFFER_LVALUE =
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
	}

	asn1p__init_buffer(YY_CURRENT_BUFFER,input_file );
	asn1p__load_buffer_state( );
}

/** Switch to a different input buffer.
 * @param new_buffer The new input buffer.
 * 
 */
/* %if-c-only */
    void asn1p__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	/* TODO. We should be able to replace this entire function body
	 * with
	 *		asn1p_pop_buffer_state();
	 *		asn1p_push_buffer_state(new_buffer);
     */
	asn1p_ensure_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;
	asn1p__load_buffer_state( );

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

/* %if-c-only */
static void asn1p__load_buffer_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
	asn1p_in = 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.
 */
/* %if-c-only */
    YY_BUFFER_STATE asn1p__create_buffer  (FILE * file, int  size )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	YY_BUFFER_STATE b;
    
	b = (YY_BUFFER_STATE) asn1p_alloc(sizeof( struct yy_buffer_state )  );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__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 *) asn1p_alloc(b->yy_buf_size + 2  );
	if ( ! b->yy_ch_buf )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__create_buffer()" );

	b->yy_is_our_buffer = 1;

	asn1p__init_buffer(b,file );

	return b;
}

/** Destroy the buffer.
 * @param b a buffer created with asn1p__create_buffer()
 * 
 */
/* %if-c-only */
    void asn1p__delete_buffer (YY_BUFFER_STATE  b )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	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 )
		asn1p_free((void *) b->yy_ch_buf  );

	asn1p_free((void *) b  );
}

/* %if-c-only */

/* %endif */

/* %if-c++-only */
/* %endif */

/* Initializes or reinitializes a buffer.
 * This function is sometimes called more than once on the same buffer,
 * such as during a asn1p_restart() or at EOF.
 */
/* %if-c-only */
    static void asn1p__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
/* %endif */
/* %if-c++-only */
/* %endif */

{
	int oerrno = errno;
    
	asn1p__flush_buffer(b );

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

    /* If b is the current buffer, then asn1p__init_buffer was _probably_
     * called from asn1p_restart() 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;
    }

/* %if-c-only */

        b->yy_is_interactive = 0;
    
/* %endif */
/* %if-c++-only */
/* %endif */
	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.
 * 
 */
/* %if-c-only */
    void asn1p__flush_buffer (YY_BUFFER_STATE  b )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	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 )
		asn1p__load_buffer_state( );
}

/* %if-c-or-c++ */
/** 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.
 *  
 */
/* %if-c-only */
void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if (new_buffer == NULL)
		return;

	asn1p_ensure_buffer_stack();

	/* This block is copied from asn1p__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 asn1p__switch_to_buffer. */
	asn1p__load_buffer_state( );
	(yy_did_buffer_switch_on_eof) = 1;
}
/* %endif */

/* %if-c-or-c++ */
/** Removes and deletes the top of the stack, if present.
 *  The next element becomes the new top.
 *  
 */
/* %if-c-only */
void asn1p_pop_buffer_state (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if (!YY_CURRENT_BUFFER)
		return;

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

	if (YY_CURRENT_BUFFER) {
		asn1p__load_buffer_state( );
		(yy_did_buffer_switch_on_eof) = 1;
	}
}
/* %endif */

/* %if-c-or-c++ */
/* Allocates the stack if it does not exist.
 *  Guarantees space for at least one push.
 */
/* %if-c-only */
static void asn1p_ensure_buffer_stack (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
	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;
		(yy_buffer_stack) = (struct yy_buffer_state**)asn1p_alloc
								(num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_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. */
		int grow_size = 8 /* arbitrary grow size */;

		num_to_alloc = (yy_buffer_stack_max) + grow_size;
		(yy_buffer_stack) = (struct yy_buffer_state**)asn1p_realloc
								((yy_buffer_stack),
								num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_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;
	}
}
/* %endif */

/* %if-c-only */
/** 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 asn1p__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 0;

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

	b->yy_buf_size = 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 = 0;
	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;

	asn1p__switch_to_buffer(b  );

	return b;
}
/* %endif */

/* %if-c-only */
/** Setup the input buffer state to scan a string. The next call to asn1p_lex() 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
 *       asn1p__scan_bytes() instead.
 */
YY_BUFFER_STATE asn1p__scan_string (yyconst char * yystr )
{
    
	return asn1p__scan_bytes(yystr,strlen(yystr) );
}
/* %endif */

/* %if-c-only */
/** Setup the input buffer state to scan the given bytes. The next call to asn1p_lex() will
 * scan from a @e copy of @a bytes.
 * @param bytes the byte buffer to scan
 * @param len the number of bytes in the buffer pointed to by @a bytes.
 * 
 * @return the newly allocated buffer state object.
 */
YY_BUFFER_STATE asn1p__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n, i;
    
	/* Get memory for full buffer, including space for trailing EOB's. */
	n = _yybytes_len + 2;
	buf = (char *) asn1p_alloc(n  );
	if ( ! buf )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__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 = asn1p__scan_buffer(buf,n );
	if ( ! b )
		YY_FATAL_ERROR( "bad buffer in asn1p__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;
}
/* %endif */

/* %if-c-only */
    static void yy_push_state (int  new_state )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
		{
		yy_size_t new_size;

		(yy_start_stack_depth) += YY_START_STACK_INCR;
		new_size = (yy_start_stack_depth) * sizeof( int );

		if ( ! (yy_start_stack) )
			(yy_start_stack) = (int *) asn1p_alloc(new_size  );

		else
			(yy_start_stack) = (int *) asn1p_realloc((void *) (yy_start_stack),new_size  );

		if ( ! (yy_start_stack) )
			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
		}

	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;

	BEGIN(new_state);
}

/* %if-c-only */
    static void yy_pop_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if ( --(yy_start_stack_ptr) < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
}

/* %if-c-only */
    static int yy_top_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
}

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

/* %if-c-only */
static void yy_fatal_error (yyconst char* msg )
{
    	(void) fprintf( stderr, "%s\n", msg );
	exit( YY_EXIT_FAILURE );
}
/* %endif */
/* %if-c++-only */
/* %endif */

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

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

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

/* %if-c-only */
/* %if-reentrant */
/* %endif */

/** Get the current line number.
 * 
 */
int asn1p_get_lineno  (void)
{
        
    return asn1p_lineno;
}

/** Get the input stream.
 * 
 */
FILE *asn1p_get_in  (void)
{
        return asn1p_in;
}

/** Get the output stream.
 * 
 */
FILE *asn1p_get_out  (void)
{
        return asn1p_out;
}

/** Get the length of the current token.
 * 
 */
yy_size_t asn1p_get_leng  (void)
{
        return asn1p_leng;
}

/** Get the current token.
 * 
 */

char *asn1p_get_text  (void)
{
        return asn1p_text;
}

/* %if-reentrant */
/* %endif */

/** Set the current line number.
 * @param line_number
 * 
 */
void asn1p_set_lineno (int  line_number )
{
    
    asn1p_lineno = line_number;
}

/** Set the input stream. This does not discard the current
 * input buffer.
 * @param in_str A readable stream.
 * 
 * @see asn1p__switch_to_buffer
 */
void asn1p_set_in (FILE *  in_str )
{
        asn1p_in = in_str ;
}

void asn1p_set_out (FILE *  out_str )
{
        asn1p_out = out_str ;
}

int asn1p_get_debug  (void)
{
        return asn1p__flex_debug;
}

void asn1p_set_debug (int  bdebug )
{
        asn1p__flex_debug = bdebug ;
}

/* %endif */

/* %if-reentrant */
/* %if-bison-bridge */
/* %endif */
/* %endif if-c-only */

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

    /* We do not touch asn1p_lineno unless the option is enabled. */
    asn1p_lineno =  1;
    
    (yy_buffer_stack) = 0;
    (yy_buffer_stack_top) = 0;
    (yy_buffer_stack_max) = 0;
    (yy_c_buf_p) = (char *) 0;
    (yy_init) = 0;
    (yy_start) = 0;

    (yy_start_stack_ptr) = 0;
    (yy_start_stack_depth) = 0;
    (yy_start_stack) =  NULL;

    (yy_state_buf) = 0;
    (yy_state_ptr) = 0;
    (yy_full_match) = 0;
    (yy_lp) = 0;

/* Defined in main.c */
#ifdef YY_STDINIT
    asn1p_in = stdin;
    asn1p_out = stdout;
#else
    asn1p_in = (FILE *) 0;
    asn1p_out = (FILE *) 0;
#endif

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

/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
/* asn1p_lex_destroy is for both reentrant and non-reentrant scanners. */
int asn1p_lex_destroy  (void)
{
    
    /* Pop the buffer stack, destroying each element. */
	while(YY_CURRENT_BUFFER){
		asn1p__delete_buffer(YY_CURRENT_BUFFER  );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		asn1p_pop_buffer_state();
	}

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

    /* Destroy the start condition stack. */
        asn1p_free((yy_start_stack)  );
        (yy_start_stack) = NULL;

    asn1p_free ( (yy_state_buf) );
    (yy_state_buf)  = NULL;

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

/* %if-reentrant */
/* %endif */
    return 0;
}
/* %endif */

/*
 * Internal utility routines.
 */

#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
	register int i;
	for ( i = 0; i < n; ++i )
		s1[i] = s2[i];
}
#endif

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

	return n;
}
#endif

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

void *asn1p_realloc  (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 (void *) realloc( (char *) ptr, size );
}

void asn1p_free (void * ptr )
{
	free( (char *) ptr );	/* see asn1p_realloc() for (char *) cast */
}

/* %if-tables-serialization definitions */
/* %define-yytables   The name for this specific scanner's tables. */
#define YYTABLES_NAME "yytables"
/* %endif */

/* %ok-for-header */

#line 551 "asn1p_l.l"



/*
 * Very dirty but wonderful hack allowing to rule states from within .y file.
 */
void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }

/*
 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
 */
void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }

/* Yet another */
void asn1p_lexer_hack_push_encoding_control() {
	yy_push_state(encoding_control);
}

static asn1c_integer_t
_lex_atoi(const char *ptr) {
	asn1c_integer_t value;
	if(asn1p_atoi(ptr, &value)) {
		fprintf(stderr,
			"Value \"%s\" at line %d is too large "
			"for this compiler! Please contact the asn1c author.\n",
			ptr, asn1p_lineno);
		errno = ERANGE;
	}
	return value;
}

static double
_lex_atod(const char *ptr) {
	double value;
	errno = 0;
	value = strtod(ptr, 0);
	if(errno) {
		fprintf(stderr,
			"Value \"%s\" at line %d is outside of `double` range "
			"in this compiler! Please contact the asn1c author.\n",
			ptr, asn1p_lineno);
		errno = ERANGE;
	}
	return value;
}


