#define yy_create_buffer asn1p__create_buffer
#define yy_delete_buffer asn1p__delete_buffer
#define yy_scan_buffer asn1p__scan_buffer
#define yy_scan_string asn1p__scan_string
#define yy_scan_bytes asn1p__scan_bytes
#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 yyout asn1p_out
#define yyrestart asn1p_restart
#define yytext asn1p_text
#define yylineno asn1p_lineno

#line 20 "asn1p_l.c"
/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header$
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif


#ifdef __cplusplus

#include <stdlib.h>
#include <unistd.h>

/* Use prototypes in function declarations. */
#define YY_USE_PROTOS

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

#else	/* ! __cplusplus */

#if __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

#endif	/* __STDC__ */
#endif	/* ! __cplusplus */

#ifdef __TURBOC__
 #pragma warn -rch
 #pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif

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


#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif

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

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

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
#define BEGIN yy_start = 1 + 2 *

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 * compatibility.
 */
#define YY_START ((yy_start - 1) / 2)
#define YYSTATE YY_START

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#define YY_BUF_SIZE 16384

typedef struct yy_buffer_state *YY_BUFFER_STATE;

extern int yyleng;
extern FILE *yyin, *yyout;

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

/* The funky do-while in the following #define is used to turn the definition
 * int a single C statement (which needs a semi-colon terminator).  This
 * avoids problems with code like:
 *
 * 	if ( condition_holds )
 *		yyless( 5 );
 *	else
 *		do_something_else();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the yyless() call.
 */

/* Return all but the first 'n' matched characters back to the input stream. */

#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
		*yy_cp = yy_hold_char; \
		YY_RESTORE_YY_MORE_OFFSET \
		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

#define unput(c) yyunput( c, yytext_ptr )

/* The following is because we cannot portably get our hands on size_t
 * (without autoconf's help, which isn't available because we want
 * flex-generated scanners to compile on their own).
 */
typedef unsigned int yy_size_t;


struct yy_buffer_state
	{
	FILE *yy_input_file;

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

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

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

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

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

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

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

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

static YY_BUFFER_STATE yy_current_buffer = 0;

/* 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".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;

static int yy_n_chars;		/* number of characters read into yy_ch_buf */


int yyleng;

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

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

void yyrestart YY_PROTO(( FILE *input_file ));

void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )

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

static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));

#define yy_new_buffer yy_create_buffer

#define yy_set_interactive(is_interactive) \
	{ \
	if ( ! yy_current_buffer ) \
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
	yy_current_buffer->yy_is_interactive = is_interactive; \
	}

#define yy_set_bol(at_bol) \
	{ \
	if ( ! yy_current_buffer ) \
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
	yy_current_buffer->yy_at_bol = at_bol; \
	}

#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)


#define YY_USES_REJECT

#define yywrap() 1
#define YY_SKIP_YYWRAP

#define FLEX_DEBUG
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;

#define FLEX_DEBUG
extern int yylineno;
int yylineno = 1;
extern char *yytext;
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up yytext.
 */
#define YY_DO_BEFORE_ACTION \
	yytext_ptr = yy_bp; \
	yyleng = (int) (yy_cp - yy_bp); \
	yy_hold_char = *yy_cp; \
	*yy_cp = '\0'; \
	yy_c_buf_p = yy_cp;

#define YY_NUM_RULES 129
#define YY_END_OF_BUFFER 130
static yyconst short int yy_acclist[1259] =
    {   0,
      130,  128,  129,  121,  128,  129,  121,  129,  122,  128,
      129,   15,  128,  129,  122,  128,  129,  128,  129,  122,
      128,  129,  128,  129,  122,  128,  129,  128,  129,   29,
      128,  129,   28,  128,  129,  122,  128,  129,  128,  129,
      116,  117,  128,  129,  116,  117,  128,  129,  116,  117,
      128,  129,  116,  117,  128,  129,  116,  117,  128,  129,
      116,  117,  128,  129,  116,  117,  128,  129,  116,  117,
      128,  129,  116,  117,  128,  129,  116,  117,  128,  129,
      116,  117,  128,  129,  116,  117,  128,  129,  116,  117,
      128,  129,  116,  117,  128,  129,  116,  117,  128,  129,

      116,  117,  128,  129,  116,  117,  128,  129,  116,  117,
      128,  129,  116,  117,  128,  129,  127,  128,  129,  115,
      128,  129,  122,  127,  128,  129,    5,  128,  129,    2,
      129,    2,  128,  129,    4,  128,  129,    7,    9,  128,
      129,    7,  129,    9,  128,  129,    9,  128,  129,   17,
      128,  129,   17,  129,   18,  128,  129,   12,  128,  129,
       12,  129,   14,  128,  129,   14,  128,  129,   10,  128,
      129,   11,  128,  129,   21,   23,  128,  129,   23,  128,
      129,   24,  129,   21,   22,   23,  128,  129,   21,   22,
       23,  128,  129,  124,  128,  129,  125,  128,  129,  125,

      129,  128,  129,  126,  128,  129,  121,   15,   15,  113,
      114,    1,   27,  120,    6,   28,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  117,  116,
      117,  116,  117,  116,  117,  116,  117,   39,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  117,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  117,  116,  117,  116,
      117,   84,  116,  117,  116,  117,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  117,  116,  117,  116,  117,

      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  117,  116,  117,  116,  117,  117,
      117,  116,  117,  115,    5,    3,    8,   17,   16,   12,
       21,   21,   22,   21,   22,  124,  125,  123,  113,  114,
       27,  119,  118,  116,  117,   31,  116,  117,   32,  116,
      117,  116,  117,  116,  117,  116,  117,   36,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
       53,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  117,  117,  116,  117,  116,

      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,   76,  116,  117,   77,  116,  117,  116,  117,  117,
      116,  117,  116,  117,  116,  117,  117,  116,  117,   87,
      116,  117,  116,  117,  116,  117,  116,  117,  117,  116,
      117,  116,  117,  116,  117,   95,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  117,  116,  117,  116,  117,  116,  117,  117,
      117,  117,  116,  117,   13,   21,   22,   20,   21,   22,
       26,   25,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,

      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  116,  117,   61,  116,  117,  117,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,   79,
      116,  117,  117,  116,  117,  116,  117,  116,  117,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  117,   92,
      116,  117,  116,  117,  116,  117,   96,  116,  117,  116,
      117,  116,  117,  116,  117,  100,  116,  117,  102,  116,
      117,  116,  117,  117,  116,  117,  116,  117,  116,  117,

      116,  117,  116,  117,  117,  117,  117,  112,  116,  117,
       21,   22,  116,  117,  116,  117,  116,  117,   35,  116,
      117,  117,  116,  117,  116,  117,  116,  117,   42,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,   60,  116,  117,
      117,  117,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  117,  116,  117,   83,  116,  117,  116,
      117,  117,  116,  117,  116,  117,  116,  117,  116,  117,

      117,  116,  117,  116,  117,  116,  117,  116,  117,  117,
      116,  117,  117,  104,  116,  117,  116,  117,  116,  117,
      117,  116,  117,  117,  117,  117,   21,   22,   30,  116,
      117,  116,  117,  116,  117,  117,  116,  117,  116,  117,
       41,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,   55,  116,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  117,  117,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  116,  117,  117,

       81,  116,  117,  116,  117,  117,  116,  117,  116,  117,
      116,  117,  116,  117,  117,  116,  117,  116,  117,   97,
      116,  117,   98,  116,  117,  117,  116,  117,  117,  105,
      116,  117,  116,  117,  117,  117,  117,  117,  117,   21,
       22,  116,  117,  116,  117,  117,   38,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,   47,  116,  117,
       48,  116,  117,  116,  117,  116,  117,   51,  116,  117,
      116,  117,  116,  117,  116,  117,   57,  116,  117,  116,
      117,  116,  117,  117,  117,  117,  116,  117,  116,  117,
       68,  116,  117,   69,  116,  117,  116,  117,  116,  117,

      116,  117,   73,  116,  117,  116,  117,  116,  117,  116,
      117,  117,  116,  117,  117,   86,  116,  117,  116,  117,
       89,  116,  117,   91,  116,  117,  117,  116,  117,  116,
      117,  117,  116,  117,  117,  116,  117,  108,  117,  117,
      117,  117,  117,   21,   22,  116,  117,  116,  117,  117,
      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
       50,  116,  117,  116,  117,  116,  117,   56,  116,  117,
      116,  117,   59,  116,  117,  117,  117,  117,  117,  116,
      117,   67,  116,  117,   70,  116,  117,   71,  116,  117,
      116,  117,  116,  117,  117,  116,  117,  117,   85,  116,

      117,  117,  116,  117,  117,  116,  117,   94,  116,  117,
      117,  116,  117,  117,  116,  117,  117,  117,  117,  117,
       21,   22,  116,  117,   34,  116,  117,   37,  117,   40,
      116,  117,   43,  116,  117,  116,  117,  116,  117,  116,
      117,  116,  117,  116,  117,  116,  117,  117,  117,  117,
       65,  117,  116,  117,  116,  117,  116,  117,  117,  116,
      117,  117,  117,  116,  117,  117,  116,  117,   99,  117,
      116,  117,  117,  106,  116,  117,  117,  117,  117,  117,
       21,  116,  117,   44,  116,  117,   45,  116,  117,   46,
      116,  117,  116,  117,  116,  117,   54,  116,  117,  116,

      117,  117,  117,  117,   66,  116,  117,  116,  117,  116,
      117,  117,  116,  117,  117,  117,  116,  117,  117,  116,
      117,  116,  117,  117,  109,  117,  117,  117,  117,   21,
       33,  116,  117,   49,  116,  117,  116,  117,  116,  117,
      117,  117,  117,  116,  117,  116,  117,  117,  116,  117,
      117,  117,  116,  117,  117,  116,  117,  116,  117,  117,
      117,  117,  117,   21,  116,  117,  116,  117,  117,  117,
      117,   72,  116,  117,   74,  116,  117,   75,  117,  116,
      117,  117,  117,  116,  117,  117,   93,  116,  117,  116,
      117,  117,  117,  117,  117,   21,  116,  117,   58,  116,

      117,   63,  117,  117,   64,  117,  116,  117,   80,  117,
      117,   88,  116,  117,  117,  116,  117,  101,  117,  117,
      117,  111,  117,   21,  116,  117,  117,   78,  116,  117,
      117,  117,  116,  117,  117,  110,  117,   21,  116,  117,
       62,  117,  117,   90,  117,  103,  116,  117,  107,  117,
       21,   52,  116,  117,   82,  117,   19,   21
    } ;

