# 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__) int yyback(int *, int); int yyinput(void); int yylook(void); void yyoutput(int); int yyracc(int); int yyreject(void); void yyunput(int); #ifndef __STDC__ #ifndef yyless void yyless(int); #endif #ifndef yywrap int yywrap(void); #endif #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; # line 7 "scan.l" /* * Copyright 1988 by Siemens * All Rights Reserved * * Permission to use, copy, modify and distribute this software is * hereby granted, provided that this copyright notice appear in all * copies and that the copyright notice appear in supporting documentation. * * written 16-17 Mar 1988 by claus gittinger * * atomizer for .bdf files * */ # line 20 "scan.l" /* * Modified by Jeffrey Lee and Mark Moraes @ the University of Toronto * to make it handle a larger subset of BDF. It now reads in all the * font files in X.V11R3 without complaints. */ #include "y.tab.h" #include "defs.h" int lineno = 1; int stringMode = 0; # define AA 2 # 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 40 "scan.l" { return STARTFONT; } break; case 2: # line 43 "scan.l" return SIZE; break; case 3: # line 44 "scan.l" return FONTBOUNDINGBOX; break; case 4: # line 45 "scan.l" { yylval.sval = malloc(strlen(yytext+8)+1); strcpy(yylval.sval, yytext+8); return COMMENT; } break; case 5: # line 51 "scan.l" { BEGIN AA; return STARTPROPERTIES; } break; case 6: # line 55 "scan.l" { BEGIN 0; return ENDPROPERTIES; } break; case 7: # line 59 "scan.l" { yylval.sval = malloc(strlen(yytext)+1); strcpy(yylval.sval, yytext); return PROPERTY; } break; case 8: # line 65 "scan.l" return CHARS; break; case 9: # line 66 "scan.l" return ENCODING; break; case 10: # line 67 "scan.l" return SWIDTH; break; case 11: # line 68 "scan.l" return DWIDTH; break; case 12: # line 69 "scan.l" return BBX; break; case 13: # line 70 "scan.l" return BITMAP; break; case 14: # line 71 "scan.l" return ENDCHAR; break; case 15: # line 72 "scan.l" return ENDFONT; break; case 16: # line 73 "scan.l" { yylval.sval = malloc(strlen(yytext+5)+1); strcpy(yylval.sval, yytext+5); return FONT; } break; case 17: # line 78 "scan.l" { yylval.sval = malloc(strlen(yytext+10)+1); strcpy(yylval.sval, yytext+10); return STARTCHAR; } break; case 18: # line 83 "scan.l" { if (stringMode) { yylval.sval = malloc(strlen(yytext)+1); strcpy(yylval.sval, yytext); return STRING; } else sscanf(yytext, "%d", &yylval.ival); return NUMBER; } break; case 19: # line 93 "scan.l" { sscanf(yytext, "%d", &yylval.ival); return NUMBER; } break; case 20: # line 98 "scan.l" { if (stringMode) { yylval.sval = malloc(strlen(yytext)+1); strcpy(yylval.sval, yytext); return STRING; } sscanf(yytext, "%x", &yylval.ival); return NUMBER; } break; case 21: # line 108 "scan.l" { yylval.sval = malloc(strlen(yytext)+1); strcpy(yylval.sval, yytext); return IDENTIFIER; } break; case 22: # line 114 "scan.l" return DOT; break; case 23: # line 116 "scan.l" { yylval.sval = malloc(strlen(yytext)+1); strcpy(yylval.sval, yytext); return STRING; } break; case 24: # line 122 "scan.l" ; break; case 25: # line 124 "scan.l" { lineno++; return NEWLINE; } break; case 26: # line 130 "scan.l" ; break; case -1: break; default: (void)fprintf(yyout,"bad switch yylook %d",nstr); } return(0); } /* end of yylex */ int yyvstop[] = { 0, 26, 0, 24, 26, 0, 25, 0, 26, 0, 26, 0, 22, 26, 0, 18, 20, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 21, 26, 0, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 20, 21, 26, 0, 21, 26, 0, 21, 26, 0, 23, 0, 19, 0, 18, 20, 0, 20, 0, 21, 0, 20, 21, 0, 20, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 7, 0, 21, 0, 20, 21, 0, 20, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 12, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 12, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 2, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 2, 21, 0, 21, 0, 21, 0, 21, 0, 8, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 16, 0, 21, 0, 21, 0, 21, 0, 21, 0, 8, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 7, 16, 0, 21, 0, 21, 0, 21, 0, 13, 21, 0, 21, 0, 11, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 10, 21, 0, 13, 21, 0, 21, 0, 11, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 10, 21, 0, 21, 0, 21, 0, 14, 21, 0, 15, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 14, 21, 0, 15, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 4, 0, 9, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 4, 7, 0, 9, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 1, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 1, 21, 0, 21, 0, 21, 0, 21, 0, 17, 0, 21, 0, 21, 0, 21, 0, 7, 17, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 21, 0, 6, 21, 0, 21, 0, 21, 0, 6, 21, 0, 21, 0, 21, 0, 6, 0, 21, 0, 21, 0, 6, 7, 0, 21, 0, 21, 0, 3, 21, 0, 5, 21, 0, 3, 21, 0, 5, 21, 0, 0}; # define YYTYPE unsigned char struct yywork { YYTYPE verify, advance; } yycrank[] = { 0,0, 0,0, 1,5, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,6, 1,7, 0,0, 0,0, 0,0, 0,0, 2,6, 0,0, 8,28, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 8,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 1,8, 28,0, 223,0, 0,0, 29,0, 0,0, 2,8, 0,0, 0,0, 0,0, 0,0, 1,9, 1,10, 0,0, 1,11, 0,0, 8,29, 0,0, 2,10, 3,6, 0,0, 0,0, 0,0, 220,220, 223,223, 28,29, 4,6, 8,28, 29,29, 0,0, 8,28, 1,12, 1,13, 1,14, 1,15, 1,16, 1,17, 1,18, 2,13, 2,14, 2,15, 2,16, 2,17, 0,0, 3,8, 0,0, 0,0, 8,28, 0,0, 1,19, 13,35, 4,8, 0,0, 8,28, 0,0, 2,19, 3,10, 13,36, 14,37, 16,40, 17,41, 1,5, 21,48, 4,10, 22,50, 14,38, 0,0, 2,5, 15,39, 21,49, 24,53, 22,51, 25,54, 0,0, 0,0, 3,20, 3,21, 3,22, 3,23, 3,24, 3,25, 3,26, 4,20, 4,21, 4,22, 4,23, 4,24, 4,25, 4,26, 23,52, 35,58, 48,69, 0,0, 3,27, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 4,27, 0,0, 0,0, 0,0, 0,0, 3,5, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 4,5, 9,30, 9,30, 9,30, 9,30, 9,30, 9,30, 9,30, 9,30, 9,30, 9,30, 11,31, 11,31, 11,31, 11,31, 11,31, 11,31, 11,31, 11,31, 11,31, 11,31, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 11,32, 11,32, 11,32, 11,32, 11,32, 11,32, 32,32, 32,32, 32,32, 32,32, 32,32, 32,32, 32,32, 32,32, 32,32, 32,32, 0,0, 0,0, 12,33, 12,33, 0,0, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 0,0, 11,32, 11,32, 11,32, 11,32, 11,32, 11,32, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 0,0, 0,0, 0,0, 0,0, 12,33, 0,0, 12,34, 12,34, 12,34, 12,34, 12,34, 12,34, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 12,33, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 0,0, 0,0, 19,42, 18,33, 18,33, 18,33, 18,33, 18,33, 18,33, 0,0, 0,0, 0,0, 0,0, 19,43, 0,0, 0,0, 19,44, 0,0, 0,0, 20,45, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 19,33, 19,33, 19,33, 19,33, 19,33, 19,33, 20,46, 20,46, 0,0, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 0,0, 0,0, 0,0, 0,0, 20,46, 0,0, 20,47, 20,47, 20,47, 20,47, 20,47, 20,47, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 20,46, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 0,0, 45,45, 27,55, 26,46, 26,46, 26,46, 26,46, 26,46, 26,46, 0,0, 45,0, 0,0, 0,0, 27,56, 0,0, 0,0, 27,57, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 27,46, 27,46, 27,46, 27,46, 27,46, 27,46, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 0,0, 0,0, 0,0, 45,45, 0,0, 0,0, 45,45, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 45,45, 0,0, 0,0, 0,0, 0,0, 0,0, 45,45, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 0,0, 0,0, 0,0, 33,33, 33,33, 33,33, 33,33, 33,33, 33,33, 0,0, 0,0, 0,0, 0,0, 36,59, 0,0, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 0,0, 36,33, 36,33, 36,33, 36,33, 36,33, 36,33, 37,60, 37,33, 37,33, 37,33, 37,33, 37,33, 0,0, 0,0, 0,0, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 37,33, 37,33, 37,33, 37,33, 37,33, 37,33, 38,61, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 0,0, 38,33, 38,33, 38,33, 38,33, 38,33, 38,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 0,0, 0,0, 39,62, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 40,33, 40,33, 40,63, 40,64, 40,33, 40,33, 39,33, 39,33, 39,33, 39,33, 39,33, 39,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 0,0, 40,33, 40,33, 40,33, 40,33, 40,33, 40,33, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 41,65, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 0,0, 41,33, 41,33, 41,33, 41,33, 41,33, 41,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 0,0, 0,0, 0,0, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 42,66, 43,67, 43,33, 43,33, 43,33, 43,33, 43,33, 42,33, 42,33, 42,33, 42,33, 42,33, 42,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 0,0, 43,33, 43,33, 43,33, 43,33, 43,33, 43,33, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 0,0, 0,0, 44,68, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 44,33, 44,33, 44,33, 44,33, 44,33, 44,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 0,0, 46,46, 46,46, 46,46, 46,46, 46,46, 46,46, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 0,0, 0,0, 0,0, 49,70, 0,0, 0,0, 0,0, 50,71, 50,46, 50,46, 50,46, 50,46, 50,46, 0,0, 0,0, 0,0, 49,46, 49,46, 49,46, 49,46, 49,46, 49,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 0,0, 50,46, 50,46, 50,46, 50,46, 50,46, 50,46, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 51,72, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 0,0, 51,46, 51,46, 51,46, 51,46, 51,46, 51,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 0,0, 0,0, 52,73, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 53,46, 53,46, 53,74, 53,75, 53,46, 53,46, 52,46, 52,46, 52,46, 52,46, 52,46, 52,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 0,0, 53,46, 53,46, 53,46, 53,46, 53,46, 53,46, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 54,76, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 0,0, 54,46, 54,46, 54,46, 54,46, 54,46, 54,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 0,0, 0,0, 0,0, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 55,77, 56,78, 56,46, 56,46, 56,46, 56,46, 56,46, 55,46, 55,46, 55,46, 55,46, 55,46, 55,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 0,0, 56,46, 56,46, 56,46, 56,46, 56,46, 56,46, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 0,0, 0,0, 57,79, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 57,46, 57,46, 57,46, 57,46, 57,46, 57,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 0,0, 58,33, 58,33, 58,33, 58,33, 58,33, 58,33, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 59,80, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 0,0, 59,33, 59,33, 59,33, 59,33, 59,33, 59,33, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 60,81, 0,0, 0,0, 0,0, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 0,0, 60,33, 60,33, 60,33, 60,33, 60,33, 60,33, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 61,82, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 0,0, 61,33, 61,33, 61,33, 61,33, 61,33, 61,33, 62,33, 62,33, 62,33, 62,83, 62,33, 62,33, 0,0, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 0,0, 0,0, 62,33, 62,33, 62,33, 62,33, 62,33, 62,33, 63,84, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 0,0, 63,33, 63,33, 63,33, 63,33, 63,33, 63,33, 64,33, 64,33, 64,85, 64,33, 64,33, 64,86, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 64,87, 0,0, 0,0, 0,0, 0,0, 0,0, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 0,0, 64,33, 64,33, 64,33, 64,33, 64,33, 64,33, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 0,0, 0,0, 0,0, 65,88, 0,0, 0,0, 0,0, 66,33, 66,33, 66,33, 66,33, 66,89, 66,33, 0,0, 0,0, 0,0, 65,33, 65,33, 65,33, 65,33, 65,33, 65,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 0,0, 66,33, 66,33, 66,33, 66,33, 66,33, 66,33, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 0,0, 67,90, 0,0, 0,0, 0,0, 0,0, 0,0, 68,33, 68,33, 68,33, 68,91, 68,33, 68,33, 0,0, 0,0, 0,0, 67,33, 67,33, 67,33, 67,33, 67,33, 67,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 0,0, 68,33, 68,33, 68,33, 68,33, 68,33, 68,33, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 0,0, 0,0, 0,0, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 69,46, 69,46, 69,46, 69,46, 69,46, 69,46, 70,92, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 0,0, 70,46, 70,46, 70,46, 70,46, 70,46, 70,46, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 71,93, 0,0, 0,0, 0,0, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 0,0, 71,46, 71,46, 71,46, 71,46, 71,46, 71,46, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 72,94, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 0,0, 72,46, 72,46, 72,46, 72,46, 72,46, 72,46, 73,46, 73,46, 73,46, 73,95, 73,46, 73,46, 0,0, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 0,0, 0,0, 73,46, 73,46, 73,46, 73,46, 73,46, 73,46, 74,96, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 0,0, 74,46, 74,46, 74,46, 74,46, 74,46, 74,46, 75,46, 75,46, 75,97, 75,46, 75,46, 75,98, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 75,99, 0,0, 0,0, 0,0, 0,0, 0,0, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 0,0, 75,46, 75,46, 75,46, 75,46, 75,46, 75,46, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 0,0, 0,0, 0,0, 76,100, 0,0, 0,0, 0,0, 77,46, 77,46, 77,46, 77,46, 77,101, 77,46, 0,0, 0,0, 0,0, 76,46, 76,46, 76,46, 76,46, 76,46, 76,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 0,0, 77,46, 77,46, 77,46, 77,46, 77,46, 77,46, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 0,0, 78,102, 0,0, 0,0, 0,0, 0,0, 0,0, 79,46, 79,46, 79,46, 79,103, 79,46, 79,46, 0,0, 0,0, 0,0, 78,46, 78,46, 78,46, 78,46, 78,46, 78,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 0,0, 79,46, 79,46, 79,46, 79,46, 79,46, 79,46, 80,104, 80,33, 80,33, 80,33, 80,33, 80,33, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 0,0, 0,0, 0,0, 80,33, 80,33, 80,33, 80,33, 80,33, 80,33, 0,0, 0,0, 0,0, 81,105, 0,0, 0,0, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 0,0, 81,33, 81,33, 81,33, 81,33, 81,33, 81,33, 82,33, 82,33, 82,33, 82,33, 82,106, 82,33, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 0,0, 0,0, 0,0, 82,33, 82,33, 82,33, 82,33, 82,33, 82,33, 0,0, 0,0, 0,0, 0,0, 83,107, 0,0, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 0,0, 83,33, 83,33, 83,33, 83,33, 83,33, 83,33, 84,33, 84,33, 84,33, 84,108, 84,33, 84,33, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 0,0, 85,109, 0,0, 84,33, 84,33, 84,33, 84,33, 84,33, 84,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 0,0, 85,33, 85,33, 85,33, 85,33, 85,33, 85,33, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 86,110, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 0,0, 86,33, 86,33, 86,33, 86,33, 86,33, 86,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 88,112, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 87,111, 0,0, 0,0, 0,0, 0,0, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 87,33, 87,33, 87,33, 87,33, 87,33, 87,33, 0,0, 88,33, 88,113, 88,33, 88,33, 88,33, 88,33, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 0,0, 0,0, 0,0, 88,33, 88,33, 88,33, 88,33, 88,33, 88,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 0,0, 89,33, 89,33, 89,33, 89,33, 89,33, 89,33, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 0,0, 0,0, 0,0, 90,114, 0,0, 0,0, 0,0, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 0,0, 0,0, 0,0, 90,33, 90,33, 90,33, 90,33, 90,33, 90,33, 0,0, 0,0, 0,0, 0,0, 91,115, 0,0, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 0,0, 91,33, 91,33, 91,33, 91,33, 91,33, 91,33, 92,116, 92,46, 92,46, 92,46, 92,46, 92,46, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 0,0, 0,0, 0,0, 92,46, 92,46, 92,46, 92,46, 92,46, 92,46, 0,0, 0,0, 0,0, 93,117, 0,0, 0,0, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 0,0, 93,46, 93,46, 93,46, 93,46, 93,46, 93,46, 94,46, 94,46, 94,46, 94,46, 94,118, 94,46, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 0,0, 0,0, 0,0, 94,46, 94,46, 94,46, 94,46, 94,46, 94,46, 0,0, 0,0, 0,0, 0,0, 95,119, 0,0, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 0,0, 95,46, 95,46, 95,46, 95,46, 95,46, 95,46, 96,46, 96,46, 96,46, 96,120, 96,46, 96,46, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 0,0, 97,121, 0,0, 96,46, 96,46, 96,46, 96,46, 96,46, 96,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 0,0, 97,46, 97,46, 97,46, 97,46, 97,46, 97,46, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 98,122, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 0,0, 98,46, 98,46, 98,46, 98,46, 98,46, 98,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 100,124, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 99,123, 0,0, 0,0, 0,0, 0,0, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 99,46, 99,46, 99,46, 99,46, 99,46, 99,46, 0,0, 100,46, 100,125, 100,46, 100,46, 100,46, 100,46, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 0,0, 0,0, 0,0, 100,46, 100,46, 100,46, 100,46, 100,46, 100,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 0,0, 101,46, 101,46, 101,46, 101,46, 101,46, 101,46, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 0,0, 0,0, 0,0, 102,126, 0,0, 0,0, 0,0, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 0,0, 0,0, 0,0, 102,46, 102,46, 102,46, 102,46, 102,46, 102,46, 0,0, 0,0, 0,0, 0,0, 103,127, 0,0, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 0,0, 103,46, 103,46, 103,46, 103,46, 103,46, 103,46, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 104,128, 0,0, 0,0, 0,0, 0,0, 0,0, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 0,0, 104,33, 104,33, 104,33, 104,33, 104,33, 104,33, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 0,0, 0,0, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 0,0, 105,33, 105,33, 105,33, 105,33, 105,33, 105,33, 106,129, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 0,0, 106,33, 106,33, 106,33, 106,33, 106,33, 106,33, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 0,0, 107,130, 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, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 0,0, 107,33, 107,33, 107,33, 107,33, 107,33, 107,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 0,0, 0,0, 108,131, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 109,132, 109,33, 109,33, 109,33, 109,33, 109,33, 108,33, 108,33, 108,33, 108,33, 108,33, 108,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 0,0, 109,33, 109,33, 109,33, 109,33, 109,33, 109,33, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 110,133, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 0,0, 110,33, 110,33, 110,33, 110,33, 110,33, 110,33, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 112,112, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 111,134, 112,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, 111,33, 111,33, 111,33, 111,33, 111,33, 111,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 0,0, 0,0, 112,112, 0,0, 0,0, 112,112, 0,0, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 113,135, 112,112, 0,0, 0,0, 0,0, 0,0, 0,0, 112,112, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 113,33, 113,33, 113,33, 113,33, 113,33, 113,33, 0,0, 114,33, 114,33, 114,136, 114,33, 114,33, 114,137, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 114,138, 0,0, 0,0, 0,0, 0,0, 0,0, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 0,0, 114,33, 114,33, 114,33, 114,33, 114,33, 114,33, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 0,0, 115,139, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 0,0, 115,33, 115,33, 115,33, 115,33, 115,33, 115,33, 0,0, 0,0, 116,140, 0,0, 0,0, 0,0, 0,0, 0,0, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 0,0, 116,46, 116,46, 116,46, 116,46, 116,46, 116,46, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 0,0, 0,0, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 0,0, 117,46, 117,46, 117,46, 117,46, 117,46, 117,46, 118,141, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 0,0, 118,46, 118,46, 118,46, 118,46, 118,46, 118,46, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 0,0, 119,142, 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, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 0,0, 119,46, 119,46, 119,46, 119,46, 119,46, 119,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 0,0, 0,0, 120,143, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 121,144, 121,46, 121,46, 121,46, 121,46, 121,46, 120,46, 120,46, 120,46, 120,46, 120,46, 120,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 0,0, 121,46, 121,46, 121,46, 121,46, 121,46, 121,46, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 122,145, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 0,0, 122,46, 122,46, 122,46, 122,46, 122,46, 122,46, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 124,124, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 123,146, 124,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, 123,46, 123,46, 123,46, 123,46, 123,46, 123,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 0,0, 0,0, 124,124, 0,0, 0,0, 124,124, 0,0, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 125,147, 124,124, 0,0, 0,0, 0,0, 0,0, 0,0, 124,124, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 125,46, 125,46, 125,46, 125,46, 125,46, 125,46, 0,0, 126,46, 126,46, 126,148, 126,46, 126,46, 126,149, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 126,150, 0,0, 0,0, 0,0, 0,0, 0,0, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 0,0, 126,46, 126,46, 126,46, 126,46, 126,46, 126,46, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 0,0, 127,151, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 0,0, 127,46, 127,46, 127,46, 127,46, 127,46, 127,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 0,0, 128,33, 128,33, 128,33, 128,33, 128,33, 128,33, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 0,0, 0,0, 0,0, 129,152, 0,0, 0,0, 0,0, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 0,0, 0,0, 0,0, 129,33, 129,33, 129,33, 129,33, 129,33, 129,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 0,0, 130,33, 130,33, 130,33, 130,33, 130,33, 130,33, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 131,153, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 0,0, 131,33, 131,33, 131,33, 131,33, 131,33, 131,33, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 0,0, 132,154, 0,0, 0,0, 0,0, 0,0, 0,0, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 0,0, 0,0, 0,0, 132,33, 132,33, 132,33, 132,33, 132,33, 132,33, 0,0, 0,0, 0,0, 0,0, 133,155, 0,0, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 0,0, 133,33, 133,33, 133,33, 133,33, 133,33, 133,33, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 134,156, 0,0, 0,0, 0,0, 0,0, 0,0, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 0,0, 134,33, 134,33, 134,33, 134,33, 134,33, 134,33, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 0,0, 0,0, 0,0, 0,0, 135,157, 0,0, 0,0, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 0,0, 136,158, 0,0, 135,33, 135,33, 135,33, 135,33, 135,33, 135,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 0,0, 136,33, 136,33, 136,33, 136,33, 136,33, 136,33, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 137,159, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 0,0, 137,33, 137,33, 137,33, 137,33, 137,33, 137,33, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 0,0, 138,160, 0,0, 0,0, 0,0, 0,0, 0,0, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 0,0, 0,0, 0,0, 138,33, 138,33, 138,33, 138,33, 138,33, 138,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 0,0, 139,33, 139,33, 139,33, 139,33, 139,33, 139,33, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 0,0, 0,0, 0,0, 140,46, 140,46, 140,46, 140,46, 140,46, 140,46, 0,0, 0,0, 0,0, 0,0, 141,161, 0,0, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 0,0, 141,46, 141,46, 141,46, 141,46, 141,46, 141,46, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 0,0, 0,0, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 0,0, 142,46, 142,46, 142,46, 142,46, 142,46, 142,46, 143,162, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 0,0, 143,46, 143,46, 143,46, 143,46, 143,46, 143,46, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 0,0, 144,163, 0,0, 0,0, 0,0, 0,0, 0,0, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 0,0, 0,0, 0,0, 144,46, 144,46, 144,46, 144,46, 144,46, 144,46, 0,0, 0,0, 0,0, 0,0, 145,164, 0,0, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 0,0, 145,46, 145,46, 145,46, 145,46, 145,46, 145,46, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 146,165, 0,0, 0,0, 0,0, 0,0, 0,0, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 0,0, 146,46, 146,46, 146,46, 146,46, 146,46, 146,46, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 0,0, 0,0, 0,0, 0,0, 147,166, 0,0, 0,0, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 0,0, 148,167, 0,0, 147,46, 147,46, 147,46, 147,46, 147,46, 147,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 0,0, 148,46, 148,46, 148,46, 148,46, 148,46, 148,46, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 149,168, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 0,0, 149,46, 149,46, 149,46, 149,46, 149,46, 149,46, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 0,0, 150,169, 0,0, 0,0, 0,0, 0,0, 0,0, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 152,170, 0,0, 0,0, 150,46, 150,46, 150,46, 150,46, 150,46, 150,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 151,46, 151,46, 151,46, 151,46, 151,46, 151,46, 0,0, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 153,171, 0,0, 0,0, 152,33, 152,33, 152,33, 152,33, 152,33, 152,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 0,0, 153,33, 153,33, 153,33, 153,33, 153,33, 153,33, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 0,0, 0,0, 0,0, 154,33, 154,33, 154,33, 154,33, 154,33, 154,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 0,0, 155,33, 155,33, 155,33, 155,33, 155,33, 155,33, 156,33, 156,33, 156,33, 156,33, 156,172, 156,33, 0,0, 0,0, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 0,0, 156,33, 156,33, 156,33, 156,33, 156,33, 156,33, 157,173, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 0,0, 157,33, 157,33, 157,33, 157,33, 157,33, 157,33, 158,174, 158,33, 158,33, 158,33, 158,33, 158,33, 0,0, 0,0, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 0,0, 158,33, 158,33, 158,33, 158,33, 158,33, 158,33, 159,175, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 0,0, 159,33, 159,33, 159,33, 159,33, 159,33, 159,33, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 161,177, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 160,176, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 160,33, 160,33, 160,33, 160,33, 160,33, 160,33, 0,0, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 162,178, 0,0, 0,0, 161,46, 161,46, 161,46, 161,46, 161,46, 161,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 0,0, 162,46, 162,46, 162,46, 162,46, 162,46, 162,46, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 0,0, 0,0, 0,0, 163,46, 163,46, 163,46, 163,46, 163,46, 163,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 0,0, 164,46, 164,46, 164,46, 164,46, 164,46, 164,46, 165,46, 165,46, 165,46, 165,46, 165,179, 165,46, 0,0, 0,0, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 0,0, 165,46, 165,46, 165,46, 165,46, 165,46, 165,46, 166,180, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 0,0, 166,46, 166,46, 166,46, 166,46, 166,46, 166,46, 167,181, 167,46, 167,46, 167,46, 167,46, 167,46, 0,0, 0,0, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 0,0, 167,46, 167,46, 167,46, 167,46, 167,46, 167,46, 168,182, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 0,0, 168,46, 168,46, 168,46, 168,46, 168,46, 168,46, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 170,170, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 169,183, 170,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, 169,46, 169,46, 169,46, 169,46, 169,46, 169,46, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 0,0, 0,0, 170,170, 0,0, 0,0, 170,170, 0,0, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 170,170, 0,0, 0,0, 0,0, 0,0, 0,0, 170,170, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 171,33, 171,33, 171,33, 171,33, 171,33, 171,33, 0,0, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 0,0, 172,184, 0,0, 0,0, 0,0, 0,0, 0,0, 173,33, 173,33, 173,33, 173,185, 173,33, 173,33, 0,0, 0,0, 0,0, 172,33, 172,33, 172,33, 172,33, 172,33, 172,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 0,0, 173,33, 173,33, 173,33, 173,33, 173,33, 173,33, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 0,0, 174,186, 0,0, 0,0, 0,0, 0,0, 0,0, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 0,0, 0,0, 0,0, 174,33, 174,33, 174,33, 174,33, 174,33, 174,33, 0,0, 0,0, 0,0, 0,0, 175,187, 0,0, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 0,0, 175,33, 175,33, 175,33, 175,33, 175,33, 175,33, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 0,0, 177,177, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 176,188, 177,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, 176,33, 176,33, 176,33, 176,33, 176,33, 176,33, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 0,0, 0,0, 0,0, 177,177, 0,0, 0,0, 177,177, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 177,177, 0,0, 0,0, 0,0, 0,0, 0,0, 177,177, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 0,0, 0,0, 0,0, 178,46, 178,46, 178,46, 178,46, 178,46, 178,46, 0,0, 0,0, 179,189, 0,0, 0,0, 0,0, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 0,0, 179,46, 179,46, 179,46, 179,46, 179,46, 179,46, 180,46, 180,46, 180,46, 180,190, 180,46, 180,46, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 0,0, 0,0, 0,0, 180,46, 180,46, 180,46, 180,46, 180,46, 180,46, 0,0, 0,0, 181,191, 0,0, 0,0, 0,0, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 0,0, 181,46, 181,46, 181,46, 181,46, 181,46, 181,46, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 0,0, 0,0, 0,0, 182,192, 0,0, 0,0, 0,0, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 0,0, 0,0, 0,0, 182,46, 182,46, 182,46, 182,46, 182,46, 182,46, 183,193, 0,0, 0,0, 0,0, 0,0, 0,0, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 0,0, 183,46, 183,46, 183,46, 183,46, 183,46, 183,46, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 0,0, 0,0, 0,0, 184,194, 0,0, 0,0, 0,0, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 186,196, 0,0, 185,195, 184,33, 184,33, 184,33, 184,33, 184,33, 184,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 185,33, 185,33, 185,33, 185,33, 185,33, 185,33, 0,0, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 0,0, 0,0, 0,0, 186,33, 186,33, 186,33, 186,33, 186,33, 186,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 0,0, 187,33, 187,33, 187,33, 187,33, 187,33, 187,33, 188,33, 188,33, 188,33, 188,33, 188,197, 188,33, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 0,0, 0,0, 0,0, 188,33, 188,33, 188,33, 188,33, 188,33, 188,33, 0,0, 0,0, 0,0, 0,0, 189,198, 0,0, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 191,200, 189,46, 189,46, 189,46, 189,46, 189,46, 189,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 0,0, 0,0, 190,199, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 190,46, 190,46, 190,46, 190,46, 190,46, 190,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 0,0, 191,46, 191,46, 191,46, 191,46, 191,46, 191,46, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 193,46, 193,46, 193,46, 193,46, 193,201, 193,46, 0,0, 0,0, 0,0, 192,46, 192,46, 192,46, 192,46, 192,46, 192,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 0,0, 193,46, 193,46, 193,46, 193,46, 193,46, 193,46, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 0,0, 0,0, 194,202, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 194,33, 194,33, 194,33, 194,33, 194,33, 194,33, 196,196, 195,203, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 196,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 195,33, 195,33, 195,33, 195,33, 195,33, 195,33, 0,0, 0,0, 0,0, 0,0, 0,0, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 0,0, 0,0, 0,0, 196,196, 0,0, 0,0, 196,196, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 196,196, 197,204, 0,0, 0,0, 0,0, 0,0, 196,196, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 0,0, 0,0, 198,205, 197,33, 197,33, 197,33, 197,33, 197,33, 197,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 0,0, 198,46, 198,46, 198,46, 198,46, 198,46, 198,46, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 200,200, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 199,206, 0,0, 200,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, 199,46, 199,46, 199,46, 199,46, 199,46, 199,46, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 0,0, 0,0, 200,200, 0,0, 0,0, 200,200, 0,0, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 200,200, 0,0, 201,207, 0,0, 0,0, 0,0, 200,200, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 201,46, 201,46, 201,46, 201,46, 201,46, 201,46, 0,0, 202,33, 202,33, 202,33, 202,33, 202,208, 202,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 203,209, 0,0, 0,0, 202,33, 202,33, 202,33, 202,33, 202,33, 202,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 0,0, 203,33, 203,33, 203,33, 203,33, 203,33, 203,33, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 0,0, 0,0, 0,0, 204,210, 0,0, 0,0, 0,0, 205,46, 205,46, 205,46, 205,46, 205,211, 205,46, 0,0, 0,0, 0,0, 204,33, 204,33, 204,33, 204,33, 204,33, 204,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 0,0, 205,46, 205,46, 205,46, 205,46, 205,46, 205,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 206,212, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 0,0, 0,0, 206,46, 206,46, 206,46, 206,46, 206,46, 206,46, 0,0, 0,0, 0,0, 0,0, 0,0, 207,213, 0,0, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 0,0, 207,46, 207,46, 207,46, 207,46, 207,46, 207,46, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 0,0, 0,0, 208,214, 0,0, 0,0, 0,0, 0,0, 209,33, 209,215, 209,33, 209,33, 209,33, 209,33, 0,0, 0,0, 0,0, 208,33, 208,33, 208,33, 208,33, 208,33, 208,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 0,0, 209,33, 209,33, 209,33, 209,33, 209,33, 209,33, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 0,0, 0,0, 210,216, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 210,33, 210,33, 210,33, 210,33, 210,33, 210,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 211,217, 0,0, 0,0, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 0,0, 211,46, 211,46, 211,46, 211,46, 211,46, 211,46, 212,46, 212,218, 212,46, 212,46, 212,46, 212,46, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 214,220, 0,0, 213,219, 212,46, 212,46, 212,46, 212,46, 212,46, 212,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 213,46, 213,46, 213,46, 213,46, 213,46, 213,46, 0,0, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 0,0, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 0,0, 0,0, 214,33, 214,33, 214,33, 214,33, 214,33, 214,33, 215,221, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 217,223, 215,33, 215,33, 215,33, 215,33, 215,33, 215,33, 216,33, 216,33, 216,33, 216,33, 216,222, 216,33, 0,0, 0,0, 0,0, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 216,33, 216,33, 216,33, 216,33, 216,33, 216,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 0,0, 217,46, 217,46, 217,46, 217,46, 217,46, 217,46, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 218,224, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 0,0, 218,46, 218,46, 218,46, 218,46, 218,46, 218,46, 219,46, 219,46, 219,46, 219,46, 219,225, 219,46, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 0,0, 0,0, 0,0, 219,46, 219,46, 219,46, 219,46, 219,46, 219,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 221,226, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 221,33, 221,33, 221,33, 221,33, 221,33, 221,33, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 0,0, 0,0, 222,227, 0,0, 0,0, 0,0, 0,0, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 0,0, 0,0, 0,0, 222,33, 222,33, 222,33, 222,33, 222,33, 222,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 224,228, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 224,46, 224,46, 224,46, 224,46, 224,46, 224,46, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 0,0, 0,0, 225,229, 0,0, 0,0, 0,0, 0,0, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 0,0, 0,0, 0,0, 225,46, 225,46, 225,46, 225,46, 225,46, 225,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 0,0, 226,33, 226,33, 226,33, 226,33, 226,33, 226,33, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 0,0, 0,0, 0,0, 227,33, 227,33, 227,33, 227,33, 227,33, 227,33, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 0,0, 228,46, 228,46, 228,46, 228,46, 228,46, 228,46, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 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, 229,46, 229,46, 229,46, 229,46, 229,46, 229,46, 0,0, 0,0, 0,0}; struct yysvf yysvec[] = { 0, 0, 0, yycrank+-1, 0, 0, yycrank+-7, yysvec+1, 0, yycrank+-45, yysvec+1, 0, yycrank+-52, yysvec+1, 0, yycrank+0, 0, yyvstop+1, yycrank+0, 0, yyvstop+3, yycrank+0, 0, yyvstop+6, yycrank+-17, 0, yyvstop+8, yycrank+100, 0, yyvstop+10, yycrank+0, 0, yyvstop+12, yycrank+110, 0, yyvstop+15, yycrank+148, 0, yyvstop+19, yycrank+19, yysvec+12, yyvstop+23, yycrank+21, yysvec+12, yyvstop+27, yycrank+16, yysvec+12, yyvstop+31, yycrank+16, yysvec+12, yyvstop+35, yycrank+16, yysvec+12, yyvstop+39, yycrank+223, yysvec+12, yyvstop+43, yycrank+246, yysvec+12, yyvstop+46, yycrank+304, 0, yyvstop+49, yycrank+31, yysvec+20, yyvstop+53, yycrank+27, yysvec+20, yyvstop+57, yycrank+37, yysvec+20, yyvstop+61, yycrank+27, yysvec+20, yyvstop+65, yycrank+28, yysvec+20, yyvstop+69, yycrank+379, yysvec+20, yyvstop+73, yycrank+402, yysvec+20, yyvstop+76, yycrank+-26, yysvec+8, 0, yycrank+-29, yysvec+8, yyvstop+79, yycrank+0, yysvec+9, yyvstop+81, yycrank+0, yysvec+11, yyvstop+83, yycrank+133, yysvec+11, yyvstop+86, yycrank+457, yysvec+12, yyvstop+88, yycrank+0, yysvec+12, yyvstop+90, yycrank+37, yysvec+12, yyvstop+93, yycrank+480, yysvec+12, yyvstop+96, yycrank+518, yysvec+12, yyvstop+98, yycrank+544, yysvec+12, yyvstop+100, yycrank+582, yysvec+12, yyvstop+102, yycrank+608, yysvec+12, yyvstop+104, yycrank+646, yysvec+12, yyvstop+106, yycrank+684, yysvec+12, yyvstop+108, yycrank+710, yysvec+12, yyvstop+110, yycrank+748, yysvec+12, yyvstop+112, yycrank+-473, 0, yyvstop+114, yycrank+774, yysvec+20, yyvstop+116, yycrank+0, yysvec+20, yyvstop+118, yycrank+38, yysvec+20, yyvstop+121, yycrank+812, yysvec+20, yyvstop+124, yycrank+835, yysvec+20, yyvstop+126, yycrank+873, yysvec+20, yyvstop+128, yycrank+911, yysvec+20, yyvstop+130, yycrank+937, yysvec+20, yyvstop+132, yycrank+975, yysvec+20, yyvstop+134, yycrank+1013, yysvec+20, yyvstop+136, yycrank+1039, yysvec+20, yyvstop+138, yycrank+1077, yysvec+20, yyvstop+140, yycrank+1103, yysvec+12, yyvstop+142, yycrank+1141, yysvec+12, yyvstop+145, yycrank+1179, yysvec+12, yyvstop+147, yycrank+1217, yysvec+12, yyvstop+149, yycrank+1255, yysvec+12, yyvstop+151, yycrank+1279, yysvec+12, yyvstop+153, yycrank+1317, yysvec+12, yyvstop+155, yycrank+1355, yysvec+12, yyvstop+157, yycrank+1378, yysvec+12, yyvstop+159, yycrank+1416, yysvec+12, yyvstop+161, yycrank+1439, yysvec+12, yyvstop+163, yycrank+1477, yysvec+20, yyvstop+165, yycrank+1503, yysvec+20, yyvstop+168, yycrank+1541, yysvec+20, yyvstop+170, yycrank+1579, yysvec+20, yyvstop+172, yycrank+1617, yysvec+20, yyvstop+174, yycrank+1641, yysvec+20, yyvstop+176, yycrank+1679, yysvec+20, yyvstop+178, yycrank+1717, yysvec+20, yyvstop+180, yycrank+1740, yysvec+20, yyvstop+182, yycrank+1778, yysvec+20, yyvstop+184, yycrank+1801, yysvec+20, yyvstop+186, yycrank+1839, yysvec+12, yyvstop+188, yycrank+1862, yysvec+12, yyvstop+190, yycrank+1900, yysvec+12, yyvstop+192, yycrank+1923, yysvec+12, yyvstop+194, yycrank+1961, yysvec+12, yyvstop+196, yycrank+1984, yysvec+12, yyvstop+198, yycrank+2022, yysvec+12, yyvstop+200, yycrank+2060, yysvec+12, yyvstop+202, yycrank+2099, yysvec+12, yyvstop+204, yycrank+2122, yysvec+12, yyvstop+206, yycrank+2160, yysvec+12, yyvstop+209, yycrank+2183, yysvec+12, yyvstop+211, yycrank+2221, yysvec+20, yyvstop+213, yycrank+2244, yysvec+20, yyvstop+215, yycrank+2282, yysvec+20, yyvstop+217, yycrank+2305, yysvec+20, yyvstop+219, yycrank+2343, yysvec+20, yyvstop+221, yycrank+2366, yysvec+20, yyvstop+223, yycrank+2404, yysvec+20, yyvstop+225, yycrank+2442, yysvec+20, yyvstop+227, yycrank+2481, yysvec+20, yyvstop+229, yycrank+2504, yysvec+20, yyvstop+231, yycrank+2542, yysvec+20, yyvstop+234, yycrank+2565, yysvec+20, yyvstop+236, yycrank+2603, yysvec+12, yyvstop+238, yycrank+2641, yysvec+12, yyvstop+240, yycrank+2666, yysvec+12, yyvstop+243, yycrank+2704, yysvec+12, yyvstop+245, yycrank+2742, yysvec+12, yyvstop+247, yycrank+2768, yysvec+12, yyvstop+249, yycrank+2806, yysvec+12, yyvstop+251, yycrank+2844, yysvec+12, yyvstop+253, yycrank+-2914, 0, yyvstop+255, yycrank+2899, yysvec+12, yyvstop+257, yycrank+2938, yysvec+12, yyvstop+259, yycrank+2976, yysvec+12, yyvstop+261, yycrank+3001, yysvec+20, yyvstop+263, yycrank+3039, yysvec+20, yyvstop+265, yycrank+3064, yysvec+20, yyvstop+268, yycrank+3102, yysvec+20, yyvstop+270, yycrank+3140, yysvec+20, yyvstop+272, yycrank+3166, yysvec+20, yyvstop+274, yycrank+3204, yysvec+20, yyvstop+276, yycrank+3242, yysvec+20, yyvstop+278, yycrank+-3312, 0, yyvstop+280, yycrank+3297, yysvec+20, yyvstop+283, yycrank+3336, yysvec+20, yyvstop+285, yycrank+3374, yysvec+20, yyvstop+287, yycrank+3399, yysvec+12, yyvstop+289, yycrank+3437, yysvec+12, yyvstop+292, yycrank+3460, yysvec+12, yyvstop+294, yycrank+3498, yysvec+12, yyvstop+297, yycrank+3536, yysvec+12, yyvstop+299, yycrank+3559, yysvec+12, yyvstop+301, yycrank+3597, yysvec+12, yyvstop+303, yycrank+3635, yysvec+12, yyvstop+305, yycrank+3658, yysvec+12, yyvstop+307, yycrank+3696, yysvec+12, yyvstop+309, yycrank+3734, yysvec+12, yyvstop+311, yycrank+3757, yysvec+12, yyvstop+313, yycrank+3795, yysvec+20, yyvstop+316, yycrank+3818, yysvec+20, yyvstop+319, yycrank+3856, yysvec+20, yyvstop+321, yycrank+3881, yysvec+20, yyvstop+324, yycrank+3919, yysvec+20, yyvstop+326, yycrank+3942, yysvec+20, yyvstop+328, yycrank+3980, yysvec+20, yyvstop+330, yycrank+4018, yysvec+20, yyvstop+332, yycrank+4041, yysvec+20, yyvstop+334, yycrank+4079, yysvec+20, yyvstop+336, yycrank+4117, yysvec+20, yyvstop+338, yycrank+4140, yysvec+20, yyvstop+340, yycrank+4179, yysvec+12, yyvstop+343, yycrank+4202, yysvec+12, yyvstop+345, yycrank+4240, yysvec+12, yyvstop+347, yycrank+4263, yysvec+12, yyvstop+350, yycrank+4301, yysvec+12, yyvstop+353, yycrank+4326, yysvec+12, yyvstop+355, yycrank+4364, yysvec+12, yyvstop+357, yycrank+4389, yysvec+12, yyvstop+359, yycrank+4427, yysvec+12, yyvstop+361, yycrank+4466, yysvec+20, yyvstop+363, yycrank+4489, yysvec+20, yyvstop+365, yycrank+4527, yysvec+20, yyvstop+367, yycrank+4550, yysvec+20, yyvstop+370, yycrank+4588, yysvec+20, yyvstop+373, yycrank+4613, yysvec+20, yyvstop+375, yycrank+4651, yysvec+20, yyvstop+377, yycrank+4676, yysvec+20, yyvstop+379, yycrank+4714, yysvec+20, yyvstop+381, yycrank+-4784, 0, yyvstop+383, yycrank+4769, yysvec+12, yyvstop+385, yycrank+4808, yysvec+12, yyvstop+388, yycrank+4831, yysvec+12, yyvstop+390, yycrank+4869, yysvec+12, yyvstop+392, yycrank+4892, yysvec+12, yyvstop+394, yycrank+4930, yysvec+12, yyvstop+396, yycrank+-5001, 0, yyvstop+398, yycrank+4985, yysvec+20, yyvstop+401, yycrank+5008, yysvec+20, yyvstop+404, yycrank+5046, yysvec+20, yyvstop+406, yycrank+5069, yysvec+20, yyvstop+408, yycrank+5107, yysvec+20, yyvstop+410, yycrank+5130, yysvec+20, yyvstop+412, yycrank+5168, yysvec+12, yyvstop+414, yycrank+5191, yysvec+12, yyvstop+416, yycrank+5230, yysvec+12, yyvstop+418, yycrank+5253, yysvec+12, yyvstop+420, yycrank+5291, yysvec+12, yyvstop+423, yycrank+5314, yysvec+20, yyvstop+425, yycrank+5352, yysvec+20, yyvstop+427, yycrank+5378, yysvec+20, yyvstop+429, yycrank+5416, yysvec+20, yyvstop+431, yycrank+5439, yysvec+20, yyvstop+434, yycrank+5477, yysvec+12, yyvstop+436, yycrank+5503, yysvec+12, yyvstop+438, yycrank+-5579, 0, yyvstop+440, yycrank+5563, yysvec+12, yyvstop+442, yycrank+5586, yysvec+20, yyvstop+444, yycrank+5624, yysvec+20, yyvstop+446, yycrank+-5694, 0, yyvstop+448, yycrank+5679, yysvec+20, yyvstop+451, yycrank+5718, yysvec+12, yyvstop+453, yycrank+5741, yysvec+12, yyvstop+455, yycrank+5779, yysvec+12, yyvstop+457, yycrank+5802, yysvec+20, yyvstop+459, yycrank+5840, yysvec+20, yyvstop+461, yycrank+5864, yysvec+20, yyvstop+463, yycrank+5902, yysvec+12, yyvstop+465, yycrank+5925, yysvec+12, yyvstop+467, yycrank+5963, yysvec+12, yyvstop+469, yycrank+5989, yysvec+20, yyvstop+471, yycrank+6027, yysvec+20, yyvstop+473, yycrank+6050, yysvec+20, yyvstop+475, yycrank+6089, yysvec+12, yyvstop+477, yycrank+6113, yysvec+12, yyvstop+480, yycrank+6151, yysvec+12, yyvstop+482, yycrank+6177, yysvec+20, yyvstop+484, yycrank+6215, yysvec+20, yyvstop+487, yycrank+6253, yysvec+20, yyvstop+489, yycrank+26, 0, yyvstop+491, yycrank+6276, yysvec+12, yyvstop+493, yycrank+6331, yysvec+12, yyvstop+495, yycrank+-27, yysvec+45, yyvstop+497, yycrank+6354, yysvec+20, yyvstop+500, yycrank+6409, yysvec+20, yyvstop+502, yycrank+6432, yysvec+12, yyvstop+504, yycrank+6470, yysvec+12, yyvstop+507, yycrank+6493, yysvec+20, yyvstop+510, yycrank+6531, yysvec+20, yyvstop+513, 0, 0, 0}; struct yywork *yytop = yycrank+6633; struct yysvf *yybgin = yysvec+1; unsigned char yymatch[] = { 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,01 ,012 ,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' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' , '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 , 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'G' , 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , 'G' ,'G' ,'G' ,01 ,01 ,01 ,01 ,'-' , 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'G' , 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' , 'G' ,'G' ,'G' ,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}; #ident "@(#)libl:lib/ncform 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 ( (int)yyt > (int)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((int)yyt < (int)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); }