#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 142
#define YY_END_OF_BUFFER 143
/* 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[1290] =
    {   0,
      143,  141,  142,  134,  141,  142,  134,  142,  139,  141,
      142,   21,  141,  142,  139,  141,  142,  141,  142,  139,
      141,  142,  141,  142,  141,  142,  139,  141,  142,  141,
      142,   35,  141,  142,   34,  141,  142,  139,  141,  142,
      141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
      122,  123,  141,  142,  122,  123,  141,  142,  122,  123,
      141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
      122,  123,  141,  142,  122,  123,  141,  142,  122,  123,
      141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
      122,  123,  141,  142,  122,  123,  141,  142,  122,  123,

      141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
      122,  123,  141,  142,  122,  123,  141,  142,  139,  141,
      142,  139,  141,  142,  121,  141,  142,  139,  141,  142,
      141,  142,   11,  141,  142,    8,  142,    8,  141,  142,
       10,  141,  142,   10,  141,  142,   13,   15,  141,  142,
       13,  142,   15,  141,  142,   15,  141,  142,   15,  141,
      142,   23,  141,  142,   23,  142,   24,  141,  142,   18,
      141,  142,   18,  142,   20,  141,  142,   20,  141,  142,
       16,  141,  142,   17,  141,  142,   27,   29,  141,  142,
       29,  141,  142,   30,  142,   27,   28,   29,  141,  142,

       27,   28,   29,  141,  142,  132,  141,  142,  132,  142,
      141,  142,  128,  141,  142,  141,  142,  141,  142,  127,
      141,  142,  130,  141,  142,  131,  141,  142,  129,  141,
      142,  133,  141,  142,  134,  141,  142,  134,  142,  141,
      142,  141,  142,  122,  141,  142,  134,   21,   21,  119,
      120,    7,   33,  126,   12,   36,   34,   36,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      123,  122,  123,  122,  123,  122,  123,  122,  123,   46,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,

      123,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  123,  122,
      123,  122,  123,   91,  122,  123,  122,  123,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  123,  122,  123,  122,  123,  123,
      123,  122,  123,  137,  138,  121,   11,    9,    9,   14,
       23,   22,   18,   27,   27,   28,   27,   28,  132,    7,
      127,  122,  140,  119,  120,   33,   36,  125,   36,  124,
      122,  123,  123,  122,  123,   38,  122,  123,   39,  122,

      123,  122,  123,  122,  123,  122,  123,   43,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
       60,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  123,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,   83,  122,  123,   84,  122,  123,  122,  123,  123,
      122,  123,  122,  123,  122,  123,  123,  122,  123,   94,
      122,  123,  122,  123,  122,  123,  122,  123,  123,  122,
      123,  122,  123,  122,  123,  102,  122,  123,  122,  123,

      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      123,  122,  123,  122,  123,  122,  123,  123,  123,  123,
      122,  123,  121,    1,    4,   19,   27,   28,   26,   27,
       28,  127,  122,  119,  120,   32,   31,    3,    2,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,   68,  122,  123,  123,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,

      122,  123,  122,  123,  122,  123,   86,  122,  123,  123,
      122,  123,  122,  123,  122,  123,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  123,   99,  122,  123,  122,
      123,  122,  123,  103,  122,  123,  122,  123,  122,  123,
      122,  123,  107,  122,  123,  109,  122,  123,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  123,
      123,  123,  118,  122,  123,    4,   27,   28,  122,  123,
      122,  123,  122,  123,   42,  122,  123,  123,  122,  123,
      122,  123,  122,  123,   49,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,

      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,   67,  122,  123,  123,  123,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  122,  123,  123,
      122,  123,   90,  122,  123,  122,  123,  123,  122,  123,
      122,  123,  122,  123,  123,  122,  123,  122,  123,  122,
      123,  122,  123,  123,  123,  110,  122,  123,  122,  123,
      122,  123,  123,  122,  123,  123,  123,  123,  135,   27,
       28,   37,  122,  123,  122,  123,  122,  123,  123,  122,
      123,  122,  123,   48,  122,  123,  122,  123,  122,  123,

      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  122,  123,   62,  122,  123,  122,
      123,  122,  123,  122,  123,  122,  123,  123,  123,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      123,   88,  122,  123,  122,  123,  123,  122,  123,  122,
      123,  122,  123,  122,  123,  123,  122,  123,  122,  123,
      104,  122,  123,  105,  122,  123,  123,  123,  111,  122,
      123,  122,  123,  123,  123,  123,  123,  123,   27,   28,
      122,  123,  122,  123,  123,   45,  122,  123,  122,  123,

      122,  123,  122,  123,  122,  123,   54,  122,  123,   55,
      122,  123,  122,  123,  122,  123,   58,  122,  123,  122,
      123,  122,  123,  122,  123,   64,  122,  123,  122,  123,
      122,  123,  123,  123,  123,  122,  123,  122,  123,   75,
      122,  123,   76,  122,  123,  122,  123,  122,  123,  122,
      123,   80,  122,  123,  122,  123,  122,  123,  122,  123,
      123,  122,  123,  123,   93,  122,  123,  122,  123,   96,
      122,  123,   98,  122,  123,  123,  122,  123,  122,  123,
      123,  123,  122,  123,  114,  123,  123,  123,  123,  123,
       27,   28,  122,  123,  122,  123,  123,  122,  123,  122,

      123,  122,  123,  122,  123,  122,  123,   57,  122,  123,
      122,  123,  122,  123,   63,  122,  123,  122,  123,   66,
      122,  123,  123,  123,  123,  123,  122,  123,   74,  122,
      123,   77,  122,  123,   78,  122,  123,  122,  123,  122,
      123,  123,  122,  123,  123,   92,  122,  123,  123,  122,
      123,  123,  122,  123,  101,  122,  123,  123,  123,  122,
      123,  123,  123,  123,  123,   27,   28,  122,  123,   41,
      122,  123,   44,  123,   47,  122,  123,   50,  122,  123,
      122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
      123,  123,  123,   72,  123,  122,  123,  122,  123,  122,

      123,  123,  122,  123,  123,  123,  122,  123,  123,  106,
      123,  123,  112,  122,  123,  123,  123,  123,  123,  136,
       27,  122,  123,   51,  122,  123,  122,  123,   53,  122,
      123,  122,  123,  122,  123,   61,  122,  123,  122,  123,
      123,  123,  123,   73,  122,  123,  122,  123,  122,  123,
      123,  122,  123,  123,  123,  122,  123,  123,  122,  123,
      123,  115,  123,  123,  123,  123,   27,   40,  122,  123,
       52,  122,  123,   56,  122,  123,  122,  123,  122,  123,
      123,  123,  123,  122,  123,  122,  123,  123,  122,  123,
      123,  123,  122,  123,  123,  122,  123,  123,  123,  123,

      123,   27,    6,  122,  123,  122,  123,  123,  123,  123,
       79,  122,  123,   81,  122,  123,   82,  123,  122,  123,
      123,  123,  122,  123,  123,  100,  122,  123,  123,  123,
      123,  123,   27,  122,  123,   65,  122,  123,   70,  123,
      123,   71,  123,  122,  123,   87,  123,  123,   95,  122,
      123,  123,  108,  123,  123,  123,  117,  123,   27,  122,
      123,  123,   85,  122,  123,  123,  123,  123,  116,  123,
       27,  122,  123,   69,  123,  123,   97,  123,  113,  123,
       27,   59,  122,  123,   89,  123,   25,   27,    5
    } ;

static yyconst flex_int16_t yy_accept[770] =
    {   0,
        1,    1,    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,  238,  240,  242,  244,  247,

      247,  248,  249,  250,  250,  251,  251,  252,  252,  252,
      252,  253,  254,  255,  256,  256,  257,  257,  259,  259,
      259,  261,  263,  265,  267,  269,  271,  272,  274,  276,
      278,  280,  283,  285,  287,  289,  291,  293,  295,  297,
      299,  301,  302,  303,  305,  307,  309,  311,  313,  315,
      317,  319,  320,  322,  324,  327,  329,  330,  332,  334,
      336,  338,  339,  341,  343,  345,  347,  349,  351,  353,
      355,  356,  358,  360,  361,  362,  364,  365,  366,  366,
      367,  367,  367,  367,  367,  368,  369,  370,  371,  372,
      373,  374,  374,  375,  377,  379,  380,  381,  381,  382,

      382,  382,  383,  384,  384,  384,  385,  385,  386,  386,
      386,  386,  386,  388,  389,  390,  390,  391,  393,  394,
      396,  399,  402,  404,  406,  406,  408,  411,  413,  415,
      417,  419,  421,  423,  425,  427,  429,  431,  434,  436,
      438,  440,  442,  444,  446,  447,  448,  450,  452,  454,
      456,  458,  460,  462,  465,  468,  470,  471,  473,  475,
      477,  478,  480,  483,  485,  487,  489,  490,  492,  494,
      496,  499,  501,  503,  505,  507,  509,  511,  512,  514,
      516,  518,  519,  520,  521,  523,  524,  524,  524,  525,
      526,  527,  529,  532,  533,  533,  534,  534,  535,  536,

      537,  538,  539,  540,  540,  540,  540,  542,  544,  546,
      548,  550,  552,  554,  556,  558,  560,  562,  564,  566,
      568,  570,  572,  574,  576,  578,  580,  582,  584,  587,
      588,  589,  591,  593,  595,  597,  599,  601,  603,  605,
      607,  610,  611,  613,  615,  617,  618,  620,  622,  624,
      626,  627,  630,  632,  634,  637,  639,  641,  643,  646,
      649,  650,  652,  654,  656,  658,  660,  661,  662,  663,
      666,  666,  666,  666,  666,  667,  669,  669,  669,  671,
      673,  675,  678,  679,  681,  683,  685,  688,  690,  692,
      694,  696,  698,  700,  702,  704,  706,  708,  710,  712,

      714,  717,  718,  719,  720,  722,  724,  726,  728,  730,
      732,  734,  736,  738,  740,  741,  743,  746,  748,  749,
      751,  751,  753,  755,  756,  758,  760,  762,  764,  765,
      766,  769,  771,  773,  774,  776,  777,  778,  779,  779,
      779,  780,  782,  782,  782,  785,  787,  789,  790,  792,
      794,  797,  799,  801,  803,  805,  807,  809,  811,  813,
      815,  817,  820,  822,  824,  826,  828,  829,  830,  831,
      833,  835,  837,  839,  841,  843,  845,  847,  849,  851,
      851,  852,  855,  857,  858,  860,  862,  864,  866,  867,
      869,  871,  874,  877,  878,  879,  882,  884,  885,  886,

      887,  888,  889,  889,  889,  891,  891,  891,  893,  895,
      896,  899,  901,  903,  905,  907,  910,  913,  915,  917,
      920,  922,  924,  926,  929,  931,  933,  934,  935,  936,
      938,  940,  943,  946,  948,  950,  952,  955,  957,  959,
      961,  962,  964,  965,  968,  970,  973,  976,  977,  979,
      981,  982,  983,  985,  987,  988,  989,  990,  991,  991,
      993,  993,  993,  995,  997,  998, 1000, 1002, 1004, 1006,
     1008, 1011, 1013, 1015, 1018, 1020, 1023, 1024, 1025, 1026,
     1027, 1029, 1032, 1035, 1038, 1040, 1042, 1043, 1045, 1046,
     1049, 1050, 1052, 1053, 1055, 1058, 1059, 1060, 1062, 1063,

     1064, 1065, 1066, 1066, 1066, 1068, 1068, 1068, 1070, 1073,
     1075, 1078, 1081, 1083, 1085, 1087, 1087, 1089, 1091, 1092,
     1093, 1094, 1096, 1098, 1100, 1102, 1103, 1105, 1106, 1107,
     1109, 1110, 1110, 1112, 1113, 1116, 1117, 1118, 1119, 1120,
     1120, 1121, 1122, 1122, 1122, 1124, 1127, 1129, 1132, 1134,
     1136, 1139, 1141, 1142, 1143, 1144, 1147, 1149, 1151, 1152,
     1154, 1155, 1156, 1158, 1159, 1161, 1162, 1164, 1165, 1166,
     1167, 1168, 1168, 1168, 1171, 1174, 1177, 1179, 1181, 1182,
     1183, 1184, 1186, 1188, 1189, 1191, 1192, 1193, 1195, 1196,
     1198, 1199, 1200, 1201, 1202, 1203, 1204, 1204, 1206, 1208,

     1209, 1210, 1211, 1214, 1217, 1219, 1221, 1222, 1223, 1225,
     1226, 1229, 1230, 1231, 1232, 1233, 1234, 1234, 1236, 1239,
     1241, 1242, 1244, 1246, 1248, 1249, 1252, 1253, 1255, 1256,
     1257, 1259, 1260, 1260, 1262, 1263, 1266, 1267, 1268, 1269,
     1271, 1272, 1272, 1274, 1276, 1277, 1279, 1281, 1282, 1282,
     1285, 1287, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
     1289, 1289, 1289, 1289, 1289, 1289, 1289, 1290, 1290
    } ;

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,    6,    7,    8,    9,    1,    1,   10,   11,   12,
       12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
       21,   22,   23,   24,   21,   25,   26,   27,   28,   29,
       30,   31,    1,   12,   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,   57,
       58,    1,   59,   60,    1,    1,   61,   62,   63,   64,

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

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

static yyconst flex_int32_t yy_meta[89] =
    {   0,
        1,    2,    3,    4,    4,    2,    1,    5,    1,    1,
        6,    1,    1,    1,    1,    7,    1,    1,    8,    8,
        8,    8,    8,    8,    8,    8,    9,    1,    1,    9,
        1,    8,    8,    8,    8,    8,    8,   10,   10,   10,
       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
       10,   10,   10,   10,   10,   10,   10,    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,   12,    1,    1,    1
    } ;

static yyconst flex_int16_t yy_base[796] =
    {   0,
        0,    0,   86,   89,   92,   95,  100,  101,   98,  104,
      106,  107,  192,  280,  368,    0,  455,    0, 1756, 1741,
      120,  136, 1737, 1735,  530,  146, 4634,  148,  213, 1728,
      104,  236,  596, 1712, 4634,  646,  279,  303,  285,  482,
      111,  581,  197,  434,  499,  221,  597,  697,  500,  705,
      727,  735,  608,  748, 1679,  105, 1715,  799,  177,    0,
     4634, 4634, 1713, 1712, 4634, 4634, 1704, 1705, 4634,    0,
        0, 1708,    0,    0, 1687, 4634, 4634, 4634,    0, 4634,
     4634,  825,  913,  173,  178,  292, 4634, 1696, 1698, 1689,
     4634, 4634, 4634, 4634,  209,  354, 1670, 1674, 1682, 1687,

      514,    0, 1686, 1680, 1667,   93, 1666,  855, 1668,  869,
      116,  928, 1660, 4634,  955,  985, 1003, 1013, 1645, 1018,
      764,  854,  951, 1008, 1009, 1024, 1657, 1025, 1068, 1069,
     1084, 1090, 1106, 1112, 1123, 1136, 1139, 1159, 1156, 1167,
     1180,  112,  170, 1195, 1198, 1206, 1221, 1232, 1243, 1249,
     1260,  145, 1273, 1276, 1289, 1297,  146, 1300, 1313, 1324,
     1337,  202, 1353, 1359, 1370, 1376, 1387, 1398, 1404, 1415,
      231, 1421, 1437,  230,  458, 1436, 4634, 4634,    0, 1655,
      825, 1471, 1483, 1581,    0, 4634, 1643, 4634,    0, 4634,
        0, 1625,    0, 1606,  299,  551, 4634,    0, 1633, 1608,

        0, 1631, 4634, 1628,    0, 1619,    0, 1618,  308, 1594,
      301,  641, 1493, 4634, 1084, 1501, 4634, 1543, 1616, 1495,
     1501, 1517, 1518, 1533, 1615, 1541, 1544, 1593, 1594, 1609,
     1617, 1620, 1633, 1641, 1657, 1663, 1674, 1680, 1691, 1697,
     1708, 1714, 1725, 1736,  209,  254, 1749, 1757, 1760, 1775,
     1778, 1781, 1807, 1799, 1810, 1823,  249, 1831, 1844, 1852,
      289, 1855, 1868, 1876, 1884, 1892,  572, 1905, 1908, 1916,
     1929, 1937, 1945, 1953, 1966, 1974, 1987,  297, 1995, 2011,
     2012,  469,  456,  459, 2027, 1614, 2078, 2086, 4634, 1613,
     4634,  181, 1583, 1587, 1544, 1578, 1533, 1567, 1566, 4634,

     4634, 4634, 4634,  545,  731, 1525, 2080, 2081, 2096, 2102,
     2113, 2119, 2135, 2136, 2151, 2159, 2167, 2183, 2180, 2191,
     2204, 2207, 2222, 2228, 2239, 2245, 2256, 2271, 2277,  111,
      607, 2288, 2294, 2309, 2310, 2325, 2331, 2346, 2349, 2357,
     2370,  251, 2378, 2381, 2394,  460, 2402, 2415, 2423, 2431,
      446, 2439, 2447, 2460, 2468, 2471, 2489, 2486, 2492, 2507,
      452, 2510, 2513, 2530, 2536, 2547,  573,  632,  642, 2563,
     2598, 2623, 2631, 2643, 1557,  308, 1565, 1522, 2627, 2642,
     2648, 2659,  658, 2677, 2680, 2683, 2698, 2701, 2709, 2722,
     2730, 2743, 2754, 2760, 2771, 2782, 2797, 2803, 2814, 2820,

     2835,  723,  636,  660, 2836, 2856, 2853, 2874, 2873, 2889,
     2895, 2906, 2919, 2930,  727, 2927, 2943, 2951,  737, 2959,
      229, 2967, 2980,  738, 2993, 2996, 3004, 3017,  794,  748,
     3028, 3034, 3045,  742, 3056,  796,  739,  719,  874, 3107,
     4634,  203, 1507, 1536, 3071, 3092, 3103,  846, 3114, 3120,
     3131, 3137, 3153, 3154, 3169, 3180, 3186, 3203, 3209, 3220,
     3226, 3237, 3243, 3254, 3260, 3276,  847,  731,  848, 3277,
     3292, 3298, 3309, 3315, 3330, 3336, 3347, 3362, 3368,  623,
      853, 3379, 3395,  619, 3392, 1510, 3403, 3416,  715, 3424,
     3439, 3442, 3445,  866,  544, 3460, 3463,  891,  857,  790,

      892,  903, 3514, 3506, 1509, 1501, 1515, 3508, 3509,  865,
     3524, 3530, 3541, 3547, 3558, 3564, 3575, 3581, 3596, 3597,
     3612, 3618, 3629, 3640, 3646, 3657,  886,  882,  887, 3663,
     3674, 3685, 3691, 3702, 3708, 3723, 3724, 3739, 3745, 1500,
      945, 3756,  921, 3762, 1506, 3773, 3779,  894, 3794, 3800,
      967,  966, 3816, 1525,  923,  951,  950,  997, 3851,  591,
     1488,    0, 3845, 3817,  947, 3846, 3861, 3872, 3878, 3889,
     3895, 3910, 3913, 3921, 3934, 3937,  884, 1043, 1046,  999,
     3952, 3958, 3969, 3975, 3986, 3992,  969, 1498, 1102, 4003,
      971, 1493,  953, 4014, 4020, 1110, 1118, 4031,  973,  972,

     1112, 1127, 4082, 4107,  611, 1490, 1462, 4046, 4091, 1484,
     4092, 4107, 4113, 4128, 4129,  749, 4144, 4150, 1144, 1057,
     1145, 1483, 4161, 4172, 4183, 1116, 1438, 1160, 1124, 1432,
     1147, 1028, 1460, 1193, 4189, 1131, 1179, 1138, 1221, 1596,
     4634, 1438, 1418, 1394, 4200, 4206, 4221, 4222, 4237, 1411,
     4238, 4253, 1155, 1158, 1201, 4259, 4270, 4281, 1162, 1410,
     1214, 1228, 1400, 1230, 1393, 1241, 1413, 1246, 1283, 1244,
     1353, 1355, 1306, 4287, 4298, 4304, 1309, 4315, 1258,  104,
     1264, 4326, 4332, 1271, 1251, 1295, 1284, 1234, 1286, 1232,
     1299, 1319, 1310, 1301, 1218, 4634, 1185, 1208, 4347, 1323,

     1339, 1334, 4348, 4363, 1232, 1164, 1345, 1313, 1109, 1347,
        0, 1359, 1367, 1362, 1371, 1099, 1083, 1097, 4364, 1125,
     1217, 1049,  934,  954, 1375,    0, 1428,  930, 1459, 1398,
      880,  822,  791,  819, 1381,    0, 1378, 1469, 1523,  782,
      743,  720,  732,  755, 1348,  753,  751,  723,  689,    0,
      648,    0,  572,  605,  482,  436,  406,  394,  288,  273,
      280,  165, 1250, 1566,  130,  119, 4634, 4634, 4416, 4428,
     4440, 4452, 4464, 4476, 4487, 4489, 4500, 4512, 4524, 4535,
     4546, 4551, 4556, 4560, 4565, 4569, 4574, 4578, 4582, 4586,
     4589, 4593, 4604, 4610, 4621

    } ;

static yyconst flex_int16_t yy_def[796] =
    {   0,
      768,    1,  769,  769,  769,  769,  770,  770,  771,  771,
      772,  772,  773,  773,  768,   15,   15,   17,  768,  768,
      768,  768,  768,  774,  768,  775,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,  768,  768,  776,  768,  768,  777,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  778,
      778,  768,  779,  779,  768,  768,  768,  768,  780,  768,
      768,  781,  781,  768,  768,   25,  768,  768,  768,  782,
      768,  768,  768,  768,  768,  768,  768,  768,  783,  768,

      768,  774,  774,  768,  784,  768,  785,  775,  775,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  786,
       36,   36,   36,   36,   36,   36,  787,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,  787,  787,   36,   36,   36,   36,   36,   36,   36,
       36,  787,   36,   36,   36,   36,  787,   36,   36,   36,
       36,  787,   36,   36,   36,   36,   36,   36,   36,   36,
      787,   36,   36,  787,  787,   36,  768,  768,  788,  776,
      768,  768,  768,  768,  777,  768,  768,  768,  778,  768,
      779,  768,  780,   83,   83,  768,  768,  789,  782,  768,

      790,  783,  768,  768,  791,  784,  792,  785,  768,  768,
      793,  768,  768,  768,  768,  768,  768,  786,  794,   36,
       36,   36,   36,   36,  794,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,  787,  787,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,  787,   36,   36,   36,
      787,   36,   36,   36,   36,   36,  787,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,  787,   36,   36,
       36,  787,  787,  787,   36,  788,  768,  768,  768,  768,
      768,   83,   83,  789,  768,  790,  768,  791,  792,  768,

      768,  768,  768,  793,  768,  768,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,  787,
      787,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,  787,   36,   36,   36,  787,   36,   36,   36,   36,
      787,   36,   36,   36,   36,   36,   36,   36,   36,   36,
      787,   36,   36,   36,   36,   36,  787,  787,  787,   36,
      768,  768,  768,  768,  768,   83,  768,  768,   36,   36,
       36,   36,  787,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,

       36,  787,  787,  787,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,  787,   36,   36,   36,  787,   36,
      218,   36,   36,  787,   36,   36,   36,   36,  787,  787,
       36,   36,   36,  787,   36,  787,  787,  787,  768,  768,
      768,   83,  768,  768,   36,   36,   36,  787,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,  787,  787,  787,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,  218,
      787,   36,   36,  787,   36,  218,   36,   36,  787,   36,
       36,   36,   36,  787,  787,   36,   36,  787,  787,  787,

      787,  787,  768,  768,   83,  768,  768,   36,   36,  787,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,  787,  787,  787,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,  218,
      787,   36,  787,   36,  218,   36,   36,  787,   36,   36,
      787,  787,   36,  787,  787,  787,  787,  787,  768,   83,
      768,  795,   36,   36,  787,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,  787,  787,  787,  787,
       36,   36,   36,   36,   36,   36,  787,  218,  787,   36,
      787,  218,  787,   36,   36,  787,  787,   36,  787,  787,

      787,  787,  768,  768,   83,  768,  768,   36,   36,  787,
       36,   36,   36,   36,   36,  218,   36,   36,  787,  787,
      787,  787,   36,   36,   36,  787,  218,  787,  787,  218,
      787,  218,  787,  787,   36,  787,  787,  787,  787,  768,
      768,  780,  768,  768,   36,   36,   36,   36,   36,  218,
       36,   36,  787,  787,  787,   36,   36,   36,  787,  218,
      787,  787,  218,  787,  218,  787,  787,  787,  787,  787,
      780,  768,  768,   36,   36,   36,  218,   36,  787,  787,
      787,   36,   36,  787,  218,  787,  787,  218,  787,  218,
      787,  787,  787,  787,  780,  768,  768,  218,   36,  787,

      787,  787,   36,   36,  787,  218,  787,  787,  218,  787,
      218,  787,  787,  787,  787,  780,  768,  218,   36,  787,
      787,  787,  218,  787,  787,  218,  787,  787,  787,  787,
      787,  780,  768,  218,  787,  218,  787,  787,  787,  787,
      780,  768,  218,  787,  787,  787,  787,  780,  768,  218,
      787,  780,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,    0,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768

    } ;

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

       71,   63,   66,   66,   63,   72,   71,   64,   74,   74,
       64,   72,   67,   67,  100,  100,  114,   68,   68,  225,
      104,  101,  101,  101,  101,  101,  225,  225,   69,   69,
      100,  211,   75,   75,  767,   76,   76,  101,  101,  101,
      101,  101,  140,  121,  212,  766,  100,  108,  108,  108,
      108,  108,  106,  121,  701,  121,  100,  121,  100,  141,
      225,  225,  121,  178,  108,  108,  110,  110,  110,  110,
      110,  110,  110,  110,  196,  196,  196,  196,  196,  196,
      196,  196,  196,  196,  245,  225,  402,  100,   77,   77,
       78,   78,   79,   80,   81,   80,   80,   80,   79,   79,

       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
      101,  101,  101,  101,  101,  261,  257,  225,   79,   79,
       79,   79,   79,  100,  225,  194,  376,   83,  111,  121,
      246,  110,  112,  112,  112,  112,  112,  112,  112,  121,
      763,  121,  505,  121,  768,  225,  225,  194,  121,   79,
       79,   79,  115,  121,  116,  116,  116,  116,  116,  116,
      116,  116,  184,  121,  225,  121,  225,  121,  486,  225,
      267,  117,  151,  330,   80,   79,   80,   79,   79,   79,
       79,   80,   81,   80,   80,   80,   79,   79,   79,   79,
       79,   79,   79,   79,   79,   79,   79,   79,  282,  152,

      117,  278,  768,  303,  225,  303,   79,   79,   79,   79,
       79,  121,  225,  342,  128,   83,  304,  121,  129,  768,
      136,  121,  130,  121,  131,  121,  415,  121,  331,  121,
      121,  121,  292,  293,  132,  121,  121,   79,   79,   79,
      300,  133,  442,  194,  762,  134,  301,  121,  135,  121,
      761,  768,  194,  346,  121,  101,  101,  101,  101,  101,
      760,  361,   80,   79,   80,   79,   79,   79,   35,   84,
       85,   84,   84,   84,   35,   35,   35,   86,   35,   35,
       35,   35,   87,   88,   35,   89,   35,   35,   35,   35,
       35,   35,   35,   35,   35,   35,   35,   35,   35,   90,

       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
       90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
       90,   90,   90,   90,   90,   91,   92,   35,   35,   35,
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
       35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
       93,   35,   94,   35,   35,   35,   95,   96,   95,   95,
       95,  225,  759,   97,   35,  144,  121,  225,  145,   35,
       35,  225,   35,  225,  225,  225,  121,  146,  147,  758,
      121,   98,  757,  148,  225,  121,   99,   99,   99,   99,
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,

       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
       99,   99,   35,   35,  121,  101,  101,  101,  101,  101,
      368,  283,  419,  424,  121,  137,  138,  369,  121,  430,
      149,  121,  121,  121,  284,  163,  139,   35,  150,   35,
      100,  121,  121,  121,  121,  121,  121,  303,  367,  303,
      121,  121,  196,  196,  196,  196,  196,  104,  756,  225,
      304,  105,  105,  105,  105,  105,  105,  105,  105,  105,
      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
      105,  105,  105,  105,  105,  105,  105,  225,  225,  106,
      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,

      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
      107,  107,  115,  121,  118,  118,  118,  118,  118,  118,
      118,  118,  225,  121,  552,  121,  642,  121,  605,  153,
      154,  117,  121,  155,  225,  194,  755,  436,  768,  121,
      121,  121,  305,  156,  351,  142,  305,  225,  121,  754,
      121,  225,  121,  543,  121,  194,  143,  225,  157,  121,
      117,  120,  540,  225,  121,  121,  121,  121,  121,  121,
      121,  121,  306,  225,  403,  225,  175,  121,  122,  121,
      121,  121,  121,  121,  121,  121,  121,  121,  123,  121,
      124,  121,  125,  121,  121,  121,  121,  126,  121,  121,

      121,  121,  121,  438,  468,  437,  127,  127,  127,  127,
      127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
      127,  127,  127,  127,  127,  127,  127,  127,  158,  121,
      225,  159,  305,  448,  225,  469,  305,  121,  225,  160,
      164,  121,  225,  121,  165,  161,  225,  121,  121,  121,
      168,  121,  225,  225,  225,  166,  121,  225,  169,  121,
      167,  753,  306,  225,  768,  752,  225,  121,  225,  121,
      225,  121,  162,  121,  750,  170,  548,  121,  121,  172,
      121,  121,  650,  467,  749,  173,  121,  176,  748,  502,
      121,  171,  121,  528,  121,  481,  121,  225,  489,  121,

      181,  181,  181,  181,  181,  225,  121,  174,  121,  225,
      121,  225,  495,  498,  484,  121,  501,  182,  182,  182,
      182,  182,  182,  183,  183,  193,  181,  181,  181,  181,
      181,  193,  193,  193,  193,  193,  193,  193,  193,  193,
      193,  193,  193,  182,  182,  182,  182,  182,  182,  183,
      183,  193,  193,  193,  193,  193,  108,  108,  108,  108,
      108,  225,  225,  225,  743,  209,  556,  742,  225,  494,
      741,  500,  225,  108,  108,  439,  439,  439,  439,  439,
      225,  225,  193,  193,  193,  115,  121,  116,  116,  116,
      116,  116,  116,  116,  116,  225,  121,  225,  121,  225,

      121,  225,  225,  220,  117,  121,  225,  225,  193,  225,
      193,  193,  193,  193,  510,  541,  529,  527,  225,  193,
      193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
      193,  579,  555,  117,  551,  577,  225,  565,  225,  193,
      193,  193,  193,  193,  115,  225,  213,  213,  213,  213,
      213,  213,  213,  213,  578,  554,  557,  195,  441,  580,
      225,  619,  225,  117,  593,  225,  225,  558,  225,  225,
      193,  193,  193,  215,  215,  215,  215,  215,  215,  215,
      215,  225,  225,  121,  225,  591,  225,  225,  225,  736,
      117,  599,  117,  221,  589,  121,  193,  121,  193,  193,

      193,  115,  121,  116,  116,  116,  116,  116,  116,  116,
      116,  600,  225,  610,  225,  597,  216,  631,  216,  117,
      117,  215,  215,  215,  215,  215,  215,  215,  215,  115,
      601,  118,  118,  118,  118,  118,  118,  118,  118,  596,
      121,  121,  637,  768,  626,  636,  602,  629,  117,  117,
      121,  121,  121,  121,  121,  223,  121,  121,  225,  121,
      121,  225,  226,  222,  225,  622,  121,  121,  121,  121,
      121,  121,  225,  665,  224,  121,  121,  117,  219,  219,
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,

      121,  121,  215,  215,  215,  215,  215,  215,  215,  215,
      121,  121,  121,  121,  121,  228,  121,  225,  227,  121,
      121,  654,  121,  621,  620,  225,  121,  225,  121,  229,
      121,  225,  121,  225,  121,  121,  121,  230,  121,  225,
      225,  121,  225,  232,  121,  734,  225,  733,  121,  732,
      121,  231,  121,  225,  121,  121,  121,  121,  121,  225,
      225,  638,  225,  121,  726,  121,  233,  234,  121,  121,
      225,  236,  235,  225,  121,  225,  633,  225,  121,  628,
      121,  121,  121,  121,  659,  121,  662,  121,  121,  240,
      121,  121,  237,  238,  225,  634,  664,  667,  121,  121,

      121,  121,  241,  121,  639,  121,  242,  121,  225,  243,
      239,  121,  121,  121,  723,  669,  225,  247,  121,  653,
      655,  680,  121,  679,  121,  244,  121,  121,  668,  225,
      121,  121,  225,  248,  684,  661,  225,  121,  121,  121,
      121,  121,  121,  225,  121,  225,  121,  225,  121,  121,
      121,  764,  249,  121,  250,  764,  225,  121,  718,  225,
      717,  225,  716,  121,  121,  121,  711,  121,  666,  681,
      251,  252,  121,  225,  121,  121,  121,  253,  121,  225,
      765,  121,  686,  121,  709,  121,  225,  121,  735,  121,
      706,  121,  121,  255,  121,  121,  670,  254,  225,  225,

      121,  225,  256,  687,  121,  121,  121,  689,  121,  691,
      225,  121,  694,  258,  225,  121,  225,  121,  121,  121,
      121,  121,  121,  692,  121,  225,  259,  121,  225,  121,
      700,  121,  121,  121,  225,  121,  702,  705,  225,  121,
      121,  121,  121,  121,  121,  121,  121,  260,  121,  225,
      262,  121,  708,  698,  225,  121,  121,  121,  693,  121,
      225,  710,  225,  225,  121,  263,  121,  707,  121,  121,
      121,  712,  265,  715,  225,  264,  266,  225,  714,  121,
      697,  121,  225,  121,  268,  121,  225,  725,  121,  720,
      225,  121,  696,  225,  713,  269,  225,  121,  695,  121,

      722,  121,  121,  121,  121,  121,  270,  721,  121,  271,
      121,  724,  121,  225,  121,  727,  121,  275,  121,  121,
      121,  121,  121,  751,  273,  728,  272,  121,  225,  121,
      121,  274,  690,  121,  730,  729,  121,  731,  121,  688,
      121,  276,  121,  225,  121,  744,  121,  121,  121,  121,
      121,  745,  737,  121,  685,  121,  677,  121,  673,  121,
      279,  121,  672,  121,  740,  121,  277,  121,  121,  121,
      280,  671,  121,  281,  225,  225,  663,  660,  121,  121,
      121,  121,  121,  121,  225,  287,  285,  121,  121,  183,
      183,  183,  183,  183,  183,  183,  183,  288,  225,  225,

      738,  183,  183,  183,  183,  183,  183,  183,  183,  115,
      644,  213,  213,  213,  213,  213,  213,  213,  213,  215,
      215,  215,  215,  215,  215,  215,  215,  121,  117,  643,
      307,  739,  630,  121,  627,  746,  606,  121,  225,  121,
      225,  121,  592,  121,  588,  121,  121,  121,  562,  121,
      121,  561,  121,  560,  545,  507,  506,  117,  120,  121,
      308,  121,  121,  121,  121,  121,  444,  764,  121,  121,
      443,  764,  375,  121,  378,  121,  121,  121,  309,  121,
      310,  207,  205,  121,  121,  121,  121,  121,  121,  747,
      121,  203,  121,  201,  377,  121,  765,  640,  640,  640,

      640,  640,  198,  219,  219,  219,  219,  219,  219,  219,
      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
      219,  219,  219,  219,  219,  121,  121,  194,  375,  179,
      768,  225,  301,  207,  205,  121,  312,  121,  121,  121,
      121,  121,  311,  297,  121,  121,  201,  295,  198,  121,
      194,  121,  121,  121,  291,  121,  314,  313,  290,  121,
      121,  121,  121,  121,  121,  121,  121,  289,  121,  315,
      179,  121,  225,  121,  217,  121,  214,  121,  210,  316,
      641,  207,  205,  121,  121,  121,  204,  121,  319,  121,
      317,  318,  121,  203,  203,  121,  320,  201,  321,  121,

      119,  121,  200,  121,  198,  121,  121,  121,  121,  121,
      114,  197,  121,  192,  121,  190,  121,  114,  121,  322,
      121,  188,  121,  121,  121,  121,  121,  187,  186,  121,
      179,  121,  324,  121,  323,  121,  177,  121,  119,  121,
      121,  121,  121,  121,  113,  103,  121,  100,  121,  327,
      325,  100,  121,  326,  121,  768,  121,  121,  121,  121,
      121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
      768,  121,  768,  768,  328,  768,  121,  768,  121,  329,
      121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
      768,  121,  121,  121,  768,  121,  768,  768,  332,  121,

      121,  333,  334,  121,  121,  335,  121,  121,  121,  768,
      121,  121,  768,  121,  768,  768,  338,  336,  768,  121,
      121,  121,  121,  121,  121,  121,  121,  121,  337,  121,
      339,  121,  121,  768,  768,  768,  768,  768,  768,  121,
      768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
      121,  121,  121,  121,  121,  121,  121,  768,  121,  768,
      768,  340,  768,  121,  768,  341,  343,  121,  768,  121,
      768,  768,  768,  121,  121,  121,  121,  121,  768,  344,
      768,  768,  121,  768,  121,  768,  121,  121,  121,  768,
      121,  345,  768,  768,  121,  121,  121,  121,  121,  121,

      121,  121,  768,  121,  768,  347,  121,  768,  121,  768,
      121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  768,  121,  768,  121,  348,  121,  121,  121,  768,
      121,  768,  768,  349,  121,  121,  121,  121,  121,  353,
      121,  768,  768,  121,  350,  768,  768,  352,  121,  121,
      121,  121,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  768,  768,  768,  354,  768,  121,
      768,  121,  355,  121,  768,  121,  768,  121,  768,  121,
      121,  121,  768,  121,  356,  121,  768,  121,  121,  121,
      768,  121,  768,  768,  768,  121,  121,  121,  121,  121,

      768,  768,  768,  357,  121,  768,  121,  768,  121,  768,
      121,  768,  121,  768,  768,  358,  121,  121,  121,  121,
      121,  768,  360,  359,  768,  121,  768,  121,  768,  121,
      768,  121,  768,  121,  768,  768,  366,  121,  121,  121,
      362,  121,  363,  121,  121,  768,  121,  364,  768,  768,
      768,  768,  768,  121,  121,  121,  121,  121,  121,  121,
      768,  365,  121,  121,  768,  370,  768,  768,  768,  121,
      768,  121,  768,  121,  768,  768,  768,  768,  121,  371,
      371,  371,  371,  371,  768,  768,  768,  373,  373,  373,
      373,  373,  768,  768,  768,  768,  372,  372,  372,  372,

      372,  372,  372,  372,  374,  374,  374,  374,  374,  374,
      374,  374,  121,  121,  768,  768,  768,  768,  768,  768,
      380,  768,  121,  121,  379,  121,  121,  121,  121,  768,
      768,  121,  121,  768,  121,  768,  768,  768,  121,  381,
      121,  768,  121,  768,  121,  121,  382,  121,  121,  768,
      768,  121,  768,  121,  384,  121,  768,  121,  768,  121,
      768,  121,  768,  121,  121,  121,  385,  121,  121,  386,
      121,  768,  768,  768,  768,  768,  768,  121,  121,  121,
      121,  121,  121,  121,  768,  768,  121,  121,  768,  768,
      383,  121,  768,  121,  768,  121,  768,  121,  768,  121,

      387,  121,  121,  121,  388,  121,  768,  768,  768,  121,
      121,  121,  121,  121,  390,  121,  768,  389,  121,  768,
      768,  768,  121,  121,  121,  121,  121,  121,  768,  121,
      768,  391,  768,  121,  121,  392,  121,  121,  393,  121,
      768,  394,  121,  768,  768,  768,  121,  768,  121,  121,
      121,  121,  768,  121,  121,  121,  768,  395,  121,  768,
      121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  396,  768,  768,  121,  397,  121,
      768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
      121,  121,  768,  398,  768,  768,  121,  768,  121,  768,

      399,  768,  121,  121,  400,  768,  401,  121,  768,  121,
      768,  768,  768,  121,  768,  121,  768,  121,  768,  121,
      121,  121,  121,  121,  768,  768,  121,  768,  121,  768,
      121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  405,  121,  768,  768,  406,  768,
      768,  121,  121,  121,  121,  121,  121,  121,  407,  768,
      121,  121,  409,  121,  768,  404,  768,  121,  768,  121,
      413,  121,  768,  121,  768,  121,  408,  121,  121,  410,
      768,  121,  121,  411,  768,  768,  768,  768,  121,  121,
      121,  121,  121,  121,  412,  121,  768,  121,  768,  121,

      121,  121,  121,  121,  768,  768,  414,  768,  121,  768,
      121,  416,  121,  121,  121,  768,  121,  768,  768,  768,
      121,  121,  121,  121,  121,  121,  121,  121,  768,  121,
      421,  417,  121,  768,  121,  768,  121,  420,  121,  418,
      121,  768,  768,  768,  121,  121,  121,  121,  121,  768,
      768,  768,  768,  121,  768,  121,  768,  121,  422,  121,
      768,  121,  423,  121,  768,  121,  121,  121,  768,  121,
      768,  121,  768,  121,  121,  121,  768,  121,  768,  121,
      768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
      121,  121,  121,  121,  768,  426,  768,  425,  121,  768,

      121,  768,  121,  121,  121,  768,  121,  768,  768,  768,
      121,  121,  121,  121,  121,  427,  768,  121,  121,  121,
      428,  121,  121,  768,  121,  768,  768,  768,  121,  768,
      121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
      121,  768,  121,  121,  768,  121,  768,  768,  768,  121,
      768,  121,  121,  121,  431,  121,  121,  121,  121,  121,
      768,  121,  121,  429,  432,  433,  768,  768,  121,  768,
      768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
      768,  121,  768,  121,  768,  121,  435,  768,  121,  371,

      371,  371,  371,  371,  434,  121,  768,  121,  768,  121,
      768,  768,  768,  768,  121,  768,  372,  372,  372,  372,
      372,  372,  372,  372,  439,  439,  439,  439,  439,  768,
      768,  768,  373,  373,  373,  373,  373,  440,  768,  768,
      768,  372,  372,  372,  372,  372,  372,  372,  372,  374,
      374,  374,  374,  374,  374,  374,  374,  440,  768,  121,
      768,  374,  374,  374,  374,  374,  374,  374,  374,  121,
      768,  121,  768,  121,  121,  446,  768,  445,  121,  447,
      121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  121,  768,  768,  768,  768,  121,

      768,  121,  768,  121,  768,  121,  768,  441,  449,  121,
      121,  768,  121,  450,  768,  121,  768,  768,  451,  121,
      768,  121,  121,  121,  121,  121,  121,  121,  121,  121,
      121,  121,  768,  121,  121,  768,  768,  768,  768,  768,
      121,  121,  121,  121,  121,  452,  768,  121,  768,  121,
      768,  121,  121,  121,  121,  121,  768,  453,  768,  768,
      121,  454,  121,  768,  121,  768,  121,  768,  121,  768,
      768,  768,  455,  121,  121,  121,  121,  768,  456,  768,
      768,  121,  457,  768,  768,  121,  121,  121,  458,  121,
      768,  768,  121,  768,  121,  459,  121,  768,  121,  460,

      121,  768,  121,  121,  121,  121,  121,  768,  768,  768,
      768,  121,  768,  121,  121,  121,  768,  121,  768,  461,
      768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      463,  768,  462,  121,  768,  121,  768,  768,  768,  121,
      768,  121,  768,  121,  768,  121,  121,  121,  121,  121,
      768,  768,  121,  464,  121,  768,  121,  768,  121,  768,
      121,  768,  121,  465,  466,  121,  121,  121,  121,  768,
      768,  121,  768,  768,  768,  470,  768,  121,  121,  121,
      121,  121,  121,  768,  768,  121,  121,  121,  121,  471,
      768,  472,  768,  768,  768,  121,  768,  121,  121,  121,

      121,  768,  121,  473,  121,  121,  121,  121,  474,  768,
      768,  768,  768,  768,  768,  121,  121,  475,  121,  121,
      121,  121,  768,  768,  121,  121,  768,  121,  768,  768,
      477,  121,  768,  121,  768,  121,  768,  121,  121,  121,
      476,  121,  479,  768,  768,  480,  121,  768,  121,  768,
      121,  121,  121,  768,  768,  478,  768,  121,  768,  121,
      768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
      121,  121,  121,  121,  121,  121,  121,  482,  121,  768,
      768,  121,  768,  121,  768,  121,  768,  121,  768,  121,
      768,  121,  768,  121,  121,  483,  768,  121,  768,  121,

      768,  121,  121,  121,  768,  121,  768,  485,  768,  121,
      121,  487,  121,  121,  768,  768,  768,  768,  121,  768,
      768,  768,  121,  768,  121,  121,  121,  768,  121,  768,
      488,  121,  490,  768,  768,  121,  121,  121,  121,  121,
      491,  492,  121,  768,  121,  768,  121,  121,  121,  121,
      121,  768,  768,  768,  768,  121,  768,  768,  768,  121,
      121,  121,  768,  121,  768,  768,  121,  768,  121,  496,
      121,  493,  121,  768,  121,  768,  121,  121,  121,  121,
      121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
      768,  121,  768,  497,  768,  768,  121,  768,  121,  768,

      121,  768,  121,  121,  768,  768,  768,  121,  503,  503,
      503,  503,  503,  121,  768,  121,  768,  121,  768,  768,
      768,  768,  121,  508,  121,  504,  504,  504,  504,  504,
      504,  504,  504,  499,  121,  121,  121,  768,  121,  768,
      768,  768,  768,  121,  768,  121,  121,  121,  768,  121,
      768,  768,  121,  509,  121,  768,  121,  768,  511,  768,
      121,  768,  121,  121,  121,  121,  121,  768,  768,  121,
      512,  121,  513,  121,  768,  121,  768,  121,  768,  121,
      768,  121,  121,  121,  514,  121,  121,  768,  121,  768,
      768,  768,  768,  768,  768,  121,  121,  121,  515,  121,

      121,  121,  768,  768,  121,  121,  768,  768,  768,  768,
      768,  121,  121,  121,  517,  121,  768,  768,  121,  516,
      121,  768,  121,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  768,  768,  121,  518,  121,  519,  768,
      768,  121,  768,  520,  768,  121,  768,  121,  768,  121,
      768,  121,  121,  121,  121,  121,  768,  522,  121,  768,
      121,  768,  121,  768,  521,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  768,  121,  768,  121,  768,  121,
      768,  121,  523,  121,  768,  121,  121,  121,  121,  121,
      768,  768,  121,  768,  121,  768,  121,  768,  121,  525,

      121,  768,  121,  524,  121,  121,  121,  526,  121,  121,
      768,  121,  768,  530,  768,  768,  768,  768,  121,  121,
      121,  121,  121,  121,  121,  768,  768,  121,  121,  768,
      121,  531,  532,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  121,  768,  768,  121,  768,  121,
      534,  121,  768,  121,  768,  121,  768,  121,  533,  121,
      121,  121,  121,  535,  768,  768,  121,  768,  121,  536,
      768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
      768,  121,  768,  121,  121,  537,  768,  538,  121,  768,

      121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  121,  768,  768,  539,  768,  121,
      768,  121,  768,  121,  121,  121,  542,  121,  768,  768,
      121,  768,  768,  768,  121,  121,  544,  121,  121,  121,
      768,  121,  768,  121,  768,  121,  121,  121,  121,  121,
      768,  547,  768,  546,  121,  768,  121,  768,  121,  768,
      121,  768,  121,  768,  768,  768,  121,  121,  121,  768,
      121,  121,  550,  768,  121,  121,  549,  121,  768,  768,
      768,  121,  768,  121,  121,  121,  121,  121,  121,  121,
      121,  121,  121,  121,  768,  121,  121,  768,  768,  768,

      768,  768,  121,  768,  121,  121,  121,  121,  768,  121,
      768,  121,  553,  768,  121,  503,  503,  503,  503,  503,
      559,  768,  768,  768,  504,  504,  504,  504,  504,  504,
      504,  504,  504,  504,  504,  504,  504,  504,  504,  504,
      121,  121,  768,  768,  768,  768,  768,  768,  564,  768,
      121,  121,  121,  121,  121,  121,  121,  768,  563,  121,
      121,  768,  121,  768,  768,  566,  121,  768,  121,  768,
      121,  768,  121,  121,  121,  121,  121,  768,  768,  121,
      768,  121,  768,  121,  768,  567,  568,  121,  768,  121,
      121,  121,  121,  121,  768,  768,  121,  569,  121,  768,

      121,  768,  121,  768,  121,  768,  121,  121,  121,  121,
      121,  768,  768,  121,  768,  121,  768,  121,  768,  121,
      570,  121,  768,  121,  768,  121,  121,  121,  121,  121,
      571,  768,  121,  768,  768,  768,  768,  768,  121,  121,
      121,  121,  121,  121,  121,  768,  768,  121,  121,  572,
      121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  121,  768,  768,  768,  573,  121,
      768,  121,  121,  121,  768,  121,  768,  768,  575,  574,
      121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
      121,  121,  121,  768,  768,  121,  768,  121,  768,  576,

      768,  121,  581,  121,  768,  121,  121,  121,  121,  121,
      768,  768,  768,  768,  121,  768,  121,  121,  121,  768,
      121,  768,  768,  121,  582,  121,  768,  121,  768,  121,
      768,  121,  768,  121,  121,  121,  121,  121,  768,  768,
      121,  768,  121,  584,  121,  768,  121,  768,  121,  768,
      121,  583,  121,  121,  121,  121,  121,  768,  768,  121,
      768,  768,  768,  768,  768,  121,  121,  121,  121,  121,
      121,  121,  586,  585,  121,  121,  768,  121,  768,  768,
      768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
      121,  121,  768,  768,  121,  768,  121,  768,  590,  768,

      121,  768,  121,  768,  121,  121,  121,  121,  121,  768,
      768,  121,  768,  121,  768,  121,  768,  121,  768,  121,
      768,  121,  587,  121,  121,  121,  121,  768,  768,  594,
      121,  768,  121,  768,  768,  595,  121,  768,  121,  768,
      121,  768,  121,  768,  121,  121,  121,  598,  121,  121,
      609,  121,  603,  603,  603,  603,  603,  768,  121,  121,
      121,  121,  121,  121,  768,  768,  768,  121,  121,  604,
      604,  604,  604,  604,  604,  604,  604,  121,  121,  768,
      768,  768,  768,  768,  608,  768,  768,  121,  121,  121,
      121,  121,  121,  121,  611,  768,  121,  121,  768,  768,

      768,  768,  768,  121,  121,  121,  768,  121,  768,  768,
      121,  612,  121,  768,  121,  768,  613,  768,  121,  768,
      121,  121,  614,  121,  121,  616,  768,  121,  768,  121,
      768,  121,  768,  121,  615,  121,  768,  121,  768,  121,
      121,  121,  121,  768,  768,  121,  121,  768,  617,  768,
      768,  768,  121,  121,  121,  121,  121,  121,  768,  121,
      768,  121,  768,  121,  121,  121,  121,  121,  768,  121,
      768,  768,  121,  618,  768,  768,  121,  768,  121,  121,
      121,  121,  768,  121,  121,  121,  768,  623,  121,  768,
      121,  768,  768,  768,  121,  768,  121,  768,  121,  768,

      121,  121,  121,  121,  121,  768,  768,  121,  768,  121,
      768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
      121,  121,  768,  768,  121,  624,  121,  768,  121,  632,
      121,  768,  121,  768,  121,  121,  121,  121,  121,  768,
      768,  768,  625,  121,  768,  121,  121,  121,  768,  121,
      768,  768,  121,  768,  121,  768,  121,  768,  121,  768,
      121,  768,  121,  121,  121,  121,  121,  768,  768,  768,
      768,  121,  768,  635,  768,  121,  768,  121,  121,  768,
      768,  768,  121,  603,  603,  603,  603,  603,  121,  768,
      121,  645,  121,  768,  768,  768,  768,  121,  768,  768,

      604,  604,  604,  604,  604,  604,  604,  604,  640,  640,
      640,  640,  640,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  121,  121,  604,  604,  604,  604,  604,
      604,  604,  604,  121,  121,  121,  121,  121,  121,  121,
      768,  768,  121,  121,  768,  121,  768,  768,  647,  121,
      768,  121,  768,  121,  768,  121,  646,  121,  121,  121,
      121,  121,  768,  768,  121,  648,  768,  768,  768,  768,
      121,  121,  121,  649,  121,  121,  121,  768,  651,  121,
      121,  768,  121,  768,  768,  768,  121,  768,  121,  768,
      121,  641,  652,  121,  121,  121,  121,  768,  768,  768,

      768,  121,  768,  121,  121,  121,  768,  121,  768,  656,
      768,  768,  121,  768,  121,  121,  121,  657,  121,  768,
      768,  121,  658,  121,  768,  121,  768,  121,  768,  121,
      768,  121,  121,  121,  121,  121,  768,  768,  121,  768,
      121,  768,  121,  768,  674,  768,  121,  768,  121,  768,
      121,  121,  121,  121,  121,  675,  768,  121,  768,  768,
      768,  768,  768,  121,  121,  121,  121,  121,  121,  121,
      121,  768,  121,  121,  768,  768,  768,  768,  768,  121,
      121,  121,  121,  121,  121,  121,  676,  768,  121,  121,
      768,  121,  678,  768,  768,  121,  768,  121,  768,  121,

      768,  121,  121,  121,  121,  121,  768,  768,  768,  768,
      121,  768,  121,  121,  682,  768,  121,  768,  768,  121,
      768,  121,  768,  121,  768,  121,  683,  121,  768,  121,
      121,  121,  121,  121,  768,  768,  121,  768,  121,  768,
      121,  768,  121,  768,  121,  768,  121,  121,  121,  121,
      121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
      768,  121,  768,  768,  121,  699,  121,  768,  121,  768,
      121,  768,  121,  768,  121,  703,  704,  121,  121,  121,
      121,  768,  768,  121,  768,  768,  768,  768,  768,  121,
      121,  121,  121,  121,  121,  121,  121,  768,  121,  121,

      768,  768,  719,  768,  768,  121,  121,  121,  121,  121,
      121,  768,  768,  768,  121,  121,   60,   60,   60,   60,
       60,   60,   60,   60,   60,   60,   60,   60,   65,   65,
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
       70,   70,   73,   73,   73,   73,   73,   73,   73,   73,
       73,   73,   73,   73,   82,   82,   82,   82,   82,   82,
       82,   82,   82,   82,   82,   82,  102,  102,  102,  102,
      768,  102,  102,  102,  102,  102,  102,  102,  109,  109,
      109,  768,  109,  768,  109,  180,  180,  768,  180,  180,

      185,  185,  768,  768,  185,  185,  768,  185,  185,  185,
      185,  185,  189,  189,  189,  189,  768,  189,  189,  189,
      189,  189,  189,  189,  191,  191,  191,  191,  191,  191,
      191,  191,  768,  191,  191,  193,  768,  768,  768,  193,
      193,  193,  193,  193,  193,  193,  194,  768,  768,  768,
      194,  194,  194,  194,  194,  194,  194,  199,  199,  768,
      199,  199,  202,  202,  768,  202,  206,  206,  768,  206,
      206,  208,  208,  768,  208,  208,  218,  768,  218,  218,
      127,  127,  768,  127,  127,  286,  768,  286,  286,  294,
      768,  294,  294,  296,  768,  296,  298,  768,  298,  298,

      299,  768,  299,  299,  302,  302,  302,  302,  302,  302,
      302,  302,  302,  302,  302,  302,  219,  219,  768,  219,
      219,  607,  607,  768,  607,  607,  607,  607,  607,  607,
      607,  607,  607,   19,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,

      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768
    } ;

static yyconst flex_int16_t yy_chk[4723] =
    {   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,    1,    1,    3,    3,
        3,    4,    4,    4,    5,    5,    5,    6,    6,    6,

        9,    3,    7,    8,    4,    9,   10,    5,   11,   12,
        6,   10,    7,    8,   31,   56,   31,    7,    8,  680,
      106,   21,   21,   21,   21,   21,  330,  142,    7,    8,
       21,  111,   11,   12,  766,   11,   12,   22,   22,   22,
       22,   22,   41,   41,  111,  765,   22,   26,   26,   26,
       26,   26,  106,   41,  680,   41,   26,   41,   28,   41,
      152,  157,   41,   56,   26,   26,   28,   28,   28,   28,
       28,   28,   28,   28,   84,   84,   84,   84,   84,   85,
       85,   85,   85,   85,  142,  143,  330,   59,   11,   12,
       11,   12,   13,   13,   13,   13,   13,   13,   13,   13,

       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       95,   95,   95,   95,   95,  157,  152,  162,   13,   13,
       13,   13,   13,   29,  245,  292,  292,   13,   29,   43,
      143,   29,   29,   29,   29,   29,   29,   29,   29,   43,
      762,   43,  442,   43,  421,  174,  171,  442,   43,   13,
       13,   13,   32,   46,   32,   32,   32,   32,   32,   32,
       32,   32,   59,   46,  257,   46,  342,   46,  421,  246,
      162,   32,   46,  245,   13,   13,   13,   13,   13,   13,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,  174,   46,

       32,  171,   86,  211,  261,  211,   14,   14,   14,   14,
       14,   37,  278,  257,   37,   14,  211,   39,   37,   86,
       39,   37,   37,   37,   37,   37,  342,   39,  246,   39,
       37,   39,  195,  195,   37,   38,   39,   14,   14,   14,
      209,   38,  376,  195,  761,   38,  209,   38,   38,   38,
      760,   86,  376,  261,   38,   96,   96,   96,   96,   96,
      759,  278,   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,   15,   15,   17,   17,   17,   17,
       17,  351,  758,   17,   17,   44,   44,  361,   44,   17,
       17,  283,   17,  175,  284,  346,   44,   44,   44,  757,
       44,   17,  756,   44,  282,   44,   17,   17,   17,   17,
       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,

       17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
       17,   17,   17,   17,   40,  101,  101,  101,  101,  101,
      283,  175,  346,  351,   40,   40,   40,  284,   40,  361,
       45,   45,   49,   40,  175,   49,   40,   17,   45,   17,
       25,   45,   49,   45,   49,   45,   49,  304,  282,  304,
       45,   49,  196,  196,  196,  196,  196,   25,  755,  495,
      304,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   25,   25,   25,   25,   25,  267,  367,   25,
       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,

       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
       25,   25,   33,   42,   33,   33,   33,   33,   33,   33,
       33,   33,  331,   42,  495,   42,  605,   42,  560,   47,
       47,   33,   42,   47,  484,  560,  754,  367,  480,   47,
       53,   47,  212,   47,  267,   42,  212,  368,   47,  753,
       53,  403,   53,  484,   53,  605,   42,  369,   47,   53,
       33,   36,  480,  751,   36,   36,   36,   36,   36,   36,
       36,   36,  212,  383,  331,  404,   53,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,

       36,   36,   36,  369,  403,  368,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   36,   36,   36,   36,   36,   48,   48,
      489,   48,  305,  383,  438,  404,  305,   50,  402,   48,
       50,   48,  415,   48,   50,   48,  468,   50,   48,   50,
       51,   50,  419,  424,  437,   50,   50,  434,   51,   51,
       50,  749,  305,  430,  616,  748,  747,   52,  746,   51,
      744,   51,   48,   51,  743,   51,  489,   52,   51,   52,
       54,   52,  616,  402,  742,   52,   52,   54,  741,  438,
       54,   51,   54,  468,   54,  415,  121,  740,  424,   54,

       58,   58,   58,   58,   58,  500,  121,   52,  121,  429,
      121,  436,  430,  434,  419,  121,  437,   58,   58,   58,
       58,   58,   58,   58,   58,   82,  181,  181,  181,  181,
      181,   82,   82,   82,   82,   82,   82,   82,   82,   82,
       82,   82,   82,  181,  181,  181,  181,  181,  181,  181,
      181,   82,   82,   82,   82,   82,  108,  108,  108,  108,
      108,  448,  467,  469,  734,  108,  500,  733,  481,  429,
      732,  436,  499,  108,  108,  439,  439,  439,  439,  439,
      510,  494,   82,   82,   82,  110,  122,  110,  110,  110,
      110,  110,  110,  110,  110,  731,  122,  528,  122,  577,

      122,  527,  529,  122,  110,  122,  498,  501,   82,  548,
       82,   82,   82,   83,  448,  481,  469,  467,  502,   83,
       83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
       83,  528,  499,  110,  494,  527,  543,  510,  555,   83,
       83,   83,   83,   83,  112,  728,  112,  112,  112,  112,
      112,  112,  112,  112,  527,  498,  501,   83,  439,  529,
      541,  577,  565,  112,  548,  557,  556,  502,  593,  724,
       83,   83,   83,  115,  115,  115,  115,  115,  115,  115,
      115,  552,  551,  123,  587,  543,  591,  600,  599,  723,
      115,  555,  112,  123,  541,  123,   83,  123,   83,   83,

       83,  116,  123,  116,  116,  116,  116,  116,  116,  116,
      116,  556,  558,  565,  580,  552,  117,  593,  117,  115,
      116,  117,  117,  117,  117,  117,  117,  117,  117,  118,
      557,  118,  118,  118,  118,  118,  118,  118,  118,  551,
      124,  125,  600,  632,  587,  599,  558,  591,  118,  116,
      124,  125,  124,  125,  124,  125,  126,  128,  578,  124,
      125,  579,  128,  124,  722,  580,  126,  128,  126,  128,
      126,  128,  620,  632,  126,  126,  128,  118,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,

      129,  130,  215,  215,  215,  215,  215,  215,  215,  215,
      129,  130,  129,  130,  129,  130,  131,  589,  129,  129,
      130,  620,  132,  579,  578,  596,  131,  601,  131,  131,
      131,  626,  132,  597,  132,  131,  132,  133,  133,  629,
      720,  132,  602,  134,  134,  718,  636,  717,  133,  716,
      133,  133,  133,  638,  134,  135,  134,  133,  134,  619,
      621,  601,  631,  134,  709,  135,  135,  135,  136,  135,
      653,  137,  136,  654,  135,  628,  596,  659,  136,  589,
      136,  137,  136,  137,  626,  137,  629,  136,  139,  139,
      137,  138,  138,  138,  637,  597,  631,  636,  139,  140,

      139,  138,  139,  138,  602,  138,  139,  139,  634,  140,
      138,  140,  141,  140,  706,  638,  655,  144,  140,  619,
      621,  654,  141,  653,  141,  141,  141,  144,  637,  661,
      145,  141,  721,  145,  659,  628,  639,  144,  146,  144,
      145,  144,  145,  662,  145,  664,  144,  705,  146,  145,
      146,  763,  146,  147,  147,  763,  666,  146,  698,  670,
      697,  668,  695,  147,  148,  147,  690,  147,  634,  655,
      147,  147,  147,  679,  148,  149,  148,  148,  148,  681,
      763,  150,  661,  148,  688,  149,  684,  149,  721,  149,
      685,  150,  151,  150,  149,  150,  639,  149,  669,  687,

      150,  689,  151,  662,  151,  153,  151,  664,  154,  666,
      686,  151,  670,  153,  691,  153,  694,  153,  154,  153,
      154,  155,  154,  668,  153,  693,  154,  154,  708,  156,
      679,  155,  158,  155,  692,  155,  681,  684,  700,  156,
      155,  156,  158,  156,  158,  159,  158,  156,  156,  702,
      158,  158,  687,  677,  701,  159,  160,  159,  669,  159,
      707,  689,  710,  745,  159,  159,  160,  686,  160,  161,
      160,  691,  161,  694,  712,  160,  161,  714,  693,  161,
      673,  161,  713,  161,  163,  163,  715,  708,  161,  700,
      725,  164,  672,  737,  692,  163,  735,  163,  671,  163,

      702,  164,  165,  164,  163,  164,  164,  701,  166,  164,
      164,  707,  165,  730,  165,  710,  165,  168,  166,  167,
      166,  165,  166,  745,  166,  712,  165,  166,  667,  167,
      168,  167,  665,  167,  714,  713,  169,  715,  167,  663,
      168,  169,  168,  727,  168,  735,  169,  170,  169,  168,
      169,  737,  725,  172,  660,  169,  650,  170,  644,  170,
      172,  170,  643,  172,  730,  172,  170,  172,  176,  173,
      173,  642,  172,  173,  729,  633,  630,  627,  176,  173,
      176,  173,  176,  173,  738,  182,  176,  176,  173,  182,
      182,  182,  182,  182,  182,  182,  182,  183,  622,  610,

      727,  183,  183,  183,  183,  183,  183,  183,  183,  213,
      607,  213,  213,  213,  213,  213,  213,  213,  213,  216,
      216,  216,  216,  216,  216,  216,  216,  220,  213,  606,
      220,  729,  592,  221,  588,  738,  561,  220,  739,  220,
      554,  220,  545,  221,  540,  221,  220,  221,  507,  222,
      223,  506,  221,  505,  486,  444,  443,  213,  218,  222,
      223,  222,  223,  222,  223,  224,  378,  764,  222,  223,
      377,  764,  375,  226,  306,  224,  227,  224,  224,  224,
      226,  299,  298,  226,  224,  226,  227,  226,  227,  739,
      227,  297,  226,  296,  295,  227,  764,  640,  640,  640,

      640,  640,  294,  218,  218,  218,  218,  218,  218,  218,
      218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
      218,  218,  218,  218,  218,  228,  229,  293,  290,  286,
      225,  219,  210,  208,  206,  228,  229,  228,  229,  228,
      229,  230,  228,  204,  228,  229,  202,  200,  199,  231,
      194,  230,  232,  230,  192,  230,  231,  230,  187,  231,
      230,  231,  232,  231,  232,  233,  232,  184,  231,  232,
      180,  232,  127,  234,  119,  233,  113,  233,  109,  233,
      640,  107,  105,  234,  233,  234,  104,  234,  235,  235,
      234,  234,  234,  103,  100,  236,  235,   99,  236,  235,

       98,  235,   97,  235,   90,  236,  237,  236,  235,  236,
       89,   88,  238,   75,  236,   72,  237,   68,  237,  237,
      237,   67,  238,  239,  238,  237,  238,   64,   63,  240,
       57,  238,  240,  239,  239,  239,   55,  239,   34,  240,
      241,  240,  239,  240,   30,   24,  242,   23,  240,  242,
      241,   20,  241,  241,  241,   19,  242,  243,  242,  241,
      242,    0,    0,    0,    0,  242,    0,  243,  244,  243,
        0,  243,    0,    0,  243,    0,  243,    0,  244,  244,
      244,  247,  244,    0,    0,    0,    0,  244,    0,  248,
        0,  247,  249,  247,    0,  247,    0,    0,  247,  248,

      247,  248,  249,  248,  249,  249,  249,  250,  248,    0,
      251,  249,    0,  252,    0,    0,  252,  250,    0,  250,
      251,  250,  251,  252,  251,  252,  250,  252,  251,  251,
      253,  254,  252,    0,    0,    0,    0,    0,    0,  253,
        0,  254,  255,  254,    0,  254,    0,    0,    0,  253,
      254,  253,  255,  253,  255,  256,  255,    0,  253,    0,
        0,  255,    0,  258,    0,  256,  258,  256,    0,  256,
        0,    0,    0,  258,  256,  258,  259,  258,    0,  259,
        0,    0,  258,    0,  260,    0,  259,  262,  259,    0,
      259,  260,    0,    0,  260,  259,  260,  262,  260,  262,

      263,  262,    0,  260,    0,  262,  262,    0,  264,    0,
      263,    0,  263,    0,  263,    0,  265,    0,  264,  263,
      264,    0,  264,    0,  266,  264,  265,  264,  265,    0,
      265,    0,    0,  265,  266,  265,  266,  268,  266,  269,
      269,    0,    0,  266,  266,    0,    0,  268,  270,  268,
      269,  268,  269,    0,  269,    0,  268,    0,  270,  269,
      270,  271,  270,    0,    0,    0,    0,  270,    0,  272,
        0,  271,  272,  271,    0,  271,    0,  273,    0,  272,
      271,  272,    0,  272,  273,  274,    0,  273,  272,  273,
        0,  273,    0,    0,    0,  274,  273,  274,  275,  274,

        0,    0,    0,  274,  274,    0,  276,    0,  275,    0,
      275,    0,  275,    0,    0,  275,  276,  275,  276,  277,
      276,    0,  277,  276,    0,  276,    0,  279,    0,  277,
        0,  277,    0,  277,    0,    0,  281,  279,  277,  279,
      279,  279,  279,  280,  281,    0,  279,  279,    0,    0,
        0,    0,    0,  280,  281,  280,  281,  280,  281,  285,
        0,  280,  280,  281,    0,  285,    0,    0,    0,  285,
        0,  285,    0,  285,    0,    0,    0,    0,  285,  287,
      287,  287,  287,  287,    0,    0,    0,  288,  288,  288,
      288,  288,    0,    0,    0,    0,  287,  287,  287,  287,

      287,  287,  287,  287,  288,  288,  288,  288,  288,  288,
      288,  288,  307,  308,    0,    0,    0,    0,    0,    0,
      308,    0,  307,  308,  307,  308,  307,  308,  309,    0,
        0,  307,  308,    0,  310,    0,    0,    0,  309,  309,
      309,    0,  309,    0,  310,  311,  310,  309,  310,    0,
        0,  312,    0,  310,  312,  311,    0,  311,    0,  311,
        0,  312,    0,  312,  311,  312,  313,  313,  314,  314,
      312,    0,    0,    0,    0,    0,    0,  313,  314,  313,
      314,  313,  314,  315,    0,    0,  313,  314,    0,    0,
      311,  316,    0,  315,    0,  315,    0,  315,    0,  317,

      315,  316,  315,  316,  316,  316,    0,    0,    0,  317,
      316,  317,  319,  317,  318,  318,    0,  317,  317,    0,
        0,    0,  319,  320,  319,  318,  319,  318,    0,  318,
        0,  319,    0,  320,  318,  320,  321,  320,  321,  322,
        0,  322,  320,    0,    0,    0,  321,    0,  321,  322,
      321,  322,    0,  322,  323,  321,    0,  323,  322,    0,
      324,    0,    0,    0,  323,    0,  323,    0,  323,    0,
      324,  325,  324,  323,  324,    0,    0,  326,  325,  324,
        0,  325,    0,  325,    0,  325,    0,  326,  327,  326,
      325,  326,    0,  326,    0,    0,  326,    0,  327,    0,

      327,    0,  327,  328,  327,    0,  328,  327,    0,  329,
        0,    0,    0,  328,    0,  328,    0,  328,    0,  329,
      332,  329,  328,  329,    0,    0,  333,    0,  329,    0,
      332,    0,  332,    0,  332,    0,  333,    0,  333,  332,
      333,  334,  335,    0,  333,  333,    0,    0,  334,    0,
        0,  334,  335,  334,  335,  334,  335,  336,  335,    0,
      334,  335,  337,  337,    0,  332,    0,  336,    0,  336,
      339,  336,    0,  337,    0,  337,  336,  337,  338,  337,
        0,  339,  337,  338,    0,    0,    0,    0,  338,  340,
      338,  339,  338,  339,  338,  339,    0,  338,    0,  340,

      339,  340,  341,  340,    0,    0,  340,    0,  340,    0,
      343,  343,  341,  344,  341,    0,  341,    0,    0,    0,
      343,  341,  343,  344,  343,  344,  345,  344,    0,  343,
      348,  344,  344,    0,  347,    0,  345,  347,  345,  345,
      345,    0,    0,    0,  347,  345,  347,  348,  347,    0,
        0,    0,    0,  347,    0,  349,    0,  348,  349,  348,
        0,  348,  350,  350,    0,  349,  348,  349,    0,  349,
        0,  352,    0,  350,  349,  350,    0,  350,    0,  353,
        0,  352,  350,  352,    0,  352,    0,    0,    0,  353,
      352,  353,  354,  353,    0,  354,    0,  353,  353,    0,

      355,    0,  354,  356,  354,    0,  354,    0,    0,    0,
      355,  354,  355,  356,  355,  356,    0,  356,  358,  355,
      357,  357,  356,    0,  359,    0,    0,    0,  358,    0,
      358,  357,  358,  357,  359,  357,  359,  358,  359,  360,
      357,    0,  362,  359,    0,  363,    0,    0,    0,  360,
        0,  360,  362,  360,  362,  363,  362,  363,  360,  363,
        0,  362,  364,  358,  363,  364,    0,    0,  365,    0,
        0,    0,  364,    0,  364,    0,  364,    0,  365,  366,
      365,  364,  365,    0,    0,    0,    0,  365,    0,  366,
        0,  366,    0,  366,    0,  370,  366,    0,  366,  371,

      371,  371,  371,  371,  365,  370,    0,  370,    0,  370,
        0,    0,    0,    0,  370,    0,  371,  371,  371,  371,
      371,  371,  371,  371,  372,  372,  372,  372,  372,    0,
        0,    0,  373,  373,  373,  373,  373,  372,    0,    0,
        0,  372,  372,  372,  372,  372,  372,  372,  372,  373,
      373,  373,  373,  373,  373,  373,  373,  374,    0,  379,
        0,  374,  374,  374,  374,  374,  374,  374,  374,  379,
        0,  379,    0,  379,  380,  380,    0,  379,  379,  381,
      381,    0,    0,    0,  380,    0,  380,    0,  380,    0,
      381,  382,  381,  380,  381,    0,    0,    0,    0,  381,

        0,  382,    0,  382,    0,  382,    0,  372,  384,  384,
      382,    0,  385,  385,    0,  386,    0,    0,  386,  384,
        0,  384,  385,  384,  385,  386,  385,  386,  384,  386,
      387,  385,    0,  388,  386,    0,    0,    0,    0,    0,
      387,  389,  387,  388,  387,  388,    0,  388,    0,  387,
        0,  389,  388,  389,  390,  389,    0,  389,    0,    0,
      389,  390,  391,    0,  390,    0,  390,    0,  390,    0,
        0,    0,  391,  390,  391,  392,  391,    0,  392,    0,
        0,  391,  392,    0,    0,  392,  393,  392,  393,  392,
        0,    0,  394,    0,  392,  394,  393,    0,  393,  394,

      393,    0,  394,  395,  394,  393,  394,    0,    0,    0,
        0,  394,    0,  395,  396,  395,    0,  395,    0,  395,
        0,    0,  395,    0,  396,    0,  396,    0,  396,  397,
      397,    0,  396,  396,    0,  398,    0,    0,    0,  397,
        0,  397,    0,  397,    0,  398,  399,  398,  397,  398,
        0,    0,  400,  398,  398,    0,  399,    0,  399,    0,
      399,    0,  400,  399,  400,  399,  400,  401,  405,    0,
        0,  400,    0,    0,    0,  405,    0,  401,  405,  401,
      405,  401,  405,    0,    0,  407,  401,  405,  406,  406,
        0,  406,    0,    0,    0,  407,    0,  407,  406,  407,

      406,    0,  406,  407,  407,  409,  408,  406,  408,    0,
        0,    0,    0,    0,    0,  409,  408,  409,  408,  409,
      408,  410,    0,    0,  409,  408,    0,  411,    0,    0,
      411,  410,    0,  410,    0,  410,    0,  411,  412,  411,
      410,  411,  413,    0,    0,  414,  411,    0,  412,    0,
      412,  413,  412,    0,    0,  412,    0,  412,    0,  416,
        0,  413,  414,  413,    0,  413,    0,    0,    0,  416,
      413,  416,  414,  416,  414,  417,  414,  416,  416,    0,
        0,  414,    0,  418,    0,  417,    0,  417,    0,  417,
        0,  420,    0,  418,  417,  418,    0,  418,    0,  422,

        0,  420,  418,  420,    0,  420,    0,  420,    0,  422,
      420,  422,  423,  422,    0,    0,    0,    0,  422,    0,
        0,    0,  423,    0,  423,  425,  423,    0,  426,    0,
      423,  423,  425,    0,    0,  425,  427,  425,  426,  425,
      426,  427,  426,    0,  425,    0,  427,  426,  427,  428,
      427,    0,    0,    0,    0,  427,    0,    0,    0,  428,
      431,  428,    0,  428,    0,    0,  432,    0,  428,  432,
      431,  428,  431,    0,  431,    0,  432,  433,  432,  431,
      432,    0,    0,    0,    0,  432,    0,  433,  435,  433,
        0,  433,    0,  433,    0,    0,  433,    0,  435,    0,

      435,    0,  435,  445,    0,    0,    0,  435,  440,  440,
      440,  440,  440,  445,    0,  445,    0,  445,    0,    0,
        0,    0,  445,  446,  446,  440,  440,  440,  440,  440,
      440,  440,  440,  435,  446,  447,  446,    0,  446,    0,
        0,    0,    0,  446,    0,  447,  449,  447,    0,  447,
        0,    0,  450,  447,  447,    0,  449,    0,  449,    0,
      449,    0,  450,  451,  450,  449,  450,    0,    0,  452,
      450,  450,  452,  451,    0,  451,    0,  451,    0,  452,
        0,  452,  451,  452,  453,  453,  454,    0,  452,    0,
        0,    0,    0,    0,    0,  453,  454,  453,  454,  453,

      454,  455,    0,    0,  453,  454,    0,    0,    0,    0,
        0,  455,  456,  455,  456,  455,    0,    0,  457,  455,
      455,    0,  456,    0,  456,    0,  456,    0,  457,    0,
      457,  456,  457,    0,    0,  458,  457,  457,  458,    0,
        0,  459,    0,  459,    0,  458,    0,  458,    0,  458,
        0,  459,  460,  459,  458,  459,    0,  461,  461,    0,
      459,    0,  460,    0,  460,    0,  460,    0,  461,  462,
      461,  460,  461,    0,    0,  463,    0,  461,    0,  462,
        0,  462,  463,  462,    0,  463,  464,  463,  462,  463,
        0,    0,  465,    0,  463,    0,  464,    0,  464,  465,

      464,    0,  465,  464,  465,  464,  465,  466,  466,  470,
        0,  465,    0,  470,    0,    0,    0,    0,  466,  470,
      466,  470,  466,  470,  471,    0,    0,  466,  470,    0,
      472,  471,  472,    0,  471,    0,  471,    0,  471,    0,
      472,  473,  472,  471,  472,    0,    0,  474,    0,  472,
      474,  473,    0,  473,    0,  473,    0,  474,  473,  474,
      473,  474,  475,  475,    0,    0,  474,    0,  476,  476,
        0,    0,  475,    0,  475,    0,  475,    0,  476,  477,
      476,  475,  476,    0,    0,    0,    0,  476,    0,  477,
        0,  477,    0,  477,  478,  477,    0,  478,  477,    0,

      479,    0,    0,    0,  478,    0,  478,    0,  478,    0,
      479,  482,  479,  478,  479,    0,    0,  479,    0,  479,
        0,  482,    0,  482,  485,  482,  483,  483,    0,    0,
      482,    0,    0,    0,  485,  487,  485,  483,  485,  483,
        0,  483,    0,  485,    0,  487,  483,  487,  488,  487,
        0,  488,    0,  487,  487,    0,  490,    0,  488,    0,
      488,    0,  488,    0,    0,    0,  490,  488,  490,    0,
      490,  491,  491,    0,  492,  490,  490,  493,    0,    0,
        0,  491,    0,  491,  492,  491,  492,  493,  492,  493,
      491,  493,  496,  492,    0,  497,  493,    0,    0,    0,

        0,    0,  496,    0,  496,  497,  496,  497,    0,  497,
        0,  496,  497,    0,  497,  503,  503,  503,  503,  503,
      504,    0,    0,    0,  504,  504,  504,  504,  504,  504,
      504,  504,  503,  503,  503,  503,  503,  503,  503,  503,
      508,  509,    0,    0,    0,    0,    0,    0,  509,    0,
      508,  509,  508,  509,  508,  509,  511,    0,  508,  508,
      509,    0,  512,    0,    0,  512,  511,    0,  511,    0,
      511,    0,  512,  513,  512,  511,  512,    0,    0,  514,
        0,  512,    0,  513,    0,  513,  514,  513,    0,  514,
      515,  514,  513,  514,    0,    0,  516,  515,  514,    0,

      515,    0,  515,    0,  515,    0,  516,  517,  516,  515,
      516,    0,    0,  518,    0,  516,    0,  517,    0,  517,
      518,  517,    0,  518,    0,  518,  517,  518,  519,  520,
      519,    0,  518,    0,    0,    0,    0,    0,  519,  520,
      519,  520,  519,  520,  521,    0,    0,  519,  520,  521,
      522,    0,    0,    0,  521,    0,  521,    0,  521,    0,
      522,  523,  522,  521,  522,    0,    0,    0,  522,  522,
        0,  523,  524,  523,    0,  523,    0,    0,  525,  523,
      523,    0,  524,    0,  524,    0,  524,    0,  525,  526,
      525,  524,  525,    0,    0,  530,    0,  525,    0,  526,

        0,  526,  530,  526,    0,  530,  531,  530,  526,  530,
        0,    0,    0,    0,  530,    0,  531,  532,  531,    0,
      531,    0,    0,  533,  531,  531,    0,  532,    0,  532,
        0,  532,    0,  533,  534,  533,  532,  533,    0,    0,
      535,    0,  533,  535,  534,    0,  534,    0,  534,    0,
      535,  534,  535,  534,  535,  536,  537,    0,    0,  535,
        0,    0,    0,    0,    0,  536,  537,  536,  537,  536,
      537,  538,  538,  536,  536,  537,    0,  539,    0,    0,
        0,  538,    0,  538,    0,  538,    0,  539,  542,  539,
      538,  539,    0,    0,  544,    0,  539,    0,  542,    0,

      542,    0,  542,    0,  544,  546,  544,  542,  544,    0,
        0,  547,    0,  544,    0,  546,    0,  546,    0,  546,
        0,  547,  539,  547,  546,  547,  549,    0,    0,  549,
      547,    0,  550,    0,    0,  550,  549,    0,  549,    0,
      549,    0,  550,    0,  550,  549,  550,  553,  553,  564,
      564,  550,  559,  559,  559,  559,  559,    0,  553,  564,
      553,  564,  553,  564,    0,    0,    0,  553,  564,  559,
      559,  559,  559,  559,  559,  559,  559,  563,  566,    0,
        0,    0,    0,    0,  563,    0,    0,  563,  566,  563,
      566,  563,  566,  567,  566,    0,  563,  566,    0,    0,

        0,    0,    0,  567,  568,  567,    0,  567,    0,    0,
      569,  567,  567,    0,  568,    0,  568,    0,  568,    0,
      569,  570,  569,  568,  569,  572,    0,  571,    0,  569,
        0,  570,    0,  570,  570,  570,    0,  571,    0,  571,
      570,  571,  572,    0,    0,  573,  571,    0,  573,    0,
        0,    0,  572,  574,  572,  573,  572,  573,    0,  573,
        0,  572,    0,  574,  573,  574,  575,  574,    0,  576,
        0,    0,  574,  575,    0,    0,  575,    0,  575,  576,
      575,  576,    0,  576,  581,  575,    0,  581,  576,    0,
      582,    0,    0,    0,  581,    0,  581,    0,  581,    0,

      582,  583,  582,  581,  582,    0,    0,  584,    0,  582,
        0,  583,    0,  583,    0,  583,    0,  584,  585,  584,
      583,  584,    0,    0,  586,  585,  584,    0,  585,  594,
      585,    0,  585,    0,  586,  590,  586,  585,  586,    0,
        0,    0,  586,  586,    0,  590,  594,  590,    0,  590,
        0,    0,  595,    0,  590,    0,  594,    0,  594,    0,
      594,    0,  595,  598,  595,  594,  595,    0,    0,    0,
        0,  595,    0,  598,    0,  598,    0,  598,  608,    0,
        0,    0,  598,  603,  603,  603,  603,  603,  608,    0,
      608,  608,  608,    0,    0,    0,    0,  608,    0,    0,

      603,  603,  603,  603,  603,  603,  603,  603,  604,  604,
      604,  604,  604,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,  609,  611,  604,  604,  604,  604,  604,
      604,  604,  604,  609,  611,  609,  611,  609,  611,  612,
        0,    0,  609,  611,    0,  613,    0,    0,  613,  612,
        0,  612,    0,  612,    0,  613,  612,  613,  612,  613,
      614,  615,    0,    0,  613,  614,    0,    0,    0,    0,
      614,  615,  614,  615,  614,  615,  617,    0,  617,  614,
      615,    0,  618,    0,    0,    0,  617,    0,  617,    0,
      617,  604,  618,  623,  618,  617,  618,    0,    0,    0,

        0,  618,    0,  623,  624,  623,    0,  623,    0,  623,
        0,    0,  623,    0,  624,  625,  624,  624,  624,    0,
        0,  635,  625,  624,    0,  625,    0,  625,    0,  625,
        0,  635,  645,  635,  625,  635,    0,    0,  646,    0,
      635,    0,  645,    0,  645,    0,  645,    0,  646,    0,
      646,  645,  646,  647,  648,  647,    0,  646,    0,    0,
        0,    0,    0,  647,  648,  647,  648,  647,  648,  649,
      651,    0,  647,  648,    0,    0,    0,    0,    0,  649,
      651,  649,  651,  649,  651,  652,  649,    0,  649,  651,
        0,  656,  652,    0,    0,  652,    0,  652,    0,  652,

        0,  656,  657,  656,  652,  656,    0,    0,    0,    0,
      656,    0,  657,  658,  657,    0,  657,    0,    0,  674,
        0,  657,    0,  658,    0,  658,  658,  658,    0,  674,
      675,  674,  658,  674,    0,    0,  676,    0,  674,    0,
      675,    0,  675,    0,  675,    0,  676,  678,  676,  675,
      676,    0,    0,    0,    0,  676,    0,  678,  682,  678,
        0,  678,    0,    0,  683,  678,  678,    0,  682,    0,
      682,    0,  682,    0,  683,  682,  683,  682,  683,  699,
      703,    0,    0,  683,    0,    0,    0,    0,    0,  699,
      703,  699,  703,  699,  703,  704,  719,    0,  699,  703,

        0,    0,  699,    0,    0,  704,  719,  704,  719,  704,
      719,    0,    0,    0,  704,  719,  769,  769,  769,  769,
      769,  769,  769,  769,  769,  769,  769,  769,  770,  770,
      770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
      771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
      771,  771,  772,  772,  772,  772,  772,  772,  772,  772,
      772,  772,  772,  772,  773,  773,  773,  773,  773,  773,
      773,  773,  773,  773,  773,  773,  774,  774,  774,  774,
        0,  774,  774,  774,  774,  774,  774,  774,  775,  775,
      775,    0,  775,    0,  775,  776,  776,    0,  776,  776,

      777,  777,    0,    0,  777,  777,    0,  777,  777,  777,
      777,  777,  778,  778,  778,  778,    0,  778,  778,  778,
      778,  778,  778,  778,  779,  779,  779,  779,  779,  779,
      779,  779,    0,  779,  779,  780,    0,    0,    0,  780,
      780,  780,  780,  780,  780,  780,  781,    0,    0,    0,
      781,  781,  781,  781,  781,  781,  781,  782,  782,    0,
      782,  782,  783,  783,    0,  783,  784,  784,    0,  784,
      784,  785,  785,    0,  785,  785,  786,    0,  786,  786,
      787,  787,    0,  787,  787,  788,    0,  788,  788,  789,
        0,  789,  789,  790,    0,  790,  791,    0,  791,  791,

      792,    0,  792,  792,  793,  793,  793,  793,  793,  793,
      793,  793,  793,  793,  793,  793,  794,  794,    0,  794,
      794,  795,  795,    0,  795,  795,  795,  795,  795,  795,
      795,  795,  795,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,

      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
      768,  768
    } ;

/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[143] =
    {   0,
0, 1, 0, 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[142] =
    {   0,
       98,  100,  101,  103,  106,  109,  115,  118,  120,  121,
      122,  125,  127,  128,  129,  141,  148,  155,  161,  170,
      178,  186,  187,  189,  208,  214,  215,  216,  217,  218,
      221,  227,  234,  241,  248,  255,  262,  263,  264,  272,
      273,  274,  280,  281,  286,  287,  288,  289,  290,  291,
      292,  293,  294,  295,  296,  305,  306,  307,  308,  309,
      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,  349,  350,  351,  352,  353,  354,

      355,  356,  357,  358,  359,  360,  361,  362,  363,  364,
      365,  366,  367,  372,  373,  378,  379,  380,  383,  388,
      394,  402,  412,  417,  419,  420,  424,  429,  434,  440,
      441,  443,  449,  462,  465,  490,  534,  535,  537,  539,
      550
    } ;

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_lexer_extended_values = 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 2134 "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
#define extended_values 8

#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 96 "asn1p_l.l"


#line 2397 "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 >= 769 )
					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 != 768 );

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 < 142 )
				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
				         (long)yy_rule_linenum[yy_act], asn1p_text );
			else if ( yy_act == 142 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         asn1p_text );
			else if ( yy_act == 143 )
				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 98 "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 100 "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 101 "asn1p_l.l"
yy_push_state(idash_comment);	/* Incorrect, but acceptable */
	YY_BREAK

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