static yyconst short int yy_accept[671] =
    {   0,
        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,   28,   30,   33,   36,   39,
       41,   45,   49,   53,   57,   61,   65,   69,   73,   77,
       81,   85,   89,   93,   97,  101,  105,  109,  113,  117,
      120,  123,  127,  130,  132,  135,  138,  142,  144,  147,
      150,  153,  155,  158,  161,  163,  166,  169,  172,  175,
      179,  182,  184,  189,  194,  197,  200,  202,  204,  207,
      207,  208,  209,  210,  210,  211,  211,  212,  212,  212,
      213,  214,  215,  216,  217,  217,  219,  221,  223,  225,

      227,  229,  230,  232,  234,  236,  238,  241,  243,  245,
      247,  249,  251,  253,  255,  257,  259,  260,  261,  263,
      265,  267,  269,  271,  273,  275,  277,  278,  280,  282,
      285,  287,  288,  290,  292,  294,  296,  297,  299,  301,
      303,  305,  307,  309,  311,  313,  315,  316,  318,  320,
      321,  322,  324,  325,  326,  327,  328,  329,  330,  331,
      331,  332,  334,  336,  337,  338,  339,  339,  340,  341,
      341,  341,  342,  343,  344,  346,  349,  352,  354,  356,
      358,  361,  363,  365,  367,  369,  371,  373,  375,  377,
      379,  381,  384,  386,  388,  390,  392,  394,  396,  397,

      398,  400,  402,  404,  406,  408,  410,  412,  415,  418,
      420,  421,  423,  425,  427,  428,  430,  433,  435,  437,
      439,  440,  442,  444,  446,  449,  451,  453,  455,  457,
      459,  461,  463,  464,  466,  468,  470,  471,  472,  473,
      475,  476,  478,  481,  481,  482,  483,  485,  487,  489,
      491,  493,  495,  497,  499,  501,  503,  505,  507,  509,
      511,  513,  515,  517,  519,  521,  523,  525,  527,  530,
      531,  532,  534,  536,  538,  540,  542,  544,  546,  548,
      550,  553,  554,  556,  558,  560,  561,  563,  565,  567,
      569,  570,  573,  575,  577,  580,  582,  584,  586,  589,

      592,  594,  595,  597,  599,  601,  603,  605,  606,  607,
      608,  611,  613,  615,  617,  619,  622,  623,  625,  627,
      629,  632,  634,  636,  638,  640,  642,  644,  646,  648,
      650,  652,  654,  656,  658,  661,  662,  663,  664,  666,
      668,  670,  672,  674,  676,  678,  680,  682,  684,  685,
      687,  690,  692,  693,  695,  697,  699,  701,  702,  704,
      706,  708,  710,  711,  713,  714,  717,  719,  721,  722,
      724,  725,  726,  727,  729,  732,  734,  736,  737,  739,
      741,  744,  746,  748,  750,  752,  754,  756,  758,  760,
      762,  764,  767,  769,  771,  773,  775,  776,  777,  778,

      780,  782,  784,  786,  788,  790,  792,  794,  796,  798,
      800,  801,  804,  806,  807,  809,  811,  813,  815,  816,
      818,  820,  823,  826,  827,  829,  830,  833,  835,  836,
      837,  838,  839,  840,  842,  844,  846,  847,  850,  852,
      854,  856,  858,  861,  864,  866,  868,  871,  873,  875,
      877,  880,  882,  884,  885,  886,  887,  889,  891,  894,
      897,  899,  901,  903,  906,  908,  910,  912,  913,  915,
      916,  919,  921,  924,  927,  928,  930,  932,  933,  935,
      936,  938,  940,  941,  942,  943,  944,  946,  948,  950,
      951,  953,  955,  957,  959,  961,  964,  966,  968,  971,

      973,  976,  977,  978,  979,  980,  982,  985,  988,  991,
      993,  995,  996,  998,  999, 1002, 1003, 1005, 1006, 1008,
     1011, 1012, 1014, 1015, 1017, 1018, 1019, 1020, 1021, 1023,
     1025, 1028, 1030, 1033, 1036, 1038, 1040, 1042, 1044, 1046,
     1048, 1049, 1050, 1051, 1053, 1055, 1057, 1059, 1060, 1062,
     1063, 1064, 1066, 1067, 1069, 1071, 1073, 1074, 1077, 1078,
     1079, 1080, 1081, 1082, 1084, 1087, 1090, 1093, 1095, 1097,
     1100, 1102, 1103, 1104, 1105, 1108, 1110, 1112, 1113, 1115,
     1116, 1117, 1119, 1120, 1122, 1124, 1125, 1127, 1128, 1129,
     1130, 1131, 1134, 1137, 1139, 1141, 1142, 1143, 1144, 1146,

     1148, 1149, 1151, 1152, 1153, 1155, 1156, 1158, 1160, 1161,
     1162, 1163, 1164, 1165, 1167, 1169, 1170, 1171, 1172, 1175,
     1178, 1180, 1182, 1183, 1184, 1186, 1187, 1190, 1192, 1193,
     1194, 1195, 1196, 1197, 1199, 1202, 1204, 1205, 1207, 1209,
     1211, 1212, 1215, 1216, 1218, 1220, 1221, 1222, 1224, 1225,
     1227, 1228, 1231, 1232, 1233, 1235, 1236, 1238, 1239, 1241,
     1243, 1244, 1246, 1249, 1251, 1252, 1255, 1257, 1259, 1259
    } ;

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

       57,   58,   59,   60,   61,   62,   58,   63,   64,   65,
       66,   67,   58,   68,   69,   70,   71,   72,   58,   73,
       58,   74,   75,   76,   77,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

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

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

static yyconst short int yy_base[688] =
    {   0,
        0,    0,   75,   77,   79,   80,   81,   88,   82,   92,
      169,  246,  108,  119,  797,  777,   94,   97,  775,  774,
      316,  116, 4249,  117,  767,   99, 4249,  124,  751, 4249,
      380,  173,  191,  120,  236,  254,  269,  188,  275,  430,
      431,  447,  453,  468,  474,  490,  498,  514,  515,  762,
        0,  760,    0, 4249, 4249,  756, 4249, 4249,  753,  754,
        0,    0,  757,    0,    0,  740, 4249, 4249, 4249,    0,
     4249, 4249,  575,  651,    0,  148,  151,  256, 4249,  746,
      159,    0,  745,  743,    0,   95,    0,  325,  739, 4249,
      223,  733, 4249,  550,  715,  564,  565,  580,  593,  596,

      609,    0,  640,  643,  656,  669,  680,  696,  704,  717,
      720,  733,  748,  754,  751,  769,  673,  684,  784,  787,
      795,  810,  821,  832,  838,  849,  669,  862,  865,  878,
      886,  669,  889,  902,  913,  926,  667,  942,  948,  959,
      965,  976,  991,  992, 1007, 1008,  663, 1023, 1024,  663,
       58, 1039,    0,    0, 4249, 4249,    0, 4249,    0,  699,
        0,  681,  159,    0,  201, 4249,  706,    0,    0,  163,
      683, 1071, 4249, 4249, 1066, 1067, 1082, 1083, 1098, 1106,
     1109, 1122, 1130, 1138, 1146, 1159, 1167, 1170, 1191, 1192,
     1207, 1213, 1224, 1230, 1241, 1247, 1258, 1269,  656,  645,

     1282, 1290, 1293, 1308, 1311, 1314, 1338, 1332, 1335, 1353,
      654, 1356, 1371, 1377,  653, 1388, 1399, 1405, 1416, 1427,
      639, 1438, 1444, 1455, 1461, 1476, 1477, 1492, 1503, 1509,
     1524, 1530,  643, 1541, 1552, 1563,  627,  641,  636, 1574,
     4249,  162,  655,  640, 4249, 4249, 1585, 1591, 1602, 1608,
     1619, 1625, 1641, 1642, 1657, 1665, 1673, 1681, 1694, 1697,
     1710, 1721, 1727, 1738, 1744, 1755, 1766, 1781, 1787,  622,
      626, 1798, 1804, 1819, 1820, 1835, 1841, 1856, 1859, 1867,
     1880,  616, 1888, 1891, 1904,  622, 1912, 1928, 1927, 1944,
      600, 1945, 1960, 1973, 1981, 1984, 2002, 1999, 2005, 2020,

     2023,  598, 2026, 2041, 2044, 2052, 2065,  610,  599,  601,
     2076,  187, 2089, 2092, 2110, 2113,  582, 2116, 2133, 2136,
     2144, 2157, 2160, 2168, 2181, 2189, 2202, 2210, 2218, 2226,
     2241, 2247, 2258, 2264, 2279,  595,  585,  576, 2280, 2300,
     2297, 2318, 2317, 2333, 2339, 2350, 2361, 2372,  582, 2378,
     2389, 2395,  570, 2406, 2417, 2423, 2434,  586, 2447, 2450,
     2458, 2471,  569, 2482,  573, 2488, 2503, 2504,  564, 2519,
      556,  553,  558,  227, 2525, 2541, 2547,  556, 2558, 2564,
     2575, 2581, 2592, 2598, 2609, 2620, 2626, 2643, 2649, 2660,
     2666, 2677, 2683, 2694, 2700, 2716,  552,  559,  552, 2717,

     2732, 2738, 2749, 2755, 2770, 2776, 2787, 2802, 2808, 2819,
      557, 2830, 2836,  583, 2847, 2853, 2864, 2877,  553, 2885,
     2900, 2903, 2906,  534, 2921,  521, 2924, 2927,  536,  524,
      520,  522,  521,  539, 2942, 2955,  509, 2958, 2973, 2979,
     2990, 2996, 3007, 3013, 3024, 3035, 3041, 3052, 3058, 3069,
     3080, 3086, 3097,  105,  530,  507, 3103, 3114, 3125, 3131,
     3142, 3148, 3163, 3164, 3179, 3185, 3196,  528, 3202,  505,
     3213, 3224, 3230, 3241,  498, 3247, 3262,  493, 3268,  514,
     3284,    0,  495,  496,  473,  502,  251, 3285, 3300,  485,
     3306, 3317, 3330, 3338, 3341, 3356, 3362, 3377, 3359, 3383,

     3394,  467,  459,  461,  470, 3400, 3411, 3417, 3428, 3434,
     3445,  459, 3456,  455, 3462,  453, 3473,  463, 3484, 3490,
      458, 3501,  441, 3507,  440,  436,  453,  420,  196, 3518,
     3524,    0, 3535, 3541, 3557, 3556, 3572, 3573, 3588, 3589,
      420,  429,  416,    0, 3604, 3612, 3627,  421, 3628,  412,
      417, 3643,  422, 3651,    0, 3659,  396, 3672,  403,  418,
      390,  391,  431, 3675, 3683, 3696, 3699, 3707, 3720, 3728,
     3736,  371,  375,  343, 3744, 3752, 3760,  338, 3768,  341,
      333, 3776,  323, 3784, 3792,  331,    0,  297,  268,  274,
      295, 3800, 3808, 3816, 3824,  267,  287,  265, 3837, 3845,

      266, 3853,  254,  256, 3861,  248, 3874, 3877,  245,  238,
      243,  237,  255, 3885, 3898,  232,  227,  228, 3901, 3914,
        0, 3922,  227,  218, 3925,  222, 3942, 3943,  218,  210,
      201,  204,  217, 3958, 3959,    0,  171,    0, 3975,    0,
      162, 3976,  154, 3993,    0,  151,  149,    0,  146, 4001,
      127, 4009,  102,  105, 4017,   86,    0,   90, 4025,    0,
       40,    0, 4038,    0,   68, 4041,    0,    0, 4249, 4086,
     4097, 4108, 4119, 4130, 4141, 4152, 4162, 4164, 4174, 4185,
     4196, 4206, 4216, 4226, 4230, 4234, 4238
    } ;

static yyconst short int yy_def[688] =
    {   0,
      669,    1,  670,  670,  671,  671,  672,  672,  673,  673,
      674,  674,  675,  675,  669,  669,  669,  669,  669,  676,
      669,  677,  669,  669,  669,  669,  669,  669,  669,  669,
      669,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,  669,
      678,  669,  679,  669,  669,  669,  669,  669,  669,  669,
      680,  680,  669,  681,  681,  669,  669,  669,  669,  682,
      669,  669,  683,  683,  684,  669,  669,   21,  669,  669,
      669,  676,  676,  669,  685,  669,  686,  677,  677,  669,
      669,  669,  669,  669,  669,   31,   31,   31,   31,   31,

       31,  687,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,  687,  687,   31,   31,
       31,   31,   31,   31,   31,   31,  687,   31,   31,   31,
       31,  687,   31,   31,   31,   31,  687,   31,   31,   31,
       31,   31,   31,   31,   31,   31,  687,   31,   31,  687,
      687,   31,  678,  679,  669,  669,  680,  669,  681,  669,
      682,   74,   74,  684,  669,  669,  669,  685,  686,  669,
      669,  669,  669,  669,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,  687,  687,

       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
      687,   31,   31,   31,  687,   31,   31,   31,   31,   31,
      687,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,  687,   31,   31,   31,  687,  687,  687,   31,
      669,   74,   74,  669,  669,  669,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,  687,
      687,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,  687,   31,   31,   31,  687,   31,   31,   31,   31,
      687,   31,   31,   31,   31,   31,   31,   31,   31,   31,

       31,  687,   31,   31,   31,   31,   31,  687,  687,  687,
       31,   74,   31,   31,   31,   31,  687,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,  687,  687,  687,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,  687,   31,
       31,   31,  687,   31,   31,   31,   31,  687,   31,   31,
       31,   31,  687,   31,  687,   31,   31,   31,  687,   31,
      687,  687,  687,   74,   31,   31,   31,  687,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,  687,  687,  687,   31,

       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
      687,   31,   31,  687,   31,   31,   31,   31,  687,   31,
       31,   31,   31,  687,   31,  687,   31,   31,  687,  687,
      687,  687,  687,   74,   31,   31,  687,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,  687,  687,  687,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,  687,   31,  687,
       31,   31,   31,   31,  687,   31,   31,  687,   31,  687,
       31,  687,  687,  687,  687,  687,   74,   31,   31,  687,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,

       31,  687,  687,  687,  687,   31,   31,   31,   31,   31,
       31,  687,   31,  687,   31,  687,   31,  687,   31,   31,
      687,   31,  687,   31,  687,  687,  687,  687,   74,   31,
       31,  687,   31,   31,   31,   31,   31,   31,   31,   31,
      687,  687,  687,  687,   31,   31,   31,  687,   31,  687,
      687,   31,  687,   31,  687,   31,  687,   31,  687,  687,
      687,  687,  682,   31,   31,   31,   31,   31,   31,   31,
       31,  687,  687,  687,   31,   31,   31,  687,   31,  687,
      687,   31,  687,   31,   31,  687,  687,  687,  687,  687,
      682,   31,   31,   31,   31,  687,  687,  687,   31,   31,

      687,   31,  687,  687,   31,  687,   31,   31,  687,  687,
      687,  687,  682,   31,   31,  687,  687,  687,   31,   31,
      687,   31,  687,  687,   31,  687,   31,   31,  687,  687,
      687,  687,  682,   31,   31,  687,  687,  687,   31,  687,
      687,   31,  687,   31,  687,  687,  687,  687,  682,   31,
      687,   31,  687,  687,   31,  687,  687,  682,   31,  687,
      687,  687,   31,  687,  682,   31,  687,  682,    0,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669
    } ;

