# include "stdio.h"
# define U(x) ((unsigned char)(x))
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
# define INITIAL 0
# define YYLERR yysvec
# define YYSTATE (yyestate-yysvec-1)
# define YYOPTIM 1
# define YYLMAX 200
# define output(c) (void)putc(c,yyout)
#if defined(__cplusplus) || defined(__STDC__)

#ifdef __cplusplus
extern "C" {
#endif
	int yylex(void);
	int yyback(int *, int);
	int yyinput(void);
	int yylook(void);
	void yyoutput(int);
	int yyracc(int);
	int yyreject(void);
	void yyunput(int);
#ifndef yyless
	void yyless(int);
#endif
#ifndef yywrap
	int yywrap(void);
#endif
#ifdef __cplusplus
}
#endif

#endif

# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
# define yymore() (yymorfg=1)
# define ECHO (void)fprintf(yyout, "%s",yytext)
# define REJECT { nstr = yyreject(); goto yyfussy;}
int yyleng; extern char yytext[];
int yymorfg;
extern char *yysptr, yysbuf[];
int yytchar;
FILE *yyin = {stdin}, *yyout = {stdout};
extern int yylineno;
struct yysvf { 
	struct yywork *yystoff;
	struct yysvf *yyother;
	int *yystops;};
struct yysvf *yyestate;
extern struct yysvf yysvec[], *yybgin;
#include "y.tab.h"
static int lineno = 1;

#define YYTEXTCOPY textcopy(yytext)
static char *textcopy(char *text);
static char *textcopystringval(char *text);

#define yyeraseunput() (yysptr = yysbuf)

# line 11 "parser.l"
/* The above macro is called by yyerror() to discard any unput() characters
   so the next call to yylex() will only deal with new characters from the new
   input file. It is specific to at&t lex. */


# line 15 "parser.l"
/* #define QQYY fprintf(stderr, "<%s>", yytext) */
#define QQYY 
# define YYNEWLINE 10
yylex(){
int nstr; extern int yyprevious;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:

# line 20 "parser.l"
	{ QQYY; lineno++; return '\n'; }
break;
case 2:

# line 22 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return ACTIONLIST; }
break;
case 3:

# line 23 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return BOOLEANINPUT0; }
break;
case 4:

# line 24 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return BOXDISPLAY0; }
break;
case 5:

# line 25 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return CALCULATE; }
break;
case 6:

# line 26 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return CHAR; }
break;
case 7:

# line 27 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return CHOICES; }
break;
case 8:

# line 28 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return COL; }
break;
case 9:

# line 29 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return COLUMNS; }
break;
case 10:

# line 30 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return DATA; }
break;
case 11:

# line 31 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTQUEUE; }
break;
case 12:

# line 32 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTVALUE; }
break;
case 13:

# line 33 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DEFAULTVALUES; }
break;
case 14:

# line 34 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return DETAIL; }
break;
case 15:

# line 35 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DIRECTION; }
break;
case 16:

# line 36 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DISPLAYFIELD; }
break;
case 17:

# line 37 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return DISPLAY0; }
break;
case 18:

# line 38 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return DISTANCE; }
break;
case 19:

# line 39 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return DOWN; }
break;
case 20:

# line 40 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return EXCLUSIVE0; }
break;
case 21:

# line 41 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return FIELD; }
break;
case 22:

# line 42 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return FORM; }
break;
case 23:

# line 43 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return FORMNAME; }
break;
case 24:

# line 44 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return HEIGHT; }
break;
case 25:

# line 45 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return HIDDENIF; }
break;
case 26:

# line 46 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return INPUTFIELD; }
break;
case 27:

# line 47 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return INPUTSOURCE; }
break;
case 28:

# line 48 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return LEFT; }
break;
case 29:

# line 49 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return LENGTH; }
break;
case 30:

# line 50 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return LINEDISPLAY0; }
break;
case 31:

# line 51 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return LOCKEDIF; }
break;
case 32:

# line 52 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return NAME; }
break;
case 33:

# line 53 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return NODENUMBER; }
break;
case 34:

# line 54 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return NONEXCLUSIVE0; }
break;
case 35:

# line 55 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return NUMERICINPUT0; }
break;
case 36:

# line 56 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return NONE; }
break;
case 37:

# line 57 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return NOTIFY; }
break;
case 38:

# line 58 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return NUMLINES; }
break;
case 39:

# line 59 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return PROMPT; }
break;
case 40:

# line 60 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return RIGHT; }
break;
case 41:

# line 61 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return ROUTE; }
break;
case 42:

# line 62 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return ROW; }
break;
case 43:

# line 63 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return SCREEN; }
break;
case 44:

# line 64 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return SELECTIONINPUT0; }
break;
case 45:

# line 65 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return STATUSSTRING; }
break;
case 46:

# line 66 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return TERMINAL; }
break;
case 47:

# line 67 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTATTRS; }
break;
case 48:

# line 68 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTDISPLAY0; }
break;
case 49:

# line 69 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return TEXTINPUT0; }
break;
case 50:

# line 70 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return TYPE; }
break;
case 51:

# line 71 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return UP; }
break;
case 52:

# line 72 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return WIDTH; }
break;
case 53:

# line 73 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return WORD; }
break;
case 54:

# line 74 "parser.l"
	{ QQYY; yylval.s = YYTEXTCOPY; return WRAP; }
break;
case 55:

# line 76 "parser.l"
		{ char c, l;
			  for (c = '!'; c != EOF; c = input()) {
			    if (c == '/' && l == '*') break;
			    l = c;
			    if (c == '\n') lineno++;
			  }
			}
break;
case 56:

# line 83 "parser.l"
		{ }
break;
case 57:

# line 84 "parser.l"
{ QQYY; yylval.s = textcopystringval(yytext); return STRING; }
break;
case 58:

# line 85 "parser.l"
{ QQYY; yylval.s = YYTEXTCOPY; return ID; }
break;
case 59:

# line 86 "parser.l"
	{ QQYY; yylval.i = strtol(yytext, NULL, 0); return INTEGER; }
break;
case 60:

# line 87 "parser.l"
		{ QQYY; return yytext[0]; }
break;
case -1:
break;
default:
(void)fprintf(yyout,"bad switch yylook %d",nstr);
} return(0); }
/* end of yylex */