case 5:
YY_RULE_SETUP
#line 106 "asn1p_l.l"
asn1p_as_pointer = 1;
	YY_BREAK

case 6:
YY_RULE_SETUP
#line 109 "asn1p_l.l"
{
        yy_pop_state();
        return TOK_ExtValue_BIT_STRING;
    }
	YY_BREAK

case 7:
YY_RULE_SETUP
#line 115 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
#line 118 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 120 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 121 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 122 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 12:
YY_RULE_SETUP
#line 125 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 13:
/* rule 13 can match eol */
YY_RULE_SETUP
#line 127 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 128 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 129 "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 16:
YY_RULE_SETUP
#line 141 "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 17:
YY_RULE_SETUP
#line 148 "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 18:
/* rule 18 can match eol */
YY_RULE_SETUP
#line 155 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 161 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser synchronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 170 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK

case 21:
/* rule 21 can match eol */
YY_RULE_SETUP
#line 178 "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 22:
YY_RULE_SETUP
#line 186 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng-1); }	/* Add a single quote */
	YY_BREAK
case 23:
/* rule 23 can match eol */
YY_RULE_SETUP
#line 187 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng); }
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 189 "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 25:
YY_RULE_SETUP
#line 208 "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 26:
YY_RULE_SETUP
#line 214 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 215 "asn1p_l.l"

	YY_BREAK