static yyconst short int yy_nxt[4327] =
    {   0,
       16,   17,   18,   17,   19,   20,   21,   22,   23,   16,
       24,   25,   26,   27,   28,   28,   28,   28,   28,   28,
       29,   19,   30,   30,   31,   32,   33,   34,   35,   36,
       37,   38,   39,   38,   38,   38,   40,   41,   42,   43,
       38,   44,   45,   46,   47,   48,   49,   38,   38,   38,
       19,   50,   51,   51,   51,   51,   51,   51,   51,   51,
       51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
       51,   51,   51,   51,   23,   52,   23,   54,   55,   54,
       55,   58,   58,   62,   65,   56,   63,   56,   59,   59,
       62,   60,   60,   63,   65,   81,   81,   81,   81,   81,

       81,   80,   66,  668,   80,   67,   80,  667,   93,   76,
       77,   76,   66,  238,   78,   67,   84,   88,   88,   88,
       76,   77,   76,   80,   80,   78,  239,   90,  665,   88,
       88,   91,   91,   91,   91,   91,   91,   94,   94,   94,
       94,   94,   94,   94,  664,   96,   86,  502,  111,  165,
      165,  165,  165,  165,  165,   96,   68,   96,   69,   96,
       81,   81,   81,  662,   96,  503,   68,  661,   69,   70,
       71,   72,   71,   70,   70,   70,   70,   70,   70,   70,
       70,   70,   30,  660,   79,  242,  243,  658,  245,   70,
       70,   70,   70,   30,  246,   79,  162,   74,   96,  162,

      312,  103,  165,  165,  165,  104,  563,  657,   96,  105,
       96,  106,   96,   96,  374,  656,   96,   96,  654,   70,
       70,  107,  108,   96,  162,   96,  109,   96,   96,  110,
       96,  653,   96,  162,  651,   96,  172,  172,  172,  172,
      172,  172,  172,   71,   70,   71,   70,   71,   72,   71,
       70,   70,   70,   70,   70,   70,   70,   70,   70,  434,
      649,   96,  648,  669,  162,  647,   70,   70,   70,   70,
      646,   96,  112,  113,   74,   96,  645,  669,  115,   96,
       96,  529,  643,  114,  641,  640,  638,  637,  162,   96,
      636,   96,  633,   96,   96,  116,   70,   70,   96,  119,

       96,  632,  120,  631,   96,  630,   96,  669,   96,  629,
       96,  121,  122,   96,   96,  626,  624,  123,  623,   96,
       71,   70,   71,   80,  621,  117,   88,   88,   88,  618,
      617,  616,  170,  613,  612,  611,  118,   84,   88,   88,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,  610,   86,   87,   87,
       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
       96,  609,  606,   96,   96,   96,   96,   96,   96,   96,

      604,  603,  601,  598,   96,   97,   96,   96,   96,   96,
       96,   96,   96,   96,   96,   98,   96,   99,   96,  100,
       96,   96,   96,   96,  101,   96,   96,   96,   96,   96,
      597,  596,  102,  102,  102,  102,  102,  102,  102,  102,
      102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
      102,  102,  102,  102,  124,   96,   96,  591,  590,  589,
      588,  587,  125,  586,  583,   96,   96,   96,   96,   96,
       96,  581,  128,  129,   96,  126,  130,  133,   96,  580,
      134,  578,   96,  574,   96,  573,  131,  572,  135,  562,
       96,   96,   96,   96,  136,  561,  138,   96,  560,   96,

      132,  127,  139,   96,  559,   96,  140,   96,  143,   96,
      557,   96,   96,   96,  144,   96,  555,  141,   96,  553,
      137,  551,  142,   96,  550,   96,  548,   96,  544,   96,
      543,  145,  542,   96,   96,  148,  541,   96,  146,   96,
       96,  149,   96,  532,  528,  527,  147,  152,  526,   96,
       96,   96,   96,   96,   96,  525,  523,  521,   96,   96,
      518,  516,  150,   94,   94,   94,   94,   94,   94,   94,
      514,  505,  504,  490,  151,  161,  487,  486,  485,  161,
      161,  161,  161,  161,  161,  161,  161,  161,  484,   96,
       96,  483,  482,  480,  478,  161,  161,  161,  161,   96,

       96,   96,   96,   96,   96,   96,  475,  175,   96,   96,
      470,  468,  456,  455,  454,  176,  437,   96,   96,   96,
      433,   96,  432,  431,   96,  161,  161,  429,   96,  426,
       96,   96,   96,   96,   96,  178,  424,   96,  419,  414,
       96,  177,  411,  399,   96,  398,   96,  397,   96,  378,
      161,  161,  179,   96,  373,  161,  161,  161,  161,  161,
      161,  161,  161,  161,  372,   96,  371,  365,   96,  358,
      180,  161,  161,  161,  161,   96,  353,   96,   96,   96,
       96,   96,   96,  349,   96,  337,  181,   96,  163,  336,
      166,   96,  162,   96,   96,  182,  310,  309,  308,  302,

       96,  161,  161,  291,   96,   96,   96,  183,   96,  286,
      282,  271,  270,   96,  246,   96,  244,   96,  162,   96,
      184,   96,  241,  237,   96,  233,  161,  221,  186,   96,
      215,   96,  211,   96,  185,   96,  200,  199,  174,   96,
       96,   96,   96,   96,  173,   96,  171,  167,   96,  189,
      166,  166,   96,  187,  188,   96,   96,   96,  190,   96,
      160,   96,  158,   93,   96,  156,  155,   80,   96,   80,
       96,   95,   96,   96,  191,  192,   96,   96,   92,   96,
      194,   83,   80,   96,   80,   96,  197,   96,   96,   96,
       96,   96,  193,  195,   96,   96,  669,  196,   96,  669,

      669,  201,  669,  669,   96,  669,   96,  198,   96,   96,
      669,  669,   96,   96,  669,  202,  669,  669,  669,   96,
       96,   96,   96,   96,   96,  669,   96,  669,   96,  669,
       96,   96,   96,  669,  203,   96,  204,  669,  669,   96,
      669,  669,  669,  669,  669,   96,   96,   96,  669,   96,
      669,  669,  205,  206,   96,  669,   96,   96,   96,  207,
       96,  669,  669,   96,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,   96,  209,   96,   96,  669,  208,
      669,  669,   96,  669,  210,  669,   96,   96,   96,  669,
       96,  669,  669,   96,  669,  212,  669,   96,  669,   96,

       96,   96,   96,   96,   96,  669,   96,  669,  213,   96,
      669,   96,  669,   96,   96,   96,  669,   96,  669,  669,
      669,   96,   96,   96,   96,   96,   96,   96,   96,  214,
       96,  669,  216,   96,  669,  669,  669,   96,   96,   96,
      669,   96,  669,  669,  669,  669,   96,  217,   96,  669,
       96,   96,   96,  669,  219,  669,  669,  218,  220,  669,
      669,   96,  669,   96,  669,   96,  222,   96,  669,  669,
       96,  669,  669,   96,  669,  669,  669,  223,  669,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  224,  669,
       96,  225,   96,  669,   96,  669,   96,  669,   96,  669,

       96,   96,   96,   96,   96,  229,  227,  669,  226,   96,
      669,   96,  669,  228,  669,   96,   96,   96,  669,  669,
       96,  669,  230,  669,  669,  669,   96,   96,   96,   96,
       96,   96,   96,   96,  669,   96,   96,  669,  669,  669,
      669,  669,   96,   96,   96,   96,   96,  232,   96,   96,
      235,  231,   96,  236,  669,  234,  669,  669,   96,   96,
       96,   96,   96,   96,   96,  669,  669,   96,   96,  669,
      669,  669,  669,  669,   96,  669,   96,  669,   96,  669,
      669,  669,  240,   96,  172,  172,  172,  172,  172,  172,
      172,   96,   96,  669,  247,  669,  669,  669,  669,  669,

      669,   96,   96,   96,   96,   96,   96,   96,   96,  669,
       96,   96,  669,  669,  669,  669,  669,   96,  248,   96,
       96,   96,   96,   96,  669,  669,   96,   96,  669,  669,
      669,   96,  669,   96,   96,   96,  249,   96,  250,  669,
      669,   96,   96,   96,   96,   96,   96,   96,   96,  669,
       96,  669,  669,   96,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,  251,  252,   96,   96,  669,   96,
      669,   96,  669,   96,   96,   96,  669,   96,  254,  253,
      669,   96,   96,   96,   96,   96,  669,  669,  669,  669,
       96,  669,   96,  669,   96,   96,   96,  669,   96,  669,

      669,  255,   96,   96,   96,   96,  256,   96,  669,   96,
      669,   96,  257,  258,   96,  259,   96,   96,  669,  669,
      261,  669,  669,  260,  669,  669,   96,   96,   96,   96,
       96,   96,   96,  669,  669,   96,   96,  669,   96,  669,
      669,  669,   96,  669,   96,  262,   96,  669,   96,   96,
       96,   96,   96,  669,  669,   96,  669,   96,  264,   96,
      263,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  669,   96,  669,   96,  267,  265,  669,   96,  266,
       96,  669,   96,   96,   96,   96,   96,  669,  669,  669,
      669,   96,  669,   96,   96,   96,  669,   96,  669,  669,

      268,  669,   96,  669,   96,  269,   96,   96,   96,  669,
      669,  669,  669,   96,  669,   96,  669,   96,   96,   96,
      669,   96,  669,  669,  272,   96,   96,  273,  274,   96,
       96,  275,   96,   96,   96,  669,   96,   96,  669,   96,
      669,  669,  278,  276,  669,   96,   96,   96,   96,   96,
       96,   96,   96,   96,  277,   96,  279,   96,   96,  669,
       96,  669,  669,   96,  669,  669,  669,   96,  669,   96,
       96,   96,   96,   96,   96,   96,   96,   96,   96,  280,
      669,   96,   96,  669,  283,  669,  669,  669,  281,  669,
       96,   96,   96,   96,  669,   96,   96,   96,  669,  284,

       96,  669,   96,  669,  669,  669,   96,  669,   96,  285,
       96,  669,   96,   96,   96,   96,   96,  669,  669,  669,
      669,   96,  669,   96,   96,   96,  669,   96,  669,  669,
       96,  287,   96,  669,   96,  669,   96,  669,   96,  669,
       96,   96,   96,   96,   96,  669,  669,  288,  669,   96,
      669,   96,   96,   96,  669,   96,  669,  669,  289,  669,
       96,  669,   96,   96,   96,  669,   96,  669,  293,   96,
      669,   96,  290,  292,  669,   96,  669,   96,  669,   96,
       96,   96,   96,   96,  669,  669,   96,  669,   96,  669,
       96,  669,   96,  669,   96,  669,   96,  669,   96,  294,

       96,   96,   96,  669,  295,   96,  669,  669,  669,  296,
      669,   96,   96,   96,   96,   96,   96,   96,  669,  669,
       96,   96,  669,  669,  669,  669,  669,   96,   96,   96,
      669,   96,  669,  669,   96,  297,   96,  669,   96,  669,
       96,  669,   96,  669,   96,  298,   96,   96,   96,   96,
      669,  299,  300,   96,  669,   96,  669,  669,  301,   96,
      669,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  669,  669,  669,   96,  669,   96,   96,   96,  303,
       96,  304,  307,  669,  669,   96,  305,   96,   96,   96,
      669,   96,  669,  669,  669,  306,   96,  669,   96,   96,

       96,  669,   96,  669,  669,  311,  669,   96,  669,   96,
       96,   96,  669,   96,  669,  669,   96,  669,   96,  669,
       96,  669,  313,  314,   96,  669,   96,   96,   96,   96,
       96,  669,  669,   96,  669,   96,  669,   96,  315,   96,
      669,   96,  669,   96,   96,  316,   96,   96,  669,  669,
       96,  669,   96,  318,   96,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,  319,   96,   96,  320,   96,
      669,  669,  669,  669,  669,  669,   96,   96,   96,   96,
       96,   96,   96,  669,  669,   96,   96,  669,  317,  669,
       96,  669,   96,  669,   96,  669,   96,  669,   96,  321,

       96,   96,   96,  322,   96,  324,   96,  669,   96,   96,
       96,  669,   96,  669,  323,  669,   96,   96,   96,   96,
       96,  669,   96,  669,  669,   96,  669,  669,  669,   96,
      669,   96,   96,   96,  326,   96,   96,  327,  325,  669,
      669,   96,  669,  669,  669,   96,   96,   96,  328,   96,
      669,  669,   96,  669,   96,  329,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  669,   96,
      669,   96,  669,   96,  669,   96,  331,  330,  669,   96,
       96,   96,   96,   96,  669,  669,  669,  669,   96,  669,
       96,   96,   96,  669,   96,  669,  332,  669,  669,   96,

      669,   96,  669,  333,  669,   96,   96,  334,  669,  335,
       96,  669,   96,  669,  669,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  669,   96,
      669,   96,  669,   96,  669,   96,  669,   96,  669,   96,
      669,   96,   96,   96,   96,   96,  669,  339,   96,  669,
      669,  340,  669,  669,   96,   96,   96,   96,   96,   96,
       96,  341,  669,   96,   96,  343,   96,  338,  669,  669,
       96,  669,   96,  669,   96,  347,   96,  669,   96,  342,
       96,   96,  344,  669,   96,   96,  345,  669,  669,  669,
      669,   96,   96,   96,   96,   96,   96,  346,   96,  669,

       96,  669,   96,   96,   96,   96,   96,  669,  669,  348,
      669,   96,  669,   96,  350,   96,   96,   96,  669,   96,
      669,  669,  669,   96,   96,   96,   96,   96,   96,   96,
       96,  669,   96,  669,  351,   96,  669,   96,  355,   96,
      354,   96,  352,   96,  669,  669,  669,   96,   96,   96,
      669,   96,   96,   96,  669,  356,   96,  669,  669,  669,
      669,  669,   96,   96,   96,   96,   96,   96,  357,   96,
       96,   96,   96,  669,  669,  669,  669,  669,  669,   96,
       96,   96,   96,   96,   96,   96,  669,  669,   96,   96,
      669,  669,  669,  669,  669,   96,  669,   96,   96,   96,

      669,  360,  669,  359,   96,  669,   96,  669,   96,   96,
       96,  669,   96,  669,  669,  669,   96,   96,   96,   96,
       96,  361,  669,   96,   96,   96,  362,   96,   96,  669,
       96,  669,  669,  364,   96,  669,   96,   96,   96,   96,
       96,   96,   96,   96,   96,   96,   96,  669,   96,   96,
      669,   96,  669,  669,  669,   96,  669,   96,   96,   96,
       96,   96,   96,  366,   96,   96,   96,   96,  363,   96,
       96,  669,  368,  669,  669,  669,   96,   96,   96,   96,
       96,   96,  669,   96,  669,  367,  669,   96,   96,   96,
       96,   96,  669,  669,  669,  669,   96,  669,  669,  669,

       96,   96,   96,  669,   96,  669,  669,  370,  669,   96,
      669,   96,  369,   96,   96,   96,  669,   96,  376,  669,
       96,  669,  669,  669,   96,  669,   96,   96,   96,   96,
      669,   96,  375,   96,  377,   96,   96,  669,   96,  669,
      379,   96,  669,  669,  669,   96,  669,   96,   96,   96,
       96,   96,   96,   96,   96,   96,  669,   96,   96,  380,
       96,   96,  669,  669,  381,  669,  669,  669,   96,   96,
       96,   96,   96,   96,  669,   96,  669,   96,  669,   96,
       96,   96,   96,   96,  383,   96,  669,  669,   96,  669,
      669,  669,   96,   96,  382,   96,   96,   96,  669,   96,

      384,   96,  669,   96,   96,   96,   96,   96,  669,  669,
      669,  669,   96,  669,   96,  669,  385,  386,   96,  669,
       96,  387,  669,  669,   96,   96,   96,   96,   96,  388,
      669,  669,  669,   96,  669,   96,  669,   96,  389,   96,
      669,   96,  390,   96,  669,   96,   96,   96,  669,   96,
      669,   96,  669,   96,   96,   96,  669,   96,  669,  391,
      669,   96,   96,   96,  669,   96,   96,  393,  669,  392,
       96,  669,   96,  669,  669,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  669,   96,
      394,   96,  669,   96,  669,   96,  669,   96,  669,   96,

      395,  396,   96,   96,   96,   96,  669,  669,   96,  669,
      669,  669,  400,  669,   96,   96,   96,   96,   96,   96,
      669,  669,   96,   96,   96,   96,  401,  669,  402,  669,
      669,  669,   96,  669,   96,   96,   96,   96,  669,   96,
      403,   96,   96,   96,   96,  404,  669,  669,  669,  669,
      669,  669,   96,   96,  405,   96,   96,   96,   96,  669,
      669,   96,   96,  669,   96,  669,  669,  407,   96,  669,
       96,  669,   96,  669,   96,   96,   96,  406,   96,  409,
      669,  669,  410,   96,  669,   96,   96,   96,  669,   96,
      669,  669,  408,  669,   96,  669,   96,   96,   96,  669,

       96,  669,  669,   96,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  669,  669,
       96,  412,   96,  669,   96,  669,   96,  669,   96,  669,
       96,   96,  413,   96,   96,  669,  669,  669,  669,   96,
      669,   96,   96,   96,  669,   96,  669,  415,   96,  416,
       96,  669,   96,  669,   96,  669,   96,  669,   96,   96,
      417,   96,   96,  669,  669,  669,  669,   96,  669,   96,
      669,   96,   96,   96,  669,   96,  669,  418,   96,  420,
      669,  669,   96,   96,   96,   96,   96,  421,  422,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  669,  669,

      669,  669,   96,  669,  669,  669,   96,   96,   96,  669,
       96,  669,  669,   96,  425,   96,  669,   96,  423,   96,
      669,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  427,   96,  669,  669,  669,  669,  669,   96,   96,
       96,   96,   96,   96,   96,  428,  669,   96,   96,  669,
       96,  669,  669,  669,   96,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,  435,   96,  669,  669,   96,
      669,  669,   96,  669,  669,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  430,   96,
      436,   96,  669,   96,  669,  438,  669,   96,  669,   96,

       96,   96,   96,   96,  669,  669,   96,  439,   96,  440,
       96,  669,   96,  669,   96,  669,   96,   96,   96,   96,
       96,  669,  669,   96,  441,   96,  669,   96,  669,   96,
      669,   96,  669,   96,   96,  442,   96,   96,  669,  669,
      669,  669,   96,  669,   96,   96,   96,  444,   96,  669,
      669,   96,  443,   96,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,   96,   96,  669,  669,   96,  445,
       96,  446,  669,  669,   96,  669,  447,  669,   96,  669,
       96,  669,   96,  669,   96,   96,   96,   96,   96,  669,
      449,   96,  669,   96,  669,   96,  669,  448,  669,   96,

      669,   96,   96,   96,   96,   96,  669,  669,   96,  669,
       96,  669,   96,  669,   96,  450,   96,  669,   96,   96,
       96,   96,   96,  669,  669,   96,  669,   96,  669,   96,
      669,   96,  452,   96,  669,   96,  451,   96,   96,   96,
      453,   96,   96,  669,   96,  669,  457,  669,  669,  669,
      669,   96,   96,   96,   96,   96,   96,   96,  669,  669,
       96,   96,  669,   96,  458,  459,  669,   96,  669,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  669,  669,
       96,  669,   96,  461,   96,  669,   96,  669,   96,  669,
       96,  460,   96,   96,   96,   96,  462,  669,  669,   96,

      669,   96,  463,  669,  669,   96,  669,   96,  669,   96,
      669,   96,   96,   96,   96,   96,  669,  669,  669,  669,
       96,  669,   96,  669,   96,  669,   96,   96,  464,  669,
      465,   96,  669,   96,  669,  669,  669,   96,  669,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  669,  669,
      466,  467,   96,  669,   96,   96,   96,  669,   96,  669,
      469,   96,  669,   96,  669,   96,  669,   96,  669,   96,
      669,   96,   96,   96,   96,   96,  669,  669,   96,  669,
       96,  669,   96,  669,  471,  669,   96,  669,   96,   96,
      472,   96,   96,  669,  669,  669,  669,   96,  669,   96,

      669,   96,   96,   96,  669,  474,  669,  473,   96,  669,
       96,  669,   96,  669,   96,  669,   96,  669,  669,  669,
       96,   96,   96,  669,   96,   96,  477,  669,   96,   96,
      476,   96,  669,  669,  669,   96,  669,   96,   96,   96,
       96,   96,   96,   96,   96,   96,   96,   96,  479,   96,
       96,  669,   96,  669,  669,  669,   96,  669,   96,   96,
       96,   96,   96,   96,   96,   96,   96,   96,   96,  481,
      669,   96,  669,  669,  669,  669,  669,   96,  669,   96,
       96,   96,  669,   96,  669,  488,   96,  489,  669,  669,
       96,  669,   96,   96,   96,   96,  669,   96,   96,   96,

      669,  491,   96,  669,   96,  669,  669,  669,   96,  669,
       96,  669,   96,  669,   96,   96,  492,   96,   96,  669,
      669,   96,  669,   96,  669,   96,  669,  493,  494,   96,
      669,   96,   96,   96,   96,   96,  669,  669,   96,  669,
       96,  669,   96,  669,   96,  669,   96,  669,   96,   96,
       96,   96,   96,  669,  669,  669,  495,   96,  669,   96,
       96,   96,  496,   96,  669,  669,   96,  669,   96,  669,
       96,  669,   96,  669,   96,  669,   96,   96,   96,   96,
       96,  669,  497,   96,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,   96,   96,   96,   96,  669,  669,

      669,  498,   96,  669,   96,   96,   96,  669,   96,  669,
      669,  500,  499,   96,  669,   96,  669,   96,  669,   96,
      669,   96,   96,   96,   96,   96,  669,  669,   96,  669,
       96,  669,  501,  669,   96,  506,   96,  669,   96,   96,
       96,   96,   96,  669,  669,  669,  669,   96,  669,   96,
       96,   96,  669,   96,  669,  669,   96,  507,   96,  669,
       96,  669,   96,  669,   96,  669,   96,   96,   96,   96,
       96,  669,  669,   96,  669,   96,  509,   96,  669,   96,
      669,   96,  669,   96,  508,   96,   96,   96,   96,   96,
      669,  669,   96,  669,  669,  669,  669,  669,   96,   96,

       96,   96,   96,   96,   96,  511,  510,   96,   96,  669,
       96,  669,  669,  669,   96,  669,   96,  669,   96,  669,
       96,   96,   96,   96,   96,  669,  669,   96,  669,   96,
      669,   96,  669,  513,  669,   96,  669,  515,   96,   96,
       96,   96,  669,  669,  669,  669,   96,  669,   96,   96,
       96,  669,   96,  517,  512,   96,  669,   96,  669,   96,
      669,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  669,   96,  669,   96,  519,   96,  669,   96,  669,
       96,  669,   96,  669,   96,   96,   96,   96,  669,  669,
      520,   96,  669,   96,  669,  669,  522,   96,  669,   96,

      669,   96,  669,   96,  669,   96,   96,   96,  524,   96,
       96,  669,   96,  669,  669,  669,  669,  530,  669,   96,
       96,   96,   96,   96,   96,   96,  531,  669,   96,   96,
      669,   96,  669,  669,  669,   96,  669,   96,  669,   96,
      669,   96,   96,   96,   96,   96,  669,  533,  669,  669,
       96,  669,   96,  669,   96,   96,   96,  669,  535,  669,
      534,   96,  669,   96,  669,   96,   96,   96,  669,   96,
      669,  669,  538,   96,   96,  536,   96,   96,   96,  537,
       96,   96,   96,  669,   96,   96,  669,   96,  669,  669,
      669,   96,  669,   96,   96,   96,   96,   96,   96,   96,

       96,   96,   96,   96,  669,  539,   96,  669,   96,  669,
      669,  669,   96,  669,   96,  540,   96,  669,   96,   96,
       96,   96,   96,  669,  669,   96,  669,   96,  545,   96,
      669,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  669,   96,  669,   96,  669,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  669,   96,
      669,   96,  669,   96,  669,   96,  546,   96,  669,   96,
       96,   96,   96,   96,  669,  669,  669,  669,   96,  669,
       96,   96,   96,  669,   96,  549,  669,   96,  547,   96,
      669,   96,  669,   96,  554,   96,  669,   96,   96,   96,

       96,   96,  669,  669,  669,  552,   96,  669,   96,   96,
       96,  669,   96,  669,  669,   96,  669,   96,  669,   96,
      669,   96,  669,   96,  669,   96,   96,   96,   96,   96,
      669,  669,   96,  669,   96,  669,   96,  669,  556,  669,
       96,  669,  558,   96,   96,   96,   96,  669,  669,   96,
      669,   96,  669,   96,  669,   96,  564,   96,  669,   96,
       96,   96,   96,   96,  669,  669,   96,  669,   96,  669,
       96,  669,   96,  669,   96,  669,   96,  669,   96,   96,
       96,   96,   96,  565,  566,   96,  567,  669,  669,  669,
      669,   96,   96,   96,   96,   96,   96,   96,   96,  569,

       96,   96,  669,  669,  669,  669,  669,   96,   96,  568,
       96,   96,   96,   96,   96,  570,   96,   96,  669,  669,
      669,  669,  669,   96,  571,   96,   96,   96,   96,   96,
      669,  669,   96,   96,  669,  669,  669,   96,  669,   96,
      669,   96,  669,   96,  669,  575,  669,   96,   96,   96,
      576,   96,   96,   96,  669,  669,   96,  669,  669,  577,
      579,  669,   96,   96,   96,   96,   96,   96,   96,  669,
      669,   96,   96,  669,  669,  669,   96,  669,   96,  669,
      582,  669,   96,  669,   96,  669,   96,   96,   96,  584,
       96,  669,  669,  669,   96,   96,   96,   96,   96,  669,

       96,  669,  585,   96,  669,  669,  669,   96,   96,   96,
       96,   96,  592,  669,   96,  669,   96,  669,   96,   96,
       96,   96,   96,  669,   96,  669,  669,   96,  669,  669,
      669,   96,   96,   96,   96,   96,   96,  669,   96,  669,
       96,  669,   96,   96,   96,   96,   96,  669,  669,  593,
      669,   96,  669,   96,  669,   96,  669,   96,  594,   96,
      669,   96,  669,   96,   96,   96,  669,   96,  595,   96,
      669,   96,   96,   96,  669,   96,  669,   96,  669,   96,
       96,   96,  669,   96,  669,   96,  669,   96,   96,  599,
      669,   96,  669,   96,  669,   96,   96,   96,  600,   96,

      669,   96,  669,   96,   96,  602,  669,   96,  605,   96,
      669,   96,   96,   96,  669,   96,  607,   96,  669,   96,
       96,   96,  669,   96,  608,   96,  669,   96,   96,   96,
      669,   96,  669,   96,  669,   96,   96,   96,  669,   96,
      669,   96,  669,   96,   96,   96,  669,   96,  669,   96,
      669,   96,   96,  614,  669,   96,  669,  669,  669,   96,
       96,   96,   96,   96,  669,  669,  669,  615,   96,  669,
       96,  669,   96,  669,   96,  669,   96,  669,   96,  619,
       96,   96,  620,  669,   96,  622,   96,  669,   96,   96,
       96,  669,   96,  669,  669,  669,   96,   96,   96,   96,

       96,  627,   96,  669,  625,   96,  628,  669,  669,   96,
       96,   96,   96,   96,   96,  669,   96,  669,   96,  669,
       96,   96,   96,   96,   96,  669,   96,  669,  634,   96,
      669,  669,  669,   96,  669,   96,   96,   96,   96,   96,
       96,  669,   96,  669,  669,   96,  635,   96,  669,   96,
       96,   96,  669,   96,  669,  669,  669,   96,   96,   96,
       96,   96,   96,  669,   96,  639,   96,   96,   96,   96,
      669,  669,  669,  642,  669,  644,  669,   96,   96,   96,
       96,   96,   96,   96,   96,  669,   96,   96,  669,  669,
      669,  669,  669,   96,   96,   96,   96,   96,   96,  650,

       96,   96,   96,   96,  669,  669,  669,  669,  669,  669,
       96,   96,   96,   96,   96,   96,  669,  669,   96,   96,
       96,  655,  669,  652,  669,  669,   96,  669,   96,  669,
       96,  669,   96,  669,   96,  669,   96,   96,   96,  659,
       96,  669,   96,  669,   96,   96,   96,  669,   96,  669,
       96,  669,   96,   96,   96,  669,   96,  669,  663,  669,
      666,   96,   96,   96,   96,  669,   96,  669,  669,   96,
      669,  669,  669,   96,  669,   96,   96,   96,   96,  669,
       96,  669,   96,  669,  669,   96,   53,   53,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   57,   57,   57,

       57,   57,   57,   57,   57,   57,   57,   57,   61,   61,
       61,   61,   61,   61,   61,   61,   61,   61,   61,   64,
       64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
       73,   75,   75,   75,   75,   75,   75,   75,   75,   75,
       75,   75,   82,   82,   82,  669,   82,   82,   82,   82,
       82,   82,   82,   89,   89,  669,  669,   89,  669,   89,
      153,  153,  669,  153,  154,  154,  669,  154,  154,  154,
      669,  154,  154,  154,  154,  157,  157,  157,  669,  157,
      157,  157,  157,  157,  157,  157,  159,  159,  159,  159,

      159,  159,  159,  159,  669,  159,  161,  669,  669,  161,
      161,  161,  161,  161,  161,  161,  162,  669,  669,  162,
      162,  162,  162,  162,  162,  162,  164,  669,  669,  164,
      669,  164,  164,  164,  164,  164,  168,  168,  669,  168,
      169,  169,  669,  169,  102,  102,  669,  102,   15,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,

      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669
    } ;