yywrap() { return(1); }

char *yylexany(void) {
  static char buf[BUFSIZ];
  char *trav = buf, reading = 0, c = 0;
  int left = BUFSIZ - 1;
  while (c != EOF && c != '\n' && left) {
    c = input();
    reading |= !isspace(c);
    if (reading) *trav++ = c, left--;
  }
  if (c == '\n') {
    unput('\n');
    trav--;
  }
  *trav = 0;
  return buf;
}

static char *textcopy(char *text) {
  static int curbuf = 0;
  static char yyextrabuf[2][BUFSIZ];
  strcpy(yyextrabuf[curbuf], text);
  curbuf = !curbuf;
  return yyextrabuf[!curbuf];
}

static char *textcopystringval(char *text) {
  char stuff[BUFSIZ], *trav = stuff;
  text++;
  while (*text != '\"') {
    if (*text == '\\') {
      text++;
      if (*text == 'n') *trav = '\n';
      else if (*text == 'r') *trav = '\r';
      else *trav = *text;
    } else *trav = *text;
    trav++, text++;
  }
  *trav = 0;
  return textcopy(stuff);
}

void yyerror(char *s) {
  fprintf(stderr, "Oops... %s on line number %d!\n", s, lineno);
}

void yybegin(void) {
  yyeraseunput();
  lineno = 1;
}
int yyvstop[] = {
0,

60,
0,

56,
60,
0,

1,
0,

60,
0,

60,
0,

60,
0,

59,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

58,
60,
0,

56,
0,

57,
0,

59,
0,

55,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

51,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

57,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

8,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

42,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

10,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

19,
58,
0,

58,
0,

58,
0,

58,
0,

22,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

28,
58,
0,

58,
0,

58,
0,

58,
0,

32,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

50,
58,
0,

58,
0,

58,
0,

54,
58,
0,

6,
58,
0,

58,
0,

36,
58,
0,

53,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

21,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

40,
58,
0,

41,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

52,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

14,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

24,
58,
0,

58,
0,

58,
0,

58,
0,

29,
58,
0,

58,
0,

58,
0,

58,
0,

37,
58,
0,

58,
0,

58,
0,

39,
58,
0,

43,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

7,
58,
0,

9,
58,
0,

58,
0,

58,
0,

17,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

18,
58,
0,

58,
0,

23,
58,
0,

25,
58,
0,

58,
0,

58,
0,

31,
58,
0,

58,
0,

58,
0,

38,
58,
0,

58,
0,

58,
0,

58,
0,

46,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

5,
58,
0,

58,
0,

58,
0,

15,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

47,
58,
0,

58,
0,

49,
58,
0,

20,
58,
0,

58,
0,

2,
58,
0,

58,
0,

4,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

26,
58,
0,

58,
0,

33,
58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

58,
0,

27,
58,
0,

30,
58,
0,

58,
0,

58,
0,

58,
0,

48,
58,
0,

58,
0,

3,
58,
0,

11,
58,
0,

12,
58,
0,

16,
58,
0,

35,
58,
0,

45,
58,
0,

58,
0,

34,
58,
0,

13,
58,
0,

58,
0,

44,
58,
0,
0};
# define YYTYPE int
struct yywork { YYTYPE verify, advance; } yycrank[] = {
0,0,	0,0,	1,3,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,4,	1,5,	
0,0,	4,30,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	1,6,	
4,30,	0,0,	0,0,	33,78,	
0,0,	0,0,	0,0,	8,35,	
1,7,	0,0,	0,0,	0,0,	
1,8,	1,9,	7,34,	7,34,	
7,34,	7,34,	7,34,	7,34,	
7,34,	7,34,	7,34,	7,34,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	1,10,	1,11,	
1,12,	1,13,	1,14,	1,15,	
1,14,	1,16,	1,17,	1,14,	
1,14,	1,18,	1,14,	1,19,	
1,14,	1,20,	1,14,	1,21,	
1,22,	1,23,	1,24,	1,14,	
1,25,	1,14,	1,14,	1,14,	
11,36,	14,36,	26,36,	31,33,	
1,14,	33,33,	1,14,	1,14,	
1,26,	1,14,	1,27,	1,14,	
1,14,	1,14,	1,14,	1,14,	
1,14,	1,14,	1,14,	1,28,	
1,14,	1,14,	1,14,	1,14,	
1,14,	1,14,	1,14,	1,14,	
1,29,	1,14,	1,14,	1,14,	
2,8,	12,39,	17,36,	12,36,	
16,36,	21,36,	16,50,	26,74,	
12,40,	36,36,	16,51,	21,62,	
11,38,	17,52,	55,101,	12,41,	
66,113,	21,63,	66,36,	2,11,	
2,12,	2,13,	2,14,	2,15,	
2,14,	2,16,	2,17,	2,14,	
2,14,	2,18,	2,14,	2,19,	
2,14,	2,20,	2,14,	2,21,	
2,22,	2,23,	2,24,	2,14,	
2,25,	2,14,	2,14,	2,14,	
71,36,	17,53,	27,36,	78,33,	
2,14,	21,64,	2,14,	2,14,	
2,26,	2,14,	2,27,	2,14,	
2,14,	2,14,	2,14,	2,14,	
2,14,	2,14,	2,14,	2,28,	
2,14,	2,14,	2,14,	2,14,	
2,14,	2,14,	2,14,	2,14,	
2,29,	2,14,	2,14,	2,14,	
6,31,	15,36,	18,36,	13,42,	
18,54,	13,36,	20,36,	13,43,	
6,31,	6,31,	19,57,	13,44,	
19,36,	15,47,	18,55,	24,36,	
25,36,	13,45,	37,36,	28,36,	
39,36,	20,61,	25,72,	27,75,	
19,58,	40,36,	45,36,	22,65,	
24,71,	39,82,	19,59,	25,73,	
41,36,	6,32,	62,36,	37,79,	
82,128,	40,83,	62,109,	15,48,	
18,56,	41,84,	6,31,	13,46,	
22,66,	15,49,	45,90,	6,31,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	51,36,	51,96,	
110,36,	22,67,	19,60,	28,76,	
6,31,	10,36,	10,36,	10,37,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	6,33,	
29,36,	38,36,	46,36,	10,36,	
48,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	10,36,	
10,36,	10,36,	10,36,	23,36,	
42,36,	23,68,	43,36,	49,36,	
53,36,	43,86,	48,93,	52,36,	
44,36,	50,36,	47,36,	56,36,	
29,77,	38,80,	60,36,	50,95,	
63,36,	42,85,	46,91,	43,87,	
52,97,	23,69,	38,81,	44,88,	
44,89,	47,92,	54,36,	61,36,	
57,36,	54,99,	58,36,	58,104,	
59,36,	23,70,	64,36,	67,36,	
63,110,	54,100,	57,103,	61,108,	
65,36,	70,36,	59,106,	68,36,	
69,36,	72,36,	72,119,	58,105,	
74,36,	53,98,	49,94,	73,120,	
76,36,	73,36,	56,102,	65,112,	
60,107,	69,117,	68,115,	75,36,	
77,36,	79,36,	80,36,	83,36,	
68,116,	81,36,	81,127,	79,125,	
84,36,	83,129,	85,131,	86,132,	
85,36,	86,36,	90,36,	87,133,	
67,114,	87,36,	74,121,	88,36,	
89,36,	88,134,	91,36,	93,36,	
64,111,	90,137,	84,130,	94,36,	
92,36,	96,36,	96,143,	75,122,	
95,36,	89,135,	70,118,	76,123,	
95,142,	89,136,	92,139,	97,36,	
98,36,	99,36,	100,36,	80,126,	
101,36,	102,36,	100,147,	77,124,	
103,36,	104,36,	103,150,	104,151,	
101,148,	105,36,	106,36,	107,36,	
108,36,	97,144,	99,146,	105,152,	
109,36,	111,36,	114,36,	106,153,	
93,140,	109,156,	108,155,	91,138,	
112,36,	94,141,	112,158,	113,36,	
115,36,	117,36,	116,36,	117,163,	
118,36,	119,36,	122,36,	102,149,	
120,36,	121,36,	115,161,	123,36,	
127,36,	124,36,	125,36,	126,36,	
113,159,	107,154,	98,145,	116,162,	
129,175,	120,166,	119,165,	128,36,	
114,160,	130,36,	125,171,	131,36,	
133,36,	134,179,	132,36,	135,36,	
137,36,	138,36,	133,178,	130,176,	
140,36,	136,181,	111,157,	136,36,	
135,180,	128,174,	141,36,	139,36,	
144,36,	123,169,	124,170,	122,168,	
132,177,	126,172,	127,173,	145,36,	
142,36,	118,164,	139,183,	146,36,	
121,167,	142,185,	143,36,	147,36,	
143,186,	144,187,	148,36,	150,36,	
148,190,	149,36,	149,191,	151,36,	
152,36,	140,184,	154,36,	152,193,	
155,36,	153,36,	138,182,	156,36,	
147,189,	157,36,	151,192,	153,194,	
158,36,	159,36,	158,199,	160,36,	
161,36,	155,196,	162,203,	163,36,	
162,36,	165,36,	161,202,	166,36,	
156,197,	167,36,	165,206,	164,36,	
164,204,	168,36,	169,36,	159,200,	
145,188,	164,205,	170,36,	171,36,	
172,36,	173,36,	175,36,	174,36,	
175,213,	176,36,	177,36,	157,198,	
178,36,	179,36,	171,209,	160,201,	
174,212,	154,195,	181,36,	177,215,	
176,214,	178,216,	180,218,	184,36,	
180,36,	182,36,	183,221,	185,36,	
183,36,	181,219,	179,217,	186,36,	
187,36,	188,36,	172,210,	189,36,	
188,225,	190,36,	190,227,	191,36,	
189,226,	192,36,	186,223,	193,36,	
185,222,	194,36,	195,36,	168,207,	
187,224,	196,36,	197,36,	169,208,	
198,36,	173,211,	200,36,	182,220,	
194,231,	199,36,	201,36,	192,229,	
202,36,	203,36,	204,36,	205,36,	
206,36,	193,230,	196,233,	207,36,	
199,234,	208,36,	200,235,	202,237,	
209,36,	210,36,	211,36,	213,36,	
214,36,	191,228,	203,238,	215,36,	
212,246,	209,243,	212,36,	216,36,	
195,232,	219,252,	218,36,	217,36,	
220,36,	221,36,	222,36,	213,247,	
214,248,	217,250,	225,36,	226,36,	
215,249,	223,36,	224,36,	221,254,	
204,239,	208,242,	228,36,	223,255,	
229,36,	227,36,	205,240,	201,236,	
218,251,	230,36,	224,256,	227,258,	
232,36,	233,36,	229,260,	207,241,	
210,244,	234,36,	231,36,	211,245,	
231,261,	235,36,	236,36,	237,265,	
238,36,	237,36,	239,36,	240,36,	
241,36,	242,36,	243,36,	246,36,	
225,257,	244,36,	245,36,	247,36,	
243,271,	235,263,	248,36,	244,272,	
249,36,	238,266,	220,253,	250,36,	
232,262,	251,36,	256,36,	252,36,	
246,274,	252,278,	228,259,	257,36,	
259,36,	253,36,	249,275,	250,277,	
253,279,	260,286,	260,36,	249,276,	
236,264,	254,36,	255,36,	254,280,	
256,282,	255,281,	241,269,	261,36,	
258,36,	263,36,	242,270,	258,284,	
240,268,	262,36,	239,267,	245,273,	
264,36,	266,36,	265,36,	262,288,	
267,36,	268,36,	269,36,	261,287,	
270,36,	257,283,	263,289,	265,291,	
271,36,	272,36,	275,36,	273,36,	
266,292,	274,36,	276,302,	274,300,	
276,36,	259,285,	277,36,	278,36,	
279,36,	280,36,	281,36,	282,36,	
271,297,	283,36,	284,36,	285,36,	
275,301,	277,303,	286,36,	287,36,	
286,308,	288,36,	289,36,	290,36,	
291,36,	294,36,	282,305,	292,36,	
264,290,	273,299,	293,36,	295,36,	
296,36,	267,293,	297,36,	299,36,	
298,36,	289,310,	300,36,	268,294,	
272,298,	269,295,	270,296,	292,312,	
302,36,	301,36,	279,304,	301,320,	
303,36,	304,36,	305,323,	297,317,	
306,36,	302,321,	283,306,	308,36,	
285,307,	307,36,	309,36,	312,36,	
313,36,	310,36,	311,36,	314,36,	
288,309,	295,315,	290,311,	310,328,	
311,329,	315,36,	308,326,	293,313,	
316,36,	317,36,	294,314,	318,36,	
319,36,	320,36,	321,36,	322,36,	
296,316,	298,318,	323,36,	304,322,	
323,336,	306,324,	324,36,	307,325,	
325,36,	299,319,	313,330,	326,36,	
329,36,	327,36,	328,36,	320,333,	
321,334,	330,36,	331,36,	332,36,	
333,36,	335,36,	333,344,	309,327,	
334,36,	328,339,	334,345,	336,36,	
337,36,	338,36,	316,331,	339,36,	
340,36,	341,36,	343,36,	339,348,	
342,36,	344,36,	346,36,	347,36,	
322,335,	345,36,	348,36,	349,36,	
350,36,	318,332,	351,36,	352,36,	
353,36,	0,0,	0,0,	0,0,	
0,0,	0,0,	335,346,	329,340,	
0,0,	345,351,	0,0,	0,0,	
0,0,	0,0,	325,337,	327,338,	
0,0,	0,0,	0,0,	0,0,	
332,343,	331,342,	342,350,	330,341,	
0,0,	0,0,	0,0,	0,0,	
0,0,	340,349,	338,347,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	0,0,	0,0,	0,0,	
0,0,	349,352,	0,0,	0,0,	
352,353,	0,0,	0,0,	0,0,	
0,0};
struct yysvf yysvec[] = {
0,	0,	0,
yycrank+-1,	0,		0,	
yycrank+-77,	yysvec+1,	0,	
yycrank+0,	0,		yyvstop+1,
yycrank+4,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+6,
yycrank+-199,	0,		yyvstop+8,
yycrank+2,	0,		yyvstop+10,
yycrank+1,	0,		yyvstop+12,
yycrank+0,	yysvec+7,	yyvstop+14,
yycrank+200,	0,		yyvstop+17,
yycrank+25,	yysvec+10,	yyvstop+20,
yycrank+60,	yysvec+10,	yyvstop+23,
yycrank+138,	yysvec+10,	yyvstop+26,
yycrank+26,	yysvec+10,	yyvstop+29,
yycrank+134,	yysvec+10,	yyvstop+32,
yycrank+61,	yysvec+10,	yyvstop+35,
yycrank+59,	yysvec+10,	yyvstop+38,
yycrank+135,	yysvec+10,	yyvstop+41,
yycrank+145,	yysvec+10,	yyvstop+44,
yycrank+139,	yysvec+10,	yyvstop+47,
yycrank+62,	yysvec+10,	yyvstop+50,
yycrank+160,	yysvec+10,	yyvstop+53,
yycrank+256,	yysvec+10,	yyvstop+56,
yycrank+148,	yysvec+10,	yyvstop+59,
yycrank+149,	yysvec+10,	yyvstop+62,
yycrank+27,	yysvec+10,	yyvstop+65,
yycrank+103,	yysvec+10,	yyvstop+68,
yycrank+152,	yysvec+10,	yyvstop+71,
yycrank+225,	yysvec+10,	yyvstop+74,
yycrank+0,	yysvec+4,	yyvstop+77,
yycrank+-3,	yysvec+6,	0,	
yycrank+0,	0,		yyvstop+79,
yycrank+-5,	yysvec+6,	0,	
yycrank+0,	yysvec+7,	yyvstop+81,
yycrank+0,	0,		yyvstop+83,
yycrank+66,	yysvec+10,	yyvstop+85,
yycrank+151,	yysvec+10,	yyvstop+87,
yycrank+226,	yysvec+10,	yyvstop+89,
yycrank+153,	yysvec+10,	yyvstop+91,
yycrank+158,	yysvec+10,	yyvstop+93,
yycrank+165,	yysvec+10,	yyvstop+95,
yycrank+257,	yysvec+10,	yyvstop+97,
yycrank+259,	yysvec+10,	yyvstop+99,
yycrank+265,	yysvec+10,	yyvstop+101,
yycrank+159,	yysvec+10,	yyvstop+103,
yycrank+227,	yysvec+10,	yyvstop+105,
yycrank+267,	yysvec+10,	yyvstop+107,
yycrank+229,	yysvec+10,	yyvstop+109,
yycrank+260,	yysvec+10,	yyvstop+111,
yycrank+266,	yysvec+10,	yyvstop+113,
yycrank+191,	yysvec+10,	yyvstop+115,
yycrank+264,	yysvec+10,	yyvstop+117,
yycrank+261,	yysvec+10,	yyvstop+119,
yycrank+283,	yysvec+10,	yyvstop+121,
yycrank+71,	yysvec+10,	yyvstop+123,
yycrank+268,	yysvec+10,	yyvstop+125,
yycrank+285,	yysvec+10,	yyvstop+127,
yycrank+287,	yysvec+10,	yyvstop+129,
yycrank+289,	yysvec+10,	yyvstop+131,
yycrank+271,	yysvec+10,	yyvstop+133,
yycrank+284,	yysvec+10,	yyvstop+135,
yycrank+167,	yysvec+10,	yyvstop+137,
yycrank+273,	yysvec+10,	yyvstop+139,
yycrank+291,	yysvec+10,	yyvstop+141,
yycrank+297,	yysvec+10,	yyvstop+143,
yycrank+75,	yysvec+10,	yyvstop+145,
yycrank+292,	yysvec+10,	yyvstop+147,
yycrank+300,	yysvec+10,	yyvstop+149,
yycrank+301,	yysvec+10,	yyvstop+151,
yycrank+298,	yysvec+10,	yyvstop+153,
yycrank+101,	yysvec+10,	yyvstop+155,
yycrank+302,	yysvec+10,	yyvstop+158,
yycrank+310,	yysvec+10,	yyvstop+160,
yycrank+305,	yysvec+10,	yyvstop+162,
yycrank+316,	yysvec+10,	yyvstop+164,
yycrank+309,	yysvec+10,	yyvstop+166,
yycrank+317,	yysvec+10,	yyvstop+168,
yycrank+-79,	yysvec+6,	yyvstop+170,
yycrank+318,	yysvec+10,	yyvstop+172,
yycrank+319,	yysvec+10,	yyvstop+174,
yycrank+322,	yysvec+10,	yyvstop+176,
yycrank+169,	yysvec+10,	yyvstop+178,
yycrank+320,	yysvec+10,	yyvstop+180,
yycrank+325,	yysvec+10,	yyvstop+182,
yycrank+329,	yysvec+10,	yyvstop+185,
yycrank+330,	yysvec+10,	yyvstop+187,
yycrank+334,	yysvec+10,	yyvstop+189,
yycrank+336,	yysvec+10,	yyvstop+191,
yycrank+337,	yysvec+10,	yyvstop+193,
yycrank+331,	yysvec+10,	yyvstop+195,
yycrank+339,	yysvec+10,	yyvstop+197,
yycrank+345,	yysvec+10,	yyvstop+199,
yycrank+340,	yysvec+10,	yyvstop+201,
yycrank+344,	yysvec+10,	yyvstop+203,
yycrank+349,	yysvec+10,	yyvstop+205,
yycrank+346,	yysvec+10,	yyvstop+207,
yycrank+356,	yysvec+10,	yyvstop+209,
yycrank+357,	yysvec+10,	yyvstop+211,
yycrank+358,	yysvec+10,	yyvstop+213,
yycrank+359,	yysvec+10,	yyvstop+215,
yycrank+361,	yysvec+10,	yyvstop+217,
yycrank+362,	yysvec+10,	yyvstop+219,
yycrank+365,	yysvec+10,	yyvstop+221,
yycrank+366,	yysvec+10,	yyvstop+223,
yycrank+370,	yysvec+10,	yyvstop+225,
yycrank+371,	yysvec+10,	yyvstop+227,
yycrank+372,	yysvec+10,	yyvstop+229,
yycrank+373,	yysvec+10,	yyvstop+231,
yycrank+377,	yysvec+10,	yyvstop+233,
yycrank+193,	yysvec+10,	yyvstop+235,
yycrank+378,	yysvec+10,	yyvstop+238,
yycrank+385,	yysvec+10,	yyvstop+240,
yycrank+388,	yysvec+10,	yyvstop+242,
yycrank+379,	yysvec+10,	yyvstop+244,
yycrank+389,	yysvec+10,	yyvstop+246,
yycrank+391,	yysvec+10,	yyvstop+248,
yycrank+390,	yysvec+10,	yyvstop+250,
yycrank+393,	yysvec+10,	yyvstop+252,
yycrank+394,	yysvec+10,	yyvstop+254,
yycrank+397,	yysvec+10,	yyvstop+256,
yycrank+398,	yysvec+10,	yyvstop+258,
yycrank+395,	yysvec+10,	yyvstop+260,
yycrank+400,	yysvec+10,	yyvstop+262,
yycrank+402,	yysvec+10,	yyvstop+264,
yycrank+403,	yysvec+10,	yyvstop+266,
yycrank+404,	yysvec+10,	yyvstop+268,
yycrank+401,	yysvec+10,	yyvstop+270,
yycrank+412,	yysvec+10,	yyvstop+272,
yycrank+409,	yysvec+10,	yyvstop+274,
yycrank+414,	yysvec+10,	yyvstop+276,
yycrank+416,	yysvec+10,	yyvstop+278,
yycrank+419,	yysvec+10,	yyvstop+281,
yycrank+417,	yysvec+10,	yyvstop+283,
yycrank+418,	yysvec+10,	yyvstop+285,
yycrank+420,	yysvec+10,	yyvstop+287,
yycrank+428,	yysvec+10,	yyvstop+289,
yycrank+421,	yysvec+10,	yyvstop+291,
yycrank+422,	yysvec+10,	yyvstop+294,
yycrank+432,	yysvec+10,	yyvstop+296,
yycrank+425,	yysvec+10,	yyvstop+298,
yycrank+431,	yysvec+10,	yyvstop+300,
yycrank+441,	yysvec+10,	yyvstop+303,
yycrank+447,	yysvec+10,	yyvstop+305,
yycrank+433,	yysvec+10,	yyvstop+307,
yycrank+440,	yysvec+10,	yyvstop+309,
yycrank+444,	yysvec+10,	yyvstop+311,
yycrank+448,	yysvec+10,	yyvstop+314,
yycrank+451,	yysvec+10,	yyvstop+316,
yycrank+454,	yysvec+10,	yyvstop+318,
yycrank+452,	yysvec+10,	yyvstop+320,
yycrank+456,	yysvec+10,	yyvstop+323,
yycrank+457,	yysvec+10,	yyvstop+325,
yycrank+462,	yysvec+10,	yyvstop+327,
yycrank+459,	yysvec+10,	yyvstop+329,
yycrank+461,	yysvec+10,	yyvstop+331,
yycrank+464,	yysvec+10,	yyvstop+333,
yycrank+466,	yysvec+10,	yyvstop+335,
yycrank+469,	yysvec+10,	yyvstop+337,
yycrank+470,	yysvec+10,	yyvstop+339,
yycrank+472,	yysvec+10,	yyvstop+341,
yycrank+473,	yysvec+10,	yyvstop+343,
yycrank+477,	yysvec+10,	yyvstop+345,
yycrank+476,	yysvec+10,	yyvstop+347,
yycrank+484,	yysvec+10,	yyvstop+350,
yycrank+478,	yysvec+10,	yyvstop+352,
yycrank+480,	yysvec+10,	yyvstop+354,
yycrank+482,	yysvec+10,	yyvstop+357,
yycrank+486,	yysvec+10,	yyvstop+360,
yycrank+487,	yysvec+10,	yyvstop+362,
yycrank+491,	yysvec+10,	yyvstop+365,
yycrank+492,	yysvec+10,	yyvstop+368,
yycrank+493,	yysvec+10,	yyvstop+370,
yycrank+494,	yysvec+10,	yyvstop+372,
yycrank+496,	yysvec+10,	yyvstop+374,
yycrank+495,	yysvec+10,	yyvstop+376,
yycrank+498,	yysvec+10,	yyvstop+378,
yycrank+499,	yysvec+10,	yyvstop+380,
yycrank+501,	yysvec+10,	yyvstop+382,
yycrank+502,	yysvec+10,	yyvstop+384,
yycrank+513,	yysvec+10,	yyvstop+386,
yycrank+507,	yysvec+10,	yyvstop+388,
yycrank+514,	yysvec+10,	yyvstop+390,
yycrank+517,	yysvec+10,	yyvstop+392,
yycrank+512,	yysvec+10,	yyvstop+394,
yycrank+516,	yysvec+10,	yyvstop+397,
yycrank+520,	yysvec+10,	yyvstop+399,
yycrank+521,	yysvec+10,	yyvstop+401,
yycrank+522,	yysvec+10,	yyvstop+403,
yycrank+524,	yysvec+10,	yyvstop+405,
yycrank+526,	yysvec+10,	yyvstop+407,
yycrank+528,	yysvec+10,	yyvstop+409,
yycrank+530,	yysvec+10,	yyvstop+411,
yycrank+532,	yysvec+10,	yyvstop+413,
yycrank+534,	yysvec+10,	yyvstop+415,
yycrank+535,	yysvec+10,	yyvstop+417,
yycrank+538,	yysvec+10,	yyvstop+419,
yycrank+539,	yysvec+10,	yyvstop+421,
yycrank+541,	yysvec+10,	yyvstop+424,
yycrank+546,	yysvec+10,	yyvstop+427,
yycrank+543,	yysvec+10,	yyvstop+429,
yycrank+547,	yysvec+10,	yyvstop+431,
yycrank+549,	yysvec+10,	yyvstop+433,
yycrank+550,	yysvec+10,	yyvstop+435,
yycrank+551,	yysvec+10,	yyvstop+437,
yycrank+552,	yysvec+10,	yyvstop+439,
yycrank+553,	yysvec+10,	yyvstop+441,
yycrank+556,	yysvec+10,	yyvstop+444,
yycrank+558,	yysvec+10,	yyvstop+446,
yycrank+561,	yysvec+10,	yyvstop+448,
yycrank+562,	yysvec+10,	yyvstop+450,
yycrank+563,	yysvec+10,	yyvstop+452,
yycrank+571,	yysvec+10,	yyvstop+454,
yycrank+564,	yysvec+10,	yyvstop+456,
yycrank+565,	yysvec+10,	yyvstop+458,
yycrank+568,	yysvec+10,	yyvstop+460,
yycrank+572,	yysvec+10,	yyvstop+462,
yycrank+576,	yysvec+10,	yyvstop+465,
yycrank+575,	yysvec+10,	yyvstop+467,
yycrank+574,	yysvec+10,	yyvstop+469,
yycrank+577,	yysvec+10,	yyvstop+471,
yycrank+578,	yysvec+10,	yyvstop+473,
yycrank+579,	yysvec+10,	yyvstop+475,
yycrank+586,	yysvec+10,	yyvstop+478,
yycrank+587,	yysvec+10,	yyvstop+480,
yycrank+583,	yysvec+10,	yyvstop+482,
yycrank+584,	yysvec+10,	yyvstop+484,
yycrank+594,	yysvec+10,	yyvstop+487,
yycrank+591,	yysvec+10,	yyvstop+489,
yycrank+593,	yysvec+10,	yyvstop+491,
yycrank+598,	yysvec+10,	yyvstop+493,
yycrank+607,	yysvec+10,	yyvstop+496,
yycrank+601,	yysvec+10,	yyvstop+498,
yycrank+602,	yysvec+10,	yyvstop+500,
yycrank+606,	yysvec+10,	yyvstop+503,
yycrank+610,	yysvec+10,	yyvstop+506,
yycrank+611,	yysvec+10,	yyvstop+508,
yycrank+614,	yysvec+10,	yyvstop+510,
yycrank+613,	yysvec+10,	yyvstop+512,
yycrank+615,	yysvec+10,	yyvstop+514,
yycrank+616,	yysvec+10,	yyvstop+516,
yycrank+617,	yysvec+10,	yyvstop+518,
yycrank+618,	yysvec+10,	yyvstop+520,
yycrank+619,	yysvec+10,	yyvstop+522,
yycrank+622,	yysvec+10,	yyvstop+524,
yycrank+623,	yysvec+10,	yyvstop+526,
yycrank+620,	yysvec+10,	yyvstop+528,
yycrank+624,	yysvec+10,	yyvstop+530,
yycrank+627,	yysvec+10,	yyvstop+533,
yycrank+629,	yysvec+10,	yyvstop+536,
yycrank+632,	yysvec+10,	yyvstop+538,
yycrank+634,	yysvec+10,	yyvstop+540,
yycrank+636,	yysvec+10,	yyvstop+543,
yycrank+642,	yysvec+10,	yyvstop+545,
yycrank+650,	yysvec+10,	yyvstop+547,
yycrank+651,	yysvec+10,	yyvstop+549,
yycrank+635,	yysvec+10,	yyvstop+551,
yycrank+640,	yysvec+10,	yyvstop+553,
yycrank+657,	yysvec+10,	yyvstop+555,
yycrank+641,	yysvec+10,	yyvstop+557,
yycrank+647,	yysvec+10,	yyvstop+559,
yycrank+656,	yysvec+10,	yyvstop+561,
yycrank+662,	yysvec+10,	yyvstop+563,
yycrank+658,	yysvec+10,	yyvstop+565,
yycrank+665,	yysvec+10,	yyvstop+567,
yycrank+667,	yysvec+10,	yyvstop+569,
yycrank+666,	yysvec+10,	yyvstop+571,
yycrank+669,	yysvec+10,	yyvstop+573,
yycrank+670,	yysvec+10,	yyvstop+575,
yycrank+671,	yysvec+10,	yyvstop+577,
yycrank+673,	yysvec+10,	yyvstop+579,
yycrank+677,	yysvec+10,	yyvstop+581,
yycrank+678,	yysvec+10,	yyvstop+583,
yycrank+680,	yysvec+10,	yyvstop+585,
yycrank+682,	yysvec+10,	yyvstop+587,
yycrank+679,	yysvec+10,	yyvstop+589,
yycrank+685,	yysvec+10,	yyvstop+591,
yycrank+687,	yysvec+10,	yyvstop+593,
yycrank+688,	yysvec+10,	yyvstop+595,
yycrank+689,	yysvec+10,	yyvstop+598,
yycrank+690,	yysvec+10,	yyvstop+600,
yycrank+691,	yysvec+10,	yyvstop+603,
yycrank+692,	yysvec+10,	yyvstop+606,
yycrank+694,	yysvec+10,	yyvstop+608,
yycrank+695,	yysvec+10,	yyvstop+610,
yycrank+696,	yysvec+10,	yyvstop+613,
yycrank+699,	yysvec+10,	yyvstop+615,
yycrank+700,	yysvec+10,	yyvstop+617,
yycrank+702,	yysvec+10,	yyvstop+620,
yycrank+703,	yysvec+10,	yyvstop+622,
yycrank+704,	yysvec+10,	yyvstop+624,
yycrank+705,	yysvec+10,	yyvstop+626,
yycrank+708,	yysvec+10,	yyvstop+629,
yycrank+711,	yysvec+10,	yyvstop+631,
yycrank+706,	yysvec+10,	yyvstop+633,
yycrank+712,	yysvec+10,	yyvstop+635,
yycrank+713,	yysvec+10,	yyvstop+637,
yycrank+715,	yysvec+10,	yyvstop+639,
yycrank+717,	yysvec+10,	yyvstop+641,
yycrank+716,	yysvec+10,	yyvstop+643,
yycrank+719,	yysvec+10,	yyvstop+645,
yycrank+726,	yysvec+10,	yyvstop+648,
yycrank+725,	yysvec+10,	yyvstop+650,
yycrank+729,	yysvec+10,	yyvstop+652,
yycrank+730,	yysvec+10,	yyvstop+655,
yycrank+731,	yysvec+10,	yyvstop+657,
yycrank+733,	yysvec+10,	yyvstop+659,
yycrank+738,	yysvec+10,	yyvstop+661,
yycrank+736,	yysvec+10,	yyvstop+663,
yycrank+739,	yysvec+10,	yyvstop+665,
yycrank+742,	yysvec+10,	yyvstop+667,
yycrank+743,	yysvec+10,	yyvstop+669,
yycrank+740,	yysvec+10,	yyvstop+671,
yycrank+741,	yysvec+10,	yyvstop+674,
yycrank+744,	yysvec+10,	yyvstop+676,
yycrank+750,	yysvec+10,	yyvstop+679,
yycrank+753,	yysvec+10,	yyvstop+682,
yycrank+754,	yysvec+10,	yyvstop+684,
yycrank+756,	yysvec+10,	yyvstop+687,
yycrank+757,	yysvec+10,	yyvstop+689,
yycrank+758,	yysvec+10,	yyvstop+692,
yycrank+759,	yysvec+10,	yyvstop+694,
yycrank+760,	yysvec+10,	yyvstop+696,
yycrank+763,	yysvec+10,	yyvstop+698,
yycrank+767,	yysvec+10,	yyvstop+700,
yycrank+769,	yysvec+10,	yyvstop+703,
yycrank+772,	yysvec+10,	yyvstop+705,
yycrank+774,	yysvec+10,	yyvstop+708,
yycrank+775,	yysvec+10,	yyvstop+710,
yycrank+773,	yysvec+10,	yyvstop+712,
yycrank+778,	yysvec+10,	yyvstop+714,
yycrank+779,	yysvec+10,	yyvstop+716,
yycrank+780,	yysvec+10,	yyvstop+718,
yycrank+781,	yysvec+10,	yyvstop+720,
yycrank+785,	yysvec+10,	yyvstop+722,
yycrank+782,	yysvec+10,	yyvstop+724,
yycrank+788,	yysvec+10,	yyvstop+726,
yycrank+789,	yysvec+10,	yyvstop+729,
yycrank+790,	yysvec+10,	yyvstop+732,
yycrank+792,	yysvec+10,	yyvstop+734,
yycrank+793,	yysvec+10,	yyvstop+736,
yycrank+794,	yysvec+10,	yyvstop+738,
yycrank+797,	yysvec+10,	yyvstop+741,
yycrank+795,	yysvec+10,	yyvstop+743,
yycrank+798,	yysvec+10,	yyvstop+746,
yycrank+802,	yysvec+10,	yyvstop+749,
yycrank+799,	yysvec+10,	yyvstop+752,
yycrank+800,	yysvec+10,	yyvstop+755,
yycrank+803,	yysvec+10,	yyvstop+758,
yycrank+804,	yysvec+10,	yyvstop+761,
yycrank+805,	yysvec+10,	yyvstop+763,
yycrank+807,	yysvec+10,	yyvstop+766,
yycrank+808,	yysvec+10,	yyvstop+769,
yycrank+809,	yysvec+10,	yyvstop+771,
0,	0,	0};
struct yywork *yytop = yycrank+924;
struct yysvf *yybgin = yysvec+1;
unsigned char yymatch[] = {
00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
011 ,01  ,'"' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,'+' ,01  ,'+' ,01  ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,'A' ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
0};
char yyextra[] = {
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0};
#ident	"$Revision: 1.7 $"