case 28:
YY_RULE_SETUP
#line 216 "asn1p_l.l"

	YY_BREAK
case 29:
YY_RULE_SETUP
#line 217 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 30:
/* rule 30 can match eol */
YY_RULE_SETUP
#line 218 "asn1p_l.l"

	YY_BREAK

case 31:
/* rule 31 can match eol */
YY_RULE_SETUP
#line 221 "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 32:
/* rule 32 can match eol */
YY_RULE_SETUP
#line 227 "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 33:
YY_RULE_SETUP
#line 234 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 241 "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 248 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 255 "asn1p_l.l"
{
		asn1p_lval.a_dbl = _lex_atod(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_realnumber;
	}
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 262 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 263 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 264 "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 40:
YY_RULE_SETUP
#line 272 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 273 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 274 "asn1p_l.l"
{
        if(asn1p_lexer_extended_values) {
            yy_push_state(extended_values);
        }
        return TOK_BEGIN;
    }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 280 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 281 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 286 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 287 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 288 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 289 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 290 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 293 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 294 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 295 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 296 "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 56:
YY_RULE_SETUP
#line 305 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 306 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 307 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 308 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
{
		    if(YYSTATE == extended_values) {
                yy_pop_state();
            }
            return TOK_END;
        }
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 320 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 321 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 322 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 323 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 324 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 325 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 326 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 327 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 338 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 339 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 340 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 341 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 343 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 344 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 345 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 346 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 347 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 348 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 349 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 350 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 351 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 352 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 353 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 354 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 355 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 356 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 357 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 358 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 359 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 360 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 361 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 362 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 363 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 364 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 365 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 366 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 367 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 372 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 373 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 378 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 379 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 380 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 383 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 388 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 394 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 122:
YY_RULE_SETUP
#line 402 "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 123:
YY_RULE_SETUP
#line 412 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typereference;
	}
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 417 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 419 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 420 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK

case 127:
YY_RULE_SETUP
#line 424 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 429 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 434 "asn1p_l.l"
{
				yy_push_state(with_syntax);
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 440 "asn1p_l.l"
return '[';
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 441 "asn1p_l.l"
return ']';
	YY_BREAK
case 132:
/* rule 132 can match eol */
YY_RULE_SETUP
#line 443 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_whitespace;
			}
	YY_BREAK
case 133:
YY_RULE_SETUP
#line 449 "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 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 462 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 135:
/* rule 135 can match eol */
YY_RULE_SETUP
#line 465 "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 136:
/* rule 136 can match eol */
YY_RULE_SETUP
#line 490 "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 137:
YY_RULE_SETUP
#line 534 "asn1p_l.l"
return TOK_VBracketLeft;
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 535 "asn1p_l.l"
return TOK_VBracketRight;
	YY_BREAK
case 139:
YY_RULE_SETUP
#line 537 "asn1p_l.l"
return asn1p_text[0];
	YY_BREAK
case 140:
/* rule 140 can match eol */
YY_RULE_SETUP
#line 539 "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 141:
YY_RULE_SETUP
#line 550 "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):
case YY_STATE_EOF(extended_values):
#line 563 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 142:
YY_RULE_SETUP
#line 570 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3545 "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 >= 769 )
				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 >= 769 )
			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 == 768);
	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 570 "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;
}