static yyconst short int yy_chk[4327] =
    {   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,    3,    3,    4,
        4,    5,    6,    7,    9,    3,    7,    4,    5,    6,
        8,    5,    6,    8,   10,   17,   17,   17,   18,   18,

       18,   17,    9,  665,   18,    9,   26,  661,   26,   13,
       13,   13,   10,  151,   13,   10,   86,   22,   22,   22,
       14,   14,   14,   22,   24,   14,  151,   24,  658,   22,
       22,   24,   24,   24,   24,   24,   24,   28,   28,   28,
       28,   28,   28,   28,  656,   34,   86,  454,   34,   76,
       76,   76,   77,   77,   77,   34,    9,   34,    9,   34,
       81,   81,   81,  654,   34,  454,   10,  653,   10,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   13,  651,   13,  163,  163,  649,  170,   11,
       11,   11,   11,   14,  170,   14,  163,   11,   32,  242,

      242,   32,  165,  165,  165,   32,  529,  647,   32,   32,
       32,   32,   32,   38,  312,  646,   33,   32,  643,   11,
       11,   32,   33,   38,  312,   38,   33,   38,   33,   33,
       33,  641,   38,  529,  637,   33,   91,   91,   91,   91,
       91,   91,   91,   11,   11,   11,   12,   12,   12,   12,
       12,   12,   12,   12,   12,   12,   12,   12,   12,  374,
      633,   35,  632,   78,  374,  631,   12,   12,   12,   12,
      630,   35,   35,   35,   12,   35,  629,   78,   36,   36,
       35,  487,  626,   35,  624,  623,  618,  617,  487,   36,
      616,   36,  613,   36,   37,   36,   12,   12,   36,   39,

       39,  612,   39,  611,   37,  610,   37,   78,   37,  609,
       39,   39,   39,   37,   39,  606,  604,   39,  603,   39,
       12,   12,   12,   21,  601,   37,   88,   88,   88,  598,
      597,  596,   88,  591,  590,  589,   37,   21,   88,   88,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,  588,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       31,  586,  583,   31,   31,   31,   31,   31,   31,   31,

      581,  580,  578,  574,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
      573,  572,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
       31,   31,   31,   31,   40,   40,   41,  563,  562,  561,
      560,  559,   40,  557,  553,   40,   41,   40,   41,   40,
       41,  551,   42,   42,   40,   41,   42,   43,   43,  550,
       43,  548,   42,  543,   42,  542,   42,  541,   43,  528,
       43,   42,   43,   44,   43,  527,   44,   43,  526,   45,

       42,   41,   45,   44,  525,   44,   45,   44,   46,   45,
      523,   45,   44,   45,   46,   46,  521,   45,   45,  518,
       43,  516,   45,   47,  514,   46,  512,   46,  505,   46,
      504,   46,  503,   47,   46,   47,  502,   47,   46,   48,
       49,   47,   47,  490,  486,  485,   46,   49,  484,   48,
       49,   48,   49,   48,   49,  483,  480,  478,   48,   49,
      475,  470,   47,   94,   94,   94,   94,   94,   94,   94,
      468,  456,  455,  437,   48,   73,  434,  433,  432,   73,
       73,   73,   73,   73,   73,   73,   73,   73,  431,   96,
       97,  430,  429,  426,  424,   73,   73,   73,   73,   96,

       97,   96,   97,   96,   97,   98,  419,   97,   96,   97,
      414,  411,  399,  398,  397,   98,  378,   98,   99,   98,
      373,  100,  372,  371,   98,   73,   73,  369,   99,  365,
       99,  100,   99,  100,  101,  100,  363,   99,  358,  353,
      100,   99,  349,  338,  101,  337,  101,  336,  101,  317,
       73,   74,  101,  101,  310,   74,   74,   74,   74,   74,
       74,   74,   74,   74,  309,  103,  308,  302,  104,  291,
      103,   74,   74,   74,   74,  103,  286,  103,  104,  103,
      104,  105,  104,  282,  103,  271,  104,  104,   74,  270,
      244,  105,  243,  105,  106,  105,  239,  238,  237,  233,

      105,   74,   74,  221,  106,  107,  106,  106,  106,  215,
      211,  200,  199,  106,  171,  107,  167,  107,  162,  107,
      108,  108,  160,  150,  107,  147,   74,  137,  109,  109,
      132,  108,  127,  108,  108,  108,  118,  117,   95,  109,
      108,  109,  110,  109,   92,  111,   89,   84,  109,  111,
       83,   80,  110,  110,  110,  111,  110,  111,  112,  111,
       66,  110,   63,   60,  111,   59,   56,   52,  112,   50,
      112,   29,  112,  113,  113,  113,  115,  112,   25,  114,
      114,   20,   19,  113,   16,  113,  115,  113,  115,  114,
      115,  114,  113,  114,  116,  115,   15,  114,  114,    0,

        0,  119,    0,    0,  116,    0,  116,  116,  116,  119,
        0,    0,  120,  116,    0,  120,    0,    0,    0,  119,
      121,  119,  120,  119,  120,    0,  120,    0,  119,    0,
      121,  120,  121,    0,  121,  122,  122,    0,    0,  121,
        0,    0,    0,    0,    0,  122,  123,  122,    0,  122,
        0,    0,  122,  122,  122,    0,  123,  124,  123,  123,
      123,    0,    0,  125,    0,  123,    0,  124,    0,  124,
        0,  124,    0,  125,  126,  125,  124,  125,    0,  124,
        0,    0,  125,    0,  126,    0,  126,  128,  126,    0,
      129,    0,    0,  126,    0,  128,    0,  128,    0,  128,

      129,  128,  129,  130,  129,    0,  128,    0,  129,  129,
        0,  131,    0,  130,  133,  130,    0,  130,    0,    0,
        0,  131,  130,  131,  133,  131,  133,  134,  133,  131,
      131,    0,  133,  133,    0,    0,    0,  134,  135,  134,
        0,  134,    0,    0,    0,    0,  134,  134,  135,    0,
      135,  136,  135,    0,  136,    0,    0,  135,  136,    0,
        0,  136,    0,  136,    0,  136,  138,  138,    0,    0,
      136,    0,    0,  139,    0,    0,    0,  138,    0,  138,
        0,  138,    0,  139,  140,  139,  138,  139,  139,    0,
      141,  139,  139,    0,  140,    0,  140,    0,  140,    0,

      141,  142,  141,  140,  141,  143,  141,    0,  140,  141,
        0,  142,    0,  142,    0,  142,  143,  144,    0,    0,
      142,    0,  144,    0,    0,    0,  143,  144,  143,  144,
      143,  144,  145,  146,    0,  143,  144,    0,    0,    0,
        0,    0,  145,  146,  145,  146,  145,  146,  148,  149,
      149,  145,  146,  149,    0,  148,    0,    0,  148,  149,
      148,  149,  148,  149,  152,    0,    0,  148,  149,    0,
        0,    0,    0,    0,  152,    0,  152,    0,  152,    0,
        0,    0,  152,  152,  172,  172,  172,  172,  172,  172,
      172,  175,  176,    0,  175,    0,    0,    0,    0,    0,

        0,  175,  176,  175,  176,  175,  176,  177,  178,    0,
      175,  176,    0,    0,    0,    0,    0,  177,  178,  177,
      178,  177,  178,  179,    0,    0,  177,  178,    0,    0,
        0,  180,    0,  179,  181,  179,  179,  179,  180,    0,
        0,  180,  179,  180,  181,  180,  181,  182,  181,    0,
      180,    0,    0,  181,    0,  183,    0,  182,    0,  182,
        0,  182,    0,  184,  182,  183,  182,  183,    0,  183,
        0,  185,    0,  184,  183,  184,    0,  184,  185,  184,
        0,  185,  184,  185,  186,  185,    0,    0,    0,    0,
      185,    0,  187,    0,  186,  188,  186,    0,  186,    0,

        0,  186,  187,  186,  187,  188,  187,  188,    0,  188,
        0,  187,  188,  188,  188,  189,  189,  190,    0,    0,
      190,    0,    0,  189,    0,    0,  189,  190,  189,  190,
      189,  190,  191,    0,    0,  189,  190,    0,  192,    0,
        0,    0,  191,    0,  191,  191,  191,    0,  192,  193,
      192,  191,  192,    0,    0,  194,    0,  192,  194,  193,
      193,  193,    0,  193,    0,  194,  195,  194,  193,  194,
        0,    0,  196,    0,  194,  196,  195,    0,  195,  195,
      195,    0,  196,  197,  196,  195,  196,    0,    0,    0,
        0,  196,    0,  197,  198,  197,    0,  197,    0,    0,

      197,    0,  197,    0,  198,  198,  198,  201,  198,    0,
        0,    0,    0,  198,    0,  202,    0,  201,  203,  201,
        0,  201,    0,    0,  201,  202,  201,  202,  203,  202,
      203,  203,  203,  204,  202,    0,  205,  203,    0,  206,
        0,    0,  206,  204,    0,  204,  205,  204,  205,  206,
      205,  206,  204,  206,  205,  205,  207,  208,  206,    0,
      209,    0,    0,  207,    0,    0,    0,  208,    0,  208,
      209,  208,  209,  207,  209,  207,  208,  207,  210,  209,
        0,  212,  207,    0,  212,    0,    0,    0,  210,    0,
      210,  212,  210,  212,    0,  212,  213,  210,    0,  213,

      212,    0,  214,    0,    0,    0,  213,    0,  213,  214,
      213,    0,  214,  216,  214,  213,  214,    0,    0,    0,
        0,  214,    0,  216,  217,  216,    0,  216,    0,    0,
      218,  216,  216,    0,  217,    0,  217,    0,  217,    0,
      218,  219,  218,  217,  218,    0,    0,  218,    0,  218,
        0,  219,  220,  219,    0,  219,    0,    0,  219,    0,
      219,    0,  220,  222,  220,    0,  220,    0,  223,  223,
        0,  220,  220,  222,    0,  222,    0,  222,    0,  223,
      224,  223,  222,  223,    0,    0,  225,    0,  223,    0,
      224,    0,  224,    0,  224,    0,  225,    0,  225,  224,

      225,  226,  227,    0,  226,  225,    0,    0,    0,  227,
        0,  226,  227,  226,  227,  226,  227,  228,    0,    0,
      226,  227,    0,    0,    0,    0,    0,  228,  229,  228,
        0,  228,    0,    0,  230,  228,  228,    0,  229,    0,
      229,    0,  229,    0,  230,  229,  230,  229,  230,  231,
        0,  230,  231,  230,    0,  232,    0,    0,  232,  231,
        0,  231,    0,  231,    0,  232,  234,  232,  231,  232,
        0,    0,    0,    0,  232,    0,  234,  235,  234,  234,
      234,  234,  236,    0,    0,  234,  234,  235,  236,  235,
        0,  235,    0,    0,    0,  235,  235,    0,  236,  240,

      236,    0,  236,    0,    0,  240,    0,  236,    0,  240,
      247,  240,    0,  240,    0,    0,  248,    0,  240,    0,
      247,    0,  247,  248,  247,    0,  248,  249,  248,  247,
      248,    0,    0,  250,    0,  248,    0,  249,  249,  249,
        0,  249,    0,  250,  251,  250,  249,  250,    0,    0,
      252,    0,  250,  252,  251,    0,  251,    0,  251,    0,
      252,    0,  252,  251,  252,  253,  253,  254,  254,  252,
        0,    0,    0,    0,    0,    0,  253,  254,  253,  254,
      253,  254,  255,    0,    0,  253,  254,    0,  251,    0,
      256,    0,  255,    0,  255,    0,  255,    0,  257,  255,

      256,  255,  256,  256,  256,  258,  258,    0,  257,  256,
      257,    0,  257,    0,  257,    0,  258,  257,  258,  259,
      258,    0,  260,    0,    0,  258,    0,    0,    0,  259,
        0,  259,  260,  259,  260,  261,  260,  261,  259,    0,
        0,  260,    0,    0,    0,  261,  262,  261,  262,  261,
        0,    0,  263,    0,  261,  263,  262,    0,  262,    0,
      262,    0,  263,  264,  263,  262,  263,    0,    0,  265,
        0,  263,    0,  264,    0,  264,  265,  264,    0,  265,
      266,  265,  264,  265,    0,    0,    0,    0,  265,    0,
      266,  267,  266,    0,  266,    0,  266,    0,    0,  266,

        0,  267,    0,  267,    0,  267,  268,  267,    0,  268,
      267,    0,  269,    0,    0,    0,  268,    0,  268,    0,
      268,    0,  269,  272,  269,  268,  269,    0,    0,  273,
        0,  269,    0,  272,    0,  272,    0,  272,    0,  273,
        0,  273,  272,  273,  274,  275,    0,  273,  273,    0,
        0,  274,    0,    0,  274,  275,  274,  275,  274,  275,
      276,  275,    0,  274,  275,  277,  277,  272,    0,    0,
      276,    0,  276,    0,  276,  279,  277,    0,  277,  276,
      277,  278,  277,    0,  279,  277,  278,    0,    0,    0,
        0,  278,  280,  278,  279,  278,  279,  278,  279,    0,

      278,    0,  280,  279,  280,  281,  280,    0,    0,  280,
        0,  280,    0,  283,  283,  281,  284,  281,    0,  281,
        0,    0,    0,  283,  281,  283,  284,  283,  284,  285,
      284,    0,  283,    0,  284,  284,    0,  287,  288,  285,
      287,  285,  285,  285,    0,    0,    0,  287,  285,  287,
        0,  287,  289,  288,    0,  289,  287,    0,    0,    0,
        0,    0,  289,  288,  289,  288,  289,  288,  290,  290,
      292,  289,  288,    0,    0,    0,    0,    0,    0,  290,
      292,  290,  292,  290,  292,  293,    0,    0,  290,  292,
        0,    0,    0,    0,    0,  293,    0,  293,  294,  293,

        0,  294,    0,  293,  293,    0,  295,    0,  294,  296,
      294,    0,  294,    0,    0,    0,  295,  294,  295,  296,
      295,  296,    0,  296,  298,  295,  297,  297,  296,    0,
      299,    0,    0,  301,  298,    0,  298,  297,  298,  297,
      299,  297,  299,  298,  299,  300,  297,    0,  301,  299,
        0,  303,    0,    0,    0,  300,    0,  300,  301,  300,
      301,  303,  301,  303,  300,  303,  304,  301,  298,  305,
      303,    0,  305,    0,    0,    0,  304,  306,  304,  305,
      304,  305,    0,  305,    0,  304,    0,  306,  305,  306,
      307,  306,    0,    0,    0,    0,  306,    0,    0,    0,

      307,  311,  307,    0,  307,    0,    0,  307,    0,  307,
        0,  311,  306,  311,  313,  311,    0,  314,  314,    0,
      311,    0,    0,    0,  313,    0,  313,  314,  313,  314,
        0,  314,  313,  313,  315,  315,  314,    0,  316,    0,
      318,  318,    0,    0,    0,  315,    0,  315,  316,  315,
      316,  318,  316,  318,  315,  318,    0,  316,  319,  319,
      318,  320,    0,    0,  320,    0,    0,    0,  319,  321,
      319,  320,  319,  320,    0,  320,    0,  319,    0,  321,
      320,  321,  322,  321,  323,  323,    0,    0,  321,    0,
        0,    0,  322,  324,  322,  323,  322,  323,    0,  323,

      324,  322,    0,  324,  323,  324,  325,  324,    0,    0,
        0,    0,  324,    0,  326,    0,  325,  326,  325,    0,
      325,  326,    0,    0,  326,  325,  326,  327,  326,  327,
        0,    0,    0,  326,    0,  328,    0,  327,  328,  327,
        0,  327,  328,  329,    0,  328,  327,  328,    0,  328,
        0,  330,    0,  329,  328,  329,    0,  329,    0,  329,
        0,  330,  329,  330,    0,  330,  331,  331,    0,  330,
      330,    0,  332,    0,    0,    0,  331,    0,  331,    0,
      331,    0,  332,  333,  332,  331,  332,    0,    0,  334,
      332,  332,    0,  333,    0,  333,    0,  333,    0,  334,

      333,  334,  333,  334,  335,  339,    0,    0,  334,    0,
        0,    0,  339,    0,  335,  339,  335,  339,  335,  339,
        0,    0,  341,  335,  339,  340,  340,    0,  340,    0,
        0,    0,  341,    0,  341,  340,  341,  340,    0,  340,
      341,  341,  343,  342,  340,  342,    0,    0,    0,    0,
        0,    0,  343,  342,  343,  342,  343,  342,  344,    0,
        0,  343,  342,    0,  345,    0,    0,  345,  344,    0,
      344,    0,  344,    0,  345,  346,  345,  344,  345,  347,
        0,    0,  348,  345,    0,  346,  347,  346,    0,  346,
        0,    0,  346,    0,  346,    0,  347,  348,  347,    0,

      347,    0,    0,  350,    0,  347,    0,  348,    0,  348,
        0,  348,    0,  350,  351,  350,  348,  350,    0,    0,
      352,  350,  350,    0,  351,    0,  351,    0,  351,    0,
      352,  354,  352,  351,  352,    0,    0,    0,    0,  352,
        0,  354,  355,  354,    0,  354,    0,  354,  356,  355,
      354,    0,  355,    0,  355,    0,  355,    0,  356,  357,
      356,  355,  356,    0,    0,    0,    0,  356,    0,  357,
        0,  357,  359,  357,    0,  360,    0,  357,  357,  359,
        0,    0,  359,  361,  359,  360,  359,  360,  361,  360,
        0,  359,    0,  361,  360,  361,  362,  361,    0,    0,

        0,    0,  361,    0,    0,    0,  362,  364,  362,    0,
      362,    0,    0,  366,  364,  362,    0,  364,  362,  364,
        0,  364,    0,  366,    0,  366,  364,  366,  367,  368,
        0,  367,  366,    0,    0,    0,    0,    0,  367,  368,
      367,  368,  367,  368,  370,  368,    0,  367,  368,    0,
      375,    0,    0,    0,  370,    0,  370,    0,  370,    0,
      375,    0,  375,  370,  375,  376,  376,    0,    0,  375,
        0,    0,  377,    0,    0,    0,  376,    0,  376,    0,
      376,    0,  377,  379,  377,  376,  377,    0,  370,  380,
      377,  377,    0,  379,    0,  379,    0,  379,    0,  380,

      381,  380,  379,  380,    0,    0,  382,  380,  380,  382,
      381,    0,  381,    0,  381,    0,  382,  383,  382,  381,
      382,    0,    0,  384,  383,  382,    0,  383,    0,  383,
        0,  383,    0,  384,  385,  384,  383,  384,    0,    0,
        0,    0,  384,    0,  385,  386,  385,  386,  385,    0,
        0,  387,  385,  385,    0,  386,    0,  386,    0,  386,
        0,  387,    0,  387,  386,  387,    0,    0,  388,  387,
      387,  388,    0,    0,  389,    0,  389,    0,  388,    0,
      388,    0,  388,    0,  389,  390,  389,  388,  389,    0,
      391,  391,    0,  389,    0,  390,    0,  390,    0,  390,

        0,  391,  392,  391,  390,  391,    0,    0,  393,    0,
      391,    0,  392,    0,  392,  393,  392,    0,  393,  394,
      393,  392,  393,    0,    0,  395,    0,  393,    0,  394,
        0,  394,  395,  394,    0,  395,  394,  395,  394,  395,
      396,  396,  400,    0,  395,    0,  400,    0,    0,    0,
        0,  396,  400,  396,  400,  396,  400,  401,    0,    0,
      396,  400,    0,  402,  401,  402,    0,  401,    0,  401,
        0,  401,    0,  402,  403,  402,  401,  402,    0,    0,
      404,    0,  402,  404,  403,    0,  403,    0,  403,    0,
      404,  403,  404,  403,  404,  405,  405,    0,    0,  404,

        0,  406,  406,    0,    0,  405,    0,  405,    0,  405,
        0,  406,  407,  406,  405,  406,    0,    0,    0,    0,
      406,    0,  407,    0,  407,    0,  407,  408,  407,    0,
      408,  407,    0,  409,    0,    0,    0,  408,    0,  408,
        0,  408,    0,  409,  410,  409,  408,  409,    0,    0,
      409,  410,  409,    0,  410,  412,  410,    0,  410,    0,
      413,  413,    0,  410,    0,  412,    0,  412,    0,  412,
        0,  413,  415,  413,  412,  413,    0,    0,  416,    0,
      413,    0,  415,    0,  415,    0,  415,    0,  416,  417,
      416,  415,  416,    0,    0,    0,    0,  416,    0,  417,

        0,  417,  418,  417,    0,  418,    0,  417,  417,    0,
      420,    0,  418,    0,  418,    0,  418,    0,    0,    0,
      420,  418,  420,    0,  420,  421,  421,    0,  422,  420,
      420,  423,    0,    0,    0,  421,    0,  421,  422,  421,
      422,  423,  422,  423,  421,  423,  425,  422,  425,  427,
      423,    0,  428,    0,    0,    0,  425,    0,  425,  427,
      425,  427,  428,  427,  428,  425,  428,  435,  427,  428,
        0,  428,    0,    0,    0,    0,    0,  435,    0,  435,
      436,  435,    0,  438,    0,  435,  435,  436,    0,    0,
      436,    0,  436,  438,  436,  438,    0,  438,  439,  436,

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

        0,  449,  449,    0,  450,  451,  450,    0,  450,    0,
        0,  452,  450,  450,    0,  451,    0,  451,    0,  451,
        0,  452,  453,  452,  451,  452,    0,    0,  457,    0,
      452,    0,  453,    0,  453,  457,  453,    0,  457,  458,
      457,  453,  457,    0,    0,    0,    0,  457,    0,  458,
      459,  458,    0,  458,    0,    0,  460,  458,  458,    0,
      459,    0,  459,    0,  459,    0,  460,  461,  460,  459,
      460,    0,    0,  462,    0,  460,  462,  461,    0,  461,
        0,  461,    0,  462,  461,  462,  461,  462,  463,  464,
        0,    0,  462,    0,    0,    0,    0,    0,  463,  464,

      463,  464,  463,  464,  465,  465,  463,  463,  464,    0,
      466,    0,    0,    0,  465,    0,  465,    0,  465,    0,
      466,  467,  466,  465,  466,    0,    0,  469,    0,  466,
        0,  467,    0,  467,    0,  467,    0,  469,  471,  469,
      467,  469,    0,    0,    0,    0,  469,    0,  471,  472,
      471,    0,  471,  472,  466,  473,    0,  471,    0,  472,
        0,  472,    0,  472,    0,  473,  474,  473,  472,  473,
        0,    0,  476,    0,  473,  476,  474,    0,  474,    0,
      474,    0,  476,    0,  476,  474,  476,  477,    0,    0,
      477,  476,    0,  479,    0,    0,  479,  477,    0,  477,

        0,  477,    0,  479,    0,  479,  477,  479,  481,  481,
      488,    0,  479,    0,    0,    0,    0,  488,    0,  481,
      488,  481,  488,  481,  488,  489,  489,    0,  481,  488,
        0,  491,    0,    0,    0,  489,    0,  489,    0,  489,
        0,  491,  492,  491,  489,  491,    0,  491,    0,    0,
      491,    0,  492,    0,  492,  493,  492,    0,  493,    0,
      492,  492,    0,  494,    0,  493,  495,  493,    0,  493,
        0,    0,  497,  494,  493,  494,  495,  494,  495,  495,
      495,  496,  494,    0,  499,  495,    0,  497,    0,    0,
        0,  496,    0,  496,  499,  496,  499,  497,  499,  497,

      496,  497,  498,  499,    0,  498,  497,    0,  500,    0,
        0,    0,  498,    0,  498,  500,  498,    0,  500,  501,
      500,  498,  500,    0,    0,  506,    0,  500,  506,  501,
        0,  501,    0,  501,    0,  506,  507,  506,  501,  506,
        0,    0,  508,    0,  506,    0,  507,    0,  507,    0,
      507,    0,  508,  509,  508,  507,  508,    0,    0,  510,
        0,  508,    0,  509,    0,  509,  510,  509,    0,  510,
      511,  510,  509,  510,    0,    0,    0,    0,  510,    0,
      511,  513,  511,    0,  511,  513,    0,  515,  511,  511,
        0,  513,    0,  513,  519,  513,    0,  515,  517,  515,

      513,  515,    0,    0,    0,  517,  515,    0,  517,  519,
      517,    0,  517,    0,    0,  520,    0,  517,    0,  519,
        0,  519,    0,  519,    0,  520,  522,  520,  519,  520,
        0,    0,  524,    0,  520,    0,  522,    0,  522,    0,
      522,    0,  524,  530,  524,  522,  524,    0,    0,  531,
        0,  524,    0,  530,    0,  530,  530,  530,    0,  531,
      533,  531,  530,  531,    0,    0,  534,    0,  531,    0,
      533,    0,  533,    0,  533,    0,  534,    0,  534,  533,
      534,  536,  535,  534,  535,  534,  536,    0,    0,    0,
        0,  536,  535,  536,  535,  536,  535,  537,  538,  538,

      536,  535,    0,    0,    0,    0,    0,  537,  538,  537,
      538,  537,  538,  539,  540,  539,  537,  538,    0,    0,
        0,    0,    0,  539,  540,  539,  540,  539,  540,  545,
        0,    0,  539,  540,    0,    0,    0,  546,    0,  545,
        0,  545,    0,  545,    0,  545,    0,  546,  545,  546,
      546,  546,  547,  549,    0,    0,  546,    0,    0,  547,
      549,    0,  547,  549,  547,  549,  547,  549,  552,    0,
        0,  547,  549,    0,    0,    0,  554,    0,  552,    0,
      552,    0,  552,    0,  556,    0,  554,  552,  554,  554,
      554,    0,    0,    0,  556,  554,  556,  558,  556,    0,

      564,    0,  556,  556,    0,    0,    0,  558,  565,  558,
      564,  558,  564,    0,  564,    0,  558,    0,  565,  564,
      565,  566,  565,    0,  567,    0,    0,  565,    0,    0,
        0,  566,  568,  566,  567,  566,  567,    0,  567,    0,
      566,    0,  568,  567,  568,  569,  568,    0,    0,  568,
        0,  568,    0,  570,    0,  569,    0,  569,  569,  569,
        0,  571,    0,  570,  569,  570,    0,  570,  571,  575,
        0,  571,  570,  571,    0,  571,    0,  576,    0,  575,
      571,  575,    0,  575,    0,  577,    0,  576,  575,  576,
        0,  576,    0,  579,    0,  577,  576,  577,  577,  577,

        0,  582,    0,  579,  577,  579,    0,  579,  582,  584,
        0,  582,  579,  582,    0,  582,  584,  585,    0,  584,
      582,  584,    0,  584,  585,  592,    0,  585,  584,  585,
        0,  585,    0,  593,    0,  592,  585,  592,    0,  592,
        0,  594,    0,  593,  592,  593,    0,  593,    0,  595,
        0,  594,  593,  594,    0,  594,    0,    0,    0,  595,
      594,  595,  599,  595,    0,    0,    0,  595,  595,    0,
      600,    0,  599,    0,  599,    0,  599,    0,  602,  599,
      600,  599,  600,    0,  600,  602,  605,    0,  602,  600,
      602,    0,  602,    0,    0,    0,  605,  602,  605,  607,

      605,  607,  608,    0,  605,  605,  608,    0,    0,  607,
      614,  607,  608,  607,  608,    0,  608,    0,  607,    0,
      614,  608,  614,  615,  614,    0,  619,    0,  614,  614,
        0,    0,    0,  615,    0,  615,  619,  615,  619,  620,
      619,    0,  615,    0,    0,  619,  615,  622,    0,  620,
      625,  620,    0,  620,    0,    0,    0,  622,  620,  622,
      625,  622,  625,    0,  625,  622,  622,  627,  628,  625,
        0,    0,    0,  625,    0,  628,    0,  627,  628,  627,
      628,  627,  628,  634,  635,    0,  627,  628,    0,    0,
        0,    0,    0,  634,  635,  634,  635,  634,  635,  634,

      639,  642,  634,  635,    0,    0,    0,    0,    0,    0,
      639,  642,  639,  642,  639,  642,    0,    0,  644,  639,
      642,  644,    0,  639,    0,    0,  650,    0,  644,    0,
      644,    0,  644,    0,  652,    0,  650,  644,  650,  650,
      650,    0,  655,    0,  652,  650,  652,    0,  652,    0,
      659,    0,  655,  652,  655,    0,  655,    0,  655,    0,
      659,  655,  659,  663,  659,    0,  666,    0,    0,  659,
        0,    0,    0,  663,    0,  663,  666,  663,  666,    0,
      666,    0,  663,    0,    0,  666,  670,  670,  670,  670,
      670,  670,  670,  670,  670,  670,  670,  671,  671,  671,

      671,  671,  671,  671,  671,  671,  671,  671,  672,  672,
      672,  672,  672,  672,  672,  672,  672,  672,  672,  673,
      673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
      674,  674,  674,  674,  674,  674,  674,  674,  674,  674,
      674,  675,  675,  675,  675,  675,  675,  675,  675,  675,
      675,  675,  676,  676,  676,    0,  676,  676,  676,  676,
      676,  676,  676,  677,  677,    0,    0,  677,    0,  677,
      678,  678,    0,  678,  679,  679,    0,  679,  679,  679,
        0,  679,  679,  679,  679,  680,  680,  680,    0,  680,
      680,  680,  680,  680,  680,  680,  681,  681,  681,  681,

      681,  681,  681,  681,    0,  681,  682,    0,    0,  682,
      682,  682,  682,  682,  682,  682,  683,    0,    0,  683,
      683,  683,  683,  683,  683,  683,  684,    0,    0,  684,
        0,  684,  684,  684,  684,  684,  685,  685,    0,  685,
      686,  686,    0,  686,  687,  687,    0,  687,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,

      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
      669,  669,  669,  669,  669,  669
    } ;