int yylineno =1;
# define YYU(x) x
# define NLSTATE yyprevious=YYNEWLINE
char yytext[YYLMAX];
struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
char yysbuf[YYLMAX];
char *yysptr = yysbuf;
int *yyfnd;
extern struct yysvf *yyestate;
int yyprevious = YYNEWLINE;
#if defined(__cplusplus) || defined(__STDC__)
int yylook(void)
#else
yylook()
#endif
{
	register struct yysvf *yystate, **lsp;
	register struct yywork *yyt;
	struct yysvf *yyz;
	int yych, yyfirst;
	struct yywork *yyr;
# ifdef LEXDEBUG
	int debug;
# endif
	char *yylastch;
	/* start off machines */
# ifdef LEXDEBUG
	debug = 0;
# endif
	yyfirst=1;
	if (!yymorfg)
		yylastch = yytext;
	else {
		yymorfg=0;
		yylastch = yytext+yyleng;
		}
	for(;;){
		lsp = yylstate;
		yyestate = yystate = yybgin;
		if (yyprevious==YYNEWLINE) yystate++;
		for (;;){
# ifdef LEXDEBUG
			if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
# endif
			yyt = yystate->yystoff;
			if(yyt == yycrank && !yyfirst){  /* may not be any transitions */
				yyz = yystate->yyother;
				if(yyz == 0)break;
				if(yyz->yystoff == yycrank)break;
				}
			*yylastch++ = yych = input();
			if(yylastch > &yytext[YYLMAX]) {
				fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
				exit(1);
			}
			yyfirst=0;
		tryagain:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"char ");
				allprint(yych);
				putchar('\n');
				}
# endif
			yyr = yyt;
			if ( (void *)yyt > (void *)yycrank){
				yyt = yyr + yych;
				if (yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
					goto contin;
					}
				}
# ifdef YYOPTIM
			else if((void *)yyt < (void *)yycrank) {	/* r < yycrank */
				yyt = yyr = yycrank+(yycrank-yyt);
# ifdef LEXDEBUG
				if(debug)fprintf(yyout,"compressed state\n");
# endif
				yyt = yyt + yych;
				if(yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transitions */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
					goto contin;
					}
				yyt = yyr + YYU(yymatch[yych]);
# ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,"try fall back character ");
					allprint(YYU(yymatch[yych]));
					putchar('\n');
					}
# endif
				if(yyt <= yytop && yyt->verify+yysvec == yystate){
					if(yyt->advance+yysvec == YYLERR)	/* error transition */
						{unput(*--yylastch);break;}
					*lsp++ = yystate = yyt->advance+yysvec;
					if(lsp > &yylstate[YYLMAX]) {
						fprintf(yyout,"Input string too long, limit %d\n",YYLMAX);
						exit(1);
					}
					goto contin;
					}
				}
			if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
