Annotation of cci/usr/src/usr.bin/diction/wdslex.c, revision 1.1

1.1     ! root        1: # include "stdio.h"
        !             2: # define U(x) x
        !             3: # define NLSTATE yyprevious=YYNEWLINE
        !             4: # define BEGIN yybgin = yysvec + 1 +
        !             5: # define INITIAL 0
        !             6: # define YYLERR yysvec
        !             7: # define YYSTATE (yyestate-yysvec-1)
        !             8: # define YYOPTIM 1
        !             9: # define YYLMAX 200
        !            10: # define output(c) putc(c,yyout)
        !            11: # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
        !            12: # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
        !            13: # define yymore() (yymorfg=1)
        !            14: # define ECHO fprintf(yyout, "%s",yytext)
        !            15: # define REJECT { nstr = yyreject(); goto yyfussy;}
        !            16: int yyleng; extern char yytext[];
        !            17: int yymorfg;
        !            18: extern char *yysptr, yysbuf[];
        !            19: int yytchar;
        !            20: FILE *yyin ={stdin}, *yyout ={stdout};
        !            21: extern int yylineno;
        !            22: struct yysvf { 
        !            23:        struct yywork *yystoff;
        !            24:        struct yysvf *yyother;
        !            25:        int *yystops;};
        !            26: struct yysvf *yyestate;
        !            27: extern struct yysvf yysvec[], *yybgin;
        !            28: /* break out words, output cap + word(inverted) */
        !            29: 
        !            30: #ifndef lint
        !            31: static char sccsid[] = "@(#)nwords.l   4.2     (Berkeley)      82/11/06";
        !            32: #endif not lint
        !            33: 
        !            34: #include <stdio.h>
        !            35: #include <ctype.h>
        !            36: #define OUT()  for(i=yyleng-1;i>=0; i--)putchar(yytext[i]); putchar('\n')
        !            37: #define OUT1(nam)      printf("%c:%s\n",nam,yytext)
        !            38: #define OUTN(string)   printf("%s\n",string)
        !            39: #include "names.h"
        !            40: #include "nhash.c"
        !            41: #include "dict.c"
        !            42: #include "ydict.c"
        !            43: #include "abbrev.c"
        !            44: char nt[]  = "D:n't";
        !            45: char qs[]  = "c:'s";
        !            46: char fin[]  = "E:.";
        !            47: int NOCAPS = 0;                /* if set all caps are turned to lower case */
        !            48: int i,j;
        !            49: int dot = 0;
        !            50: int first  = 1;
        !            51: int qflg,nflg;
        !            52: int cap  = 0;
        !            53: # define YYNEWLINE 10
        !            54: yylex(){
        !            55: int nstr; extern int yyprevious;
        !            56: while((nstr = yylook()) >= 0)
        !            57: yyfussy: switch(nstr){
        !            58: case 0:
        !            59: if(yywrap()) return(0); break;
        !            60: case 1:
        !            61: {
        !            62:        if(dot){
        !            63:                OUTN(fin);
        !            64:                dot = 0;
        !            65:                first = 1;
        !            66:        }
        !            67:        printf(":%s",yytext);
        !            68:        }
        !            69: break;
        !            70: case 2:
        !            71: {
        !            72:                if(first == 0){
        !            73:                        OUT1(NOUN);
        !            74:                }
        !            75:                else {
        !            76:                        first = 0;
        !            77:                        yytext[0] = tolower(yytext[0]);
        !            78:                        cap = 1;
        !            79:                        goto wd;
        !            80:                }
        !            81:        }
        !            82: break;
        !            83: case 3:
        !            84:        {
        !            85:                OUT1(NOUN);
        !            86:                }
        !            87: break;
        !            88: case 4:
        !            89: {
        !            90:                pos(1);
        !            91:                if(first==1)first=0;
        !            92:                }
        !            93: break;
        !            94: case 5:
        !            95: {
        !            96:                if(NOCAPS)
        !            97:                        for(i=0;i<yyleng;i++)
        !            98:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
        !            99:                OUT1(POS);
        !           100:                }
        !           101: break;
        !           102: case 6:
        !           103: {
        !           104:                if(NOCAPS)
        !           105:                        for(i=0;i<yyleng;i++)
        !           106:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
        !           107:                OUT1(NOUN_ADJ);
        !           108:                }
        !           109: break;
        !           110: case 7:
        !           111: {
        !           112:                if(NOCAPS)
        !           113:                        for(i=0;i<yyleng;i++)
        !           114:                                yytext[i] = tolower(yytext[i]);
        !           115:                if((i=input()) == 's'){
        !           116:                        yytext[yyleng++] = 's';
        !           117:                        yytext[yyleng] = '\0';
        !           118:                        OUT1(PNOUN);
        !           119:                }
        !           120:                else {
        !           121:                        unput(i);
        !           122:                        if(!NOCAPS)
        !           123:                                for(i=0;i<yyleng;i++)yytext[i] = tolower(yytext[i]);
        !           124:                                goto wd;
        !           125:                }
        !           126:                }
        !           127: break;
        !           128: case 8:
        !           129: {
        !           130:                if(NOCAPS){
        !           131:                        yytext[0] = tolower(yytext[0]);
        !           132:                        yytext[2] = tolower(yytext[2]);
        !           133:                }
        !           134:                OUT1(NOUN_ADJ);
        !           135:                }
        !           136: break;
        !           137: case 9:
        !           138: {
        !           139:                if(first==1)
        !           140:                        first=0;
        !           141:                else cap = 1;
        !           142:                if(yyleng==1 && yytext[0] == 'I'){
        !           143:                        cap = 0;
        !           144:                        goto wd;
        !           145:                }
        !           146:                yytext[0] = tolower(yytext[0]);
        !           147:                goto wd;
        !           148:        }
        !           149: break;
        !           150: case 10:
        !           151: {
        !           152:                OUT1(NOUN_ADJ);
        !           153:                }
        !           154: break;
        !           155: case 11:
        !           156: {
        !           157:                for(i=yyleng-1;i>0;i--)
        !           158:                        if(yytext[i] == '.')break;
        !           159:                unput(yytext[yyleng-1]);
        !           160:                yytext[i] = '\0';
        !           161:                OUT1(NOUN_ADJ);
        !           162:                OUTN(fin);
        !           163:                first = 1;
        !           164:        }
        !           165: break;
        !           166: case 12:
        !           167:        {
        !           168:        if(NOCAPS)
        !           169:                if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
        !           170:        OUT1(PRONS);
        !           171:        }
        !           172: break;
        !           173: case 13:
        !           174: {
        !           175:        if(NOCAPS)
        !           176:                if(isupper(yytext[0]))yytext[0] = tolower(yytext[0]);
        !           177:        OUT1(POS);
        !           178:        }
        !           179: break;
        !           180: case 14:
        !           181: {
        !           182:                if(yytext[yyleng-1] == '.'){
        !           183:                        if(ahead() == 0)dot=1;
        !           184:                }
        !           185:                if(NOCAPS)
        !           186:                        for(i=0;i<yyleng;i++)
        !           187:                                if(isupper(yytext[i]))yytext[i] = tolower(yytext[i]);
        !           188:                OUT1(NOUN_ADJ);
        !           189:                }
        !           190: break;
        !           191: case 15:
        !           192: {
        !           193:        OUT1(NOUN_ADJ);
        !           194:        }
        !           195: break;
        !           196: case 16:
        !           197: {
        !           198:        OUT1(NOUN_ADJ);
        !           199:        }
        !           200: break;
        !           201: case 17:
        !           202: {
        !           203:        if(yytext[yyleng-1] == '.')dot=1;
        !           204:        OUT1(NOUN_ADJ);
        !           205:        }
        !           206: break;
        !           207: case 18:
        !           208: {
        !           209:        if(input() == '.')
        !           210:                ahead();
        !           211:        if(NOCAPS)
        !           212:                for(i=0;i<yyleng;i++)
        !           213:                        if(isupper(yytext[i]))yytext[i]=tolower(yytext[i]);
        !           214:        OUT1(NOUN_ADJ);
        !           215:        }
        !           216: break;
        !           217: case 19:
        !           218:        {
        !           219:                OUT1(NOUN_ADJ);
        !           220:                }
        !           221: break;
        !           222: case 20:
        !           223: {
        !           224:                if(yytext[yyleng-1] == '.')dot=1;
        !           225:                OUT1(NOUN);
        !           226:                }
        !           227: break;
        !           228: case 21:
        !           229: {
        !           230:                OUT1(ADJ_ADV);
        !           231:                }
        !           232: break;
        !           233: case 22:
        !           234: {
        !           235:                OUT1(ADJ_ADV);
        !           236:                }
        !           237: break;
        !           238: case 23:
        !           239: {
        !           240:                OUT1(ADJ_ADV);
        !           241:                }
        !           242: break;
        !           243: case 24:
        !           244: {
        !           245:                OUT1(ADJ_ADV);
        !           246:                }
        !           247: break;
        !           248: case 25:
        !           249: {
        !           250:                OUT1(PREP);
        !           251:                }
        !           252: break;
        !           253: case 26:
        !           254: {
        !           255:                OUT1(PREP);
        !           256:                }
        !           257: break;
        !           258: case 27:
        !           259: {
        !           260:                i = yytext[4];
        !           261:                yytext[4] = '\0';
        !           262:                OUT1(NOUN);
        !           263:                yytext[4] = i;
        !           264:                yytext[0] = yytext[yyleng-1];
        !           265:                yytext[1] = '\0';
        !           266:                if(yytext[0] == ',' || yytext[0] == ')')
        !           267:                        OUT1(',');
        !           268:                else {
        !           269:                        OUTN(fin);
        !           270:                        first = 1;
        !           271:                }
        !           272:        }
        !           273: break;
        !           274: case 28:
        !           275: {
        !           276:                OUT1(NOUN);
        !           277:                }
        !           278: break;
        !           279: case 29:
        !           280: {
        !           281:                unput(yytext[yyleng-1]);
        !           282:                yytext[2] = '\0';
        !           283:                OUT1(PREP);
        !           284:                OUTN(fin);
        !           285:                first = 1;
        !           286:                }
        !           287: break;
        !           288: case 30:
        !           289: {
        !           290:                OUT1(ADJ);
        !           291:                }
        !           292: break;
        !           293: case 31:
        !           294: {
        !           295:                dot=1;
        !           296:                OUT1(NOUN);
        !           297:                }
        !           298: break;
        !           299: case 32:
        !           300:        {
        !           301:                yytext[3]='\0';
        !           302:                yyleng -= 2;
        !           303:                nflg=1;
        !           304:                goto wd;
        !           305:                }
        !           306: break;
        !           307: case 33:
        !           308:        {
        !           309:                OUT1('X');
        !           310:                }
        !           311: break;
        !           312: case 34:
        !           313:        {
        !           314:                OUT1('g');
        !           315:                }
        !           316: break;
        !           317: case 35:
        !           318:        {
        !           319:                nflg=1;
        !           320:                yytext[yyleng-3]='\0';
        !           321:                yyleng -= 3;
        !           322:                goto wd;
        !           323:                }
        !           324: break;
        !           325: case 36:
        !           326: {
        !           327:                yytext[0] = tolower(yytext[0]);
        !           328:                nflg=1;
        !           329:                yytext[yyleng-3]='\0';
        !           330:                yyleng -= 3;
        !           331:                goto wd;
        !           332:                }
        !           333: break;
        !           334: case 37:
        !           335:        {
        !           336:                OUT1(ADV);
        !           337:        }
        !           338: break;
        !           339: case 38:
        !           340: {
        !           341:                pos(0);
        !           342:                }
        !           343: break;
        !           344: case 39:
        !           345: {
        !           346:                OUT1(lookup("will",1,0));
        !           347:        }
        !           348: break;
        !           349: case 40:
        !           350: {
        !           351:                OUT1(lookup("have",1,0));
        !           352:        }
        !           353: break;
        !           354: case 41:
        !           355: {
        !           356:                OUT1(lookup("are",1,0));
        !           357:        }
        !           358: break;
        !           359: case 42:
        !           360: {
        !           361:                OUT1(lookup("had",1,0));
        !           362:        }
        !           363: break;
        !           364: case 43:
        !           365: {
        !           366:                OUT1(lookup("am",1,0));
        !           367:        }
        !           368: break;
        !           369: case 44:
        !           370: {
        !           371:                OUT1(lookup("would",1,0));
        !           372:        }
        !           373: break;
        !           374: case 45:
        !           375: {
        !           376: wd:
        !           377:        if((j = lookup(yytext,1,0)) != 0){
        !           378:                first=0;
        !           379:                if(cap){
        !           380:                        if(!NOCAPS)
        !           381:                                yytext[0] = toupper(yytext[0]);
        !           382:                        cap = 0;
        !           383:                        if(dot)OUTN(fin);
        !           384:                }
        !           385:                dot=0;
        !           386:                OUT1(j);
        !           387:                if(nflg==1){
        !           388:                        nflg=0;
        !           389:                        OUTN(nt);
        !           390:                }
        !           391:        }
        !           392:        else{
        !           393:                first = dot=0;
        !           394:                if(yytext[yyleng-1] == 'y' && cap == 0){
        !           395:                        switch(yytext[yyleng-2]){
        !           396:                        case 'c': look(cy,yyleng-2,NOUN);
        !           397:                                        break;
        !           398:                        case 'f': look(fy,yyleng-2,VERB);
        !           399:                                        break;
        !           400:                        case 'l': look(ly,yyleng-2,ADV);
        !           401:                                        break;
        !           402:                        case 'g': if(yytext[yyleng-3] == 'o'){
        !           403:                                        OUT1(NOUN);
        !           404:                                        break;
        !           405:                                }
        !           406:                                look(gy,yyleng-2,ADJ);
        !           407:                                break;
        !           408:                        case 'r':       switch(yytext[yyleng-3]){
        !           409:                                case 'a': look(ary,yyleng-3,ADJ);
        !           410:                                                break;
        !           411:                                case 'o': look(ory,yyleng-3,ADJ);
        !           412:                                                break;
        !           413:                                case 'e': look(ery,yyleng-3,NOUN);
        !           414:                                                break;
        !           415:                                default: look(ry,yyleng-2,NOUN);
        !           416:                                }
        !           417:                                break;
        !           418:                        case 't': if(yytext[yyleng-3] == 'i')look(ity,yyleng-3,NOUN);
        !           419:                                else look(ty,yyleng-2,ADJ);
        !           420:                                break;
        !           421:                        default: OUT();
        !           422:                        }
        !           423:        }
        !           424:                else {
        !           425:                        if(cap){
        !           426:                                if(!NOCAPS)yytext[0] = toupper(yytext[0]);
        !           427:                                cap = 0;
        !           428:                                OUT1(NOUN_ADJ);
        !           429:                        }
        !           430:                        else {
        !           431:                                OUT();
        !           432:                        }
        !           433:                }
        !           434:        }
        !           435:        }
        !           436: break;
        !           437: case 46:
        !           438: ;
        !           439: break;
        !           440: case 47:
        !           441: ;
        !           442: break;
        !           443: case 48:
        !           444: ;
        !           445: break;
        !           446: case 49:
        !           447: {
        !           448:        OUT1(';');
        !           449:        first=1;
        !           450:        }
        !           451: break;
        !           452: case 50:
        !           453: {
        !           454:        if(dot){
        !           455:                OUTN(fin);
        !           456:                dot=0;
        !           457:        }
        !           458:        if(qflg==1){
        !           459:                qflg=0;
        !           460:                OUT1('"');
        !           461:        }
        !           462:        else {
        !           463:                qflg=1;
        !           464:                first=1;
        !           465:                OUT1('"');
        !           466:        }
        !           467:        }
        !           468: break;
        !           469: case 51:
        !           470: {
        !           471:        qflg=0;
        !           472:        first=1;
        !           473:        OUT1(END);
        !           474:        }
        !           475: break;
        !           476: case 52:
        !           477: {
        !           478:        OUT1(',');
        !           479:        }
        !           480: break;
        !           481: case 53:
        !           482: {
        !           483:        first = 1;
        !           484:        OUT1(END);
        !           485:        }
        !           486: break;
        !           487: case 54:
        !           488: {
        !           489:                yytext[yyleng-1] = '\0';
        !           490:                if((j=abbrev(yytext,1,0)) != 0){
        !           491:                        if(isupper(yytext[0])){
        !           492:                                if(NOCAPS)yytext[0] = tolower(yytext[0]);
        !           493:                                if(first == 1)first=0;
        !           494:                        }
        !           495:                        yytext[yyleng-1] = '.';
        !           496:                        OUT1(j);
        !           497:                }
        !           498:                else {
        !           499:                        j = ahead();
        !           500:                        if(j == 0)
        !           501:                                yyleng--;
        !           502:                        for(i=0;i<yyleng;i++)
        !           503:                                if(isupper(yytext[i])){
        !           504:                                        yytext[i] = tolower(yytext[i]);
        !           505:                                        if(i == 0)cap = 1;
        !           506:                                        else cap = 0;
        !           507:                                }
        !           508:                        if(j == 0)goto wd;
        !           509:                        OUT1(NOUN_ADJ);
        !           510:                }
        !           511:        }
        !           512: break;
        !           513: case 55:
        !           514: {
        !           515:        first=1;
        !           516:        OUT1(END);
        !           517:        }
        !           518: break;
        !           519: case 56:
        !           520: {
        !           521:        qflg=0;
        !           522:        first=1;
        !           523:        OUT1(END);
        !           524:        }
        !           525: break;
        !           526: case 57:
        !           527: {
        !           528:        first=1;
        !           529:        OUT1(END);
        !           530:        }
        !           531: break;
        !           532: case 58:
        !           533: {
        !           534:        qflg=0;
        !           535:        first=1;
        !           536:        OUT1(END);
        !           537:        }
        !           538: break;
        !           539: case 59:
        !           540: {
        !           541:        first=1;
        !           542:        OUT1(END);
        !           543:        }
        !           544: break;
        !           545: case 60:
        !           546: {
        !           547:        OUT1(',');
        !           548:        first=1;
        !           549:        }
        !           550: break;
        !           551: case 61:
        !           552: {
        !           553:        OUT1(',');
        !           554:        first=1;
        !           555:        }
        !           556: break;
        !           557: case 62:
        !           558: {
        !           559:        OUT1(',');
        !           560:        }
        !           561: break;
        !           562: case 63:
        !           563: {
        !           564:        OUT1(',');
        !           565:        }
        !           566: break;
        !           567: case 64:
        !           568: {
        !           569: /*     fprintf(stderr,"nwords funny char: %c\n",yytext[0])*/ ;
        !           570:        }
        !           571: break;
        !           572: case -1:
        !           573: break;
        !           574: default:
        !           575: fprintf(yyout,"bad switch yylook %d",nstr);
        !           576: } return(0); }
        !           577: /* end of yylex */
        !           578: look(f,n,cc)
        !           579: char (*f)();
        !           580: int n;
        !           581: char cc;
        !           582: {
        !           583:        int nn;
        !           584:        char  save;
        !           585:        save=yytext[n];
        !           586:        yytext[n] = '\0';
        !           587:        nn=(*f)(yytext,1,0);
        !           588:        yytext[n] = save;
        !           589:        if(nn != 0){
        !           590:                OUT1(nn);
        !           591:        }
        !           592:        else {
        !           593:                OUT1(cc);
        !           594:        }
        !           595: }
        !           596: pos(flg){
        !           597:        int ii,j;
        !           598:        if(flg == 1)yytext[0] = tolower(yytext[0]);
        !           599:        for(ii=yyleng-1;yytext[ii] != '\''; ii--);
        !           600:        yytext[ii] = '\0';
        !           601:        if((j=lookup(yytext,1,0)) != 0){
        !           602:                yyleng = ii;
        !           603:                OUT1(j);
        !           604:                OUTN(qs);
        !           605:        }
        !           606:        else{
        !           607:                if(flg==1 && !NOCAPS)yytext[0] = toupper(yytext[0]);
        !           608:                yytext[ii] = '\'';
        !           609:                OUT1(POS);
        !           610:        }
        !           611: }
        !           612: char   *filename="-";
        !           613: 
        !           614: main(argc,argv)
        !           615: int    argc;
        !           616: char   *argv[];
        !           617: {
        !           618:        register int rc=0;
        !           619:        putchar(':'); putchar('\n');
        !           620:        getd();
        !           621:        getab();
        !           622:        ygetd();
        !           623:        if(argc<=1) {
        !           624:                yylex();
        !           625:                OUTN(fin);
        !           626:        }else{
        !           627:                while(argc>1) {
        !           628:                        if(freopen(argv[1],"r",stdin)==NULL) {
        !           629:                                fprintf(stderr,"%s: cannot open\n", argv[1]);
        !           630:                                rc++;
        !           631:                        }else{
        !           632:                                filename=argv[1];
        !           633:                                yylex();
        !           634:                                OUTN(fin);
        !           635:                        }
        !           636:                        argc--; argv++;
        !           637:                }
        !           638:        }
        !           639:        return(rc);
        !           640: }
        !           641: ahead(){
        !           642:        register int c;
        !           643:        if(isalnum((c=input()))){
        !           644:                yytext[yyleng++] = '.';
        !           645:                while(!isspace((c=input() )))
        !           646:                        yytext[yyleng++] = c;
        !           647:                yytext[yyleng] = '\0';
        !           648:                unput(c);
        !           649:                return(1);
        !           650:        }
        !           651:        unput(c);
        !           652:        unput('.');
        !           653:        return(0);
        !           654: }
        !           655: int yyvstop[] ={
        !           656: 0,
        !           657: 
        !           658: 64,
        !           659: 0,
        !           660: 
        !           661: 48,
        !           662: 64,
        !           663: 0,
        !           664: 
        !           665: 46,
        !           666: 0,
        !           667: 
        !           668: 47,
        !           669: 64,
        !           670: 0,
        !           671: 
        !           672: 57,
        !           673: 64,
        !           674: 0,
        !           675: 
        !           676: 50,
        !           677: 64,
        !           678: 0,
        !           679: 
        !           680: 64,
        !           681: 0,
        !           682: 
        !           683: 50,
        !           684: 64,
        !           685: 0,
        !           686: 
        !           687: 63,
        !           688: 64,
        !           689: 0,
        !           690: 
        !           691: 62,
        !           692: 64,
        !           693: 0,
        !           694: 
        !           695: 61,
        !           696: 64,
        !           697: 0,
        !           698: 
        !           699: 55,
        !           700: 64,
        !           701: 0,
        !           702: 
        !           703: 64,
        !           704: 0,
        !           705: 
        !           706: 15,
        !           707: 17,
        !           708: 18,
        !           709: 64,
        !           710: 0,
        !           711: 
        !           712: 60,
        !           713: 64,
        !           714: 0,
        !           715: 
        !           716: 49,
        !           717: 64,
        !           718: 0,
        !           719: 
        !           720: 59,
        !           721: 64,
        !           722: 0,
        !           723: 
        !           724: 9,
        !           725: 64,
        !           726: 0,
        !           727: 
        !           728: 9,
        !           729: 64,
        !           730: 0,
        !           731: 
        !           732: 9,
        !           733: 64,
        !           734: 0,
        !           735: 
        !           736: 9,
        !           737: 64,
        !           738: 0,
        !           739: 
        !           740: 9,
        !           741: 64,
        !           742: 0,
        !           743: 
        !           744: 9,
        !           745: 64,
        !           746: 0,
        !           747: 
        !           748: 9,
        !           749: 64,
        !           750: 0,
        !           751: 
        !           752: 9,
        !           753: 64,
        !           754: 0,
        !           755: 
        !           756: 50,
        !           757: 64,
        !           758: 0,
        !           759: 
        !           760: 45,
        !           761: 64,
        !           762: 0,
        !           763: 
        !           764: 45,
        !           765: 64,
        !           766: 0,
        !           767: 
        !           768: 45,
        !           769: 64,
        !           770: 0,
        !           771: 
        !           772: 45,
        !           773: 64,
        !           774: 0,
        !           775: 
        !           776: 45,
        !           777: 64,
        !           778: 0,
        !           779: 
        !           780: 45,
        !           781: 64,
        !           782: 0,
        !           783: 
        !           784: 45,
        !           785: 64,
        !           786: 0,
        !           787: 
        !           788: 45,
        !           789: 64,
        !           790: 0,
        !           791: 
        !           792: 45,
        !           793: 64,
        !           794: 0,
        !           795: 
        !           796: 45,
        !           797: 64,
        !           798: 0,
        !           799: 
        !           800: 45,
        !           801: 64,
        !           802: 0,
        !           803: 
        !           804: 57,
        !           805: 64,
        !           806: 0,
        !           807: 
        !           808: 55,
        !           809: 64,
        !           810: 0,
        !           811: 
        !           812: 48,
        !           813: 0,
        !           814: 
        !           815: 47,
        !           816: 0,
        !           817: 
        !           818: 56,
        !           819: 0,
        !           820: 
        !           821: 50,
        !           822: 0,
        !           823: 
        !           824: 20,
        !           825: 0,
        !           826: 
        !           827: 42,
        !           828: 0,
        !           829: 
        !           830: 43,
        !           831: 0,
        !           832: 
        !           833: 61,
        !           834: 0,
        !           835: 
        !           836: 51,
        !           837: 0,
        !           838: 
        !           839: 16,
        !           840: 0,
        !           841: 
        !           842: 14,
        !           843: 53,
        !           844: 0,
        !           845: 
        !           846: 14,
        !           847: 0,
        !           848: 
        !           849: 19,
        !           850: 0,
        !           851: 
        !           852: 15,
        !           853: 17,
        !           854: 0,
        !           855: 
        !           856: 17,
        !           857: 0,
        !           858: 
        !           859: 15,
        !           860: 17,
        !           861: 18,
        !           862: 0,
        !           863: 
        !           864: 18,
        !           865: 0,
        !           866: 
        !           867: 15,
        !           868: 17,
        !           869: 18,
        !           870: 0,
        !           871: 
        !           872: 58,
        !           873: 0,
        !           874: 
        !           875: 31,
        !           876: 0,
        !           877: 
        !           878: 7,
        !           879: 0,
        !           880: 
        !           881: 9,
        !           882: 0,
        !           883: 
        !           884: 31,
        !           885: 0,
        !           886: 
        !           887: 9,
        !           888: 0,
        !           889: 
        !           890: 9,
        !           891: 0,
        !           892: 
        !           893: 9,
        !           894: 0,
        !           895: 
        !           896: 31,
        !           897: 0,
        !           898: 
        !           899: 9,
        !           900: 0,
        !           901: 
        !           902: 9,
        !           903: 0,
        !           904: 
        !           905: 31,
        !           906: 0,
        !           907: 
        !           908: 50,
        !           909: 0,
        !           910: 
        !           911: 45,
        !           912: 0,
        !           913: 
        !           914: 45,
        !           915: 0,
        !           916: 
        !           917: 45,
        !           918: 0,
        !           919: 
        !           920: 45,
        !           921: 0,
        !           922: 
        !           923: 45,
        !           924: 0,
        !           925: 
        !           926: 45,
        !           927: 0,
        !           928: 
        !           929: 45,
        !           930: 0,
        !           931: 
        !           932: 45,
        !           933: 0,
        !           934: 
        !           935: 45,
        !           936: 0,
        !           937: 
        !           938: 45,
        !           939: 0,
        !           940: 
        !           941: 56,
        !           942: 0,
        !           943: 
        !           944: 51,
        !           945: 0,
        !           946: 
        !           947: 16,
        !           948: 0,
        !           949: 
        !           950: 20,
        !           951: 0,
        !           952: 
        !           953: 44,
        !           954: 0,
        !           955: 
        !           956: 39,
        !           957: 0,
        !           958: 
        !           959: 41,
        !           960: 0,
        !           961: 
        !           962: 40,
        !           963: 0,
        !           964: 
        !           965: 52,
        !           966: 0,
        !           967: 
        !           968: 16,
        !           969: 0,
        !           970: 
        !           971: 16,
        !           972: 0,
        !           973: 
        !           974: 14,
        !           975: 0,
        !           976: 
        !           977: 15,
        !           978: 17,
        !           979: 0,
        !           980: 
        !           981: 15,
        !           982: 17,
        !           983: 0,
        !           984: 
        !           985: 6,
        !           986: 0,
        !           987: 
        !           988: 17,
        !           989: 0,
        !           990: 
        !           991: 17,
        !           992: 0,
        !           993: 
        !           994: 15,
        !           995: 16,
        !           996: 17,
        !           997: 0,
        !           998: 
        !           999: 17,
        !          1000: 0,
        !          1001: 
        !          1002: 4,
        !          1003: 5,
        !          1004: 0,
        !          1005: 
        !          1006: 54,
        !          1007: 0,
        !          1008: 
        !          1009: 9,
        !          1010: 0,
        !          1011: 
        !          1012: 8,
        !          1013: 0,
        !          1014: 
        !          1015: 9,
        !          1016: 0,
        !          1017: 
        !          1018: 9,
        !          1019: 0,
        !          1020: 
        !          1021: 2,
        !          1022: 9,
        !          1023: 0,
        !          1024: 
        !          1025: 54,
        !          1026: 0,
        !          1027: 
        !          1028: 9,
        !          1029: 0,
        !          1030: 
        !          1031: 38,
        !          1032: 0,
        !          1033: 
        !          1034: 45,
        !          1035: 0,
        !          1036: 
        !          1037: 45,
        !          1038: 0,
        !          1039: 
        !          1040: 45,
        !          1041: 0,
        !          1042: 
        !          1043: 45,
        !          1044: 0,
        !          1045: 
        !          1046: 45,
        !          1047: 0,
        !          1048: 
        !          1049: 54,
        !          1050: 0,
        !          1051: 
        !          1052: 45,
        !          1053: 0,
        !          1054: 
        !          1055: 45,
        !          1056: 0,
        !          1057: 
        !          1058: 1,
        !          1059: 0,
        !          1060: 
        !          1061: 52,
        !          1062: 0,
        !          1063: 
        !          1064: 14,
        !          1065: 0,
        !          1066: 
        !          1067: 16,
        !          1068: 0,
        !          1069: 
        !          1070: 16,
        !          1071: 0,
        !          1072: 
        !          1073: 20,
        !          1074: 0,
        !          1075: 
        !          1076: 16,
        !          1077: 0,
        !          1078: 
        !          1079: 16,
        !          1080: 0,
        !          1081: 
        !          1082: 17,
        !          1083: 0,
        !          1084: 
        !          1085: 11,
        !          1086: 0,
        !          1087: 
        !          1088: 17,
        !          1089: 0,
        !          1090: 
        !          1091: 15,
        !          1092: 16,
        !          1093: 17,
        !          1094: 0,
        !          1095: 
        !          1096: 15,
        !          1097: 16,
        !          1098: 17,
        !          1099: 0,
        !          1100: 
        !          1101: 10,
        !          1102: 0,
        !          1103: 
        !          1104: 21,
        !          1105: 0,
        !          1106: 
        !          1107: 5,
        !          1108: 0,
        !          1109: 
        !          1110: 4,
        !          1111: 0,
        !          1112: 
        !          1113: 14,
        !          1114: 0,
        !          1115: 
        !          1116: 22,
        !          1117: 0,
        !          1118: 
        !          1119: 3,
        !          1120: 0,
        !          1121: 
        !          1122: 23,
        !          1123: 0,
        !          1124: 
        !          1125: 35,
        !          1126: 0,
        !          1127: 
        !          1128: 24,
        !          1129: 0,
        !          1130: 
        !          1131: 26,
        !          1132: 0,
        !          1133: 
        !          1134: 27,
        !          1135: 54,
        !          1136: 0,
        !          1137: 
        !          1138: 25,
        !          1139: 0,
        !          1140: 
        !          1141: 29,
        !          1142: 0,
        !          1143: 
        !          1144: 14,
        !          1145: 0,
        !          1146: 
        !          1147: 16,
        !          1148: 0,
        !          1149: 
        !          1150: 17,
        !          1151: 0,
        !          1152: 
        !          1153: 15,
        !          1154: 16,
        !          1155: 17,
        !          1156: 0,
        !          1157: 
        !          1158: 15,
        !          1159: 16,
        !          1160: 17,
        !          1161: 0,
        !          1162: 
        !          1163: 21,
        !          1164: 0,
        !          1165: 
        !          1166: 36,
        !          1167: 0,
        !          1168: 
        !          1169: 14,
        !          1170: 0,
        !          1171: 
        !          1172: 14,
        !          1173: 0,
        !          1174: 
        !          1175: 14,
        !          1176: 0,
        !          1177: 
        !          1178: 22,
        !          1179: 0,
        !          1180: 
        !          1181: 30,
        !          1182: 0,
        !          1183: 
        !          1184: 14,
        !          1185: 0,
        !          1186: 
        !          1187: 23,
        !          1188: 0,
        !          1189: 
        !          1190: 34,
        !          1191: 35,
        !          1192: 0,
        !          1193: 
        !          1194: 24,
        !          1195: 0,
        !          1196: 
        !          1197: 32,
        !          1198: 35,
        !          1199: 0,
        !          1200: 
        !          1201: 26,
        !          1202: 0,
        !          1203: 
        !          1204: 27,
        !          1205: 0,
        !          1206: 
        !          1207: 27,
        !          1208: 0,
        !          1209: 
        !          1210: 25,
        !          1211: 0,
        !          1212: 
        !          1213: 29,
        !          1214: 0,
        !          1215: 
        !          1216: 33,
        !          1217: 35,
        !          1218: 0,
        !          1219: 
        !          1220: 12,
        !          1221: 14,
        !          1222: 0,
        !          1223: 
        !          1224: 14,
        !          1225: 0,
        !          1226: 
        !          1227: 14,
        !          1228: 0,
        !          1229: 
        !          1230: 30,
        !          1231: 0,
        !          1232: 
        !          1233: 28,
        !          1234: 0,
        !          1235: 
        !          1236: 13,
        !          1237: 14,
        !          1238: 0,
        !          1239: 
        !          1240: 37,
        !          1241: 0,
        !          1242: 0};
        !          1243: # define YYTYPE int
        !          1244: struct yywork { YYTYPE verify, advance; } yycrank[] ={
        !          1245: 0,0,   0,0,    1,3,    0,0,    
        !          1246: 0,0,   0,0,    0,0,    0,0,    
        !          1247: 0,0,   0,0,    1,4,    1,5,    
        !          1248: 0,0,   6,43,   0,0,    0,0,    
        !          1249: 0,0,   43,43,  0,0,    0,0,    
        !          1250: 0,0,   46,43,  0,0,    0,0,    
        !          1251: 0,0,   0,0,    0,0,    0,0,    
        !          1252: 0,0,   0,0,    0,0,    0,0,    
        !          1253: 0,0,   1,6,    1,7,    1,8,    
        !          1254: 6,46,  1,9,    1,3,    7,47,   
        !          1255: 1,10,  1,11,   1,11,   19,72,  
        !          1256: 46,46, 1,12,   1,13,   1,14,   
        !          1257: 1,15,  1,16,   13,57,  21,77,  
        !          1258: 0,0,   0,0,    22,78,  27,85,  
        !          1259: 45,62, 59,121, 0,0,    1,17,   
        !          1260: 1,18,  22,77,  64,64,  8,48,   
        !          1261: 1,19,  0,0,    1,20,   1,21,   
        !          1262: 8,48,  1,22,   49,112, 0,0,    
        !          1263: 49,113,        1,23,   23,77,  0,0,    
        !          1264: 0,0,   1,22,   1,24,   25,82,  
        !          1265: 24,77, 1,25,   61,125, 56,119, 
        !          1266: 1,26,  56,120, 1,27,   125,125,        
        !          1267: 62,125,        61,62,  61,45,  128,66, 
        !          1268: 1,11,  137,189,        1,11,   62,62,  
        !          1269: 62,45, 1,28,   1,29,   1,30,   
        !          1270: 1,31,  1,32,   1,33,   1,32,   
        !          1271: 1,32,  1,34,   1,35,   1,32,   
        !          1272: 1,32,  1,32,   1,32,   1,32,   
        !          1273: 1,36,  1,37,   1,32,   1,32,   
        !          1274: 1,38,  1,32,   1,32,   1,32,   
        !          1275: 1,39,  1,32,   1,32,   1,32,   
        !          1276: 1,11,  8,48,   1,11,   2,40,   
        !          1277: 2,8,   23,79,  2,9,    24,81,  
        !          1278: 26,77, 23,80,  2,11,   53,116, 
        !          1279: 54,117,        25,83,  64,126, 73,135, 
        !          1280: 2,41,  2,15,   9,49,   9,49,   
        !          1281: 9,49,  9,49,   9,49,   9,49,   
        !          1282: 9,49,  9,49,   9,49,   9,49,   
        !          1283: 2,17,  2,18,   12,55,  85,151, 
        !          1284: 87,152,        2,19,   12,56,  12,56,  
        !          1285: 12,56, 12,56,  12,56,  12,56,  
        !          1286: 12,56, 12,56,  12,56,  12,56,  
        !          1287: 51,114,        93,157, 101,169,        124,124,        
        !          1288: 126,126,       133,133,        138,190,        140,191,        
        !          1289: 51,115,        148,197,        151,201,        2,27,   
        !          1290: 154,203,       156,152,        156,205,        4,42,   
        !          1291: 158,207,       2,11,   101,152,        2,11,   
        !          1292: 74,136,        82,147, 26,84,  122,122,        
        !          1293: 130,130,       2,31,   161,210,        2,33,   
        !          1294: 2,32,  2,32,   95,160, 2,35,   
        !          1295: 2,32,  2,32,   2,32,   162,211,        
        !          1296: 2,32,  2,36,   4,43,   2,32,   
        !          1297: 2,32,  167,214,        2,32,   2,32,   
        !          1298: 2,32,  2,39,   2,32,   2,32,   
        !          1299: 2,32,  2,11,   169,217,        2,11,   
        !          1300: 4,44,  4,45,   4,44,   4,44,   
        !          1301: 4,44,  4,44,   4,44,   4,44,   
        !          1302: 4,44,  4,44,   4,44,   4,44,   
        !          1303: 99,166,        74,137, 82,148, 160,160,        
        !          1304: 93,158,        153,153,        181,181,        4,44,   
        !          1305: 4,44,  4,44,   4,44,   4,44,   
        !          1306: 4,44,  4,44,   4,44,   4,44,   
        !          1307: 4,44,  4,44,   4,44,   4,44,   
        !          1308: 4,44,  4,44,   4,44,   4,44,   
        !          1309: 4,44,  4,44,   4,44,   4,44,   
        !          1310: 4,44,  4,44,   4,44,   4,44,   
        !          1311: 4,44,  74,137, 82,148, 122,181,        
        !          1312: 130,184,       95,161, 4,43,   4,44,   
        !          1313: 4,44,  4,44,   4,44,   4,44,   
        !          1314: 4,44,  4,44,   4,44,   4,44,   
        !          1315: 4,44,  4,44,   4,44,   4,44,   
        !          1316: 4,44,  4,44,   4,44,   4,44,   
        !          1317: 4,44,  4,44,   4,44,   4,44,   
        !          1318: 4,44,  4,44,   4,44,   4,44,   
        !          1319: 4,44,  10,48,  143,62, 157,157,        
        !          1320: 149,198,       99,167, 10,48,  102,147,        
        !          1321: 166,166,       153,202,        160,209,        28,43,  
        !          1322: 55,118,        55,118, 55,118, 55,118, 
        !          1323: 55,118,        55,118, 55,118, 55,118, 
        !          1324: 55,118,        55,118, 65,127, 65,127, 
        !          1325: 65,127,        65,127, 65,127, 65,127, 
        !          1326: 65,127,        65,127, 65,127, 65,127, 
        !          1327: 178,112,       184,184,        178,113,        186,186,        
        !          1328: 28,48, 188,225,        196,230,        143,193,        
        !          1329: 149,199,       28,48,  69,134, 69,134, 
        !          1330: 69,134,        69,134, 69,134, 69,134, 
        !          1331: 69,134,        69,134, 69,134, 69,134, 
        !          1332: 102,148,       112,178,        112,178,        112,178,        
        !          1333: 112,178,       112,178,        112,178,        112,178,        
        !          1334: 112,178,       112,178,        112,178,        10,48,  
        !          1335: 192,191,       192,226,        199,232,        10,50,  
        !          1336: 202,234,       204,235,        157,206,        143,193,        
        !          1337: 149,199,       206,236,        14,58,  10,51,  
        !          1338: 10,52, 166,213,        194,62, 208,237,        
        !          1339: 209,238,       10,53,  211,239,        213,242,        
        !          1340: 102,148,       10,54,  14,59,  14,45,  
        !          1341: 14,60, 14,60,  14,60,  14,60,  
        !          1342: 14,60, 14,60,  14,60,  14,60,  
        !          1343: 14,60, 14,60,  28,86,  175,175,        
        !          1344: 217,244,       218,245,        185,185,        219,219,        
        !          1345: 194,228,       14,44,  14,44,  14,44,  
        !          1346: 14,44, 14,44,  14,44,  14,44,  
        !          1347: 14,44, 14,44,  14,44,  14,44,  
        !          1348: 14,44, 14,44,  14,44,  14,44,  
        !          1349: 14,44, 14,44,  14,44,  14,44,  
        !          1350: 14,44, 14,44,  14,44,  14,44,  
        !          1351: 14,44, 14,44,  14,44,  136,136,        
        !          1352: 147,147,       220,220,        224,224,        231,249,        
        !          1353: 194,228,       14,44,  14,44,  14,44,  
        !          1354: 14,44, 14,44,  14,44,  14,44,  
        !          1355: 14,44, 14,44,  14,44,  14,44,  
        !          1356: 14,44, 14,44,  14,44,  14,44,  
        !          1357: 14,44, 14,44,  14,44,  14,44,  
        !          1358: 14,44, 14,44,  14,44,  14,44,  
        !          1359: 14,44, 14,44,  14,44,  15,61,  
        !          1360: 239,250,       15,62,  15,62,  15,62,  
        !          1361: 15,62, 15,62,  15,62,  15,62,  
        !          1362: 15,62, 15,62,  15,62,  175,220,        
        !          1363: 136,188,       147,196,        185,224,        244,251,        
        !          1364: 251,253,       0,0,    15,62,  15,62,  
        !          1365: 15,62, 15,62,  15,62,  15,62,  
        !          1366: 15,62, 15,62,  15,62,  15,62,  
        !          1367: 15,62, 15,62,  15,62,  15,62,  
        !          1368: 15,62, 15,62,  15,62,  15,62,  
        !          1369: 15,62, 15,62,  15,62,  15,62,  
        !          1370: 15,62, 15,62,  15,62,  15,62,  
        !          1371: 136,188,       147,196,        241,241,        0,0,    
        !          1372: 0,0,   241,241,        15,62,  15,62,  
        !          1373: 15,62, 15,62,  15,62,  15,62,  
        !          1374: 15,62, 15,62,  15,62,  15,62,  
        !          1375: 15,62, 15,62,  15,62,  15,62,  
        !          1376: 15,62, 15,62,  15,62,  15,62,  
        !          1377: 15,62, 15,62,  15,62,  15,62,  
        !          1378: 15,62, 15,62,  15,62,  15,62,  
        !          1379: 16,63, 195,62, 16,64,  0,0,    
        !          1380: 0,0,   0,0,    0,0,    16,65,  
        !          1381: 16,66, 16,67,  16,45,  16,68,  
        !          1382: 16,68, 16,68,  16,68,  16,68,  
        !          1383: 16,68, 16,68,  16,68,  16,68,  
        !          1384: 16,68, 16,69,  198,198,        0,0,    
        !          1385: 0,0,   0,0,    0,0,    195,229,        
        !          1386: 16,70, 16,70,  16,70,  16,70,  
        !          1387: 16,70, 16,70,  16,70,  16,70,  
        !          1388: 16,70, 16,70,  16,70,  16,70,  
        !          1389: 16,70, 16,70,  16,70,  16,70,  
        !          1390: 16,70, 16,70,  16,70,  16,70,  
        !          1391: 16,70, 16,70,  16,70,  16,70,  
        !          1392: 16,70, 16,70,  0,0,    0,0,    
        !          1393: 0,0,   0,0,    198,231,        195,229,        
        !          1394: 16,70, 16,70,  16,70,  16,70,  
        !          1395: 16,70, 16,70,  16,70,  16,70,  
        !          1396: 16,70, 16,70,  16,70,  16,70,  
        !          1397: 16,70, 16,70,  16,70,  16,70,  
        !          1398: 16,70, 16,70,  16,71,  16,70,  
        !          1399: 16,70, 16,70,  16,70,  16,70,  
        !          1400: 16,70, 16,70,  20,73,  0,0,    
        !          1401: 0,0,   0,0,    198,231,        0,0,    
        !          1402: 20,66, 20,74,  20,45,  20,70,  
        !          1403: 20,70, 20,70,  20,70,  20,70,  
        !          1404: 20,70, 20,70,  20,70,  20,70,  
        !          1405: 20,70, 0,0,    0,0,    0,0,    
        !          1406: 0,0,   0,0,    0,0,    0,0,    
        !          1407: 20,75, 20,75,  20,75,  20,75,  
        !          1408: 20,75, 20,75,  20,75,  20,75,  
        !          1409: 20,75, 20,75,  20,75,  20,75,  
        !          1410: 20,75, 20,75,  20,75,  20,75,  
        !          1411: 20,75, 20,75,  20,75,  20,75,  
        !          1412: 20,75, 20,75,  20,75,  20,75,  
        !          1413: 20,75, 20,75,  0,0,    0,0,    
        !          1414: 0,0,   0,0,    0,0,    0,0,    
        !          1415: 20,76, 20,76,  20,76,  20,76,  
        !          1416: 20,76, 20,76,  20,76,  20,76,  
        !          1417: 20,76, 20,76,  20,76,  20,76,  
        !          1418: 20,76, 20,76,  20,76,  20,76,  
        !          1419: 20,76, 20,76,  20,76,  20,76,  
        !          1420: 20,76, 20,76,  20,76,  20,76,  
        !          1421: 20,76, 20,76,  29,87,  0,0,    
        !          1422: 0,0,   0,0,    0,0,    0,0,    
        !          1423: 113,113,       29,88,  113,113,        113,113,        
        !          1424: 113,113,       113,113,        113,113,        113,113,        
        !          1425: 113,113,       113,113,        113,113,        113,113,        
        !          1426: 0,0,   0,0,    0,0,    0,0,    
        !          1427: 0,0,   0,0,    0,0,    0,0,    
        !          1428: 29,89, 29,89,  29,89,  29,89,  
        !          1429: 29,89, 29,89,  29,89,  29,89,  
        !          1430: 29,89, 29,89,  29,89,  29,89,  
        !          1431: 29,89, 29,89,  29,89,  29,89,  
        !          1432: 29,89, 29,89,  29,89,  29,89,  
        !          1433: 29,89, 29,89,  29,89,  29,89,  
        !          1434: 29,89, 29,89,  0,0,    0,0,    
        !          1435: 0,0,   0,0,    0,0,    0,0,    
        !          1436: 29,90, 29,90,  29,90,  29,90,  
        !          1437: 29,90, 29,90,  29,90,  29,90,  
        !          1438: 29,91, 29,90,  29,90,  29,90,  
        !          1439: 29,90, 29,92,  29,90,  29,90,  
        !          1440: 29,90, 29,90,  29,90,  29,90,  
        !          1441: 29,90, 29,90,  29,90,  29,90,  
        !          1442: 29,90, 29,90,  30,87,  0,0,    
        !          1443: 0,0,   0,0,    118,55, 0,0,    
        !          1444: 118,179,       30,93,  118,118,        118,118,        
        !          1445: 118,118,       118,118,        118,118,        118,118,        
        !          1446: 118,118,       118,118,        118,118,        118,118,        
        !          1447: 0,0,   0,0,    0,0,    0,0,    
        !          1448: 0,0,   0,0,    0,0,    0,0,    
        !          1449: 30,89, 30,89,  30,89,  30,89,  
        !          1450: 30,89, 30,89,  30,89,  30,89,  
        !          1451: 30,89, 30,89,  30,89,  30,89,  
        !          1452: 30,89, 30,89,  30,89,  30,89,  
        !          1453: 30,89, 30,89,  30,89,  30,89,  
        !          1454: 30,89, 30,89,  30,89,  30,89,  
        !          1455: 30,89, 30,89,  0,0,    0,0,    
        !          1456: 0,0,   0,0,    0,0,    0,0,    
        !          1457: 30,90, 30,90,  30,90,  30,90,  
        !          1458: 30,90, 30,90,  30,90,  30,90,  
        !          1459: 30,90, 30,90,  30,90,  30,90,  
        !          1460: 30,90, 30,92,  30,90,  30,90,  
        !          1461: 30,90, 30,90,  30,90,  30,90,  
        !          1462: 30,90, 30,90,  30,90,  30,90,  
        !          1463: 30,90, 30,90,  31,87,  0,0,    
        !          1464: 0,0,   0,0,    0,0,    0,0,    
        !          1465: 0,0,   31,44,  123,60, 123,60, 
        !          1466: 123,60,        123,60, 123,60, 123,60, 
        !          1467: 123,60,        123,60, 123,60, 123,60, 
        !          1468: 0,0,   0,0,    0,0,    0,0,    
        !          1469: 0,0,   0,0,    0,0,    0,0,    
        !          1470: 31,89, 31,89,  31,89,  31,89,  
        !          1471: 31,89, 31,89,  31,89,  31,89,  
        !          1472: 31,89, 31,89,  31,89,  31,89,  
        !          1473: 31,89, 31,89,  31,89,  31,89,  
        !          1474: 31,89, 31,89,  31,89,  31,89,  
        !          1475: 31,89, 31,89,  31,89,  31,89,  
        !          1476: 31,89, 31,89,  0,0,    0,0,    
        !          1477: 0,0,   0,0,    0,0,    0,0,    
        !          1478: 31,94, 31,90,  31,90,  31,90,  
        !          1479: 31,90, 31,90,  31,90,  31,90,  
        !          1480: 31,90, 31,90,  31,90,  31,90,  
        !          1481: 31,90, 31,92,  31,90,  31,90,  
        !          1482: 31,90, 31,90,  31,90,  31,90,  
        !          1483: 31,90, 31,90,  31,90,  31,90,  
        !          1484: 31,90, 31,90,  32,87,  0,0,    
        !          1485: 0,0,   0,0,    0,0,    0,0,    
        !          1486: 0,0,   32,44,  134,187,        134,187,        
        !          1487: 134,187,       134,187,        134,187,        134,187,        
        !          1488: 134,187,       134,187,        134,187,        134,187,        
        !          1489: 0,0,   0,0,    0,0,    0,0,    
        !          1490: 0,0,   0,0,    0,0,    0,0,    
        !          1491: 32,89, 32,89,  32,89,  32,89,  
        !          1492: 32,89, 32,89,  32,89,  32,89,  
        !          1493: 32,89, 32,89,  32,89,  32,89,  
        !          1494: 32,89, 32,89,  32,89,  32,89,  
        !          1495: 32,89, 32,89,  32,89,  32,89,  
        !          1496: 32,89, 32,89,  32,89,  32,89,  
        !          1497: 32,89, 32,89,  0,0,    0,0,    
        !          1498: 0,0,   0,0,    0,0,    0,0,    
        !          1499: 32,90, 32,90,  32,90,  32,90,  
        !          1500: 32,90, 32,90,  32,90,  32,90,  
        !          1501: 32,90, 32,90,  32,90,  32,90,  
        !          1502: 32,90, 32,92,  32,90,  32,90,  
        !          1503: 32,90, 32,90,  32,90,  32,90,  
        !          1504: 32,90, 32,90,  32,90,  32,90,  
        !          1505: 32,90, 32,90,  33,87,  0,0,    
        !          1506: 0,0,   0,0,    0,0,    0,0,    
        !          1507: 0,0,   33,95,  179,221,        179,221,        
        !          1508: 179,221,       179,221,        179,221,        179,221,        
        !          1509: 179,221,       179,221,        179,221,        179,221,        
        !          1510: 0,0,   0,0,    0,0,    0,0,    
        !          1511: 0,0,   0,0,    0,0,    0,0,    
        !          1512: 33,89, 33,89,  33,89,  33,89,  
        !          1513: 33,89, 33,89,  33,89,  33,89,  
        !          1514: 33,89, 33,89,  33,89,  33,89,  
        !          1515: 33,89, 33,89,  33,89,  33,89,  
        !          1516: 33,89, 33,89,  33,89,  33,89,  
        !          1517: 33,89, 33,89,  33,89,  33,89,  
        !          1518: 33,89, 33,89,  0,0,    0,0,    
        !          1519: 0,0,   0,0,    0,0,    0,0,    
        !          1520: 33,90, 33,90,  33,90,  33,90,  
        !          1521: 33,90, 33,90,  33,90,  33,90,  
        !          1522: 33,90, 33,90,  33,90,  33,90,  
        !          1523: 33,90, 33,92,  33,90,  33,90,  
        !          1524: 33,90, 33,90,  33,90,  33,96,  
        !          1525: 33,90, 33,90,  33,90,  33,90,  
        !          1526: 33,90, 33,90,  34,87,  0,0,    
        !          1527: 0,0,   0,0,    0,0,    0,0,    
        !          1528: 221,179,       34,44,  221,221,        221,221,        
        !          1529: 221,221,       221,221,        221,221,        221,221,        
        !          1530: 221,221,       221,221,        221,221,        221,221,        
        !          1531: 0,0,   0,0,    0,0,    0,0,    
        !          1532: 0,0,   0,0,    0,0,    0,0,    
        !          1533: 34,89, 34,89,  34,89,  34,89,  
        !          1534: 34,89, 34,89,  34,89,  34,89,  
        !          1535: 34,89, 34,89,  34,89,  34,89,  
        !          1536: 34,89, 34,89,  34,89,  34,89,  
        !          1537: 34,89, 34,89,  34,89,  34,89,  
        !          1538: 34,89, 34,89,  34,89,  34,89,  
        !          1539: 34,89, 34,89,  0,0,    0,0,    
        !          1540: 0,0,   0,0,    0,0,    0,0,    
        !          1541: 34,90, 34,90,  34,90,  34,90,  
        !          1542: 34,97, 34,90,  34,90,  34,90,  
        !          1543: 34,98, 34,90,  34,90,  34,90,  
        !          1544: 34,90, 34,92,  34,90,  34,90,  
        !          1545: 34,90, 34,90,  34,90,  34,90,  
        !          1546: 34,90, 34,90,  34,90,  34,90,  
        !          1547: 34,90, 34,90,  35,87,  246,125,        
        !          1548: 0,0,   0,0,    0,0,    0,0,    
        !          1549: 252,125,       35,99,  246,62, 246,45, 
        !          1550: 247,125,       0,0,    248,125,        252,62, 
        !          1551: 252,45,        0,0,    0,0,    247,62, 
        !          1552: 247,45,        248,62, 248,45, 0,0,    
        !          1553: 0,0,   0,0,    0,0,    0,0,    
        !          1554: 35,89, 35,89,  35,89,  35,89,  
        !          1555: 35,89, 35,89,  35,89,  35,89,  
        !          1556: 35,89, 35,89,  35,89,  35,89,  
        !          1557: 35,89, 35,89,  35,89,  35,89,  
        !          1558: 35,89, 35,89,  35,89,  35,89,  
        !          1559: 35,89, 35,89,  35,89,  35,89,  
        !          1560: 35,89, 35,89,  0,0,    0,0,    
        !          1561: 0,0,   0,0,    0,0,    0,0,    
        !          1562: 35,90, 35,90,  35,90,  35,90,  
        !          1563: 35,90, 35,90,  35,90,  35,90,  
        !          1564: 35,90, 35,90,  35,90,  35,90,  
        !          1565: 35,90, 35,100, 35,90,  35,90,  
        !          1566: 35,90, 35,90,  35,90,  35,90,  
        !          1567: 35,90, 35,90,  35,90,  35,90,  
        !          1568: 35,90, 35,90,  36,101, 0,0,    
        !          1569: 247,252,       248,252,        0,0,    0,0,    
        !          1570: 0,0,   36,44,  0,0,    0,0,    
        !          1571: 0,0,   0,0,    0,0,    0,0,    
        !          1572: 0,0,   0,0,    0,0,    0,0,    
        !          1573: 0,0,   0,0,    0,0,    0,0,    
        !          1574: 0,0,   0,0,    0,0,    0,0,    
        !          1575: 36,89, 36,89,  36,89,  36,89,  
        !          1576: 36,89, 36,89,  36,89,  36,89,  
        !          1577: 36,89, 36,89,  36,89,  36,89,  
        !          1578: 36,89, 36,89,  36,89,  36,89,  
        !          1579: 36,89, 36,89,  36,89,  36,89,  
        !          1580: 36,89, 36,89,  36,89,  36,89,  
        !          1581: 36,89, 36,89,  0,0,    0,0,    
        !          1582: 0,0,   0,0,    0,0,    0,0,    
        !          1583: 36,90, 36,90,  36,90,  36,90,  
        !          1584: 36,90, 36,90,  36,90,  36,90,  
        !          1585: 36,90, 36,90,  36,90,  36,90,  
        !          1586: 36,90, 36,92,  36,90,  36,90,  
        !          1587: 36,90, 36,90,  36,90,  36,90,  
        !          1588: 36,90, 36,90,  36,90,  36,90,  
        !          1589: 36,90, 36,90,  37,87,  0,0,    
        !          1590: 0,0,   0,0,    0,0,    0,0,    
        !          1591: 0,0,   37,102, 0,0,    0,0,    
        !          1592: 0,0,   0,0,    0,0,    0,0,    
        !          1593: 0,0,   0,0,    0,0,    0,0,    
        !          1594: 0,0,   0,0,    0,0,    0,0,    
        !          1595: 0,0,   0,0,    0,0,    0,0,    
        !          1596: 37,89, 37,89,  37,89,  37,89,  
        !          1597: 37,89, 37,89,  37,89,  37,89,  
        !          1598: 37,89, 37,89,  37,89,  37,89,  
        !          1599: 37,89, 37,89,  37,89,  37,89,  
        !          1600: 37,89, 37,89,  37,89,  37,89,  
        !          1601: 37,89, 37,89,  37,89,  37,89,  
        !          1602: 37,89, 37,89,  0,0,    0,0,    
        !          1603: 0,0,   0,0,    0,0,    0,0,    
        !          1604: 37,90, 37,90,  37,90,  37,90,  
        !          1605: 37,90, 37,90,  37,90,  37,90,  
        !          1606: 37,90, 37,90,  37,90,  37,90,  
        !          1607: 37,90, 37,92,  37,90,  37,90,  
        !          1608: 37,90, 37,90,  37,90,  37,90,  
        !          1609: 37,90, 37,90,  37,90,  37,90,  
        !          1610: 37,90, 37,90,  38,87,  0,0,    
        !          1611: 0,0,   0,0,    0,0,    0,0,    
        !          1612: 0,0,   38,44,  0,0,    0,0,    
        !          1613: 0,0,   0,0,    0,0,    0,0,    
        !          1614: 0,0,   0,0,    0,0,    0,0,    
        !          1615: 0,0,   0,0,    0,0,    0,0,    
        !          1616: 0,0,   0,0,    0,0,    0,0,    
        !          1617: 38,89, 38,89,  38,89,  38,89,  
        !          1618: 38,89, 38,89,  38,89,  38,89,  
        !          1619: 38,89, 38,89,  38,89,  38,89,  
        !          1620: 38,89, 38,89,  38,89,  38,89,  
        !          1621: 38,89, 38,89,  38,89,  38,89,  
        !          1622: 38,89, 38,89,  38,89,  38,89,  
        !          1623: 38,89, 38,89,  0,0,    0,0,    
        !          1624: 0,0,   0,0,    0,0,    0,0,    
        !          1625: 38,90, 38,90,  38,90,  38,90,  
        !          1626: 38,90, 38,90,  38,90,  38,103, 
        !          1627: 38,90, 38,90,  38,90,  38,90,  
        !          1628: 38,90, 38,92,  38,90,  38,90,  
        !          1629: 38,90, 38,90,  38,90,  38,90,  
        !          1630: 38,90, 38,90,  38,90,  38,90,  
        !          1631: 38,90, 38,90,  39,87,  0,0,    
        !          1632: 0,0,   0,0,    0,0,    0,0,    
        !          1633: 0,0,   39,44,  0,0,    0,0,    
        !          1634: 0,0,   0,0,    0,0,    0,0,    
        !          1635: 0,0,   0,0,    0,0,    0,0,    
        !          1636: 0,0,   0,0,    0,0,    0,0,    
        !          1637: 0,0,   0,0,    0,0,    0,0,    
        !          1638: 39,89, 39,89,  39,89,  39,89,  
        !          1639: 39,89, 39,89,  39,89,  39,89,  
        !          1640: 39,89, 39,89,  39,89,  39,89,  
        !          1641: 39,89, 39,89,  39,89,  39,89,  
        !          1642: 39,89, 39,89,  39,89,  39,89,  
        !          1643: 39,89, 39,89,  39,89,  39,89,  
        !          1644: 39,89, 39,89,  0,0,    0,0,    
        !          1645: 0,0,   0,0,    0,0,    0,0,    
        !          1646: 39,90, 39,90,  39,90,  39,90,  
        !          1647: 39,90, 39,90,  39,90,  39,90,  
        !          1648: 39,90, 39,90,  39,90,  39,90,  
        !          1649: 39,90, 39,92,  39,104, 39,90,  
        !          1650: 39,90, 39,90,  39,90,  39,90,  
        !          1651: 39,90, 39,90,  39,90,  39,90,  
        !          1652: 39,90, 39,90,  40,105, 200,62, 
        !          1653: 0,0,   0,0,    60,122, 0,0,    
        !          1654: 0,0,   0,0,    40,105, 40,0,   
        !          1655: 0,0,   60,123, 0,0,    60,60,  
        !          1656: 60,60, 60,60,  60,60,  60,60,  
        !          1657: 60,60, 60,60,  60,60,  60,60,  
        !          1658: 60,60, 0,0,    212,240,        88,153, 
        !          1659: 86,43, 200,233,        0,0,    0,0,    
        !          1660: 0,0,   40,105, 40,105, 40,106, 
        !          1661: 0,0,   0,0,    40,105, 0,0,    
        !          1662: 40,105,        0,0,    40,105, 193,125,        
        !          1663: 0,0,   40,105, 40,105, 40,105, 
        !          1664: 212,240,       40,105, 193,62, 193,45, 
        !          1665: 0,0,   86,48,  0,0,    227,125,        
        !          1666: 41,0,  212,241,        86,48,  0,0,    
        !          1667: 212,241,       200,233,        227,62, 227,45, 
        !          1668: 0,0,   0,0,    40,105, 40,105, 
        !          1669: 228,125,       40,105, 0,0,    0,0,    
        !          1670: 88,137,        40,105, 0,0,    228,62, 
        !          1671: 228,45,        40,105, 40,105, 229,125,        
        !          1672: 41,107,        40,105, 60,124, 233,125,        
        !          1673: 40,105,        0,0,    229,62, 229,45, 
        !          1674: 0,0,   0,0,    233,62, 233,45, 
        !          1675: 41,108,        41,109, 41,110, 88,154, 
        !          1676: 0,0,   40,105, 40,105, 40,105, 
        !          1677: 0,0,   40,105, 240,240,        0,0,    
        !          1678: 88,137,        40,105, 0,0,    0,0,    
        !          1679: 193,227,       0,0,    40,105, 41,111, 
        !          1680: 41,111,        40,105, 41,111, 86,86,  
        !          1681: 40,105,        227,246,        41,111, 0,0,    
        !          1682: 0,0,   0,0,    41,111, 41,111, 
        !          1683: 240,240,       0,0,    41,111, 0,0,    
        !          1684: 0,0,   41,111, 0,0,    0,0,    
        !          1685: 0,0,   240,241,        228,247,        0,0,    
        !          1686: 240,241,       0,0,    0,0,    0,0,    
        !          1687: 0,0,   229,248,        0,0,    41,111, 
        !          1688: 41,111,        233,246,        41,111, 0,0,    
        !          1689: 0,0,   0,0,    41,111, 0,0,    
        !          1690: 0,0,   0,0,    0,0,    41,111, 
        !          1691: 0,0,   0,0,    41,111, 0,0,    
        !          1692: 0,0,   41,111, 44,44,  44,45,  
        !          1693: 44,44, 44,44,  44,44,  44,44,  
        !          1694: 44,44, 44,44,  44,44,  44,44,  
        !          1695: 44,44, 44,44,  0,0,    0,0,    
        !          1696: 0,0,   0,0,    0,0,    0,0,    
        !          1697: 0,0,   44,44,  44,44,  44,44,  
        !          1698: 44,44, 44,44,  44,44,  44,44,  
        !          1699: 44,44, 44,44,  44,44,  44,44,  
        !          1700: 44,44, 44,44,  44,44,  44,44,  
        !          1701: 44,44, 44,44,  44,44,  44,44,  
        !          1702: 44,44, 44,44,  44,44,  44,44,  
        !          1703: 44,44, 44,44,  44,44,  0,0,    
        !          1704: 0,0,   0,0,    0,0,    0,0,    
        !          1705: 0,0,   44,44,  44,44,  44,44,  
        !          1706: 44,44, 44,44,  44,44,  44,44,  
        !          1707: 44,44, 44,44,  44,44,  44,44,  
        !          1708: 44,44, 44,44,  44,44,  44,44,  
        !          1709: 44,44, 44,44,  44,44,  44,44,  
        !          1710: 44,44, 44,44,  44,44,  44,44,  
        !          1711: 44,44, 44,44,  44,44,  66,128, 
        !          1712: 66,128,        66,128, 66,128, 66,128, 
        !          1713: 66,128,        66,128, 66,128, 66,128, 
        !          1714: 66,128,        0,0,    0,0,    0,0,    
        !          1715: 0,0,   0,0,    0,0,    0,0,    
        !          1716: 66,128,        66,128, 66,128, 66,128, 
        !          1717: 66,128,        66,128, 66,128, 66,128, 
        !          1718: 66,128,        66,128, 66,128, 66,128, 
        !          1719: 66,128,        66,128, 66,128, 66,128, 
        !          1720: 66,128,        66,128, 66,128, 66,128, 
        !          1721: 66,128,        66,128, 66,128, 66,128, 
        !          1722: 66,128,        66,128, 0,0,    0,0,    
        !          1723: 0,0,   0,0,    0,0,    0,0,    
        !          1724: 66,128,        66,128, 66,128, 66,128, 
        !          1725: 66,128,        66,128, 66,128, 66,128, 
        !          1726: 66,128,        66,128, 66,128, 66,128, 
        !          1727: 66,128,        66,128, 66,128, 66,128, 
        !          1728: 66,128,        66,128, 66,128, 66,128, 
        !          1729: 66,128,        66,128, 66,128, 66,128, 
        !          1730: 66,128,        66,128, 67,129, 67,129, 
        !          1731: 0,0,   0,0,    0,0,    0,0,    
        !          1732: 0,0,   0,0,    0,0,    0,0,    
        !          1733: 0,0,   0,0,    0,0,    0,0,    
        !          1734: 0,0,   0,0,    0,0,    0,0,    
        !          1735: 0,0,   0,0,    0,0,    0,0,    
        !          1736: 0,0,   67,129, 0,0,    0,0,    
        !          1737: 0,0,   0,0,    0,0,    0,0,    
        !          1738: 67,130,        0,0,    0,0,    0,0,    
        !          1739: 0,0,   0,0,    0,0,    67,131, 
        !          1740: 0,0,   67,132, 67,132, 67,132, 
        !          1741: 67,132,        67,132, 67,132, 67,132, 
        !          1742: 67,132,        67,132, 67,132, 68,63,  
        !          1743: 0,0,   68,64,  0,0,    0,0,    
        !          1744: 0,0,   0,0,    68,65,  68,66,  
        !          1745: 68,67, 68,45,  68,68,  68,68,  
        !          1746: 68,68, 68,68,  68,68,  68,68,  
        !          1747: 68,68, 68,68,  68,68,  68,68,  
        !          1748: 0,0,   0,0,    0,0,    0,0,    
        !          1749: 0,0,   0,0,    0,0,    68,70,  
        !          1750: 68,70, 68,70,  68,70,  68,70,  
        !          1751: 68,70, 68,70,  68,70,  68,70,  
        !          1752: 68,70, 68,70,  68,70,  68,70,  
        !          1753: 68,70, 68,70,  68,70,  68,70,  
        !          1754: 68,70, 68,70,  68,70,  68,70,  
        !          1755: 68,70, 68,70,  68,70,  68,70,  
        !          1756: 68,70, 0,0,    0,0,    0,0,    
        !          1757: 67,133,        0,0,    0,0,    68,70,  
        !          1758: 68,70, 68,70,  68,70,  68,70,  
        !          1759: 68,70, 68,70,  68,70,  68,70,  
        !          1760: 68,70, 68,70,  68,70,  68,70,  
        !          1761: 68,70, 68,70,  68,70,  68,70,  
        !          1762: 68,70, 68,71,  68,70,  68,70,  
        !          1763: 68,70, 68,70,  68,70,  68,70,  
        !          1764: 68,70, 70,66,  0,0,    0,0,    
        !          1765: 70,70, 70,70,  70,70,  70,70,  
        !          1766: 70,70, 70,70,  70,70,  70,70,  
        !          1767: 70,70, 70,70,  0,0,    0,0,    
        !          1768: 0,0,   0,0,    0,0,    0,0,    
        !          1769: 0,0,   70,70,  70,70,  70,70,  
        !          1770: 70,70, 70,70,  70,70,  70,70,  
        !          1771: 70,70, 70,70,  70,70,  70,70,  
        !          1772: 70,70, 70,70,  70,70,  70,70,  
        !          1773: 70,70, 70,70,  70,70,  70,70,  
        !          1774: 70,70, 70,70,  70,70,  70,70,  
        !          1775: 70,70, 70,70,  70,70,  0,0,    
        !          1776: 0,0,   0,0,    0,0,    0,0,    
        !          1777: 0,0,   70,70,  70,70,  70,70,  
        !          1778: 70,70, 70,70,  70,70,  70,70,  
        !          1779: 70,70, 70,70,  70,70,  70,70,  
        !          1780: 70,70, 70,70,  70,70,  70,70,  
        !          1781: 70,70, 70,70,  70,70,  70,70,  
        !          1782: 70,70, 70,70,  70,70,  70,70,  
        !          1783: 70,70, 70,70,  70,70,  71,66,  
        !          1784: 0,0,   0,0,    71,70,  71,70,  
        !          1785: 71,70, 71,70,  71,70,  71,70,  
        !          1786: 71,70, 71,70,  71,70,  71,70,  
        !          1787: 0,0,   0,0,    0,0,    0,0,    
        !          1788: 0,0,   0,0,    0,0,    71,70,  
        !          1789: 71,70, 71,70,  71,70,  71,70,  
        !          1790: 71,70, 71,70,  71,70,  71,70,  
        !          1791: 71,70, 71,70,  71,70,  71,70,  
        !          1792: 71,70, 71,70,  71,70,  71,70,  
        !          1793: 71,70, 71,70,  71,70,  71,70,  
        !          1794: 71,70, 71,70,  71,70,  71,70,  
        !          1795: 71,70, 90,87,  0,0,    0,0,    
        !          1796: 0,0,   0,0,    0,0,    71,70,  
        !          1797: 71,70, 71,70,  71,70,  71,70,  
        !          1798: 71,70, 71,70,  71,70,  71,70,  
        !          1799: 71,70, 71,70,  71,70,  71,70,  
        !          1800: 71,70, 71,70,  71,70,  71,70,  
        !          1801: 71,70, 71,71,  71,70,  71,70,  
        !          1802: 71,70, 71,70,  71,70,  71,70,  
        !          1803: 71,70, 75,138, 0,0,    0,0,    
        !          1804: 0,0,   0,0,    0,0,    0,0,    
        !          1805: 75,139,        0,0,    0,0,    0,0,    
        !          1806: 0,0,   0,0,    0,0,    0,0,    
        !          1807: 0,0,   0,0,    0,0,    0,0,    
        !          1808: 0,0,   0,0,    0,0,    0,0,    
        !          1809: 0,0,   0,0,    0,0,    90,90,  
        !          1810: 90,90, 90,90,  90,90,  90,90,  
        !          1811: 90,90, 90,90,  90,90,  90,90,  
        !          1812: 90,90, 90,90,  90,90,  90,90,  
        !          1813: 90,92, 90,90,  90,90,  90,90,  
        !          1814: 90,90, 90,90,  90,90,  90,90,  
        !          1815: 90,90, 90,90,  90,90,  90,90,  
        !          1816: 90,90, 0,0,    0,0,    0,0,    
        !          1817: 0,0,   0,0,    0,0,    75,89,  
        !          1818: 75,89, 75,89,  75,89,  75,89,  
        !          1819: 75,89, 75,89,  75,89,  75,89,  
        !          1820: 75,89, 75,89,  75,89,  75,89,  
        !          1821: 75,89, 75,89,  75,89,  75,89,  
        !          1822: 75,89, 75,89,  75,89,  75,89,  
        !          1823: 75,89, 75,89,  75,89,  75,89,  
        !          1824: 75,89, 76,140, 0,0,    0,0,    
        !          1825: 0,0,   0,0,    0,0,    0,0,    
        !          1826: 76,139,        0,0,    0,0,    0,0,    
        !          1827: 0,0,   0,0,    0,0,    0,0,    
        !          1828: 0,0,   0,0,    0,0,    0,0,    
        !          1829: 0,0,   0,0,    0,0,    0,0,    
        !          1830: 0,0,   0,0,    0,0,    76,89,  
        !          1831: 76,89, 76,89,  76,89,  76,89,  
        !          1832: 76,89, 76,89,  76,89,  76,89,  
        !          1833: 76,89, 76,89,  76,89,  76,89,  
        !          1834: 76,89, 76,89,  76,89,  76,89,  
        !          1835: 76,89, 76,89,  76,89,  76,89,  
        !          1836: 76,89, 76,89,  76,89,  76,89,  
        !          1837: 76,89, 0,0,    0,0,    0,0,    
        !          1838: 0,0,   0,0,    0,0,    0,0,    
        !          1839: 0,0,   0,0,    0,0,    0,0,    
        !          1840: 0,0,   0,0,    0,0,    0,0,    
        !          1841: 0,0,   0,0,    0,0,    0,0,    
        !          1842: 76,141,        78,142, 78,142, 78,142, 
        !          1843: 78,142,        78,142, 78,142, 78,142, 
        !          1844: 78,142,        78,142, 78,142, 78,142, 
        !          1845: 78,142,        78,142, 78,142, 78,142, 
        !          1846: 78,142,        78,142, 78,142, 78,142, 
        !          1847: 78,142,        78,142, 78,142, 78,142, 
        !          1848: 78,142,        78,142, 78,142, 79,140, 
        !          1849: 0,0,   0,0,    0,0,    0,0,    
        !          1850: 0,0,   0,0,    79,139, 79,143, 
        !          1851: 0,0,   0,0,    0,0,    0,0,    
        !          1852: 0,0,   0,0,    0,0,    0,0,    
        !          1853: 0,0,   0,0,    0,0,    0,0,    
        !          1854: 0,0,   0,0,    0,0,    78,135, 
        !          1855: 0,0,   79,89,  79,89,  79,89,  
        !          1856: 79,89, 79,89,  79,89,  79,89,  
        !          1857: 79,89, 79,89,  79,89,  79,89,  
        !          1858: 79,89, 79,89,  79,89,  79,89,  
        !          1859: 79,89, 79,89,  79,89,  79,89,  
        !          1860: 79,89, 79,89,  79,89,  79,89,  
        !          1861: 79,89, 79,89,  79,89,  80,140, 
        !          1862: 0,0,   0,0,    0,0,    0,0,    
        !          1863: 0,0,   0,0,    80,139, 0,0,    
        !          1864: 0,0,   0,0,    0,0,    0,0,    
        !          1865: 0,0,   0,0,    0,0,    0,0,    
        !          1866: 0,0,   0,0,    79,141, 0,0,    
        !          1867: 0,0,   0,0,    79,144, 0,0,    
        !          1868: 0,0,   80,89,  80,89,  80,89,  
        !          1869: 80,89, 80,89,  80,89,  80,89,  
        !          1870: 80,89, 80,89,  80,89,  80,89,  
        !          1871: 80,89, 80,89,  80,89,  80,89,  
        !          1872: 80,89, 80,89,  80,89,  80,89,  
        !          1873: 80,89, 80,89,  80,89,  80,89,  
        !          1874: 80,89, 80,89,  80,89,  81,140, 
        !          1875: 0,0,   0,0,    0,0,    0,0,    
        !          1876: 0,0,   0,0,    81,139, 0,0,    
        !          1877: 0,0,   0,0,    0,0,    0,0,    
        !          1878: 0,0,   0,0,    0,0,    0,0,    
        !          1879: 0,0,   0,0,    80,141, 0,0,    
        !          1880: 0,0,   0,0,    0,0,    80,145, 
        !          1881: 0,0,   81,89,  81,89,  81,89,  
        !          1882: 81,89, 81,89,  81,89,  81,89,  
        !          1883: 81,89, 81,89,  81,89,  81,89,  
        !          1884: 81,89, 81,89,  81,89,  81,89,  
        !          1885: 81,89, 81,89,  81,89,  81,89,  
        !          1886: 81,89, 81,89,  81,89,  81,89,  
        !          1887: 81,89, 81,89,  81,89,  0,0,    
        !          1888: 0,0,   0,0,    0,0,    0,0,    
        !          1889: 83,140,        0,0,    0,0,    0,0,    
        !          1890: 0,0,   0,0,    0,0,    83,149, 
        !          1891: 0,0,   0,0,    0,0,    0,0,    
        !          1892: 0,0,   0,0,    81,141, 0,0,    
        !          1893: 0,0,   0,0,    0,0,    0,0,    
        !          1894: 0,0,   0,0,    0,0,    0,0,    
        !          1895: 0,0,   81,146, 83,89,  83,89,  
        !          1896: 83,89, 83,89,  83,89,  83,89,  
        !          1897: 83,89, 83,89,  83,89,  83,89,  
        !          1898: 83,89, 83,89,  83,89,  83,89,  
        !          1899: 83,89, 83,89,  83,89,  83,89,  
        !          1900: 83,89, 83,89,  83,89,  83,89,  
        !          1901: 83,89, 83,89,  83,89,  83,89,  
        !          1902: 84,140,        0,0,    0,0,    0,0,    
        !          1903: 0,0,   0,0,    0,0,    84,139, 
        !          1904: 0,0,   0,0,    0,0,    0,0,    
        !          1905: 0,0,   0,0,    0,0,    0,0,    
        !          1906: 0,0,   0,0,    0,0,    83,141, 
        !          1907: 0,0,   0,0,    0,0,    0,0,    
        !          1908: 0,0,   0,0,    84,89,  84,89,  
        !          1909: 84,89, 84,89,  84,89,  84,89,  
        !          1910: 84,89, 84,89,  84,89,  84,89,  
        !          1911: 84,89, 84,89,  84,89,  84,89,  
        !          1912: 84,89, 84,89,  84,89,  84,89,  
        !          1913: 84,89, 84,89,  84,89,  84,89,  
        !          1914: 84,89, 84,89,  84,89,  84,89,  
        !          1915: 0,0,   0,0,    0,0,    0,0,    
        !          1916: 0,0,   0,0,    0,0,    0,0,    
        !          1917: 0,0,   0,0,    84,150, 0,0,    
        !          1918: 0,0,   0,0,    0,0,    0,0,    
        !          1919: 0,0,   0,0,    0,0,    84,141, 
        !          1920: 89,66, 89,139, 89,45,  89,70,  
        !          1921: 89,70, 89,70,  89,70,  89,70,  
        !          1922: 89,70, 89,70,  89,70,  89,70,  
        !          1923: 89,70, 0,0,    0,0,    0,0,    
        !          1924: 0,0,   0,0,    0,0,    0,0,    
        !          1925: 89,89, 89,89,  89,89,  89,89,  
        !          1926: 89,89, 89,89,  89,89,  89,89,  
        !          1927: 89,89, 89,89,  89,89,  89,89,  
        !          1928: 89,89, 89,89,  89,89,  89,89,  
        !          1929: 89,89, 89,89,  89,89,  89,89,  
        !          1930: 89,89, 89,89,  89,89,  89,89,  
        !          1931: 89,89, 89,89,  91,87,  0,0,    
        !          1932: 0,0,   0,0,    0,0,    0,0,    
        !          1933: 89,89, 89,89,  89,89,  89,89,  
        !          1934: 89,89, 89,89,  89,89,  89,89,  
        !          1935: 89,89, 89,89,  89,89,  89,89,  
        !          1936: 89,89, 89,89,  89,89,  89,89,  
        !          1937: 89,89, 89,89,  89,89,  89,89,  
        !          1938: 89,89, 89,89,  89,89,  89,89,  
        !          1939: 89,89, 89,89,  92,156, 0,0,    
        !          1940: 0,0,   0,0,    0,0,    0,0,    
        !          1941: 0,0,   0,0,    0,0,    0,0,    
        !          1942: 0,0,   0,0,    0,0,    0,0,    
        !          1943: 0,0,   0,0,    0,0,    0,0,    
        !          1944: 0,0,   0,0,    0,0,    0,0,    
        !          1945: 0,0,   0,0,    0,0,    0,0,    
        !          1946: 91,90, 91,90,  91,90,  91,90,  
        !          1947: 91,90, 91,90,  91,90,  91,90,  
        !          1948: 91,90, 91,90,  91,90,  91,90,  
        !          1949: 91,90, 91,155, 91,90,  91,90,  
        !          1950: 91,90, 91,90,  91,90,  91,90,  
        !          1951: 91,90, 91,90,  91,90,  91,90,  
        !          1952: 91,90, 91,90,  94,87,  0,0,    
        !          1953: 0,0,   0,0,    0,0,    0,0,    
        !          1954: 92,90, 92,90,  92,90,  92,90,  
        !          1955: 92,90, 92,90,  92,90,  92,90,  
        !          1956: 92,90, 92,90,  92,90,  92,90,  
        !          1957: 92,90, 92,92,  92,90,  92,90,  
        !          1958: 92,90, 92,90,  92,90,  92,90,  
        !          1959: 92,90, 92,90,  92,90,  92,90,  
        !          1960: 92,90, 92,90,  96,162, 0,0,    
        !          1961: 0,0,   0,0,    0,0,    0,0,    
        !          1962: 0,0,   96,87,  0,0,    0,0,    
        !          1963: 0,0,   0,0,    0,0,    0,0,    
        !          1964: 0,0,   0,0,    0,0,    0,0,    
        !          1965: 0,0,   0,0,    0,0,    0,0,    
        !          1966: 0,0,   0,0,    0,0,    0,0,    
        !          1967: 94,90, 94,90,  94,90,  94,90,  
        !          1968: 94,90, 94,90,  94,90,  94,90,  
        !          1969: 94,90, 94,90,  94,90,  94,90,  
        !          1970: 94,90, 94,159, 94,90,  94,90,  
        !          1971: 94,90, 94,90,  94,90,  94,90,  
        !          1972: 94,90, 94,90,  94,90,  94,90,  
        !          1973: 94,90, 94,90,  97,87,  0,0,    
        !          1974: 0,0,   0,0,    0,0,    0,0,    
        !          1975: 0,0,   0,0,    97,143, 0,0,    
        !          1976: 0,0,   0,0,    0,0,    96,90,  
        !          1977: 96,90, 96,163, 96,90,  96,90,  
        !          1978: 96,90, 96,90,  96,90,  96,90,  
        !          1979: 96,90, 96,90,  96,90,  96,90,  
        !          1980: 96,92, 96,90,  96,90,  96,90,  
        !          1981: 96,90, 96,90,  96,90,  96,90,  
        !          1982: 96,90, 96,90,  96,90,  96,90,  
        !          1983: 96,90, 98,87,  0,0,    0,0,    
        !          1984: 0,0,   0,0,    0,0,    0,0,    
        !          1985: 0,0,   0,0,    0,0,    0,0,    
        !          1986: 0,0,   0,0,    0,0,    0,0,    
        !          1987: 0,0,   0,0,    0,0,    0,0,    
        !          1988: 97,90, 97,90,  97,90,  97,90,  
        !          1989: 97,90, 97,90,  97,90,  97,90,  
        !          1990: 97,90, 97,90,  97,90,  97,90,  
        !          1991: 97,90, 97,92,  97,90,  97,90,  
        !          1992: 97,90, 97,164, 97,90,  97,90,  
        !          1993: 97,90, 97,90,  97,90,  97,90,  
        !          1994: 97,90, 97,90,  100,156,        0,0,    
        !          1995: 0,0,   0,0,    0,0,    0,0,    
        !          1996: 0,0,   100,168,        0,0,    0,0,    
        !          1997: 0,0,   0,0,    0,0,    98,90,  
        !          1998: 98,90, 98,90,  98,90,  98,90,  
        !          1999: 98,90, 98,90,  98,90,  98,90,  
        !          2000: 98,90, 98,90,  98,90,  98,90,  
        !          2001: 98,92, 98,90,  98,90,  98,90,  
        !          2002: 98,90, 98,165, 98,90,  98,90,  
        !          2003: 98,90, 98,90,  98,90,  98,90,  
        !          2004: 98,90, 103,87, 0,0,    0,0,    
        !          2005: 0,0,   0,0,    0,0,    0,0,    
        !          2006: 0,0,   0,0,    0,0,    0,0,    
        !          2007: 0,0,   0,0,    0,0,    0,0,    
        !          2008: 0,0,   0,0,    0,0,    0,0,    
        !          2009: 100,90,        100,90, 100,90, 100,90, 
        !          2010: 100,90,        100,90, 100,90, 100,90, 
        !          2011: 100,90,        100,90, 100,90, 100,90, 
        !          2012: 100,90,        100,92, 100,90, 100,90, 
        !          2013: 100,90,        100,90, 100,90, 100,90, 
        !          2014: 100,90,        100,90, 100,90, 100,90, 
        !          2015: 100,90,        100,90, 104,87, 0,0,    
        !          2016: 0,0,   0,0,    0,0,    0,0,    
        !          2017: 0,0,   0,0,    0,0,    0,0,    
        !          2018: 0,0,   0,0,    0,0,    103,90, 
        !          2019: 103,90,        103,90, 103,90, 103,170,        
        !          2020: 103,90,        103,90, 103,90, 103,90, 
        !          2021: 103,90,        103,90, 103,90, 103,90, 
        !          2022: 103,92,        103,90, 103,90, 103,90, 
        !          2023: 103,90,        103,90, 103,90, 103,90, 
        !          2024: 103,90,        103,90, 103,90, 103,90, 
        !          2025: 103,90,        0,0,    0,0,    0,0,    
        !          2026: 0,0,   0,0,    0,0,    0,0,    
        !          2027: 0,0,   0,0,    0,0,    0,0,    
        !          2028: 0,0,   0,0,    0,0,    0,0,    
        !          2029: 0,0,   0,0,    0,0,    0,0,    
        !          2030: 104,90,        104,90, 104,90, 104,90, 
        !          2031: 104,90,        104,90, 104,90, 104,90, 
        !          2032: 104,90,        104,90, 104,90, 104,90, 
        !          2033: 104,90,        104,171,        104,90, 104,90, 
        !          2034: 104,90,        104,90, 104,90, 104,90, 
        !          2035: 104,90,        104,90, 104,90, 104,90, 
        !          2036: 104,90,        104,90, 105,105,        0,0,    
        !          2037: 0,0,   0,0,    0,0,    0,0,    
        !          2038: 0,0,   127,64, 105,105,        105,172,        
        !          2039: 120,129,       120,129,        127,65, 0,0,    
        !          2040: 127,182,       0,0,    127,127,        127,127,        
        !          2041: 127,127,       127,127,        127,127,        127,127,        
        !          2042: 127,127,       127,127,        127,127,        127,127,        
        !          2043: 0,0,   0,0,    0,0,    0,0,    
        !          2044: 0,0,   105,105,        105,105,        120,129,        
        !          2045: 0,0,   0,0,    105,105,        0,0,    
        !          2046: 105,105,       0,0,    105,105,        0,0,    
        !          2047: 0,0,   105,105,        105,105,        105,105,        
        !          2048: 0,0,   105,105,        0,0,    120,180,        
        !          2049: 120,180,       120,180,        120,180,        120,180,        
        !          2050: 120,180,       120,180,        120,180,        120,180,        
        !          2051: 120,180,       0,0,    0,0,    0,0,    
        !          2052: 0,0,   0,0,    105,105,        105,105,        
        !          2053: 0,0,   105,105,        0,0,    0,0,    
        !          2054: 0,0,   105,105,        0,0,    0,0,    
        !          2055: 0,0,   105,105,        105,105,        0,0,    
        !          2056: 0,0,   105,105,        0,0,    0,0,    
        !          2057: 105,105,       127,126,        0,0,    0,0,    
        !          2058: 0,0,   108,173,        108,109,        108,111,        
        !          2059: 0,0,   0,0,    0,0,    0,0,    
        !          2060: 0,0,   105,105,        105,105,        105,105,        
        !          2061: 0,0,   105,105,        109,174,        0,0,    
        !          2062: 109,174,       105,105,        0,0,    0,0,    
        !          2063: 108,111,       108,111,        105,105,        108,111,        
        !          2064: 0,0,   105,105,        0,0,    108,111,        
        !          2065: 105,105,       0,0,    0,0,    108,111,        
        !          2066: 108,111,       109,174,        109,174,        108,111,        
        !          2067: 109,174,       0,0,    108,111,        0,0,    
        !          2068: 109,174,       0,0,    0,0,    0,0,    
        !          2069: 109,174,       109,174,        0,0,    0,0,    
        !          2070: 109,174,       110,175,        0,0,    109,174,        
        !          2071: 108,111,       108,111,        0,0,    108,111,        
        !          2072: 110,176,       110,109,        110,110,        108,111,        
        !          2073: 0,0,   0,0,    0,0,    0,0,    
        !          2074: 108,111,       109,174,        109,174,        108,111,        
        !          2075: 109,174,       0,0,    108,111,        0,0,    
        !          2076: 109,174,       0,0,    0,0,    110,111,        
        !          2077: 110,111,       109,174,        110,111,        0,0,    
        !          2078: 109,174,       0,0,    110,111,        109,174,        
        !          2079: 0,0,   0,0,    110,111,        110,111,        
        !          2080: 0,0,   0,0,    110,111,        0,0,    
        !          2081: 0,0,   110,111,        0,0,    0,0,    
        !          2082: 0,0,   0,0,    111,111,        111,109,        
        !          2083: 111,111,       0,0,    0,0,    0,0,    
        !          2084: 0,0,   0,0,    0,0,    110,111,        
        !          2085: 110,111,       0,0,    110,111,        0,0,    
        !          2086: 0,0,   0,0,    110,111,        129,129,        
        !          2087: 129,129,       111,111,        111,111,        110,111,        
        !          2088: 111,111,       0,0,    110,111,        0,0,    
        !          2089: 111,111,       110,177,        0,0,    0,0,    
        !          2090: 111,111,       111,111,        131,130,        0,0,    
        !          2091: 111,111,       0,0,    0,0,    111,111,        
        !          2092: 0,0,   131,131,        129,129,        131,131,        
        !          2093: 131,131,       131,131,        131,131,        131,131,        
        !          2094: 131,131,       131,131,        131,131,        131,131,        
        !          2095: 131,131,       111,111,        111,111,        0,0,    
        !          2096: 111,111,       0,0,    0,0,    0,0,    
        !          2097: 111,111,       0,0,    0,0,    141,192,        
        !          2098: 0,0,   111,111,        0,0,    0,0,    
        !          2099: 111,111,       0,0,    0,0,    111,111,        
        !          2100: 0,0,   0,0,    0,0,    129,183,        
        !          2101: 129,183,       129,183,        129,183,        129,183,        
        !          2102: 129,183,       129,183,        129,183,        129,183,        
        !          2103: 129,183,       129,183,        129,183,        129,183,        
        !          2104: 129,183,       129,183,        129,183,        129,183,        
        !          2105: 129,183,       129,183,        129,183,        129,183,        
        !          2106: 129,183,       129,183,        129,183,        129,183,        
        !          2107: 129,183,       0,0,    132,185,        0,0,    
        !          2108: 0,0,   0,0,    0,0,    0,0,    
        !          2109: 0,0,   132,67, 131,133,        132,132,        
        !          2110: 132,132,       132,132,        132,132,        132,132,        
        !          2111: 132,132,       132,132,        132,132,        132,132,        
        !          2112: 132,132,       141,76, 141,76, 141,76, 
        !          2113: 141,76,        141,76, 141,76, 141,76, 
        !          2114: 141,76,        141,76, 141,76, 141,76, 
        !          2115: 141,76,        141,76, 141,141,        141,76, 
        !          2116: 141,76,        141,76, 141,76, 141,76, 
        !          2117: 141,76,        141,76, 141,76, 141,76, 
        !          2118: 141,76,        141,76, 141,76, 142,142,        
        !          2119: 142,142,       142,142,        142,142,        142,142,        
        !          2120: 142,142,       142,142,        142,142,        142,142,        
        !          2121: 142,142,       142,142,        142,142,        142,142,        
        !          2122: 142,142,       142,142,        142,142,        142,142,        
        !          2123: 142,142,       142,142,        142,142,        142,142,        
        !          2124: 142,142,       142,142,        142,142,        142,142,        
        !          2125: 142,142,       144,140,        0,0,    0,0,    
        !          2126: 0,0,   0,0,    132,186,        0,0,    
        !          2127: 0,0,   144,194,        0,0,    0,0,    
        !          2128: 0,0,   0,0,    0,0,    0,0,    
        !          2129: 0,0,   0,0,    0,0,    0,0,    
        !          2130: 0,0,   0,0,    0,0,    0,0,    
        !          2131: 0,0,   0,0,    0,0,    145,140,        
        !          2132: 0,0,   0,0,    0,0,    0,0,    
        !          2133: 0,0,   0,0,    0,0,    145,195,        
        !          2134: 0,0,   0,0,    0,0,    0,0,    
        !          2135: 0,0,   0,0,    0,0,    0,0,    
        !          2136: 0,0,   0,0,    0,0,    0,0,    
        !          2137: 0,0,   0,0,    0,0,    0,0,    
        !          2138: 0,0,   146,140,        0,0,    0,0,    
        !          2139: 0,0,   0,0,    0,0,    144,76, 
        !          2140: 144,76,        144,76, 144,76, 144,76, 
        !          2141: 144,76,        144,76, 144,76, 144,76, 
        !          2142: 144,76,        144,76, 144,76, 144,76, 
        !          2143: 144,141,       144,76, 144,76, 144,76, 
        !          2144: 144,76,        144,76, 144,76, 144,76, 
        !          2145: 144,76,        144,76, 144,76, 144,76, 
        !          2146: 144,76,        145,76, 145,76, 145,76, 
        !          2147: 145,76,        145,76, 145,76, 145,76, 
        !          2148: 145,76,        145,76, 145,76, 145,76, 
        !          2149: 145,76,        145,76, 145,141,        145,76, 
        !          2150: 145,76,        145,76, 145,76, 145,76, 
        !          2151: 145,76,        145,76, 145,76, 145,76, 
        !          2152: 145,76,        145,76, 145,76, 146,76, 
        !          2153: 146,76,        146,76, 146,76, 146,76, 
        !          2154: 146,76,        146,76, 146,76, 146,76, 
        !          2155: 146,76,        146,76, 146,76, 146,76, 
        !          2156: 146,141,       146,76, 146,76, 146,76, 
        !          2157: 146,76,        146,76, 146,76, 146,76, 
        !          2158: 146,76,        146,76, 146,76, 146,76, 
        !          2159: 146,76,        150,140,        0,0,    0,0,    
        !          2160: 0,0,   0,0,    0,0,    0,0,    
        !          2161: 0,0,   150,200,        0,0,    0,0,    
        !          2162: 0,0,   0,0,    0,0,    0,0,    
        !          2163: 0,0,   0,0,    0,0,    0,0,    
        !          2164: 0,0,   0,0,    0,0,    0,0,    
        !          2165: 0,0,   0,0,    0,0,    155,204,        
        !          2166: 0,0,   0,0,    0,0,    0,0,    
        !          2167: 0,0,   0,0,    0,0,    0,0,    
        !          2168: 0,0,   0,0,    0,0,    0,0,    
        !          2169: 0,0,   0,0,    0,0,    0,0,    
        !          2170: 0,0,   0,0,    0,0,    0,0,    
        !          2171: 0,0,   0,0,    0,0,    0,0,    
        !          2172: 0,0,   159,208,        0,0,    0,0,    
        !          2173: 0,0,   0,0,    0,0,    150,76, 
        !          2174: 150,76,        150,76, 150,76, 150,76, 
        !          2175: 150,76,        150,76, 150,76, 150,76, 
        !          2176: 150,76,        150,76, 150,76, 150,76, 
        !          2177: 150,141,       150,76, 150,76, 150,76, 
        !          2178: 150,76,        150,76, 150,76, 150,76, 
        !          2179: 150,76,        150,76, 150,76, 150,76, 
        !          2180: 150,76,        155,90, 155,90, 155,90, 
        !          2181: 155,90,        155,90, 155,90, 155,90, 
        !          2182: 155,90,        155,90, 155,90, 155,90, 
        !          2183: 155,90,        155,90, 155,92, 155,90, 
        !          2184: 155,90,        155,90, 155,90, 155,90, 
        !          2185: 155,90,        155,90, 155,90, 155,90, 
        !          2186: 155,90,        155,90, 155,90, 159,90, 
        !          2187: 159,90,        159,90, 159,90, 159,90, 
        !          2188: 159,90,        159,90, 159,90, 159,90, 
        !          2189: 159,90,        159,90, 159,90, 159,90, 
        !          2190: 159,92,        159,90, 159,90, 159,90, 
        !          2191: 159,90,        159,90, 159,90, 159,90, 
        !          2192: 159,90,        159,90, 159,90, 159,90, 
        !          2193: 159,90,        163,87, 0,0,    0,0,    
        !          2194: 0,0,   0,0,    0,0,    0,0,    
        !          2195: 163,212,       0,0,    0,0,    0,0,    
        !          2196: 0,0,   0,0,    0,0,    0,0,    
        !          2197: 0,0,   0,0,    0,0,    0,0,    
        !          2198: 0,0,   0,0,    0,0,    0,0,    
        !          2199: 0,0,   0,0,    0,0,    164,87, 
        !          2200: 0,0,   0,0,    0,0,    0,0,    
        !          2201: 0,0,   0,0,    0,0,    164,194,        
        !          2202: 180,122,       0,0,    0,0,    0,0,    
        !          2203: 0,0,   0,0,    0,0,    180,120,        
        !          2204: 0,0,   180,180,        180,180,        180,180,        
        !          2205: 180,180,       180,180,        180,180,        180,180,        
        !          2206: 180,180,       180,180,        180,180,        0,0,    
        !          2207: 0,0,   0,0,    0,0,    163,90, 
        !          2208: 163,90,        163,90, 163,90, 163,90, 
        !          2209: 163,90,        163,90, 163,90, 163,90, 
        !          2210: 163,90,        163,90, 163,90, 163,90, 
        !          2211: 163,92,        163,90, 163,90, 163,90, 
        !          2212: 163,90,        163,90, 163,90, 163,90, 
        !          2213: 163,90,        163,90, 163,90, 163,90, 
        !          2214: 163,90,        164,90, 164,90, 164,90, 
        !          2215: 164,90,        164,90, 164,90, 164,90, 
        !          2216: 164,90,        164,90, 164,90, 164,90, 
        !          2217: 164,90,        164,90, 164,92, 164,90, 
        !          2218: 164,90,        164,90, 164,90, 164,90, 
        !          2219: 164,90,        164,90, 164,90, 164,90, 
        !          2220: 164,90,        164,90, 164,90, 165,87, 
        !          2221: 180,181,       0,0,    0,0,    0,0,    
        !          2222: 0,0,   0,0,    0,0,    165,195,        
        !          2223: 0,0,   0,0,    0,0,    0,0,    
        !          2224: 0,0,   0,0,    0,0,    0,0,    
        !          2225: 0,0,   0,0,    0,0,    0,0,    
        !          2226: 0,0,   0,0,    0,0,    0,0,    
        !          2227: 0,0,   0,0,    0,0,    0,0,    
        !          2228: 168,215,       0,0,    0,0,    0,0,    
        !          2229: 0,0,   0,0,    0,0,    0,0,    
        !          2230: 0,0,   0,0,    0,0,    0,0,    
        !          2231: 0,0,   0,0,    0,0,    0,0,    
        !          2232: 0,0,   0,0,    0,0,    0,0,    
        !          2233: 0,0,   0,0,    168,215,        0,0,    
        !          2234: 0,0,   0,0,    0,0,    0,0,    
        !          2235: 0,0,   165,90, 165,90, 165,90, 
        !          2236: 165,90,        165,90, 165,90, 165,90, 
        !          2237: 165,90,        165,90, 165,90, 165,90, 
        !          2238: 165,90,        165,90, 165,92, 165,90, 
        !          2239: 165,90,        165,90, 165,90, 165,90, 
        !          2240: 165,90,        165,90, 165,90, 165,90, 
        !          2241: 165,90,        165,90, 165,90, 168,216,        
        !          2242: 168,216,       168,216,        168,216,        168,216,        
        !          2243: 168,216,       168,216,        168,216,        168,216,        
        !          2244: 168,216,       168,216,        168,216,        168,216,        
        !          2245: 168,216,       168,216,        168,216,        168,216,        
        !          2246: 168,216,       168,216,        168,216,        168,216,        
        !          2247: 168,216,       168,216,        168,216,        168,216,        
        !          2248: 168,216,       170,87, 0,0,    0,0,    
        !          2249: 0,0,   0,0,    0,0,    0,0,    
        !          2250: 0,0,   170,200,        182,129,        182,129,        
        !          2251: 0,0,   0,0,    0,0,    0,0,    
        !          2252: 0,0,   0,0,    0,0,    0,0,    
        !          2253: 0,0,   0,0,    0,0,    0,0,    
        !          2254: 0,0,   0,0,    0,0,    171,218,        
        !          2255: 0,0,   0,0,    0,0,    0,0,    
        !          2256: 0,0,   182,129,        0,0,    0,0,    
        !          2257: 0,0,   0,0,    0,0,    0,0,    
        !          2258: 182,130,       0,0,    0,0,    0,0,    
        !          2259: 0,0,   0,0,    0,0,    182,222,        
        !          2260: 0,0,   182,223,        182,223,        182,223,        
        !          2261: 182,223,       182,223,        182,223,        182,223,        
        !          2262: 182,223,       182,223,        182,223,        170,90, 
        !          2263: 170,90,        170,90, 170,90, 170,90, 
        !          2264: 170,90,        170,90, 170,90, 170,90, 
        !          2265: 170,90,        170,90, 170,90, 170,90, 
        !          2266: 170,92,        170,90, 170,90, 170,90, 
        !          2267: 170,90,        170,90, 170,90, 170,90, 
        !          2268: 170,90,        170,90, 170,90, 170,90, 
        !          2269: 170,90,        171,90, 171,90, 171,90, 
        !          2270: 171,90,        171,90, 171,90, 171,90, 
        !          2271: 171,90,        171,90, 171,90, 171,90, 
        !          2272: 171,90,        171,90, 171,92, 171,90, 
        !          2273: 171,90,        171,90, 171,90, 171,90, 
        !          2274: 171,90,        171,90, 171,90, 171,90, 
        !          2275: 171,90,        171,90, 171,90, 173,111,        
        !          2276: 173,109,       173,111,        0,0,    0,0,    
        !          2277: 182,184,       174,219,        0,0,    0,0,    
        !          2278: 0,0,   0,0,    0,0,    0,0,    
        !          2279: 174,174,       174,109,        174,174,        0,0,    
        !          2280: 0,0,   0,0,    173,111,        173,111,        
        !          2281: 0,0,   173,111,        0,0,    0,0,    
        !          2282: 0,0,   173,111,        0,0,    0,0,    
        !          2283: 0,0,   173,111,        173,111,        174,174,        
        !          2284: 174,174,       173,111,        174,174,        0,0,    
        !          2285: 173,111,       0,0,    174,174,        0,0,    
        !          2286: 0,0,   0,0,    174,174,        174,174,        
        !          2287: 0,0,   0,0,    174,174,        0,0,    
        !          2288: 0,0,   174,174,        173,111,        173,111,        
        !          2289: 0,0,   173,111,        176,111,        176,109,        
        !          2290: 176,110,       173,111,        0,0,    0,0,    
        !          2291: 0,0,   0,0,    173,111,        174,174,        
        !          2292: 174,174,       173,111,        174,174,        0,0,    
        !          2293: 173,111,       0,0,    174,174,        0,0,    
        !          2294: 0,0,   176,111,        176,111,        174,174,        
        !          2295: 176,111,       0,0,    174,174,        0,0,    
        !          2296: 176,111,       174,174,        0,0,    0,0,    
        !          2297: 176,111,       176,111,        0,0,    0,0,    
        !          2298: 176,111,       0,0,    0,0,    176,111,        
        !          2299: 0,0,   0,0,    0,0,    0,0,    
        !          2300: 177,111,       177,109,        177,111,        0,0,    
        !          2301: 0,0,   0,0,    0,0,    0,0,    
        !          2302: 0,0,   176,111,        176,111,        0,0,    
        !          2303: 176,111,       0,0,    0,0,    0,0,    
        !          2304: 176,111,       215,215,        0,0,    177,111,        
        !          2305: 177,111,       176,111,        177,111,        0,0,    
        !          2306: 176,111,       0,0,    177,111,        176,111,        
        !          2307: 0,0,   0,0,    177,111,        177,111,        
        !          2308: 0,0,   0,0,    177,111,        0,0,    
        !          2309: 0,0,   177,111,        0,0,    215,215,        
        !          2310: 0,0,   0,0,    0,0,    0,0,    
        !          2311: 0,0,   0,0,    0,0,    0,0,    
        !          2312: 0,0,   0,0,    0,0,    177,111,        
        !          2313: 177,111,       0,0,    177,111,        0,0,    
        !          2314: 0,0,   0,0,    177,111,        0,0,    
        !          2315: 0,0,   0,0,    0,0,    177,111,        
        !          2316: 0,0,   0,0,    177,111,        0,0,    
        !          2317: 0,0,   177,177,        0,0,    0,0,    
        !          2318: 215,243,       215,243,        215,243,        215,243,        
        !          2319: 215,243,       215,243,        215,243,        215,243,        
        !          2320: 215,243,       215,243,        215,243,        215,243,        
        !          2321: 215,243,       215,243,        215,243,        215,243,        
        !          2322: 215,243,       215,243,        215,243,        215,243,        
        !          2323: 215,243,       215,243,        215,243,        215,243,        
        !          2324: 215,243,       215,243,        222,130,        0,0,    
        !          2325: 0,0,   0,0,    0,0,    0,0,    
        !          2326: 0,0,   222,222,        0,0,    222,222,        
        !          2327: 222,222,       222,222,        222,222,        222,222,        
        !          2328: 222,222,       222,222,        222,222,        222,222,        
        !          2329: 222,222,       223,185,        0,0,    0,0,    
        !          2330: 0,0,   0,0,    0,0,    0,0,    
        !          2331: 223,182,       0,0,    223,223,        223,223,        
        !          2332: 223,223,       223,223,        223,223,        223,223,        
        !          2333: 223,223,       223,223,        223,223,        223,223,        
        !          2334: 0,0,   0,0,    0,0,    0,0,    
        !          2335: 0,0,   0,0,    0,0,    0,0,    
        !          2336: 0,0,   0,0,    0,0,    0,0,    
        !          2337: 0,0,   0,0,    0,0,    0,0,    
        !          2338: 0,0,   0,0,    0,0,    0,0,    
        !          2339: 0,0,   0,0,    0,0,    0,0,    
        !          2340: 0,0,   0,0,    0,0,    0,0,    
        !          2341: 0,0,   0,0,    0,0,    0,0,    
        !          2342: 0,0,   0,0,    0,0,    0,0,    
        !          2343: 0,0,   0,0,    222,184,        0,0,    
        !          2344: 0,0,   0,0,    0,0,    0,0,    
        !          2345: 0,0,   0,0,    0,0,    0,0,    
        !          2346: 0,0,   0,0,    0,0,    0,0,    
        !          2347: 0,0,   0,0,    0,0,    0,0,    
        !          2348: 0,0,   223,224,        0,0,    0,0,    
        !          2349: 0,0};
        !          2350: struct yysvf yysvec[] ={
        !          2351: 0,     0,      0,
        !          2352: yycrank+-1,    0,              0,      
        !          2353: yycrank+-94,   yysvec+1,       0,      
        !          2354: yycrank+0,     0,              yyvstop+1,
        !          2355: yycrank+174,   0,              yyvstop+3,
        !          2356: yycrank+0,     0,              yyvstop+6,
        !          2357: yycrank+4,     yysvec+4,       yyvstop+8,
        !          2358: yycrank+5,     0,              yyvstop+11,
        !          2359: yycrank+29,    0,              yyvstop+14,
        !          2360: yycrank+94,    0,              yyvstop+17,
        !          2361: yycrank+263,   0,              yyvstop+19,
        !          2362: yycrank+0,     0,              yyvstop+22,
        !          2363: yycrank+110,   0,              yyvstop+25,
        !          2364: yycrank+5,     0,              yyvstop+28,
        !          2365: yycrank+336,   0,              yyvstop+31,
        !          2366: yycrank+413,   0,              yyvstop+34,
        !          2367: yycrank+499,   0,              yyvstop+36,
        !          2368: yycrank+0,     0,              yyvstop+41,
        !          2369: yycrank+0,     0,              yyvstop+44,
        !          2370: yycrank+9,     0,              yyvstop+47,
        !          2371: yycrank+583,   0,              yyvstop+50,
        !          2372: yycrank+5,     yysvec+20,      yyvstop+53,
        !          2373: yycrank+15,    yysvec+20,      yyvstop+56,
        !          2374: yycrank+28,    yysvec+20,      yyvstop+59,
        !          2375: yycrank+34,    yysvec+20,      yyvstop+62,
        !          2376: yycrank+33,    yysvec+20,      yyvstop+65,
        !          2377: yycrank+86,    yysvec+20,      yyvstop+68,
        !          2378: yycrank+9,     yysvec+20,      yyvstop+71,
        !          2379: yycrank+298,   yysvec+4,       yyvstop+74,
        !          2380: yycrank+667,   yysvec+20,      yyvstop+77,
        !          2381: yycrank+751,   yysvec+20,      yyvstop+80,
        !          2382: yycrank+835,   yysvec+20,      yyvstop+83,
        !          2383: yycrank+919,   yysvec+20,      yyvstop+86,
        !          2384: yycrank+1003,  yysvec+20,      yyvstop+89,
        !          2385: yycrank+1087,  yysvec+20,      yyvstop+92,
        !          2386: yycrank+1171,  yysvec+20,      yyvstop+95,
        !          2387: yycrank+1255,  yysvec+20,      yyvstop+98,
        !          2388: yycrank+1339,  yysvec+20,      yyvstop+101,
        !          2389: yycrank+1423,  yysvec+20,      yyvstop+104,
        !          2390: yycrank+1507,  yysvec+20,      yyvstop+107,
        !          2391: yycrank+-1629, 0,              yyvstop+110,
        !          2392: yycrank+-1674, yysvec+40,      yyvstop+113,
        !          2393: yycrank+0,     yysvec+4,       yyvstop+116,
        !          2394: yycrank+8,     yysvec+4,       0,      
        !          2395: yycrank+1744,  0,              0,      
        !          2396: yycrank+10,    yysvec+15,      0,      
        !          2397: yycrank+12,    yysvec+4,       yyvstop+118,
        !          2398: yycrank+0,     0,              yyvstop+120,
        !          2399: yycrank+0,     yysvec+8,       yyvstop+122,
        !          2400: yycrank+26,    yysvec+9,       yyvstop+124,
        !          2401: yycrank+0,     0,              yyvstop+126,
        !          2402: yycrank+68,    0,              0,      
        !          2403: yycrank+0,     0,              yyvstop+128,
        !          2404: yycrank+34,    0,              0,      
        !          2405: yycrank+35,    0,              0,      
        !          2406: yycrank+260,   yysvec+12,      0,      
        !          2407: yycrank+39,    yysvec+12,      0,      
        !          2408: yycrank+0,     yysvec+13,      yyvstop+130,
        !          2409: yycrank+0,     0,              yyvstop+132,
        !          2410: yycrank+11,    yysvec+44,      0,      
        !          2411: yycrank+1595,  yysvec+44,      yyvstop+134,
        !          2412: yycrank+43,    yysvec+15,      yyvstop+136,
        !          2413: yycrank+49,    yysvec+15,      yyvstop+139,
        !          2414: yycrank+0,     0,              yyvstop+141,
        !          2415: yycrank+23,    0,              yyvstop+143,
        !          2416: yycrank+270,   yysvec+12,      0,      
        !          2417: yycrank+1819,  0,              0,      
        !          2418: yycrank+1933,  yysvec+44,      yyvstop+146,
        !          2419: yycrank+1954,  0,              yyvstop+148,
        !          2420: yycrank+290,   0,              0,      
        !          2421: yycrank+2032,  yysvec+44,      yyvstop+152,
        !          2422: yycrank+2110,  yysvec+44,      yyvstop+154,
        !          2423: yycrank+0,     0,              yyvstop+158,
        !          2424: yycrank+24,    0,              0,      
        !          2425: yycrank+156,   yysvec+44,      yyvstop+160,
        !          2426: yycrank+2194,  yysvec+20,      yyvstop+162,
        !          2427: yycrank+2278,  yysvec+20,      yyvstop+164,
        !          2428: yycrank+0,     yysvec+44,      yyvstop+166,
        !          2429: yycrank+2324,  0,              0,      
        !          2430: yycrank+2376,  yysvec+20,      yyvstop+168,
        !          2431: yycrank+2428,  yysvec+20,      yyvstop+170,
        !          2432: yycrank+2480,  yysvec+20,      yyvstop+172,
        !          2433: yycrank+157,   yysvec+44,      yyvstop+174,
        !          2434: yycrank+2537,  yysvec+20,      yyvstop+176,
        !          2435: yycrank+2589,  yysvec+20,      yyvstop+178,
        !          2436: yycrank+72,    yysvec+44,      yyvstop+180,
        !          2437: yycrank+1647,  yysvec+4,       yyvstop+182,
        !          2438: yycrank+41,    0,              0,      
        !          2439: yycrank+1623,  yysvec+44,      0,      
        !          2440: yycrank+2655,  0,              0,      
        !          2441: yycrank+2162,  yysvec+89,      yyvstop+184,
        !          2442: yycrank+2707,  yysvec+89,      yyvstop+186,
        !          2443: yycrank+2739,  yysvec+89,      yyvstop+188,
        !          2444: yycrank+137,   yysvec+44,      0,      
        !          2445: yycrank+2791,  yysvec+89,      yyvstop+190,
        !          2446: yycrank+166,   yysvec+44,      0,      
        !          2447: yycrank+2830,  yysvec+89,      yyvstop+192,
        !          2448: yycrank+2875,  yysvec+89,      yyvstop+194,
        !          2449: yycrank+2914,  yysvec+89,      yyvstop+196,
        !          2450: yycrank+200,   yysvec+44,      0,      
        !          2451: yycrank+2959,  yysvec+89,      yyvstop+198,
        !          2452: yycrank+71,    0,              0,      
        !          2453: yycrank+271,   yysvec+44,      0,      
        !          2454: yycrank+2998,  yysvec+89,      yyvstop+200,
        !          2455: yycrank+3043,  yysvec+89,      yyvstop+202,
        !          2456: yycrank+-3165, 0,              0,      
        !          2457: yycrank+0,     yysvec+105,     yyvstop+204,
        !          2458: yycrank+0,     yysvec+105,     yyvstop+206,
        !          2459: yycrank+-3207, yysvec+105,     0,      
        !          2460: yycrank+-3220, yysvec+105,     0,      
        !          2461: yycrank+-3262, yysvec+105,     yyvstop+208,
        !          2462: yycrank+-3304, yysvec+105,     0,      
        !          2463: yycrank+301,   0,              0,      
        !          2464: yycrank+666,   0,              yyvstop+210,
        !          2465: yycrank+0,     0,              yyvstop+212,
        !          2466: yycrank+0,     0,              yyvstop+214,
        !          2467: yycrank+0,     0,              yyvstop+216,
        !          2468: yycrank+0,     0,              yyvstop+218,
        !          2469: yycrank+750,   0,              0,      
        !          2470: yycrank+0,     yysvec+12,      0,      
        !          2471: yycrank+3167,  0,              0,      
        !          2472: yycrank+0,     yysvec+44,      yyvstop+220,
        !          2473: yycrank+152,   0,              yyvstop+222,
        !          2474: yycrank+834,   yysvec+44,      0,      
        !          2475: yycrank+56,    yysvec+44,      yyvstop+224,
        !          2476: yycrank+48,    0,              yyvstop+226,
        !          2477: yycrank+57,    0,              yyvstop+228,
        !          2478: yycrank+3134,  0,              yyvstop+231,
        !          2479: yycrank+46,    yysvec+66,      yyvstop+234,
        !          2480: yycrank+3358,  0,              0,      
        !          2481: yycrank+153,   0,              yyvstop+236,
        !          2482: yycrank+3343,  yysvec+44,      yyvstop+238,
        !          2483: yycrank+3411,  yysvec+44,      yyvstop+240,
        !          2484: yycrank+58,    yysvec+44,      yyvstop+244,
        !          2485: yycrank+918,   0,              0,      
        !          2486: yycrank+0,     0,              yyvstop+246,
        !          2487: yycrank+395,   0,              0,      
        !          2488: yycrank+47,    yysvec+44,      0,      
        !          2489: yycrank+59,    0,              0,      
        !          2490: yycrank+0,     yysvec+44,      yyvstop+249,
        !          2491: yycrank+60,    0,              0,      
        !          2492: yycrank+3372,  yysvec+89,      yyvstop+251,
        !          2493: yycrank+3398,  0,              yyvstop+253,
        !          2494: yycrank+252,   yysvec+15,      0,      
        !          2495: yycrank+3482,  yysvec+89,      yyvstop+255,
        !          2496: yycrank+3508,  yysvec+89,      yyvstop+257,
        !          2497: yycrank+3534,  yysvec+89,      yyvstop+259,
        !          2498: yycrank+396,   0,              0,      
        !          2499: yycrank+131,   yysvec+44,      0,      
        !          2500: yycrank+268,   yysvec+44,      yyvstop+262,
        !          2501: yycrank+3618,  yysvec+89,      yyvstop+264,
        !          2502: yycrank+132,   yysvec+44,      0,      
        !          2503: yycrank+0,     0,              yyvstop+266,
        !          2504: yycrank+205,   yysvec+136,     0,      
        !          2505: yycrank+134,   yysvec+44,      0,      
        !          2506: yycrank+3644,  yysvec+89,      yyvstop+268,
        !          2507: yycrank+66,    0,              0,      
        !          2508: yycrank+267,   0,              0,      
        !          2509: yycrank+138,   yysvec+44,      0,      
        !          2510: yycrank+3670,  yysvec+89,      yyvstop+270,
        !          2511: yycrank+203,   0,              0,      
        !          2512: yycrank+148,   yysvec+44,      0,      
        !          2513: yycrank+106,   0,              0,      
        !          2514: yycrank+3754,  yysvec+89,      yyvstop+272,
        !          2515: yycrank+3780,  yysvec+89,      yyvstop+274,
        !          2516: yycrank+3864,  yysvec+89,      yyvstop+276,
        !          2517: yycrank+272,   0,              0,      
        !          2518: yycrank+163,   yysvec+44,      0,      
        !          2519: yycrank+3922,  yysvec+44,      yyvstop+278,
        !          2520: yycrank+110,   0,              0,      
        !          2521: yycrank+3974,  yysvec+89,      yyvstop+280,
        !          2522: yycrank+4000,  yysvec+89,      yyvstop+282,
        !          2523: yycrank+0,     0,              yyvstop+284,
        !          2524: yycrank+-4077, yysvec+105,     yyvstop+286,
        !          2525: yycrank+-4090, yysvec+105,     yyvstop+288,
        !          2526: yycrank+-356,  yysvec+105,     yyvstop+290,
        !          2527: yycrank+-4132, yysvec+105,     0,      
        !          2528: yycrank+-4174, yysvec+105,     yyvstop+292,
        !          2529: yycrank+284,   yysvec+112,     yyvstop+294,
        !          2530: yycrank+1002,  yysvec+120,     0,      
        !          2531: yycrank+3789,  0,              yyvstop+296,
        !          2532: yycrank+123,   0,              yyvstop+298,
        !          2533: yycrank+4013,  0,              yyvstop+300,
        !          2534: yycrank+0,     0,              yyvstop+302,
        !          2535: yycrank+214,   0,              yyvstop+304,
        !          2536: yycrank+359,   0,              yyvstop+306,
        !          2537: yycrank+216,   yysvec+44,      yyvstop+310,
        !          2538: yycrank+0,     0,              yyvstop+314,
        !          2539: yycrank+287,   0,              0,      
        !          2540: yycrank+0,     yysvec+44,      yyvstop+316,
        !          2541: yycrank+0,     0,              yyvstop+318,
        !          2542: yycrank+0,     0,              yyvstop+320,
        !          2543: yycrank+245,   0,              0,      
        !          2544: yycrank+1632,  yysvec+15,      yyvstop+322,
        !          2545: yycrank+328,   yysvec+15,      0,      
        !          2546: yycrank+491,   yysvec+15,      0,      
        !          2547: yycrank+288,   0,              0,      
        !          2548: yycrank+0,     yysvec+44,      yyvstop+324,
        !          2549: yycrank+526,   0,              0,      
        !          2550: yycrank+316,   yysvec+44,      0,      
        !          2551: yycrank+1585,  yysvec+15,      0,      
        !          2552: yycrank+0,     yysvec+44,      yyvstop+326,
        !          2553: yycrank+318,   0,              0,      
        !          2554: yycrank+0,     yysvec+44,      yyvstop+328,
        !          2555: yycrank+249,   yysvec+156,     0,      
        !          2556: yycrank+0,     0,              yyvstop+330,
        !          2557: yycrank+323,   0,              0,      
        !          2558: yycrank+0,     yysvec+44,      yyvstop+332,
        !          2559: yycrank+259,   yysvec+156,     0,      
        !          2560: yycrank+330,   0,              0,      
        !          2561: yycrank+0,     yysvec+44,      yyvstop+334,
        !          2562: yycrank+270,   0,              0,      
        !          2563: yycrank+1644,  yysvec+44,      yyvstop+336,
        !          2564: yycrank+333,   0,              0,      
        !          2565: yycrank+0,     yysvec+44,      yyvstop+339,
        !          2566: yycrank+4227,  0,              0,      
        !          2567: yycrank+0,     yysvec+44,      yyvstop+341,
        !          2568: yycrank+285,   0,              0,      
        !          2569: yycrank+281,   yysvec+156,     0,      
        !          2570: yycrank+-360,  yysvec+105,     yyvstop+343,
        !          2571: yycrank+-314,  yysvec+105,     yyvstop+345,
        !          2572: yycrank+1086,  0,              0,      
        !          2573: yycrank+4279,  0,              yyvstop+347,
        !          2574: yycrank+4298,  0,              yyvstop+349,
        !          2575: yycrank+315,   0,              yyvstop+353,
        !          2576: yycrank+0,     0,              yyvstop+357,
        !          2577: yycrank+0,     0,              yyvstop+359,
        !          2578: yycrank+1644,  yysvec+15,      yyvstop+361,
        !          2579: yycrank+1657,  yysvec+15,      yyvstop+363,
        !          2580: yycrank+1668,  yysvec+15,      yyvstop+365,
        !          2581: yycrank+0,     0,              yyvstop+367,
        !          2582: yycrank+385,   0,              0,      
        !          2583: yycrank+0,     yysvec+44,      yyvstop+369,
        !          2584: yycrank+1672,  yysvec+15,      yyvstop+371,
        !          2585: yycrank+0,     0,              yyvstop+373,
        !          2586: yycrank+0,     0,              yyvstop+375,
        !          2587: yycrank+0,     0,              yyvstop+378,
        !          2588: yycrank+0,     0,              yyvstop+380,
        !          2589: yycrank+0,     0,              yyvstop+383,
        !          2590: yycrank+414,   0,              0,      
        !          2591: yycrank+1720,  0,              yyvstop+385,
        !          2592: yycrank+465,   0,              yyvstop+387,
        !          2593: yycrank+0,     0,              yyvstop+389,
        !          2594: yycrank+0,     0,              yyvstop+391,
        !          2595: yycrank+376,   0,              0,      
        !          2596: yycrank+0,     0,              yyvstop+393,
        !          2597: yycrank+1172,  yysvec+15,      yyvstop+396,
        !          2598: yycrank+1181,  yysvec+15,      yyvstop+399,
        !          2599: yycrank+1183,  yysvec+15,      yyvstop+401,
        !          2600: yycrank+0,     0,              yyvstop+403,
        !          2601: yycrank+0,     0,              yyvstop+405,
        !          2602: yycrank+369,   0,              0,      
        !          2603: yycrank+1177,  yysvec+15,      yyvstop+407,
        !          2604: yycrank+0,     0,              yyvstop+410,
        !          2605: 0,     0,      0};
        !          2606: struct yywork *yytop = yycrank+4413;
        !          2607: struct yysvf *yybgin = yysvec+1;
        !          2608: char yymatch[] ={
        !          2609: 00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          2610: 01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
        !          2611: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          2612: 01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          2613: 040 ,'!' ,01  ,01  ,01  ,'%' ,01  ,047 ,
        !          2614: 01  ,')' ,01  ,01  ,',' ,'-' ,'.' ,01  ,
        !          2615: '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
        !          2616: '0' ,'0' ,01  ,01  ,01  ,01  ,01  ,01  ,
        !          2617: 01  ,'A' ,'B' ,'B' ,'D' ,'B' ,'B' ,'B' ,
        !          2618: 'H' ,'B' ,'B' ,'B' ,'L' ,'M' ,'B' ,'B' ,
        !          2619: 'P' ,'B' ,'B' ,'S' ,'B' ,'B' ,'B' ,'B' ,
        !          2620: 'B' ,'B' ,'B' ,01  ,01  ,01  ,01  ,01  ,
        !          2621: '`' ,'a' ,'b' ,'b' ,'d' ,'b' ,'b' ,'b' ,
        !          2622: 'h' ,'b' ,'b' ,'b' ,'b' ,'m' ,'b' ,'b' ,
        !          2623: 'p' ,'b' ,'b' ,'s' ,'b' ,'b' ,'b' ,'b' ,
        !          2624: 'b' ,'b' ,'b' ,01  ,01  ,01  ,01  ,01  ,
        !          2625: 0};
        !          2626: char yyextra[] ={
        !          2627: 0,0,0,0,0,0,0,0,
        !          2628: 0,0,0,0,0,0,0,0,
        !          2629: 0,0,0,0,0,0,0,0,
        !          2630: 0,0,0,0,0,0,0,0,
        !          2631: 0,0,0,0,0,0,0,0,
        !          2632: 0,0,0,0,0,0,0,0,
        !          2633: 0,0,0,0,0,0,0,0,
        !          2634: 0,0,0,0,0,0,0,0,
        !          2635: 0,0,0,0,0,0,0,0,
        !          2636: 0};
        !          2637: /*     ncform  4.1     83/08/11        */
        !          2638: 
        !          2639: int yylineno =1;
        !          2640: # define YYU(x) x
        !          2641: # define NLSTATE yyprevious=YYNEWLINE
        !          2642: char yytext[YYLMAX];
        !          2643: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
        !          2644: char yysbuf[YYLMAX];
        !          2645: char *yysptr = yysbuf;
        !          2646: int *yyfnd;
        !          2647: extern struct yysvf *yyestate;
        !          2648: int yyprevious = YYNEWLINE;
        !          2649: yylook(){
        !          2650:        register struct yysvf *yystate, **lsp;
        !          2651:        register struct yywork *yyt;
        !          2652:        struct yysvf *yyz;
        !          2653:        int yych;
        !          2654:        struct yywork *yyr;
        !          2655: # ifdef LEXDEBUG
        !          2656:        int debug;
        !          2657: # endif
        !          2658:        char *yylastch;
        !          2659:        /* start off machines */
        !          2660: # ifdef LEXDEBUG
        !          2661:        debug = 0;
        !          2662: # endif
        !          2663:        if (!yymorfg)
        !          2664:                yylastch = yytext;
        !          2665:        else {
        !          2666:                yymorfg=0;
        !          2667:                yylastch = yytext+yyleng;
        !          2668:                }
        !          2669:        for(;;){
        !          2670:                lsp = yylstate;
        !          2671:                yyestate = yystate = yybgin;
        !          2672:                if (yyprevious==YYNEWLINE) yystate++;
        !          2673:                for (;;){
        !          2674: # ifdef LEXDEBUG
        !          2675:                        if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
        !          2676: # endif
        !          2677:                        yyt = yystate->yystoff;
        !          2678:                        if(yyt == yycrank){             /* may not be any transitions */
        !          2679:                                yyz = yystate->yyother;
        !          2680:                                if(yyz == 0)break;
        !          2681:                                if(yyz->yystoff == yycrank)break;
        !          2682:                                }
        !          2683:                        *yylastch++ = yych = input();
        !          2684:                tryagain:
        !          2685: # ifdef LEXDEBUG
        !          2686:                        if(debug){
        !          2687:                                fprintf(yyout,"char ");
        !          2688:                                allprint(yych);
        !          2689:                                putchar('\n');
        !          2690:                                }
        !          2691: # endif
        !          2692:                        yyr = yyt;
        !          2693:                        if ( (int)yyt > (int)yycrank){
        !          2694:                                yyt = yyr + yych;
        !          2695:                                if (yyt <= yytop && yyt->verify+yysvec == yystate){
        !          2696:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !          2697:                                                {unput(*--yylastch);break;}
        !          2698:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          2699:                                        goto contin;
        !          2700:                                        }
        !          2701:                                }
        !          2702: # ifdef YYOPTIM
        !          2703:                        else if((int)yyt < (int)yycrank) {              /* r < yycrank */
        !          2704:                                yyt = yyr = yycrank+(yycrank-yyt);
        !          2705: # ifdef LEXDEBUG
        !          2706:                                if(debug)fprintf(yyout,"compressed state\n");
        !          2707: # endif
        !          2708:                                yyt = yyt + yych;
        !          2709:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !          2710:                                        if(yyt->advance+yysvec == YYLERR)       /* error transitions */
        !          2711:                                                {unput(*--yylastch);break;}
        !          2712:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          2713:                                        goto contin;
        !          2714:                                        }
        !          2715:                                yyt = yyr + YYU(yymatch[yych]);
        !          2716: # ifdef LEXDEBUG
        !          2717:                                if(debug){
        !          2718:                                        fprintf(yyout,"try fall back character ");
        !          2719:                                        allprint(YYU(yymatch[yych]));
        !          2720:                                        putchar('\n');
        !          2721:                                        }
        !          2722: # endif
        !          2723:                                if(yyt <= yytop && yyt->verify+yysvec == yystate){
        !          2724:                                        if(yyt->advance+yysvec == YYLERR)       /* error transition */
        !          2725:                                                {unput(*--yylastch);break;}
        !          2726:                                        *lsp++ = yystate = yyt->advance+yysvec;
        !          2727:                                        goto contin;
        !          2728:                                        }
        !          2729:                                }
        !          2730:                        if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
        !          2731: # ifdef LEXDEBUG
        !          2732:                                if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
        !          2733: # endif
        !          2734:                                goto tryagain;
        !          2735:                                }
        !          2736: # endif
        !          2737:                        else
        !          2738:                                {unput(*--yylastch);break;}
        !          2739:                contin:
        !          2740: # ifdef LEXDEBUG
        !          2741:                        if(debug){
        !          2742:                                fprintf(yyout,"state %d char ",yystate-yysvec-1);
        !          2743:                                allprint(yych);
        !          2744:                                putchar('\n');
        !          2745:                                }
        !          2746: # endif
        !          2747:                        ;
        !          2748:                        }
        !          2749: # ifdef LEXDEBUG
        !          2750:                if(debug){
        !          2751:                        fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
        !          2752:                        allprint(yych);
        !          2753:                        putchar('\n');
        !          2754:                        }
        !          2755: # endif
        !          2756:                while (lsp-- > yylstate){
        !          2757:                        *yylastch-- = 0;
        !          2758:                        if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
        !          2759:                                yyolsp = lsp;
        !          2760:                                if(yyextra[*yyfnd]){            /* must backup */
        !          2761:                                        while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
        !          2762:                                                lsp--;
        !          2763:                                                unput(*yylastch--);
        !          2764:                                                }
        !          2765:                                        }
        !          2766:                                yyprevious = YYU(*yylastch);
        !          2767:                                yylsp = lsp;
        !          2768:                                yyleng = yylastch-yytext+1;
        !          2769:                                yytext[yyleng] = 0;
        !          2770: # ifdef LEXDEBUG
        !          2771:                                if(debug){
        !          2772:                                        fprintf(yyout,"\nmatch ");
        !          2773:                                        sprint(yytext);
        !          2774:                                        fprintf(yyout," action %d\n",*yyfnd);
        !          2775:                                        }
        !          2776: # endif
        !          2777:                                return(*yyfnd++);
        !          2778:                                }
        !          2779:                        unput(*yylastch);
        !          2780:                        }
        !          2781:                if (yytext[0] == 0  /* && feof(yyin) */)
        !          2782:                        {
        !          2783:                        yysptr=yysbuf;
        !          2784:                        return(0);
        !          2785:                        }
        !          2786:                yyprevious = yytext[0] = input();
        !          2787:                if (yyprevious>0)
        !          2788:                        output(yyprevious);
        !          2789:                yylastch=yytext;
        !          2790: # ifdef LEXDEBUG
        !          2791:                if(debug)putchar('\n');
        !          2792: # endif
        !          2793:                }
        !          2794:        }
        !          2795: yyback(p, m)
        !          2796:        int *p;
        !          2797: {
        !          2798: if (p==0) return(0);
        !          2799: while (*p)
        !          2800:        {
        !          2801:        if (*p++ == m)
        !          2802:                return(1);
        !          2803:        }
        !          2804: return(0);
        !          2805: }
        !          2806:        /* the following are only used in the lex library */
        !          2807: yyinput(){
        !          2808:        return(input());
        !          2809:        }
        !          2810: yyoutput(c)
        !          2811:   int c; {
        !          2812:        output(c);
        !          2813:        }
        !          2814: yyunput(c)
        !          2815:    int c; {
        !          2816:        unput(c);
        !          2817:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.