extern int yy_flex_debug;
int yy_flex_debug = 1;

static yyconst short int yy_rule_linenum[129] =
    {   0,
      103,  106,  108,  109,  110,  113,  115,  116,  117,  129,
      136,  143,  149,  158,  166,  174,  175,  177,  196,  202,
      203,  204,  205,  206,  209,  215,  222,  229,  236,  243,
      247,  248,  256,  257,  258,  259,  260,  265,  266,  267,
      268,  269,  270,  271,  272,  273,  274,  275,  284,  285,
      286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
      296,  297,  298,  299,  300,  301,  302,  303,  304,  305,
      306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
      316,  317,  318,  319,  320,  321,  322,  323,  324,  325,
      326,  327,  328,  329,  330,  331,  332,  333,  334,  335,

      336,  337,  338,  339,  340,  341,  342,  347,  348,  353,
      354,  355,  358,  364,  371,  380,  391,  397,  399,  400,
      402,  404,  406,  419,  425,  431,  438,  440
    } ;

static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
static char *yy_full_match;
static int yy_lp;
#define REJECT \
{ \
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
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 *yytext;
#line 1 "asn1p_l.l"
#define INITIAL 0
#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",		\
			yylineno, yytext);		\
		exit(1);				\
	} while(0)

int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;
static int _check_dashes(char *ptr);
static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */

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