# ifdef LEXDEBUG
				if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
# endif
				goto tryagain;
				}
# endif
			else
				{unput(*--yylastch);break;}
		contin:
# ifdef LEXDEBUG
			if(debug){
				fprintf(yyout,"state %d char ",yystate-yysvec-1);
				allprint(yych);
				putchar('\n');
				}
# endif
			;
			}
# ifdef LEXDEBUG
		if(debug){
			fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
			allprint(yych);
			putchar('\n');
			}
# endif
		while (lsp-- > yylstate){
			*yylastch-- = 0;
			if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
				yyolsp = lsp;
				if(yyextra[*yyfnd]){		/* must backup */
					while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
						lsp--;
						unput(*yylastch--);
						}
					}
				yyprevious = YYU(*yylastch);
				yylsp = lsp;
				yyleng = yylastch-yytext+1;
				yytext[yyleng] = 0;
# ifdef LEXDEBUG
				if(debug){
					fprintf(yyout,"\nmatch ");
					sprint(yytext);
					fprintf(yyout," action %d\n",*yyfnd);
					}
# endif
				return(*yyfnd++);
				}
			unput(*yylastch);
			}
		if (yytext[0] == 0  /* && feof(yyin) */)
			{
			yysptr=yysbuf;
			return(0);
			}
		yyprevious = yytext[0] = input();
		if (yyprevious>0)
			output(yyprevious);
		yylastch=yytext;
# ifdef LEXDEBUG
		if(debug)putchar('\n');
# endif
		}
	}
#if defined(__cplusplus) || defined(__STDC__)
int yyback(int *p, int m)
#else
yyback(p, m)
	int *p;
#endif
{
	if (p==0) return(0);
	while (*p) {
		if (*p++ == m)
			return(1);
	}
	return(0);
}
	/* the following are only used in the lex library */
#if defined(__cplusplus) || defined(__STDC__)
int yyinput(void)
#else
yyinput()
#endif
{
	return(input());
	}
#if defined(__cplusplus) || defined(__STDC__)
void yyoutput(int c)
#else
yyoutput(c)
  int c; 
#endif
{
	output(c);
	}
#if defined(__cplusplus) || defined(__STDC__)
void yyunput(int c)
#else
yyunput(c)
   int c; 
#endif
{
	unput(c);
	}