/*
 * Make sure that the label is compliant with the naming rules.
 */
#define	CHECK_DASHES	do {				\
	if(_check_dashes(yytext)) {			\
		fprintf(stderr,				\
		"%s: Identifier format invalid: "	\
		"Improper dash location\n", yytext);	\
		return -1;				\
	} } while(0)

/*
 * 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_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
#define YY_STACK_USED 1
/* Performance penalty is OK */
/* Controlled from within application */
#define dash_comment 1

#define cpp_comment 2

#define quoted 3

#define opaque 4

#define encoding_control 5

#define with_syntax 6

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

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

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

#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif

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

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

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

#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#endif

#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#endif
#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
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif

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

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

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

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

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

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

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

#define YY_RULE_SETUP \
	YY_USER_ACTION

YY_DECL
	{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;

#line 101 "asn1p_l.l"


#line 1985 "asn1p_l.c"

	if ( yy_init )
		{
		yy_init = 0;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

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

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

		if ( ! yy_current_buffer )
			yy_current_buffer =
				yy_create_buffer( yyin, YY_BUF_SIZE );

		yy_load_buffer_state();
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = yy_c_buf_p;

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

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

		yy_current_state = yy_start;
		yy_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 >= 670 )
					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_base[yy_current_state] != 4249 );

yy_find_action:
		yy_current_state = *--yy_state_ptr;
		yy_lp = yy_accept[yy_current_state];
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;

		if ( yy_act != YY_END_OF_BUFFER )
			{
			int yyl;
			for ( yyl = 0; yyl < yyleng; ++yyl )
				if ( yytext[yyl] == '\n' )
					++yylineno;
			}

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

		if ( yy_flex_debug )
			{
			if ( yy_act == 0 )
				fprintf( stderr, "--scanner backing up\n" );
			else if ( yy_act < 129 )
				fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
				         yy_rule_linenum[yy_act], yytext );
			else if ( yy_act == 129 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         yytext );
			else if ( yy_act == 130 )
				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 */
case 1:
YY_RULE_SETUP
#line 103 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 2:
YY_RULE_SETUP
#line 106 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 108 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 109 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 110 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 6:
YY_RULE_SETUP
#line 113 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 7:
YY_RULE_SETUP
#line 115 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 116 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 117 "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 10:
YY_RULE_SETUP
#line 129 "asn1p_l.l"
{
			yy_push_state(opaque);
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 136 "asn1p_l.l"
{
			yy_pop_state();
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 143 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 149 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser syncronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				yytext, yylineno);
			return -1;
		}
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 158 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK

case 15:
YY_RULE_SETUP
#line 166 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = 0;
			asn1p_lval.tv_opaque.len = 0;
			QAPPEND(yytext+1, yyleng-1);
			yy_push_state(quoted);
		}
	YY_BREAK

case 16:
YY_RULE_SETUP
#line 174 "asn1p_l.l"
{ QAPPEND(yytext, yyleng-1); }	/* Add a single quote */
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 175 "asn1p_l.l"
{ QAPPEND(yytext, yyleng); }
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 177 "asn1p_l.l"
{
			yy_pop_state();
			/* Do not append last quote:
			// QAPPEND(yytext, yyleng); */

			if(asn1p_lexer_pedantic_1990
			&& strchr(yytext, '\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 19:
YY_RULE_SETUP
#line 196 "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 20:
YY_RULE_SETUP
#line 202 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 203 "asn1p_l.l"

	YY_BREAK
case 22:
YY_RULE_SETUP
#line 204 "asn1p_l.l"

	YY_BREAK
case 23:
YY_RULE_SETUP
#line 205 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 206 "asn1p_l.l"

	YY_BREAK

case 25:
YY_RULE_SETUP
#line 209 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = yytext;
		return TOK_hstring;
	}
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 215 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_bstring;
	}
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 222 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 229 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 236 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 243 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
/*
ABSTRACT-SYNTAX		return TOK_ABSTRACT_SYNTAX;
	*/
case 31:
YY_RULE_SETUP
#line 247 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 248 "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", yytext, yylineno);
				REJECT;
			}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 256 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 257 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 258 "asn1p_l.l"
return TOK_BEGIN;
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 259 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 260 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 265 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 266 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 267 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 268 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 269 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 270 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 271 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 272 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 273 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 274 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 275 "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", yytext, yylineno);
				/* Deprecated since */
				REJECT;
			}
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 284 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 285 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 286 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 287 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 288 "asn1p_l.l"
return TOK_END;
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 289 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 290 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 293 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 294 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 295 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 296 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 297 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 298 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 299 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 300 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 301 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 302 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 303 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 304 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 305 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 306 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 307 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 308 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 310 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 311 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 312 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 313 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 314 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 320 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 321 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 322 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 323 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 324 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 325 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 326 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 327 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 338 "asn1p_l.l"
return TOK_TYPE_IDENTIFIER;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 339 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 340 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 341 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 347 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 348 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 353 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 354 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 355 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 358 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 364 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 371 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 116:
YY_RULE_SETUP
#line 380 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_capitalreference;
	}
	YY_BREAK
/*
	 * typereference, modulereference
	 * NOTE: TOK_objectclassreference must be combined
	 * with this token to produce true typereference.
	 */
case 117:
YY_RULE_SETUP
#line 391 "asn1p_l.l"
{
		CHECK_DASHES;
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typereference;
	}
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 397 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 399 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 400 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 402 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 404 "asn1p_l.l"
return yytext[0];
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 406 "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",
			yytext[0], yylineno);
		if(TYPE_LIFETIME(1994, 0))
			return -1;
	}
	YY_BREAK

case 124:
YY_RULE_SETUP
#line 419 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 425 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 431 "asn1p_l.l"
{
				yy_pop_state();
				return '}';
			}
	YY_BREAK

case 127:
YY_RULE_SETUP
#line 438 "asn1p_l.l"
return yytext[0];	/* Union, Intersection */
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 440 "asn1p_l.l"
{
		fprintf(stderr,
			"Unexpected token at line %d: \"%s\"\n",
			yylineno, yytext);
		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(cpp_comment):
case YY_STATE_EOF(quoted):
case YY_STATE_EOF(opaque):
case YY_STATE_EOF(encoding_control):
case YY_STATE_EOF(with_syntax):
#line 453 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 460 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 2929 "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->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed yyin at a new source and called
			 * yylex().  If so, then we have to assure
			 * consistency between yy_current_buffer and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			yy_n_chars = yy_current_buffer->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->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->yy_ch_buf[yy_n_chars] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state();

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

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = yytext_ptr + YY_MORE_ADJ;

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

			else
				{
				yy_cp = yy_c_buf_p;
				goto yy_find_action;
				}
			}

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

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

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

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

			case EOB_ACT_CONTINUE_SCAN:
				yy_c_buf_p =
					yytext_ptr + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state();

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

			case EOB_ACT_LAST_MATCH:
				yy_c_buf_p =
				&yy_current_buffer->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 yylex */


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()
	{
	register char *dest = yy_current_buffer->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->yy_ch_buf[yy_n_chars + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( yy_current_buffer->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->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->yy_n_chars = yy_n_chars = 0;

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

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

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

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

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

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

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

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

			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = yy_current_buffer->yy_buf_size -
						number_to_move - 1;
#endif
			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

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

		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

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

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

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	yy_n_chars += number_to_move;
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];

	return ret_val;
	}


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

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

	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 )
		{
		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 >= 670 )
				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 );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
	{
	register int yy_is_jam;

	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 >= 670 )
			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 == 669);
	if ( ! yy_is_jam )
		*yy_state_ptr++ = yy_current_state;

	return yy_is_jam ? 0 : yy_current_state;
	}


#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
	{
	register char *yy_cp = yy_c_buf_p;

	/* undo effects of setting up yytext */
	*yy_cp = yy_hold_char;

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

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

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

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

	*--yy_cp = (char) c;

	if ( c == '\n' )
		--yylineno;

	yytext_ptr = yy_bp;
	yy_hold_char = *yy_cp;
	yy_c_buf_p = yy_cp;
	}
#endif	/* ifndef YY_NO_UNPUT */


#ifdef __cplusplus
static int yyinput()
#else
static int input()
#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->yy_ch_buf[yy_n_chars] )
			/* This was really a NUL. */
			*yy_c_buf_p = '\0';

		else
			{ /* need more input */
			int 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. */
					yyrestart( yyin );

					/* fall through */

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

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

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

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

	if ( c == '\n' )
		++yylineno;

	return c;
	}


#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
	{
	if ( ! yy_current_buffer )
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );

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


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
	{
	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->yy_buf_pos = yy_c_buf_p;
		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

	yy_current_buffer = new_buffer;
	yy_load_buffer_state();

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


#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
	{
	yy_n_chars = yy_current_buffer->yy_n_chars;
	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
	yyin = yy_current_buffer->yy_input_file;
	yy_hold_char = *yy_c_buf_p;
	}


#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
	{
	YY_BUFFER_STATE b;

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

	b->yy_buf_size = size;

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

	b->yy_is_our_buffer = 1;

	yy_init_buffer( b, file );

	return b;
	}


#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
	{
	if ( ! b )
		return;

	if ( b == yy_current_buffer )
		yy_current_buffer = (YY_BUFFER_STATE) 0;

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

	yy_flex_free( (void *) b );
	}


#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif

#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif


	{
	yy_flush_buffer( b );

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

#if YY_ALWAYS_INTERACTIVE
	b->yy_is_interactive = 1;
#else
#if YY_NEVER_INTERACTIVE
	b->yy_is_interactive = 0;
#else
	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
	}


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#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 )
		yy_load_buffer_state();
	}


#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
	{
	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) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_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;

	yy_switch_to_buffer( b );

	return b;
	}
#endif


#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_str;
#endif
	{
	int len;
	for ( len = 0; yy_str[len]; ++len )
		;

	return yy_scan_bytes( yy_str, len );
	}
#endif


#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *bytes;
int len;
#endif
	{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n;
	int i;

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

	for ( i = 0; i < len; ++i )
		buf[i] = bytes[i];

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

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

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

	return b;
	}
#endif


#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#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 *) yy_flex_alloc( new_size );

		else
			yy_start_stack = (int *) yy_flex_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);
	}
#endif


#ifndef YY_NO_POP_STATE
static void yy_pop_state()
	{
	if ( --yy_start_stack_ptr < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN(yy_start_stack[yy_start_stack_ptr]);
	}
#endif


#ifndef YY_NO_TOP_STATE
static int yy_top_state()
	{
	return yy_start_stack[yy_start_stack_ptr - 1];
	}
#endif

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
	{
	(void) fprintf( stderr, "%s\n", msg );
	exit( YY_EXIT_FAILURE );
	}



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

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


/* Internal utility routines. */

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

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

	return n;
	}
#endif


#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
	{
	return (void *) malloc( size );
	}

#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
	{
	/* 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 );
	}

#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
	{
	free( ptr );
	}

#if YY_MAIN
int main()
	{
	yylex();
	return 0;
	}
#endif
#line 460 "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);
}

/*
 * Check that a token does not end with dash and does not contain
 * several dashes in succession.
 * "Name", "Type-Id", "T-y-p-e-i-d" are OK
 * "end-", "vustom--value" are INVALID
 */
static int
_check_dashes(char *ptr) {
	int prev_dash = 0;

	assert(*ptr != '-');

	for(;; ptr++) {
		switch(*ptr) {
		case '-':
			if(prev_dash++)	/* No double dashes */
				return -1;
			continue;
		case '\0':
			if(prev_dash)	/* No dashes at the end */
				return -1;
			break;
		default:
			prev_dash = 0;
			continue;
		}
		break;
	}

	return 0;
}

static asn1c_integer_t
asn1p_atoi(char *ptr) {
	asn1c_integer_t value;
	errno = 0;	/* Clear the error code */

	if(sizeof(value) <= sizeof(int)) {
		value = strtol(ptr, 0, 10);
	} else {
#ifdef	HAVE_STRTOIMAX
		value = strtoimax(ptr, 0, 10);
#elif	HAVE_STRTOLL
		value = strtoll(ptr, 0, 10);
#else
		value = strtol(ptr, 0, 10);
#endif
	}

	if(errno == ERANGE) {
		fprintf(stderr,
			"Value \"%s\" at line %d is too large "
			"for this compiler! Please contact the vendor.",
			ptr, yylineno);
		errno = ERANGE;	/* Restore potentially clobbered errno */
	}

	return value;
}

