# line 1 "act.mt" #include #include #include #include "dat.h" typedef struct Cost { int gate; int pin; } Cost; Cost gatecost = {1,0}; Cost pincost = {0,1}; Cost zerocost = {0,0}; Cost infinity = {1000000,0}; Cost bigcost = {1000,0}; #define COST Cost #define INFINITY infinity #define ZEROCOST gatecost /* default cost of a rule */ #define ADDCOST(x,y) (x.gate += y.gate, x.pin += y.pin) #define COSTLESS(x,y) ((x.gate)<(y.gate) || (x.gate==y.gate && x.pin... -1 [FAIL ] -1 * or * TABLE2 ... -1 [FAIL ] -1 * or * ACCEPT -1 * * The accept table is in the form: * * ... -1 * */ #define FASTLIM 0 #define TABLE 1 #define FAIL 2 #define ACCEPT 3 #define TABLE2 4 #define EOT -1 /* special machine state */ #define HANG -1 /* * In order for the walker to access the labelled leaves of a pattern, * a table (mistakenly) called the path table is generated (see sym.c). * This table contains the following possible values: * * ePush follow the children link in the walker skeleton. * ePop Pop up to parent. * eNext follow the siblings link. * eEval The current node is a labelled leaf whose label id * is the integer . * eStop All done. stop! * * The table is interpreted by the _getleaves routine in the walker. */ #define eSTOP 0 #define ePOP -1 #define eEVAL -2 #define eNEXT -3 #define ePUSH -4 /* Tags that indicate the type of a value */ #define M_BRANCH 010000 #define M_NODE 0 #define M_LABEL 01000 #define MAX_NODE_VALUE 00777 #define MTAG_SHIFT 9 #define M_DETAG(x) ((x)&~(M_BRANCH|M_LABEL|M_NODE)) /* predicates to tell whether a value x is of type NODE, BRANCH, or LABEL */ #define MI_NODE(x) (((x)&(M_BRANCH|M_LABEL))==0) #define MI_DEFINED(x) ((x)!=-1) #define MI_LABEL(x) (((x)&M_LABEL)!=0) #define MI_BRANCH(x) (((x)&M_BRANCH)!=0) /* build a tagged value */ #define MV_NODE(x) (x) #define MV_BRANCH(x) ((x)|M_BRANCH) #define MV_LABEL(x) ((x)|M_LABEL) #include "symbols.h" /* limits */ /* * The depth of a pattern must be 7 or less. Otherwise the type of he * partial mask in skeleton must be changed */ #define MAXDEPTH 7 /* modes */ #define xTOPDOWN 3 #define xABORT 2 #define xREWRITE 1 #define xDEFER 0 /* macros */ #define tDO(m) _do((m)->skel, (m), 1) #define REWRITE return(_m->cost = cost, xREWRITE) #define TOPDOWN return(_m->cost = cost, xTOPDOWN) #define ABORT return(xABORT) /* * REORDER macro allows a knowledgeable user to change the order * of evaluation of the leaves. */ #ifndef REORDER #define REORDER(list) _evalleaves(list) #endif #define EVAL REORDER(_ll) #define mpush(s,m) (m)->next = s, s = m /* skeleton structure */ typedef struct skeleton skeleton; typedef struct __match __match; typedef struct __partial __partial; typedef int labelset; /* a bit vector of labels */ struct __partial { unsigned char treeno; char bits; }; struct skeleton { skeleton *sibling; skeleton *leftchild; /* leftmost child */ skeleton *rightchild; /* rightmost child */ NODEPTR root; NODEPTR parent; /* our parent */ int nson; int treecnt; __match *succ[MAXLABELS]; __partial *partial; __match *winner; COST mincost; }; struct __match { __match **lleaves; /* labelled leaves */ skeleton *skel; /* back pointer to skeleton node */ COST cost; short tree; short mode; }; /* ZEROCOST, and ADDCOST allows easy implementation of the common * operation of just equating the cost of a match to be the sum * of the costs of the labelled leaves. */ #ifdef ADDCOST #define DEFAULT_COST sumleaves(_ll) COST sumleaves(__match **list) { COST cost; cost = ZEROCOST; for(; *list; list++) ADDCOST((cost),(*list)->cost); return cost; } #endif /* * See Aho, Corasick Comm ACM 18:6, and Hoffman and O'Donell JACM 29:1 * for detail of the matching algorithm */ #ifndef va_start #include #endif /* from libc.h */ extern void* malloc(long); extern void free(void*); extern void abort(void); #define _twig_assert(a,str) \ do{if(!(a)){\ fprintf(stderr, "twig internal error %s\n", (str));\ abort();\ }}while(0) /* these are user defined, so can be macros */ #ifndef mtValue int mtValue(NODEPTR); #endif #ifndef mtSetNodes void mtSetNodes(NODEPTR, int, NODEPTR); #endif #ifndef mtGetNodes NODEPTR mtGetNodes(NODEPTR, int); #endif /* made by twig proper */ NODEPTR mtAction(int, __match **, skeleton *); short mtEvalCost(__match *, __match **, skeleton *); /* stuff defined here */ void _addmatches(int, skeleton *, __match *); void _closure(int, int, skeleton *); void _do(skeleton *, __match *, int); void _evalleaves(__match **); __match **_getleaves(__match *, skeleton *); int _machstep(short, short); void _match(void); void _matchinit(void); void _merge(skeleton *, skeleton *); NODEPTR _mtG(NODEPTR, ...); skeleton *_walk(skeleton *, int); __match *_allocmatch(void); skeleton *_allocskel(void); __partial *_allocpartial(void); void _freematch(__match *); void _freeskel(skeleton *); void _freepartial(__partial *); void _prskel(skeleton *, int); int mtDebug = 0; int treedebug = 0; extern short mtStart; extern short mtTable[], mtAccept[], mtMap[], mtPaths[], mtPathStart[]; #ifdef LINE_XREF extern short mtLine[]; #endif #ifndef MPBLOCKSIZ #define MPBLOCKSIZ 3000 #endif __match *_mpblock[MPBLOCKSIZ], **_mpbtop; /* * See sym.h in the preprocessor for details * Basically used to support eh $%n$ construct. */ __match ** _getleaves(register __match *mp, register skeleton *skp) { skeleton *stack[MAXDEPTH]; skeleton **stp = stack; register short *sip = &mtPaths[mtPathStart[mp->tree]]; register __match **mmp = _mpbtop; __match **mmp2 = mmp; _mpbtop += *sip++ + 1; _twig_assert(_mpbtop <= &_mpblock[MPBLOCKSIZ], "match block overflow"); for(;;) switch(*sip++){ case ePUSH: *stp++ = skp; skp = skp->leftchild; break; case eNEXT: skp = skp->sibling; break; case eEVAL: mp = skp->succ[M_DETAG(*sip++)]; _twig_assert(mp != 0, "bad eEVAL"); *mmp++ = mp; break; case ePOP: skp = *--stp; break; case eSTOP: *mmp = 0; return mmp2; } } void _do(skeleton *sp, register __match *winner, int evalall) { register skeleton *skel; if(winner == 0) { _prskel(sp, 0); fprintf(stderr, "no winner"); return; } skel = winner->skel; if(winner->mode == xDEFER || evalall && winner->mode != xTOPDOWN) REORDER(winner->lleaves); skel->root = mtAction(winner->tree, winner->lleaves, sp); mtSetNodes(skel->parent, skel->nson, skel->root); } void _evalleaves(register __match **mpp) { register __match *mp; while(*mpp){ mp = *mpp++; _do(mp->skel, mp, 1); } } skeleton * _walk(register skeleton *sp, int ostate) { int state, nstate, nson; register __partial *pp; register __match *mp; register skeleton *nsp, *lastchild = 0; NODEPTR son, root; root = sp->root; nson = 1; sp->mincost = INFINITY; state = _machstep(ostate, mtValue(root)); while(son = mtGetNodes(root, nson)){ nstate = _machstep(state, MV_BRANCH(nson)); nsp = _allocskel(); nsp->root = son; nsp->parent = root; nsp->nson = nson; _walk(nsp, nstate); if(COSTLESS(nsp->mincost, INFINITY)){ _twig_assert(nsp->winner->mode == xREWRITE, "bad mode"); if(mtDebug || treedebug) { fprintf(stderr, "rewrite\n"); _prskel(nsp, 0); } _do(nsp, nsp->winner, 0); _freeskel(nsp); continue; } _merge(sp, nsp); if(lastchild == 0) sp->leftchild = nsp; else lastchild->sibling = nsp; lastchild = nsp; nson++; } for(pp = sp->partial; pp < &sp->partial[sp->treecnt]; pp++) if(pp->bits & 01){ mp = _allocmatch(); mp->tree = pp->treeno; _addmatches(ostate, sp, mp); } if(son == 0 && nson == 1) _closure(state, ostate, sp); sp->rightchild = lastchild; if(root == 0){ COST c; __match *win; int i; nsp = sp->leftchild; c = INFINITY; win = 0; for(i = 0; i < MAXLABELS; i++){ mp = nsp->succ[i]; if(mp != 0 && COSTLESS(mp->cost, c)){ c = mp->cost; win = mp; } } if(mtDebug || treedebug) _prskel(nsp, 0); _do(nsp, win, 0); } if(mtDebug) _prskel(sp, 0); return sp; } static short _nodetab[MAXNDVAL], _labeltab[MAXLABELS]; /* * Convert the start state which has a large branching factor into * a index table. This must be called before the matcher is used. */ void _matchinit(void) { short *sp; for(sp = _nodetab; sp < &_nodetab[MAXNDVAL]; sp++) *sp = HANG; for(sp = _labeltab; sp < &_labeltab[MAXLABELS]; sp++) *sp = HANG; sp = &mtTable[mtStart]; _twig_assert(*sp == TABLE, "mtTable[mtStart]!=TABLE"); for(++sp; *sp != -1; sp += 2){ if(MI_NODE(*sp)) _nodetab[M_DETAG(*sp)] = sp[1]; else if(MI_LABEL(*sp)) _labeltab[M_DETAG(*sp)] = sp[1]; } } int _machstep(short state, short input) { register short *stp = &mtTable[state]; int start = 0; if(state == HANG) return input == MV_BRANCH(1) ? mtStart : HANG; rescan: if(stp == &mtTable[mtStart]){ if(MI_NODE(input)) return _nodetab[M_DETAG(input)]; if(MI_LABEL(input)) return _labeltab[M_DETAG(input)]; } for(;;){ if(*stp == ACCEPT) stp += 2; if(*stp == TABLE){ stp++; while(*stp != -1) if(input == *stp) return stp[1]; else stp += 2; stp++; } if(*stp != FAIL){ if(start) return HANG; else{ stp = &mtTable[mtStart]; start = 1; goto rescan; } }else{ stp = &mtTable[stp[1]]; goto rescan; } } } void _addmatches(int ostate, register skeleton *sp, register __match *np) { int label; int state; register __match *mp; label = mtMap[np->tree]; /* * this is a very poor substitute for good design of the DFA. * What we need is a special case that allows any label to be accepted * by the start state but we don't want the start state to recognize * them after a failure. */ state = _machstep(ostate, MV_LABEL(label)); if(ostate != mtStart && state == HANG){ _freematch(np); return; } np->lleaves = _getleaves(np, sp); np->skel = sp; if((np->mode = mtEvalCost(np, np->lleaves, sp)) == xABORT){ _freematch(np); return; } if(mp = sp->succ[label]){ if(!COSTLESS(np->cost, mp->cost)){ _freematch(np); return; } _freematch(mp); } if(COSTLESS(np->cost, sp->mincost)){ if(np->mode == xREWRITE){ sp->mincost = np->cost; sp->winner = np; }else{ sp->mincost = INFINITY; sp->winner = 0; } } sp->succ[label] = np; _closure(state, ostate, sp); } void _closure(int state, int ostate, skeleton *skp) { register short *sp = &mtTable[state]; register __match *mp; if(state == HANG || *sp != ACCEPT) return; for(sp = &mtAccept[sp[1]]; *sp != -1; sp += 2) if(sp[1] == 0){ mp = _allocmatch(); mp->tree = *sp; _addmatches(ostate, skp, mp); }else{ register __partial *pp; register __partial *lim = &skp->partial[skp->treecnt]; for(pp = skp->partial; pp < lim; pp++) if(pp->treeno == *sp) break; if(pp == lim){ skp->treecnt++; pp->treeno = *sp; pp->bits = 1 << sp[1]; }else pp->bits |= 1 << sp[1]; } } void _merge(skeleton *old, skeleton *new) { register __partial *op = old->partial, *np = new->partial; int nson = new->nson; register __partial *lim = np + new->treecnt; if(nson == 1){ old->treecnt = new->treecnt; for(; np < lim; op++, np++) { op->treeno = np->treeno; op->bits = np->bits / 2; } }else{ __partial *newer = _allocpartial(); register __partial *newerp = newer; register int cnt; lim = op + old->treecnt; for(cnt = new->treecnt; cnt-- ; np++){ for(op = old->partial; op < lim; op++) if(op->treeno == np->treeno){ newerp->treeno = op->treeno; newerp++->bits = op->bits & np->bits / 2; break; } } _freepartial(old->partial); old->partial = newer; old->treecnt = newerp-newer; } } /* memory management */ #define BLKF 100 typedef union __matchalloc{ __match it; union __matchalloc *next; }__matchalloc; static __matchalloc *__matchfree = 0; #ifdef CHECKMEM staic int a_matches; #endif __match * _allocmatch(void) { static int count = 0; static __matchalloc *block = 0; __matchalloc *m; if(__matchfree){ m = __matchfree; __matchfree = __matchfree->next; }else{ if(count == 0){ block = (void *)malloc(BLKF * sizeof *block); count = BLKF; } m = block++; count--; } #ifdef CHECKMEM a_matches++; #endif return (__match *)m; } void _freematch(__match *mp) { __matchalloc *m = (__matchalloc *)mp; m->next = __matchfree; __matchfree = m; #ifdef CHECKMEM a_matches--; #endif } typedef union __partalloc{ __partial it[MAXTREES]; union __partalloc *next; }__partalloc; static __partalloc *__partfree = 0; #ifdef CHECKMEM static int a_partials; #endif __partial * _allocpartial(void) { static int count = 0; static __partalloc *block = 0; __partalloc *p; if(__partfree != 0){ p = __partfree; __partfree = __partfree->next; }else{ if(count == 0){ block = (void *)malloc(BLKF * sizeof *block); count = BLKF; } p = block++; count--; } #ifdef CHECKMEM a_partials++; #endif return (__partial *)p; } void _freepartial(__partial *pp) { __partalloc *p = (__partalloc *)pp; p->next = __partfree; __partfree = p; #ifdef CHECKMEM a_partials--; #endif } typedef union __skelalloc{ skeleton it; union __skelalloc *next; }__skelalloc; static __skelalloc *__skelfree = 0; skeleton * _allocskel(void) { static int count = 0; static __skelalloc *block = 0; __skelalloc *sf; skeleton *s; int i; if(__skelfree){ sf = __skelfree; __skelfree = sf->next; }else{ if(count == 0){ block = (void *)malloc(BLKF * sizeof *block); count = BLKF; } sf = block++; count--; } s = (skeleton *)sf; s->sibling = 0; s->leftchild = 0; i = 0; while(i < MAXLABELS) s->succ[i++] = 0; s->treecnt = 0; s->partial = _allocpartial(); return s; } void _freeskel(skeleton *s) { int i; __match *mp; __skelalloc *sf; if(s == 0) return; if(s->leftchild) _freeskel(s->leftchild); if(s->sibling) _freeskel(s->sibling); _freepartial(s->partial); i = 0; while(i < MAXLABELS) if(mp = s->succ[i++]) _freematch(mp); sf = (__skelalloc *)s; sf->next = __skelfree; __skelfree = sf; } void _match(void) { skeleton *sp; sp = _allocskel(); sp->root = 0; _mpbtop = _mpblock; _freeskel(_walk(sp, HANG)); #ifdef CHECKMEM _twig_assert(a_matches == 0, "__match memory leak"); _twig_assert(a_partials == 0, "__partial memory leak"); #endif } NODEPTR _mtG(NODEPTR root, ...) { va_list a; int i; va_start(a, root); while((i = va_arg(a, int)) != -1) root = mtGetNodes(root, i); va_end(a); return root; } /* diagnostic routines */ void _prskel(skeleton *skp, int lvl) { int i; __match *mp; __partial *pp; if(skp==0) return; for(i = lvl; i > 0; i--) fprintf(stderr, " "); fprintf(stderr, "###\n"); for(i = lvl; i > 0; i--) fprintf(stderr, " "); for(i = 0; i < MAXLABELS; i++) if(mp = skp->succ[i]) #ifdef LINE_XREF fprintf(stderr, "[%d<%d> %d]", mp->tree, mtLine[mp->tree], mp->cost); #else fprintf(stderr, "[%d %d]", mp->tree, mp->cost); #endif fprintf(stderr, "\n"); for(i = lvl; i > 0; i--) fprintf(stderr, " "); for(i = 0, pp=skp->partial; i < skp->treecnt; i++, pp++) #ifdef LINE_XREF fprintf(stderr, "(%d<%d> %x)", pp->treeno, mtLine[pp->treeno], pp->bits); #else fprintf(stderr, "(%d %x)", pp->treeno, pp->bits); #endif fprintf(stderr, "\n"); _prskel(skp->leftchild, lvl + 2); _prskel(skp->sibling, lvl); } short mtTable[] = { 3,0,-1,3,3,-1,3,6,-1,3 ,9,-1,3,12,-1,3,15,2,9,-1 ,3,20,2,12,-1,3,25,2,47,-1 ,1,01000,25,-1,2,667,-1,1,010001,30 ,-1,2,688,-1,3,32,-1,3,35,2 ,3,-1,3,40,2,1902,-1,3,89,2 ,1910,-1,1,01000,57,-1,2,1953,-1,1 ,010001,62,-1,2,1964,-1,1,01000,52,04 ,69,-1,2,2168,-1,3,146,2,2186,-1 ,3,175,2,2196,-1,1,01000,90,-1,2 ,2234,-1,1,010001,95,-1,2,2245,-1,3 ,192,2,2252,-1,3,257,2,2257,-1,1 ,01000,114,-1,2,2262,-1,1,010001,119,-1 ,2,2269,-1,1,01000,109,04,126,-1,2 ,2276,-1,3,330,2,2285,-1,3,377,2 ,2290,-1,1,01000,147,-1,2,2295,-1,1 ,010001,152,-1,2,2302,-1,3,398,2,2314 ,-1,1,01000,166,-1,2,2319,-1,1,010001 ,171,-1,2,2326,-1,1,04,178,-1,2 ,2333,-1,3,469,2,2342,-1,3,518,2 ,2290,-1,1,01000,197,-1,2,2295,-1,1 ,010001,202,-1,2,2302,-1,1,01000,192,04 ,209,-1,2,2347,-1,1,010001,185,010002,216 ,-1,2,2354,-1,1,01000,142,04,159,05 ,225,-1,2,2485,-1,1,010001,133,010002,234 ,-1,2,2500,-1,1,01000,85,04,102,05 ,245,-1,2,2769,-1,1,010001,76,010002,254 ,-1,2,2786,-1,3,539,2,1169,-1,3 ,580,2,1177,-1,1,01000,279,-1,2,1215 ,-1,1,010001,284,-1,2,1224,-1,3,609 ,2,994,-1,1,01000,298,-1,2,999,-1 ,1,010001,303,-1,2,1006,-1,3,684,2 ,989,-1,1,04,310,01000,317,-1,2,1013 ,-1,3,759,2,1022,-1,1,01000,331,-1 ,2,1147,-1,1,010001,322,010002,336,-1,2 ,1160,-1,1,01000,274,04,291,05,343,-1 ,2,1264,-1,3,836,2,1439,-1,3,859 ,2,1624,-1,1,01000,368,-1,2,1662,-1 ,1,010001,373,-1,2,1671,-1,3,874,2 ,1477,-1,3,939,2,1482,-1,1,01000,392 ,-1,2,1487,-1,1,010001,397,-1,2,1494 ,-1,1,01000,387,04,404,-1,2,1501,-1 ,3,970,2,1545,-1,3,1017,2,1583,-1 ,1,01000,425,-1,2,1588,-1,1,010001,430 ,-1,2,1595,-1,3,1032,2,1550,-1,1 ,01000,444,-1,2,1555,-1,3,1101,2,1562 ,-1,1,01000,456,-1,2,1567,-1,1,010001 ,449,010002,461,-1,2,1574,-1,1,01000,420 ,04,437,06,468,-1,2,1602,-1,1,010001 ,411,010002,477,-1,2,1615,-1,1,01000,363 ,04,380,06,488,-1,2,1779,-1,1,010001 ,352,010002,497,-1,2,1796,-1,3,1150,2 ,712,-1,3,1171,2,730,-1,1,01000,522 ,-1,2,735,-1,1,010001,527,-1,2,742 ,-1,1,04,534,-1,2,749,-1,3,1220 ,2,756,-1,1,01000,548,-1,2,780,-1 ,1,010001,541,010002,553,-1,2,789,-1,1 ,01000,517,05,560,-1,2,798,-1,3,1249 ,2,813,-1,1,01000,578,-1,2,969,-1 ,1,010001,569,010002,583,-1,2,982,-1,3 ,1272,2,2822,-1,3,1319,2,2793,-1,1 ,01000,604,-1,2,2803,-1,1,010001,609,-1 ,2,2812,-1,1,01000,599,04,616,-1,2 ,3026,-1,3,1338,2,3143,-1,1,01000,632 ,-1,2,3202,-1,3,1371,2,3295,-1,1 ,01000,644,-1,2,3376,-1,1,010001,623,010002 ,637,010003,649,-1,2,3391,-1,1,00,15 ,01,20,04,37,01001,44,01000,47,05,265 ,06,508,07,590,017,656,-1,-1,1,010001 ,667,-1,-1,3,1396,2,47,-1,1,01000 ,693,-1,2,667,-1,1,010001,698,-1,2 ,688,-1,3,1403,2,3,-1,3,1422,2 ,9,-1,3,1427,2,12,-1,3,1432,-1 ,3,1435,2,1910,-1,1,01000,730,-1,2 ,1953,-1,1,010001,735,-1,2,1964,-1,1 ,04,742,-1,2,2168,-1,3,1482,2,2186 ,-1,3,1509,2,2196,-1,1,01000,761,-1 ,2,2234,-1,1,010001,766,-1,2,2245,-1 ,1,01000,756,04,773,-1,2,2769,-1,1 ,010001,749,010002,780,-1,2,2786,-1,1,04 ,705,01000,712,00,717,01,722,01001,727,05 ,789,-1,-1,3,1526,2,3,-1,3,1545 ,2,47,-1,1,01000,818,-1,2,667,-1 ,1,010001,823,-1,2,688,-1,3,1554,-1 ,3,1557,2,1910,-1,1,01000,840,-1,2 ,1953,-1,1,010001,845,-1,2,1964,-1,1 ,04,852,-1,2,2168,-1,3,1604,2,2186 ,-1,3,1631,2,2196,-1,1,01000,871,-1 ,2,2234,-1,1,010001,876,-1,2,2245,-1 ,1,01000,866,04,883,-1,2,2769,-1,1 ,010001,859,010002,890,-1,2,2786,-1,3,1648 ,2,2822,-1,1,01000,908,-1,2,3026,-1 ,3,1695,2,3044,-1,1,01000,920,-1,2 ,3049,-1,1,010001,925,-1,2,3058,-1,1 ,04,932,-1,2,3202,-1,3,1722,2,3215 ,-1,1,01,946,-1,2,3376,-1,1,010001 ,913,010002,939,010003,951,-1,2,3391,-1,1 ,01000,813,04,830,01001,837,05,899,017,958 ,-1,-1,1,010001,798,010002,969,-1,-1,3 ,1751,2,1902,-1,3,1824,2,1910,-1,1 ,01000,994,-1,2,1953,-1,1,010001,999,-1 ,2,1964,-1,1,01000,989,04,1006,-1,2 ,2168,-1,3,1893,2,2186,-1,3,1962,2 ,2252,-1,1,01000,1027,-1,2,2276,-1,3 ,2027,2,2285,-1,1,01000,1039,-1,2,2485 ,-1,1,010001,1032,010002,1044,-1,2,2500,-1 ,3,2072,2,2196,-1,1,01000,1060,-1,2 ,2234,-1,1,010001,1065,-1,2,2245,-1,3 ,2089,2,2509,-1,1,01000,1079,-1,2,2533 ,-1,3,2150,2,2542,-1,3,2195,2,2547 ,-1,1,01000,1096,-1,2,2552,-1,1,010001 ,1101,-1,2,2559,-1,1,01000,1091,04,1108 ,-1,2,2566,-1,3,2226,2,2599,-1,1 ,01,1124,-1,2,2604,-1,1,010001,1084,010002 ,1115,010003,1129,-1,2,2615,-1,1,01000,1022 ,05,1051,04,1072,017,1136,-1,2,2769,-1 ,1,010001,1013,010002,1147,-1,2,2786,-1,3 ,2269,2,3,-1,3,2306,-1,3,2309,2 ,47,-1,3,2324,2,517,-1,1,01000,1182 ,-1,2,569,-1,3,2347,2,578,-1,1 ,01000,1194,-1,2,583,-1,1,010001,1187,010002 ,1199,-1,2,590,-1,1,01000,1177,07,1206 ,-1,2,667,-1,1,010001,1215,-1,2,688 ,-1,3,2372,2,712,-1,1,01000,1231,-1 ,2,798,-1,3,2393,2,813,-1,1,01000 ,1243,-1,2,969,-1,1,010001,1236,010002,1248 ,-1,2,982,-1,1,05,1160,01000,1169,01001 ,1174,04,1224,07,1255,-1,-1,3,2414,2 ,1910,-1,1,01000,1277,-1,2,1953,-1,1 ,010001,1282,-1,2,1964,-1,3,2465,2,1902 ,-1,1,04,1289,01000,1296,-1,2,2168,-1 ,3,2538,2,2186,-1,3,2581,2,2252,-1 ,1,01000,1315,-1,2,2276,-1,3,2646,2 ,2285,-1,1,01000,1327,-1,2,2485,-1,1 ,010001,1320,010002,1332,-1,2,2500,-1,3,2691 ,2,2509,-1,1,01000,1348,-1,2,2533,-1 ,3,2762,2,2542,-1,3,2817,2,2547,-1 ,1,01000,1365,-1,2,2552,-1,1,010001,1370 ,-1,2,2559,-1,1,01000,1360,04,1377,-1 ,2,2566,-1,3,2848,2,2599,-1,1,01 ,1393,-1,2,2604,-1,1,010001,1353,010002,1384 ,010003,1398,-1,2,2615,-1,1,01000,1310,05 ,1339,017,1405,-1,2,2769,-1,1,010001,1301 ,010002,1416,-1,2,2786,-1,3,2901,-1,3 ,2904,2,3,-1,3,2921,2,989,-1,1 ,01000,1444,-1,2,1013,-1,3,3000,2,1022 ,-1,1,01000,1456,-1,2,1147,-1,1,010001 ,1449,010002,1461,-1,2,1160,-1,3,3075,2 ,1169,-1,3,3132,2,1177,-1,1,01000,1482 ,-1,2,1215,-1,1,010001,1487,-1,2,1224 ,-1,1,05,1468,01000,1477,04,1494,-1,2 ,1264,-1,3,3155,2,1296,-1,1,01000,1512 ,-1,2,1301,-1,3,3232,2,1310,-1,1 ,01000,1524,-1,2,1416,-1,1,010001,1517,010002 ,1529,-1,2,1427,-1,3,3279,2,1439,-1 ,3,3316,2,1477,-1,1,01000,1550,-1,2 ,1501,-1,3,3381,2,1545,-1,1,01000,1562 ,-1,2,1602,-1,1,010001,1555,010002,1567,-1 ,2,1615,-1,3,3426,2,1624,-1,1,01000 ,1583,-1,2,1662,-1,1,010001,1588,-1,2 ,1671,-1,1,05,1536,01000,1545,06,1574,04 ,1595,-1,2,1779,-1,1,010001,1501,010002,1602 ,-1,2,1796,-1,3,3439,2,47,-1,3 ,3450,2,517,-1,1,01000,1629,-1,2,569 ,-1,3,3473,2,578,-1,1,01000,1641,-1 ,2,583,-1,1,010001,1634,010002,1646,-1,2 ,590,-1,1,01000,1624,07,1653,-1,2,667 ,-1,1,010001,1662,-1,2,688,-1,3,3498 ,2,712,-1,1,01000,1678,-1,2,798,-1 ,3,3523,2,813,-1,3,3546,2,818,-1 ,1,01000,1695,-1,2,823,-1,1,010001,1700 ,-1,2,830,-1,1,01000,1690,04,1707,-1 ,2,969,-1,1,010001,1683,010002,1714,-1,2 ,982,-1,3,3557,2,2822,-1,1,01000,1732 ,-1,2,3026,-1,3,3606,2,3143,-1,1 ,01000,1744,-1,2,3202,-1,3,3639,2,3295 ,-1,1,01000,1756,-1,2,3376,-1,1,010001 ,1737,010002,1749,010003,1761,-1,2,3391,-1,1 ,05,1427,01001,1436,01000,1439,06,1615,04,1671 ,07,1723,017,1768,-1,-1,1,010001,1264,010002 ,1779,-1,-1,3,3664,2,3,-1,1,01000 ,1803,-1,-1,1,010001,1808,-1,-1,3,3669 ,2,3,-1,1,01000,1818,-1,-1,1,010001 ,1823,-1,-1,3,3674,2,3,-1,1,01000 ,1833,-1,-1,1,010001,1838,-1,-1,3,3679 ,2,3,-1,1,01000,1848,-1,-1,3,3684 ,2,3,-1,1,01000,1858,-1,-1,1,010001 ,1853,010002,1863,-1,-1,3,3689,2,3,-1 ,1,01000,1875,-1,-1,3,3694,2,3,-1 ,1,01000,1885,-1,-1,1,010001,1880,010002,1890 ,-1,-1,3,3699,2,3,-1,3,3746,-1 ,3,3749,2,47,-1,3,3792,2,44,-1 ,3,3797,2,517,-1,1,01000,1920,-1,2 ,569,-1,3,3820,2,578,-1,1,01000,1932 ,-1,2,583,-1,1,010001,1925,010002,1937,-1 ,2,590,-1,1,01000,1910,01001,1915,07,1944 ,-1,2,667,-1,1,010001,1953,-1,2,688 ,-1,3,3845,2,712,-1,1,01000,1971,-1 ,2,798,-1,3,3866,2,813,-1,1,01000 ,1983,-1,2,969,-1,1,010001,1976,010002,1988 ,-1,2,982,-1,3,3887,2,1169,-1,3 ,3934,2,1177,-1,1,01000,2009,-1,2,1215 ,-1,1,010001,2014,-1,2,1224,-1,1,01000 ,2004,04,2021,-1,2,1264,-1,3,3957,2 ,1439,-1,1,01000,2037,-1,2,1779,-1,1 ,010001,2028,010002,2042,-1,2,1796,-1,3,3992 ,2,1910,-1,1,01000,2058,-1,2,1953,-1 ,1,010001,2063,-1,2,1964,-1,1,04,2070 ,-1,2,2168,-1,3,4039,2,2257,-1,1 ,01000,2084,-1,2,2262,-1,1,010001,2089,-1 ,2,2269,-1,1,04,2096,-1,2,2276,-1 ,3,4108,2,2285,-1,3,4153,2,2290,-1 ,1,01000,2115,-1,2,2295,-1,1,010001,2120 ,-1,2,2302,-1,1,01000,2110,04,2127,-1 ,2,2485,-1,1,010001,2103,010002,2134,-1,2 ,2500,-1,1,05,2143,-1,2,2769,-1,1 ,010001,2077,010002,2152,-1,2,2786,-1,1,01000 ,1902,01001,1907,04,1964,07,1995,06,2049,05 ,2159,-1,-1,3,4174,-1,3,4177,2,3 ,-1,3,4202,2,44,-1,3,4207,2,47 ,-1,3,4222,2,517,-1,1,01000,2201,-1 ,2,569,-1,3,4245,2,578,-1,1,01000 ,2213,-1,2,583,-1,1,010001,2206,010002,2218 ,-1,2,590,-1,1,01001,2191,01000,2196,07 ,2225,-1,2,667,-1,1,010001,2234,-1,2 ,688,-1,3,4270,2,1902,-1,3,4333,2 ,1910,-1,1,01000,2257,-1,2,1953,-1,1 ,010001,2262,-1,2,1964,-1,1,01000,2252,04 ,2269,-1,2,2168,-1,3,4398,2,2186,-1 ,3,4441,2,2196,-1,1,01000,2290,-1,2 ,2234,-1,1,010001,2295,-1,2,2245,-1,3 ,4460,2,2252,-1,3,4525,2,2257,-1,1 ,01000,2314,-1,2,2262,-1,1,010001,2319,-1 ,2,2269,-1,1,01000,2309,04,2326,-1,2 ,2276,-1,3,4592,2,2285,-1,1,01000,2342 ,-1,2,2485,-1,1,010001,2333,010002,2347,-1 ,2,2500,-1,3,4639,2,2680,-1,1,01000 ,2363,-1,2,2704,-1,3,4686,2,2713,-1 ,1,01000,2375,-1,2,2751,-1,1,010001,2368 ,010002,2380,-1,2,2760,-1,3,4715,2,2514 ,-1,1,01000,2396,-1,2,2519,-1,1,010001 ,2401,-1,2,2526,-1,3,4742,2,2509,-1 ,1,04,2408,01000,2415,-1,2,2533,-1,3 ,4805,2,2542,-1,3,4856,2,2547,-1,1 ,01000,2434,-1,2,2552,-1,1,010001,2439,-1 ,2,2559,-1,1,01000,2429,04,2446,-1,2 ,2566,-1,3,4887,2,2599,-1,1,01,2462 ,-1,2,2604,-1,1,010001,2420,010002,2453,010003 ,2467,-1,2,2615,-1,1,01000,2285,04,2302 ,05,2354,06,2387,017,2474,-1,2,2769,-1 ,1,010001,2276,010002,2485,-1,2,2786,-1,3 ,4936,2,2822,-1,3,4993,2,2793,-1,1 ,01000,2514,-1,2,2803,-1,1,010001,2519,-1 ,2,2812,-1,1,01000,2509,04,2526,-1,2 ,3026,-1,3,5016,2,3143,-1,3,5059,2 ,3044,-1,1,01000,2547,-1,2,3049,-1,1 ,010001,2552,-1,2,3058,-1,1,01000,2542,04 ,2559,-1,2,3202,-1,3,5088,2,3357,-1 ,1,01000,2575,-1,2,3362,-1,1,010001,2580 ,-1,2,3369,-1,3,5105,2,3295,-1,3 ,5130,2,3215,-1,1,04,2587,01000,2594,01 ,2599,-1,2,3376,-1,1,010001,2533,010002,2566 ,010003,2604,-1,2,3391,-1,3,5169,2,712 ,-1,1,01000,2626,-1,2,798,-1,3,5194 ,2,813,-1,3,5217,2,818,-1,1,01000 ,2643,-1,2,823,-1,1,010001,2648,-1,2 ,830,-1,1,01000,2638,04,2655,-1,2,969 ,-1,1,010001,2631,010002,2662,-1,2,982,-1 ,3,5228,2,1169,-1,3,5273,2,1177,-1 ,1,01000,2685,-1,2,1215,-1,1,010001,2690 ,-1,2,1224,-1,1,01000,2680,04,2697,-1 ,2,1264,-1,3,5292,2,1439,-1,3,5319 ,2,1477,-1,1,01000,2718,-1,2,1501,-1 ,3,5378,2,1545,-1,1,01000,2730,-1,2 ,1602,-1,1,010001,2723,010002,2735,-1,2,1615 ,-1,1,01000,2713,06,2742,-1,2,1779,-1 ,1,010001,2704,010002,2751,-1,2,1796,-1,1 ,01001,2183,01000,2186,04,2245,05,2500,017,2615 ,07,2671,06,2760,-1,-1,1,010001,2168,010002 ,2769,-1,-1,3,5417,2,47,-1,3,5434 ,2,44,-1,1,01000,2793,01001,2798,-1,2 ,667,-1,1,010001,2803,-1,2,688,-1,3 ,5439,-1,3,5442,2,3,-1,3,5487,2 ,2822,-1,1,01000,2827,-1,2,3026,-1,3 ,5534,2,3143,-1,1,01000,2839,-1,2,3202 ,-1,3,5565,2,3295,-1,1,01000,2851,-1 ,2,3376,-1,1,010001,2832,010002,2844,010003,2856 ,-1,2,3391,-1,3,5588,2,1902,-1,3 ,5639,2,1910,-1,1,01000,2879,-1,2,1953 ,-1,1,010001,2884,-1,2,1964,-1,1,01000 ,2874,04,2891,-1,2,2168,-1,3,5692,2 ,2186,-1,3,5725,2,2252,-1,3,5790,2 ,2257,-1,1,01000,2917,-1,2,2262,-1,1 ,010001,2922,-1,2,2269,-1,1,01000,2912,04 ,2929,-1,2,2276,-1,3,5857,2,2285,-1 ,3,5902,2,2290,-1,1,01000,2950,-1,2 ,2295,-1,1,010001,2955,-1,2,2302,-1,1 ,01000,2945,04,2962,-1,2,2485,-1,1,010001 ,2936,010002,2969,-1,2,2500,-1,3,5923,2 ,2196,-1,1,01000,2987,-1,2,2234,-1,1 ,010001,2992,-1,2,2245,-1,1,01000,2907,05 ,2978,04,2999,-1,2,2769,-1,1,010001,2898 ,010002,3006,-1,2,2786,-1,1,04,2812,01001 ,2819,01000,2822,017,2863,05,3017,-1,-1,3 ,5940,2,44,-1,3,5945,2,47,-1,1 ,01001,3039,01000,3044,-1,2,667,-1,1,010001 ,3049,-1,2,688,-1,3,5970,2,2822,-1 ,3,6027,2,2819,-1,1,01000,3065,01001,3070 ,-1,2,3026,-1,3,6032,2,3143,-1,1 ,01000,3084,-1,2,3202,-1,3,6075,2,3295 ,-1,3,6108,2,3357,-1,1,01000,3101,-1 ,2,3362,-1,1,010001,3106,-1,2,3369,-1 ,1,01000,3096,04,3113,-1,2,3376,-1,1 ,010001,3075,010002,3089,010003,3120,-1,2,3391,-1 ,3,6125,-1,3,6128,2,3,-1,3,6157 ,2,1902,-1,3,6210,2,1910,-1,1,01000 ,3153,-1,2,1953,-1,1,010001,3158,-1,2 ,1964,-1,1,01000,3148,04,3165,-1,2,2168 ,-1,3,6257,2,2186,-1,1,01000,3181,-1 ,2,2769,-1,1,010001,3172,010002,3186,-1,2 ,2786,-1,1,04,3058,017,3129,01001,3140,01000 ,3143,05,3193,-1,-1,3,6292,2,12,-1 ,3,6319,2,2822,-1,3,6374,2,2819,-1 ,1,01000,3220,01001,3225,-1,2,3026,-1,3 ,6379,2,3143,-1,3,6418,2,3044,-1,1 ,01000,3244,-1,2,3049,-1,1,010001,3249,-1 ,2,3058,-1,1,01000,3239,04,3256,-1,2 ,3202,-1,3,6445,2,3295,-1,1,01000,3272 ,-1,2,3376,-1,1,010001,3230,010002,3263,010003 ,3277,-1,2,3391,-1,3,6478,2,3,-1 ,3,6499,-1,3,6502,2,1902,-1,3,6553 ,2,1910,-1,1,01000,3308,-1,2,1953,-1 ,1,010001,3313,-1,2,1964,-1,1,01000,3303 ,04,3320,-1,2,2168,-1,3,6600,2,2186 ,-1,1,01000,3336,-1,2,2769,-1,1,010001 ,3327,010002,3341,-1,2,2786,-1,3,6633,2 ,47,-1,1,01000,3357,-1,2,667,-1,1 ,010001,3362,-1,2,688,-1,1,01,3215,017 ,3284,01000,3295,01001,3300,05,3348,04,3369,-1 ,-1,1,010001,3026,010002,3202,010003,3376,-1,-1 ,3,6648,2,3,-1,3,6667,2,2822,-1 ,1,01000,3405,-1,2,3026,-1,3,6718,2 ,3143,-1,1,01000,3417,-1,2,3202,-1,3 ,6753,2,3295,-1,1,01000,3429,-1,2,3376 ,-1,1,010001,3410,010002,3422,010003,3434,-1,2 ,3391,-1,1,01000,3400,017,3441,-1,-1,3 ,6780,-1,3,6791,2,44,-1,1,01001,3462 ,-1,2,667,-1,1,010001,3467,-1,2,688 ,-1,1,01001,3459,04,3474,-1,-1,3,6806 ,2,12,-1,3,6821,2,3,-1,3,6828 ,2,47,-1,1,01000,3498,-1,2,667,-1 ,1,010001,3503,-1,2,688,-1,1,01,3488 ,01000,3493,04,3510,-1,-1,3,6839,2,9 ,-1,3,6860,2,47,-1,1,01000,3531,-1 ,2,667,-1,1,010001,3536,-1,2,688,-1 ,1,00,3526,04,3543,-1,-1,1,010001,3452 ,010002,3481,010003,3517,010004,3550,-1,-1,3,6869 ,2,3,-1,3,6896,2,47,-1,1,01000 ,3573,-1,2,667,-1,1,010001,3578,-1,2 ,688,-1,3,6913,2,1910,-1,1,01000,3592 ,-1,2,1953,-1,1,010001,3597,-1,2,1964 ,-1,3,6960,2,1902,-1,1,04,3604,01000 ,3611,-1,2,2168,-1,3,7011,2,2186,-1 ,1,01000,3625,-1,2,2769,-1,1,010001,3616 ,010002,3630,-1,2,2786,-1,3,7044,2,1169 ,-1,1,01000,3646,-1,2,1264,-1,3,7083 ,2,1439,-1,1,01000,3658,-1,2,1779,-1 ,1,010001,3651,010002,3663,-1,2,1796,-1,3 ,7102,2,2822,-1,1,01000,3679,-1,2,3026 ,-1,3,7159,2,3143,-1,1,01000,3691,-1 ,2,3202,-1,3,7200,2,3295,-1,1,01000 ,3703,-1,2,3376,-1,1,010001,3684,010002,3696 ,010003,3708,-1,2,3391,-1,1,01000,3568,04 ,3585,05,3637,06,3670,017,3715,-1,-1,3 ,7233,-1,3,7276,2,44,-1,1,01001,3742 ,-1,2,667,-1,1,010001,3747,-1,2,688 ,-1,3,7293,2,3,-1,1,01001,3739,04 ,3754,01000,3761,-1,-1,3,7298,2,12,-1 ,3,7347,2,3,-1,3,7356,2,47,-1 ,1,01000,3785,-1,2,667,-1,1,010001,3790 ,-1,2,688,-1,1,01,3775,01000,3780,04 ,3797,-1,-1,3,7367,2,9,-1,3,7408 ,2,47,-1,1,01000,3818,-1,2,667,-1 ,1,010001,3823,-1,2,688,-1,3,7425,2 ,3,-1,1,00,3813,04,3830,01000,3837,-1 ,-1,3,7436,2,9,-1,3,7473,2,3 ,-1,3,7496,2,47,-1,1,01000,3861,-1 ,2,667,-1,1,010001,3866,-1,2,688,-1 ,1,00,3851,01000,3856,04,3873,-1,-1,1 ,010001,3726,010002,3766,010003,3804,010004,3842,010005,3880 ,-1,-1,3,7505,2,3,-1,1,01000,3902 ,-1,-1,1,010001,3907,-1,-1,1,03,0 ,01000,3,02,6,00,9,01,12,04,688 ,07,982,06,1796,012,1813,020,1828,013,1843 ,014,1868,015,1895,05,2786,017,3391,011,3557 ,010,3889,016,3912,-1,-1}; short mtAccept[] = { 0,0,-1,1,0,-1,2,0,-1,3 ,0,-1,4,0,-1,3,0,5,1,-1 ,4,0,6,1,-1,78,1,1,0,7 ,2,-1,18,1,-1,1,0,78,1,-1 ,19,1,80,1,92,1,121,1,123,1 ,124,1,143,1,148,1,149,1,183,1 ,185,1,191,1,206,1,207,1,216,1 ,223,1,226,1,227,1,230,1,231,1 ,232,1,235,1,1,0,86,2,-1,25 ,2,81,2,82,2,93,2,94,2,95 ,2,106,2,107,2,150,2,186,2,187 ,2,192,2,193,2,194,2,215,2,219 ,2,220,2,228,2,229,2,1,0,78 ,1,111,3,110,3,101,3,100,3,99 ,3,88,3,87,3,-1,20,1,80,1 ,81,1,120,1,122,1,138,1,139,1 ,185,1,186,1,198,1,199,1,1,0 ,87,2,86,2,-1,26,2,82,2,140 ,2,141,2,187,2,1,0,78,1,88 ,3,-1,92,2,93,2,142,2,143,2 ,191,2,192,2,220,2,230,2,1,0 ,235,1,232,1,231,1,230,1,227,1 ,226,1,223,1,216,1,207,1,206,1 ,191,1,185,1,183,1,149,1,148,1 ,143,1,124,1,123,1,121,1,92,1 ,80,1,19,1,99,3,-1,94,3,95 ,3,106,3,107,3,144,3,145,3,193 ,3,194,3,219,3,231,3,232,3,78 ,1,1,0,229,2,228,2,220,2,219 ,2,215,2,194,2,193,2,192,2,187 ,2,186,2,150,2,107,2,106,2,95 ,2,94,2,93,2,82,2,81,2,25 ,2,111,4,110,4,101,4,100,4,-1 ,92,2,93,2,94,2,142,2,144,2 ,145,2,191,2,192,2,193,2,1,0 ,199,1,198,1,186,1,185,1,139,1 ,138,1,122,1,120,1,81,1,80,1 ,20,1,100,3,99,3,-1,95,3,194 ,3,78,1,1,0,187,2,141,2,140 ,2,82,2,26,2,101,4,-1,107,4 ,25,2,81,2,82,2,93,2,94,2 ,95,2,106,2,107,2,150,2,186,2 ,187,2,192,2,193,2,194,2,215,2 ,219,2,220,2,228,2,229,2,1,0 ,78,1,232,3,231,3,219,3,194,3 ,193,3,145,3,144,3,107,3,106,3 ,95,3,94,3,111,5,110,5,-1,106 ,3,107,3,20,1,80,1,81,1,120 ,1,122,1,138,1,139,1,185,1,186 ,1,198,1,199,1,1,0,193,2,192 ,2,191,2,145,2,144,2,142,2,94 ,2,93,2,92,2,110,4,-1,95,3 ,194,3,78,1,1,0,187,2,141,2 ,140,2,82,2,26,2,111,5,-1,23 ,1,83,1,96,1,108,1,118,1,119 ,1,184,1,195,1,196,1,197,1,200 ,1,201,1,204,1,205,1,224,1,225 ,1,236,1,1,0,102,2,89,2,-1 ,84,2,85,2,97,2,98,2,109,2 ,1,0,78,1,113,3,112,3,105,3 ,104,3,103,3,91,3,90,3,-1,35 ,3,36,3,129,3,131,3,135,3,152 ,3,153,3,177,3,178,3,179,3,180 ,3,181,3,218,3,78,1,1,0,229 ,2,228,2,220,2,219,2,215,2,194 ,2,193,2,192,2,187,2,186,2,150 ,2,107,2,106,2,95,2,94,2,93 ,2,82,2,81,2,25,2,137,4,136 ,4,132,4,-1,12,2,33,2,34,2 ,37,2,38,2,128,2,130,2,134,2 ,151,2,217,2,222,2,233,2,234,2 ,1,0,235,1,232,1,231,1,230,1 ,227,1,226,1,223,1,216,1,207,1 ,206,1,191,1,185,1,183,1,149,1 ,148,1,143,1,124,1,123,1,121,1 ,92,1,80,1,19,1,133,3,-1,12 ,2,33,2,34,2,36,2,37,2,38 ,2,128,2,129,2,130,2,131,2,134 ,2,135,2,151,2,152,2,153,2,177 ,2,178,2,180,2,181,2,217,2,218 ,2,222,2,1,0,199,1,198,1,186 ,1,185,1,139,1,138,1,122,1,120 ,1,81,1,80,1,20,1,137,3,136 ,3,133,3,132,3,-1,24,1,83,1 ,84,1,116,1,117,1,128,1,129,1 ,1,0,132,2,90,2,89,2,-1,85 ,2,130,2,131,2,1,0,78,1,133 ,3,91,3,-1,96,2,97,2,108,2 ,109,2,134,2,135,2,195,2,200,2 ,217,2,218,2,1,0,236,1,225,1 ,224,1,205,1,204,1,201,1,200,1 ,197,1,196,1,195,1,184,1,119,1 ,118,1,108,1,96,1,83,1,23,1 ,136,3,112,3,103,3,102,3,-1,98 ,3,196,3,197,3,201,3,78,1,1 ,0,109,2,98,2,97,2,85,2,84 ,2,137,4,113,4,105,4,104,4,-1 ,36,2,96,2,97,2,98,2,134,2 ,135,2,195,2,196,2,217,2,218,2 ,1,0,129,1,128,1,117,1,116,1 ,84,1,83,1,24,1,137,3,136,3 ,104,3,103,3,102,3,-1,197,3,78 ,1,1,0,131,2,130,2,85,2,105 ,4,-1,108,3,109,3,200,3,201,3 ,23,1,83,1,96,1,108,1,118,1 ,119,1,184,1,195,1,196,1,197,1 ,200,1,201,1,204,1,205,1,224,1 ,225,1,236,1,1,0,218,2,217,2 ,200,2,195,2,135,2,134,2,109,2 ,108,2,97,2,96,2,113,4,112,4 ,-1,108,3,109,3,200,3,201,3,24 ,1,83,1,84,1,116,1,117,1,128 ,1,129,1,1,0,218,2,217,2,196 ,2,195,2,135,2,134,2,98,2,97 ,2,96,2,36,2,113,4,112,4,-1 ,9,1,27,1,114,1,202,1,203,1 ,208,1,209,1,210,1,1,0,115,2 ,-1,126,3,127,3,78,1,1,0,229 ,2,228,2,220,2,219,2,215,2,194 ,2,193,2,192,2,187,2,186,2,150 ,2,107,2,106,2,95,2,94,2,93 ,2,82,2,81,2,25,2,125,4,-1 ,126,2,1,0,199,1,198,1,186,1 ,185,1,139,1,138,1,122,1,120,1 ,81,1,80,1,20,1,125,3,-1,8 ,1,10,1,11,1,28,1,114,1,126 ,1,127,1,202,1,1,0,125,2,115 ,2,-1,30,1,31,1,32,1,154,1 ,155,1,156,1,157,1,158,1,159,1 ,160,1,161,1,163,1,165,1,166,1 ,169,1,172,1,173,1,174,1,176,1 ,188,1,189,1,1,0,168,2,-1,21 ,2,162,2,164,2,167,2,171,2,190 ,2,1,0,78,1,170,3,-1,32,1 ,155,1,161,1,162,1,165,1,166,1 ,167,1,175,1,188,1,211,1,212,1 ,221,1,238,1,1,0,170,2,168,2 ,-1,31,1,154,1,156,1,161,1,162 ,1,163,1,164,1,175,1,176,1,1 ,0,170,2,168,2,-1,78,1,1,0 ,8,2,-1,1,0,210,1,209,1,208 ,1,203,1,202,1,114,1,27,1,9 ,1,-1,3,0,10,1,-1,4,0,11 ,1,-1,28,1,-1,25,2,81,2,82 ,2,93,2,94,2,95,2,106,2,107 ,2,150,2,186,2,187,2,192,2,193 ,2,194,2,215,2,219,2,220,2,228 ,2,229,2,1,0,78,1,127,3,126 ,3,-1,20,1,80,1,81,1,120,1 ,122,1,138,1,139,1,185,1,186,1 ,198,1,199,1,1,0,126,2,-1,26 ,2,82,2,140,2,141,2,187,2,1 ,0,78,1,127,3,-1,1,0,202,1 ,127,1,126,1,114,1,28,1,11,1 ,10,1,8,1,-1,78,1,1,0,203 ,2,9,2,-1,27,1,-1,25,2,81 ,2,82,2,93,2,94,2,95,2,106 ,2,107,2,150,2,186,2,187,2,192 ,2,193,2,194,2,215,2,219,2,220 ,2,228,2,229,2,1,0,78,1,210 ,3,208,3,-1,20,1,80,1,81,1 ,120,1,122,1,138,1,139,1,185,1 ,186,1,198,1,199,1,1,0,208,2 ,-1,26,2,82,2,140,2,141,2,187 ,2,1,0,78,1,210,3,-1,30,1 ,31,1,32,1,154,1,155,1,156,1 ,157,1,158,1,159,1,160,1,161,1 ,163,1,165,1,166,1,169,1,172,1 ,173,1,174,1,176,1,188,1,189,1 ,1,0,209,2,-1,22,2,163,2,164 ,2,169,2,171,2,189,2,190,2,213 ,2,214,2,237,2,1,0,78,1,209 ,3,-1,21,1,22,1,188,1,189,1 ,190,1,211,1,212,1,213,1,214,1 ,221,1,237,1,238,1,4,0,209,2 ,-1,19,1,80,1,92,1,121,1,123 ,1,124,1,143,1,148,1,149,1,183 ,1,185,1,191,1,206,1,207,1,216 ,1,223,1,226,1,227,1,230,1,231 ,1,232,1,235,1,1,0,234,2,233 ,2,222,2,217,2,151,2,134,2,130 ,2,128,2,38,2,37,2,34,2,33 ,2,12,2,-1,25,2,81,2,82,2 ,93,2,94,2,95,2,106,2,107,2 ,150,2,186,2,187,2,192,2,193,2 ,194,2,215,2,219,2,220,2,228,2 ,229,2,1,0,78,1,218,3,181,3 ,180,3,179,3,178,3,177,3,153,3 ,152,3,135,3,131,3,129,3,36,3 ,35,3,-1,20,1,80,1,81,1,120 ,1,122,1,138,1,139,1,185,1,186 ,1,198,1,199,1,1,0,222,2,218 ,2,217,2,181,2,180,2,178,2,177 ,2,153,2,152,2,151,2,135,2,134 ,2,131,2,130,2,129,2,128,2,38 ,2,37,2,36,2,34,2,33,2,12 ,2,-1,92,2,93,2,142,2,143,2 ,191,2,192,2,220,2,230,2,1,0 ,235,1,232,1,231,1,230,1,227,1 ,226,1,223,1,216,1,207,1,206,1 ,191,1,185,1,183,1,149,1,148,1 ,143,1,124,1,123,1,121,1,92,1 ,80,1,19,1,35,3,-1,92,2,93 ,2,94,2,142,2,144,2,145,2,191 ,2,192,2,193,2,1,0,199,1,198 ,1,186,1,185,1,139,1,138,1,122 ,1,120,1,81,1,80,1,20,1,35 ,3,-1,26,2,82,2,140,2,141,2 ,187,2,1,0,78,1,179,3,-1,121 ,2,183,2,223,2,226,2,228,2,229 ,2,1,0,189,1,188,1,176,1,174 ,1,173,1,172,1,169,1,166,1,165 ,1,163,1,161,1,160,1,159,1,158 ,1,157,1,156,1,155,1,154,1,32 ,1,31,1,30,1,234,3,233,3,-1 ,121,2,183,2,215,2,223,2,226,2 ,227,2,228,2,1,0,238,1,221,1 ,212,1,211,1,188,1,175,1,167,1 ,166,1,165,1,162,1,161,1,155,1 ,32,1,233,3,-1,216,3,229,3,78 ,1,1,0,237,2,214,2,213,2,190 ,2,189,2,171,2,169,2,164,2,163 ,2,22,2,234,4,-1,215,2,216,2 ,226,2,227,2,228,2,229,2,4,0 ,238,1,237,1,221,1,214,1,213,1 ,212,1,211,1,190,1,189,1,188,1 ,22,1,21,1,234,3,233,3,-1,1 ,0,236,1,225,1,224,1,205,1,204 ,1,201,1,200,1,197,1,196,1,195 ,1,184,1,119,1,118,1,108,1,96 ,1,83,1,23,1,-1,24,1,-1,78 ,1,1,0,109,2,98,2,97,2,85 ,2,84,2,-1,115,2,1,0,210,1 ,209,1,208,1,203,1,202,1,114,1 ,27,1,9,1,117,3,-1,115,2,125 ,2,1,0,202,1,127,1,126,1,114 ,1,28,1,11,1,10,1,8,1,117 ,3,-1,9,1,27,1,114,1,202,1 ,203,1,208,1,209,1,210,1,1,0 ,116,2,-1,8,1,10,1,11,1,28 ,1,114,1,126,1,127,1,202,1,1 ,0,116,2,-1,25,2,81,2,82,2 ,93,2,94,2,95,2,106,2,107,2 ,150,2,186,2,187,2,192,2,193,2 ,194,2,215,2,219,2,220,2,228,2 ,229,2,1,0,78,1,181,3,180,3 ,153,3,12,3,-1,19,1,80,1,92 ,1,121,1,123,1,124,1,143,1,148 ,1,149,1,183,1,185,1,191,1,206 ,1,207,1,216,1,223,1,226,1,227 ,1,230,1,231,1,232,1,235,1,1 ,0,236,2,234,2,233,2,225,2,222 ,2,179,2,178,2,177,2,152,2,151 ,2,38,2,37,2,35,2,-1,20,1 ,80,1,81,1,120,1,122,1,138,1 ,139,1,185,1,186,1,198,1,199,1 ,1,0,181,2,180,2,179,2,178,2 ,177,2,153,2,152,2,151,2,12,2 ,-1,92,2,93,2,142,2,143,2,191 ,2,192,2,220,2,230,2,1,0,235 ,1,232,1,231,1,230,1,227,1,226 ,1,223,1,216,1,207,1,206,1,191 ,1,185,1,183,1,149,1,148,1,143 ,1,124,1,123,1,121,1,92,1,80 ,1,19,1,35,3,-1,92,2,93,2 ,94,2,142,2,144,2,145,2,191,2 ,192,2,193,2,1,0,199,1,198,1 ,186,1,185,1,139,1,138,1,122,1 ,120,1,81,1,80,1,20,1,35,3 ,-1,121,2,183,2,223,2,226,2,228 ,2,229,2,1,0,189,1,188,1,176 ,1,174,1,173,1,172,1,169,1,166 ,1,165,1,163,1,161,1,160,1,159 ,1,158,1,157,1,156,1,155,1,154 ,1,32,1,31,1,30,1,236,3,234 ,3,233,3,225,3,222,3,38,3,37 ,3,-1,121,2,183,2,215,2,223,2 ,226,2,227,2,228,2,1,0,238,1 ,221,1,212,1,211,1,188,1,175,1 ,167,1,166,1,165,1,162,1,161,1 ,155,1,32,1,236,3,233,3,225,3 ,222,3,38,3,37,3,-1,216,3,229 ,3,78,1,1,0,237,2,214,2,213 ,2,190,2,189,2,171,2,169,2,164 ,2,163,2,22,2,234,4,-1,215,2 ,216,2,226,2,227,2,228,2,229,2 ,4,0,238,1,237,1,221,1,214,1 ,213,1,212,1,211,1,190,1,189,1 ,188,1,22,1,21,1,236,3,234,3 ,233,3,225,3,222,3,38,3,37,3 ,-1,23,1,-1,1,0,129,1,128,1 ,117,1,116,1,84,1,83,1,24,1 ,-1,12,2,33,2,34,2,37,2,38 ,2,128,2,130,2,134,2,151,2,217 ,2,222,2,233,2,234,2,1,0,235 ,1,232,1,231,1,230,1,227,1,226 ,1,223,1,216,1,207,1,206,1,191 ,1,185,1,183,1,149,1,148,1,143 ,1,124,1,123,1,121,1,92,1,80 ,1,19,1,36,3,34,3,33,3,-1 ,12,2,33,2,34,2,36,2,37,2 ,38,2,128,2,129,2,130,2,131,2 ,134,2,135,2,151,2,152,2,153,2 ,177,2,178,2,180,2,181,2,217,2 ,218,2,222,2,1,0,199,1,198,1 ,186,1,185,1,139,1,138,1,122,1 ,120,1,81,1,80,1,20,1,36,3 ,34,3,33,3,-1,23,1,83,1,96 ,1,108,1,118,1,119,1,184,1,195 ,1,196,1,197,1,200,1,201,1,204 ,1,205,1,224,1,225,1,236,1,1 ,0,218,2,217,2,200,2,195,2,135 ,2,134,2,109,2,108,2,97,2,96 ,2,-1,84,2,85,2,97,2,98,2 ,109,2,1,0,78,1,201,3,197,3 ,196,3,98,3,-1,35,2,37,2,38 ,2,151,2,152,2,177,2,178,2,179 ,2,222,2,225,2,233,2,234,2,236 ,2,1,0,235,1,232,1,231,1,230 ,1,227,1,226,1,223,1,216,1,207 ,1,206,1,191,1,185,1,183,1,149 ,1,148,1,143,1,124,1,123,1,121 ,1,92,1,80,1,19,1,34,3,33 ,3,-1,12,2,151,2,152,2,153,2 ,177,2,178,2,179,2,180,2,181,2 ,1,0,199,1,198,1,186,1,185,1 ,139,1,138,1,122,1,120,1,81,1 ,80,1,20,1,34,3,33,3,-1,24 ,1,83,1,84,1,116,1,117,1,128 ,1,129,1,1,0,218,2,217,2,196 ,2,195,2,135,2,134,2,98,2,97 ,2,96,2,36,2,-1,96,2,97,2 ,108,2,109,2,134,2,135,2,195,2 ,200,2,217,2,218,2,1,0,236,1 ,225,1,224,1,205,1,204,1,201,1 ,200,1,197,1,196,1,195,1,184,1 ,119,1,118,1,108,1,96,1,83,1 ,23,1,201,3,200,3,109,3,108,3 ,-1,36,2,96,2,97,2,98,2,134 ,2,135,2,195,2,196,2,217,2,218 ,2,1,0,129,1,128,1,117,1,116 ,1,84,1,83,1,24,1,201,3,200 ,3,109,3,108,3,-1,85,2,130,2 ,131,2,1,0,78,1,197,3,-1,78 ,1,1,0,131,2,130,2,85,2,-1 ,115,2,1,0,210,1,209,1,208,1 ,203,1,202,1,114,1,27,1,9,1 ,119,3,-1,115,2,125,2,1,0,202 ,1,127,1,126,1,114,1,28,1,11 ,1,10,1,8,1,119,3,-1,9,1 ,27,1,114,1,202,1,203,1,208,1 ,209,1,210,1,1,0,205,2,204,2 ,118,2,-1,8,1,10,1,11,1,28 ,1,114,1,126,1,127,1,202,1,1 ,0,204,2,118,2,-1,9,2,203,2 ,1,0,78,1,205,3,-1,30,1,31 ,1,32,1,154,1,155,1,156,1,157 ,1,158,1,159,1,160,1,161,1,163 ,1,165,1,166,1,169,1,172,1,173 ,1,174,1,176,1,188,1,189,1,1 ,0,224,2,184,2,-1,32,1,155,1 ,161,1,162,1,165,1,166,1,167,1 ,175,1,188,1,211,1,212,1,221,1 ,238,1,1,0,224,2,184,2,-1,31 ,1,154,1,156,1,161,1,162,1,163 ,1,164,1,175,1,176,1,1,0,224 ,2,184,2,-1,1,0,13,1,-1,1 ,0,14,1,-1,1,0,15,1,-1,1 ,0,16,1,-1,1,0,16,1,-1,1 ,0,17,1,-1,1,0,17,1,-1,1 ,0,235,1,232,1,231,1,230,1,227 ,1,226,1,223,1,216,1,207,1,206 ,1,191,1,185,1,183,1,149,1,148 ,1,143,1,124,1,123,1,121,1,92 ,1,80,1,19,1,-1,20,1,-1,78 ,1,1,0,229,2,228,2,220,2,219 ,2,215,2,194,2,193,2,192,2,187 ,2,186,2,150,2,107,2,106,2,95 ,2,94,2,93,2,82,2,81,2,25 ,2,-1,18,1,26,2,-1,115,2,1 ,0,210,1,209,1,208,1,203,1,202 ,1,114,1,27,1,9,1,122,3,-1 ,115,2,125,2,1,0,202,1,127,1 ,126,1,114,1,28,1,11,1,10,1 ,8,1,122,3,-1,9,1,27,1,114 ,1,202,1,203,1,208,1,209,1,210 ,1,1,0,120,2,-1,8,1,10,1 ,11,1,28,1,114,1,126,1,127,1 ,202,1,1,0,120,2,-1,23,1,83 ,1,96,1,108,1,118,1,119,1,184 ,1,195,1,196,1,197,1,200,1,201 ,1,204,1,205,1,224,1,225,1,236 ,1,1,0,146,2,144,2,142,2,140 ,2,138,2,-1,84,2,85,2,97,2 ,98,2,109,2,1,0,78,1,147,3 ,145,3,141,3,139,3,-1,24,1,83 ,1,84,1,116,1,117,1,128,1,129 ,1,1,0,147,2,146,2,145,2,144 ,2,142,2,141,2,140,2,139,2,138 ,2,-1,25,2,81,2,82,2,93,2 ,94,2,95,2,106,2,107,2,150,2 ,186,2,187,2,192,2,193,2,194,2 ,215,2,219,2,220,2,228,2,229,2 ,1,0,78,1,199,3,198,3,-1,94 ,3,95,3,106,3,107,3,144,3,145 ,3,193,3,194,3,219,3,231,3,232 ,3,78,1,1,0,229,2,228,2,220 ,2,219,2,215,2,194,2,193,2,192 ,2,187,2,186,2,150,2,107,2,106 ,2,95,2,94,2,93,2,82,2,81 ,2,25,2,199,4,198,4,-1,92,2 ,93,2,94,2,142,2,144,2,145,2 ,191,2,192,2,193,2,1,0,199,1 ,198,1,186,1,185,1,139,1,138,1 ,122,1,120,1,81,1,80,1,20,1 ,198,3,-1,95,3,194,3,78,1,1 ,0,187,2,141,2,140,2,82,2,26 ,2,199,4,-1,19,1,-1,1,0,199 ,1,198,1,186,1,185,1,139,1,138 ,1,122,1,120,1,81,1,80,1,20 ,1,-1,18,1,25,2,-1,78,1,1 ,0,187,2,141,2,140,2,82,2,26 ,2,-1,115,2,1,0,210,1,209,1 ,208,1,203,1,202,1,114,1,27,1 ,9,1,124,3,-1,115,2,125,2,1 ,0,202,1,127,1,126,1,114,1,28 ,1,11,1,10,1,8,1,124,3,-1 ,19,1,80,1,92,1,121,1,123,1 ,124,1,143,1,148,1,149,1,183,1 ,185,1,191,1,206,1,207,1,216,1 ,223,1,226,1,227,1,230,1,231,1 ,232,1,235,1,1,0,230,2,220,2 ,192,2,191,2,143,2,142,2,93,2 ,92,2,-1,25,2,81,2,82,2,93 ,2,94,2,95,2,106,2,107,2,150 ,2,186,2,187,2,192,2,193,2,194 ,2,215,2,219,2,220,2,228,2,229 ,2,1,0,78,1,232,3,231,3,219 ,3,194,3,193,3,145,3,144,3,107 ,3,106,3,95,3,94,3,-1,20,1 ,80,1,81,1,120,1,122,1,138,1 ,139,1,185,1,186,1,198,1,199,1 ,1,0,193,2,192,2,191,2,145,2 ,144,2,142,2,94,2,93,2,92,2 ,-1,26,2,82,2,140,2,141,2,187 ,2,1,0,78,1,194,3,95,3,-1 ,92,2,93,2,142,2,143,2,191,2 ,192,2,220,2,230,2,1,0,235,1 ,232,1,231,1,230,1,227,1,226,1 ,223,1,216,1,207,1,206,1,191,1 ,185,1,183,1,149,1,148,1,143,1 ,124,1,123,1,121,1,92,1,80,1 ,19,1,106,3,-1,94,3,95,3,106 ,3,107,3,144,3,145,3,193,3,194 ,3,219,3,231,3,232,3,78,1,1 ,0,229,2,228,2,220,2,219,2,215 ,2,194,2,193,2,192,2,187,2,186 ,2,150,2,107,2,106,2,95,2,94 ,2,93,2,82,2,81,2,25,2,107 ,4,-1,92,2,93,2,94,2,142,2 ,144,2,145,2,191,2,192,2,193,2 ,1,0,199,1,198,1,186,1,185,1 ,139,1,138,1,122,1,120,1,81,1 ,80,1,20,1,107,3,106,3,-1,146 ,2,147,2,148,2,150,2,1,0,236 ,1,225,1,224,1,205,1,204,1,201 ,1,200,1,197,1,196,1,195,1,184 ,1,119,1,118,1,108,1,96,1,83 ,1,23,1,143,3,-1,146,2,147,2 ,148,2,149,2,150,2,1,0,129,1 ,128,1,117,1,116,1,84,1,83,1 ,24,1,143,3,-1,215,3,216,3,227 ,3,78,1,1,0,190,2,171,2,167 ,2,164,2,162,2,21,2,232,4,219 ,4,-1,121,2,183,2,223,2,226,2 ,228,2,229,2,1,0,189,1,188,1 ,176,1,174,1,173,1,172,1,169,1 ,166,1,165,1,163,1,161,1,160,1 ,159,1,158,1,157,1,156,1,155,1 ,154,1,32,1,31,1,30,1,231,3 ,230,3,220,3,-1,121,2,183,2,215 ,2,223,2,226,2,227,2,228,2,1 ,0,238,1,221,1,212,1,211,1,188 ,1,175,1,167,1,166,1,165,1,162 ,1,161,1,155,1,32,1,232,3,231 ,3,230,3,219,3,-1,216,3,229,3 ,78,1,1,0,237,2,214,2,213,2 ,190,2,189,2,171,2,169,2,164,2 ,163,2,22,2,220,4,-1,215,2,216 ,2,226,2,227,2,228,2,229,2,4 ,0,238,1,237,1,221,1,214,1,213 ,1,212,1,211,1,190,1,189,1,188 ,1,22,1,21,1,232,3,231,3,230 ,3,220,3,219,3,-1,30,1,31,1 ,32,1,154,1,155,1,156,1,157,1 ,158,1,159,1,160,1,161,1,163,1 ,165,1,166,1,169,1,172,1,173,1 ,174,1,176,1,188,1,189,1,1,0 ,229,2,228,2,226,2,223,2,183,2 ,121,2,-1,21,2,162,2,164,2,167 ,2,171,2,190,2,1,0,78,1,227 ,3,216,3,215,3,-1,32,1,155,1 ,161,1,162,1,165,1,166,1,167,1 ,175,1,188,1,211,1,212,1,221,1 ,238,1,1,0,228,2,227,2,226,2 ,223,2,215,2,183,2,121,2,-1,22 ,2,163,2,164,2,169,2,171,2,189 ,2,190,2,213,2,214,2,237,2,1 ,0,78,1,229,3,216,3,-1,165,2 ,166,2,167,2,169,2,171,2,1,0 ,78,1,121,3,-1,31,1,154,1,156 ,1,161,1,162,1,163,1,164,1,175 ,1,176,1,1,0,223,2,183,2,-1 ,21,1,22,1,188,1,189,1,190,1 ,211,1,212,1,213,1,214,1,221,1 ,237,1,238,1,4,0,229,2,228,2 ,227,2,226,2,216,2,215,2,-1,9 ,1,27,1,114,1,202,1,203,1,208 ,1,209,1,210,1,1,0,207,2,206 ,2,123,2,-1,8,1,10,1,11,1 ,28,1,114,1,126,1,127,1,202,1 ,1,0,206,2,123,2,-1,9,2,203 ,2,1,0,78,1,207,3,-1,23,1 ,83,1,96,1,108,1,118,1,119,1 ,184,1,195,1,196,1,197,1,200,1 ,201,1,204,1,205,1,224,1,225,1 ,236,1,1,0,150,2,148,2,147,2 ,146,2,-1,84,2,85,2,97,2,98 ,2,109,2,1,0,78,1,235,3,149 ,3,-1,24,1,83,1,84,1,116,1 ,117,1,128,1,129,1,1,0,150,2 ,149,2,148,2,147,2,146,2,-1,96 ,2,97,2,108,2,109,2,134,2,135 ,2,195,2,200,2,217,2,218,2,1 ,0,236,1,225,1,224,1,205,1,204 ,1,201,1,200,1,197,1,196,1,195 ,1,184,1,119,1,118,1,108,1,96 ,1,83,1,23,1,235,3,-1,36,2 ,96,2,97,2,98,2,134,2,135,2 ,195,2,196,2,217,2,218,2,1,0 ,129,1,128,1,117,1,116,1,84,1 ,83,1,24,1,235,3,-1,78,1,1 ,0,190,2,171,2,167,2,164,2,162 ,2,21,2,-1,18,1,22,2,-1,29 ,1,-1,1,0,189,1,188,1,176,1 ,174,1,173,1,172,1,169,1,166,1 ,165,1,163,1,161,1,160,1,159,1 ,158,1,157,1,156,1,155,1,154,1 ,32,1,31,1,30,1,-1,30,1,31 ,1,32,1,154,1,155,1,156,1,157 ,1,158,1,159,1,160,1,161,1,163 ,1,165,1,166,1,169,1,172,1,173 ,1,174,1,176,1,188,1,189,1,1 ,0,175,2,-1,32,1,155,1,161,1 ,162,1,165,1,166,1,167,1,175,1 ,188,1,211,1,212,1,221,1,238,1 ,1,0,175,2,-1,31,1,154,1,156 ,1,161,1,162,1,163,1,164,1,175 ,1,176,1,1,0,175,2,-1,19,1 ,80,1,92,1,121,1,123,1,124,1 ,143,1,148,1,149,1,183,1,185,1 ,191,1,206,1,207,1,216,1,223,1 ,226,1,227,1,230,1,231,1,232,1 ,235,1,1,0,213,2,211,2,-1,25 ,2,81,2,82,2,93,2,94,2,95 ,2,106,2,107,2,150,2,186,2,187 ,2,192,2,193,2,194,2,215,2,219 ,2,220,2,228,2,229,2,1,0,78 ,1,238,3,237,3,221,3,214,3,212 ,3,-1,20,1,80,1,81,1,120,1 ,122,1,138,1,139,1,185,1,186,1 ,198,1,199,1,1,0,214,2,213,2 ,212,2,211,2,-1,92,2,93,2,142 ,2,143,2,191,2,192,2,220,2,230 ,2,1,0,235,1,232,1,231,1,230 ,1,227,1,226,1,223,1,216,1,207 ,1,206,1,191,1,185,1,183,1,149 ,1,148,1,143,1,124,1,123,1,121 ,1,92,1,80,1,19,1,221,3,-1 ,94,3,95,3,106,3,107,3,144,3 ,145,3,193,3,194,3,219,3,231,3 ,232,3,78,1,1,0,229,2,228,2 ,220,2,219,2,215,2,194,2,193,2 ,192,2,187,2,186,2,150,2,107,2 ,106,2,95,2,94,2,93,2,82,2 ,81,2,25,2,238,4,-1,92,2,93 ,2,94,2,142,2,144,2,145,2,191 ,2,192,2,193,2,1,0,199,1,198 ,1,186,1,185,1,139,1,138,1,122 ,1,120,1,81,1,80,1,20,1,221 ,3,-1,95,3,194,3,78,1,1,0 ,187,2,141,2,140,2,82,2,26,2 ,238,4,-1,26,2,82,2,140,2,141 ,2,187,2,1,0,78,1,237,3,-1 ,18,1,21,2,-1,78,1,1,0,237 ,2,214,2,213,2,190,2,189,2,171 ,2,169,2,164,2,163,2,22,2,-1 ,30,1,31,1,32,1,154,1,155,1 ,156,1,157,1,158,1,159,1,160,1 ,161,1,163,1,165,1,166,1,169,1 ,172,1,173,1,174,1,176,1,188,1 ,189,1,1,0,176,2,174,2,173,2 ,172,2,154,2,29,2,-1,29,1,30 ,2,-1,32,1,155,1,161,1,162,1 ,165,1,166,1,167,1,175,1,188,1 ,211,1,212,1,221,1,238,1,1,0 ,176,2,174,2,173,2,172,2,154,2 ,30,2,29,2,-1,31,1,154,1,156 ,1,161,1,162,1,163,1,164,1,175 ,1,176,1,1,0,176,2,173,2,172 ,2,154,2,30,2,29,2,-1,165,2 ,166,2,167,2,169,2,171,2,1,0 ,78,1,174,3,-1,31,1,-1,1,0 ,238,1,221,1,212,1,211,1,188,1 ,175,1,167,1,166,1,165,1,162,1 ,161,1,155,1,32,1,-1,19,1,80 ,1,92,1,121,1,123,1,124,1,143 ,1,148,1,149,1,183,1,185,1,191 ,1,206,1,207,1,216,1,223,1,226 ,1,227,1,230,1,231,1,232,1,235 ,1,1,0,159,2,157,2,156,2,-1 ,25,2,81,2,82,2,93,2,94,2 ,95,2,106,2,107,2,150,2,186,2 ,187,2,192,2,193,2,194,2,215,2 ,219,2,220,2,228,2,229,2,1,0 ,78,1,160,3,158,3,-1,20,1,80 ,1,81,1,120,1,122,1,138,1,139 ,1,185,1,186,1,198,1,199,1,1 ,0,160,2,159,2,158,2,157,2,156 ,2,-1,4,0,238,1,237,1,221,1 ,214,1,213,1,212,1,211,1,190,1 ,189,1,188,1,22,1,21,1,-1,30 ,1,31,1,32,1,154,1,155,1,156 ,1,157,1,158,1,159,1,160,1,161 ,1,163,1,165,1,166,1,169,1,172 ,1,173,1,174,1,176,1,188,1,189 ,1,1,0,174,2,173,2,172,2,155 ,2,29,2,-1,29,1,30,2,-1,32 ,1,155,1,161,1,162,1,165,1,166 ,1,167,1,175,1,188,1,211,1,212 ,1,221,1,238,1,1,0,173,2,172 ,2,155,2,30,2,29,2,-1,22,2 ,163,2,164,2,169,2,171,2,189,2 ,190,2,213,2,214,2,237,2,1,0 ,78,1,174,3,-1,31,1,154,1,156 ,1,161,1,162,1,163,1,164,1,175 ,1,176,1,1,0,174,2,173,2,172 ,2,155,2,30,2,29,2,-1,1,0 ,176,1,175,1,164,1,163,1,162,1 ,161,1,156,1,154,1,31,1,-1,32 ,1,-1,19,1,80,1,92,1,121,1 ,123,1,124,1,143,1,148,1,149,1 ,183,1,185,1,191,1,206,1,207,1 ,216,1,223,1,226,1,227,1,230,1 ,231,1,232,1,235,1,1,0,158,2 ,157,2,-1,25,2,81,2,82,2,93 ,2,94,2,95,2,106,2,107,2,150 ,2,186,2,187,2,192,2,193,2,194 ,2,215,2,219,2,220,2,228,2,229 ,2,1,0,78,1,160,3,159,3,-1 ,20,1,80,1,81,1,120,1,122,1 ,138,1,139,1,185,1,186,1,198,1 ,199,1,1,0,160,2,159,2,158,2 ,157,2,-1,78,1,1,0,171,2,169 ,2,167,2,166,2,165,2,-1,1,0 ,46,1,45,1,44,1,43,1,42,1 ,41,1,40,1,39,1,-1,30,1,31 ,1,32,1,154,1,155,1,156,1,157 ,1,158,1,159,1,160,1,161,1,163 ,1,165,1,166,1,169,1,172,1,173 ,1,174,1,176,1,188,1,189,1,1 ,0,49,2,48,2,47,2,-1,32,1 ,155,1,161,1,162,1,165,1,166,1 ,167,1,175,1,188,1,211,1,212,1 ,221,1,238,1,1,0,49,2,48,2 ,47,2,-1,31,1,154,1,156,1,161 ,1,162,1,163,1,164,1,175,1,176 ,1,1,0,49,2,48,2,47,2,-1 ,47,1,45,1,42,1,41,1,39,1 ,-1,18,1,49,2,48,2,46,2,44 ,2,43,2,40,2,-1,4,0,48,1 ,47,1,46,1,45,1,40,1,39,1 ,-1,1,0,43,1,41,1,-1,78,1 ,1,0,49,2,44,2,42,2,-1,3 ,0,49,1,48,1,47,1,44,1,43 ,1,42,1,41,1,40,1,39,1,-1 ,78,1,1,0,46,2,45,2,-1,1 ,0,67,1,66,1,64,1,62,1,60 ,1,58,1,57,1,56,1,55,1,54 ,1,52,1,50,1,-1,78,1,1,0 ,65,2,63,2,61,2,59,2,53,2 ,51,2,-1,25,2,81,2,82,2,93 ,2,94,2,95,2,106,2,107,2,150 ,2,186,2,187,2,192,2,193,2,194 ,2,215,2,219,2,220,2,228,2,229 ,2,1,0,78,1,71,3,68,3,-1 ,19,1,80,1,92,1,121,1,123,1 ,124,1,143,1,148,1,149,1,183,1 ,185,1,191,1,206,1,207,1,216,1 ,223,1,226,1,227,1,230,1,231,1 ,232,1,235,1,1,0,70,2,69,2 ,-1,20,1,80,1,81,1,120,1,122 ,1,138,1,139,1,185,1,186,1,198 ,1,199,1,1,0,71,2,70,2,69 ,2,68,2,-1,23,1,83,1,96,1 ,108,1,118,1,119,1,184,1,195,1 ,196,1,197,1,200,1,201,1,204,1 ,205,1,224,1,225,1,236,1,1,0 ,72,2,-1,24,1,83,1,84,1,116 ,1,117,1,128,1,129,1,1,0,72 ,2,-1,30,1,31,1,32,1,154,1 ,155,1,156,1,157,1,158,1,159,1 ,160,1,161,1,163,1,165,1,166,1 ,169,1,172,1,173,1,174,1,176,1 ,188,1,189,1,1,0,182,2,77,2 ,76,2,75,2,74,2,73,2,-1,32 ,1,155,1,161,1,162,1,165,1,166 ,1,167,1,175,1,188,1,211,1,212 ,1,221,1,238,1,1,0,182,2,77 ,2,76,2,75,2,74,2,73,2,-1 ,31,1,154,1,156,1,161,1,162,1 ,163,1,164,1,175,1,176,1,1,0 ,182,2,77,2,76,2,75,2,74,2 ,73,2,-1,77,1,76,1,75,1,74 ,1,73,1,72,1,71,1,70,1,69 ,1,68,1,66,1,63,1,62,1,59 ,1,58,1,57,1,56,1,55,1,54 ,1,51,1,50,1,-1,18,1,67,2 ,65,2,64,2,61,2,60,2,53,2 ,52,2,-1,1,0,182,1,-1,4,0 ,77,1,75,1,74,1,73,1,72,1 ,71,1,70,1,69,1,67,1,66,1 ,65,1,64,1,63,1,62,1,61,1 ,60,1,59,1,58,1,57,1,53,1 ,52,1,51,1,50,1,-1,1,0,56 ,1,55,1,54,1,-1,78,1,1,0 ,182,2,76,2,68,2,-1,3,0,182 ,1,77,1,76,1,73,1,72,1,71 ,1,70,1,68,1,65,1,63,1,61 ,1,59,1,57,1,55,1,54,1,53 ,1,52,1,51,1,50,1,-1,78,1 ,1,0,74,2,67,2,66,2,64,2 ,62,2,56,2,-1,1,0,75,1,69 ,1,60,1,58,1,-1,3,0,182,1 ,77,1,76,1,75,1,74,1,69,1 ,68,1,64,1,62,1,60,1,58,1 ,56,1,54,1,53,1,52,1,51,1 ,50,1,-1,1,0,73,1,72,1,71 ,1,70,1,67,1,66,1,61,1,59 ,1,57,1,55,1,-1,78,1,1,0 ,65,2,63,2,-1,1,0,79,1,-1 }; short mtStart = 3917; short int mtMap[] = { 01,01,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00,00 ,00,00,00,00,00,00,00,00,00}; short int mtPaths[] = { 4,-4,-4,-4,-2,01000,-1,-3,-4,-4 ,-2,01000,-1,-3,-4,-2,01000,-1,-1,-1 ,-3,-2,01000,-3,-1,0,3,-4,-4,-4 ,-2,01000,-1,-3,-4,-2,01000,-1,-1,-3 ,-4,-2,01000,-1,-3,-1,0,4,-4,-2 ,01000,-3,-4,-2,01000,-3,-4,-2,01000,-3 ,-2,01000,-3,-1,-1,-1,0,4,-4,-2 ,01000,-3,-4,-4,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,-1,0,6,-4 ,-4,-2,01000,-3,-4,-2,01000,-3,-4,-2 ,01000,-1,-3,-1,-1,-3,-4,-2,01000,-3 ,-4,-2,01000,-3,-4,-2,01000,-1,-3,-1 ,-1,-1,0,6,-4,-4,-2,01000,-3,-4 ,-2,01000,-3,-2,01000,-3,-1,-1,-3,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-3 ,-1,-1,-1,0,4,-4,-2,01000,-3,-4 ,-4,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-3,-1,-1,-1,0,4,-4 ,-2,01000,-3,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-3,-2,01000,-3,-1,-1,-1,0 ,4,-4,-2,01000,-3,-4,-2,01000,-3,-4 ,-2,01000,-3,-2,01000,-3,-1,-1,-1,0 ,3,-4,-4,-2,01000,-1,-3,-4,-2,01000 ,-3,-4,-2,01000,-1,-3,-1,-1,0,3 ,-4,-4,-2,01000,-1,-3,-4,-2,01000,-3 ,-2,01000,-3,-1,-1,0,3,-4,-2,01000 ,-3,-4,-4,-2,01000,-1,-3,-2,01000,-3 ,-1,-1,0,3,-4,-2,01000,-3,-4,-2 ,01000,-3,-2,01000,-3,-1,-1,0,4,-4 ,-2,01000,-3,-4,-2,01000,-3,-4,-2,01000 ,-3,-2,01000,-3,-1,-1,-1,0,4,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-3 ,-2,01000,-1,-1,0,4,-4,-2,01000,-3 ,-4,-2,01000,-3,-2,01000,-3,-2,01000,-1 ,-1,0,5,-4,-4,-2,01000,-3,-2,01000 ,-1,-3,-4,-2,01000,-3,-4,-2,01000,-3 ,-2,01000,-3,-1,-1,-1,0,4,-4,-4 ,-4,-2,01000,-1,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,-3,-2,01000,-3,-1,0,4 ,-4,-4,-2,01000,-1,-3,-4,-2,01000,-3 ,-4,-2,01000,-3,-4,-2,01000,-1,-3,-1 ,-1,-1,0,4,-4,-4,-2,01000,-1,-3 ,-4,-4,-2,01000,-1,-3,-4,-4,-2,01000 ,-1,-3,-2,01000,-3,-1,-1,-1,0,4 ,-4,-4,-4,-2,01000,-1,-3,-2,01000,-1 ,-3,-4,-2,01000,-3,-2,01000,-1,-1,0 ,4,-4,-4,-2,01000,-3,-2,01000,-1,-3 ,-4,-2,01000,-3,-2,01000,-1,-1,0,3 ,-4,-2,01000,-3,-4,-4,-2,01000,-1,-3 ,-4,-2,01000,-1,-3,-1,-1,0,3,-4 ,-4,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-3,-1,-1,0,3,-4,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-3,-4 ,-2,01000,-1,-3,-1,0,3,-4,-4,-2 ,01000,-3,-2,01000,-1,-3,-4,-2,01000,-1 ,-3,-1,0,3,-4,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-3,-2,01000,-3,-1,0 ,3,-4,-4,-2,01000,-3,-2,01000,-1,-3 ,-2,01000,-3,-1,0,3,-4,-2,01000,-3 ,-4,-4,-2,01000,-1,-3,-4,-2,01000,-1 ,-1,-1,0,3,-4,-2,01000,-3,-4,-2 ,01000,-3,-4,-2,01000,-1,-3,-1,-1,0 ,3,-4,-2,01000,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-1,0,3,-4,-2,01000 ,-3,-4,-2,01000,-3,-4,-2,01000,-1,-1 ,-1,0,3,-4,-2,01000,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,3,-4,-2,01000 ,-3,-4,-2,01000,-3,-4,-2,01000,-1,-1 ,-1,0,3,-4,-2,01000,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,2,-4,-2,01000 ,-3,-4,-2,01000,-1,-1,0,2,-4,-2 ,01000,-3,-2,01000,-1,0,4,-4,-2,01000 ,-3,-4,-4,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,-1,0,4,-4,-2 ,01000,-3,-4,-2,01000,-3,-4,-2,01000,-3 ,-2,01000,-1,-1,-1,0,4,-4,-4,-4 ,-2,01000,-1,-3,-4,-4,-2,01000,-1,-3 ,-4,-2,01000,-1,-1,-1,-3,-2,01000,-1 ,0,4,-4,-4,-4,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,-3 ,-2,01000,-1,0,3,-4,-2,01000,-3,-4 ,-4,-2,01000,-1,-3,-4,-2,01000,-1,-1 ,-1,0,3,-4,-2,01000,-3,-4,-4,-2 ,01000,-1,-3,-2,01000,-1,-1,0,3,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-1 ,-1,0,3,-4,-4,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-4,-2,01000,-1,-1 ,-1,0,3,-4,-4,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,0 ,3,-4,-4,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,3,-4,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-1,-1,0 ,2,-4,-4,-2,01000,-1,-3,-4,-2,01000 ,-1,-3,-1,0,2,-4,-2,01000,-3,-4 ,-2,01000,-1,-3,-1,0,2,-4,-2,01000 ,-3,-2,01000,-3,-1,0,2,-4,-4,-2 ,01000,-1,-3,-4,-2,01000,-1,-1,0,2 ,-4,-4,-2,01000,-1,-3,-2,01000,-1,0 ,2,-4,-2,01000,-3,-2,01000,-1,0,4 ,-4,-2,01000,-3,-4,-2,01000,-3,-2,01000 ,-3,-2,01000,-1,-1,0,4,-4,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-3,-2,01000 ,-1,-1,0,5,-4,-4,-2,01000,-3,-2 ,01000,-3,-2,01000,-1,-3,-2,01000,-3,-4 ,-2,01000,-1,-3,-3,-1,0,4,-4,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,0 ,4,-4,-4,-4,-2,01000,-1,-3,-2,01000 ,-1,-3,-4,-4,-2,01000,-1,-3,-2,01000 ,-1,-1,0,4,-4,-4,-4,-2,01000,-1 ,-3,-4,-2,01000,-1,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,4,-4,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,0,4,-4,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-3,-4 ,-2,01000,-3,-2,01000,-1,-1,0,5,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-3 ,-2,01000,-1,-3,-2,01000,-1,0,5,-4 ,-4,-2,01000,-3,-2,01000,-3,-2,01000,-1 ,-3,-2,01000,-3,-2,01000,-1,0,7,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-3 ,-4,-2,01000,-1,-1,-3,-4,-2,01000,-3 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,0 ,7,-4,-2,01000,-3,-4,-2,01000,-3,-2 ,01000,-3,-2,01000,-1,-3,-4,-2,01000,-3 ,-2,01000,-3,-2,01000,-1,-1,0,7,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-3 ,-2,01000,-1,-3,-4,-2,01000,-3,-2,01000 ,-3,-2,01000,-1,-1,0,3,-4,-4,-2 ,01000,-1,-3,-4,-2,01000,-1,-3,-4,-2 ,01000,-1,-1,0,3,-4,-4,-4,-2,01000 ,-1,-3,-2,01000,-3,-2,01000,-1,-1,0 ,3,-4,-2,01000,-3,-4,-2,01000,-1,-3 ,-4,-2,01000,-1,-1,0,3,-4,-4,-2 ,01000,-3,-2,01000,-3,-2,01000,-1,-1,0 ,3,-4,-4,-2,01000,-1,-3,-2,01000,-3 ,-4,-2,01000,-1,-1,0,3,-4,-2,01000 ,-3,-2,01000,-3,-4,-2,01000,-1,-1,0 ,3,-4,-2,01000,-3,-2,01000,-3,-4,-2 ,01000,-1,-1,0,3,-4,-4,-2,01000,-1 ,-3,-4,-2,01000,-1,-3,-2,01000,-1,0 ,3,-4,-2,01000,-3,-4,-2,01000,-1,-3 ,-2,01000,-1,0,3,-4,-4,-2,01000,-1 ,-3,-2,01000,-3,-2,01000,-1,0,3,-4 ,-2,01000,-3,-2,01000,-3,-2,01000,-1,0 ,5,-4,-2,01000,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-1,0,5,-4,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,0 ,5,-4,-2,01000,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,0,5,-4,-2,01000,-3,-4 ,-2,01000,-3,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,4,-4,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-1,-3,-2 ,01000,-1,0,5,-4,-2,01000,-3,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-3,-2,01000 ,-1,-1,0,5,-4,-2,01000,-3,-4,-2 ,01000,-3,-2,01000,-3,-2,01000,-1,-3,-2 ,01000,-1,0,4,-4,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-1,0,4,-4,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,0,4,-4,-4 ,-2,01000,-3,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,3,-4,-4,-2 ,01000,-1,-3,-4,-2,01000,-3,-2,01000,-1 ,-1,0,3,-4,-2,01000,-3,-4,-4,-2 ,01000,-1,-3,-2,01000,-1,-1,0,3,-4 ,-2,01000,-3,-4,-2,01000,-3,-2,01000,-1 ,-1,0,4,-4,-4,-4,-2,01000,-1,-3 ,-2,01000,-1,-3,-4,-2,01000,-3,-2,01000 ,-1,-1,0,4,-4,-4,-2,01000,-3,-2 ,01000,-1,-3,-4,-2,01000,-3,-2,01000,-1 ,-1,0,4,-4,-4,-4,-2,01000,-1,-3 ,-2,01000,-1,-3,-4,-4,-2,01000,-1,-3 ,-2,01000,-1,-1,0,4,-4,-4,-2,01000 ,-3,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-1,0,4,-4,-2,01000 ,-3,-4,-2,01000,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,-1,0,4,-4,-4,-2,01000 ,-3,-2,01000,-1,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,0,3,-4,-4,-4,-2,01000 ,-1,-3,-2,01000,-1,-3,-4,-2,01000,-1 ,-1,0,3,-4,-4,-2,01000,-3,-2,01000 ,-1,-3,-4,-2,01000,-1,-1,0,3,-4 ,-4,-4,-2,01000,-1,-3,-2,01000,-1,-3 ,-2,01000,-1,0,3,-4,-4,-2,01000,-3 ,-2,01000,-1,-3,-2,01000,-1,0,4,-4 ,-4,-4,-4,-2,01000,-1,-3,-2,01000,-1 ,-3,-4,-4,-2,01000,-1,-3,-2,01000,-1 ,-1,-1,0,4,-4,-4,-4,-4,-2,01000 ,-1,-3,-2,01000,-1,-3,-4,-2,01000,-3 ,-2,01000,-1,-1,-1,0,4,-4,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,0,4,-4,-4 ,-2,01000,-3,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,0,3,-4,-4,-4 ,-2,01000,-3,-2,01000,-1,-3,-4,-2,01000 ,-1,-1,-1,0,3,-4,-4,-4,-4,-2 ,01000,-1,-3,-2,01000,-1,-3,-2,01000,-1 ,-1,0,3,-4,-4,-4,-2,01000,-1,-3 ,-2,01000,-1,-3,-4,-2,01000,-1,-1,0 ,3,-4,-4,-2,01000,-3,-2,01000,-1,-3 ,-4,-2,01000,-1,-1,0,3,-4,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-3,-2,01000 ,-1,0,3,-4,-4,-2,01000,-3,-2,01000 ,-1,-3,-2,01000,-1,0,3,-4,-4,-4 ,-2,01000,-1,-3,-4,-2,01000,-1,-1,-3 ,-2,01000,-1,0,3,-4,-4,-4,-2,01000 ,-1,-3,-2,01000,-1,-3,-2,01000,-1,0 ,3,-4,-4,-4,-4,-2,01000,-1,-3,-2 ,01000,-1,-3,-2,01000,-1,-1,0,3,-4 ,-2,01000,-3,-4,-4,-2,01000,-3,-2,01000 ,-1,-1,-1,0,3,-4,-2,01000,-3,-4 ,-2,01000,-3,-2,01000,-1,-1,0,3,-4 ,-4,-4,-2,01000,-3,-2,01000,-1,-1,-3 ,-2,01000,-1,0,4,-4,-2,01000,-3,-4 ,-2,01000,-3,-2,01000,-3,-4,-2,01000,-1 ,-1,-1,0,3,-4,-4,-2,01000,-3,-2 ,01000,-1,-3,-2,01000,-1,0,3,-4,-2 ,01000,-3,-4,-4,-2,01000,-3,-2,01000,-1 ,-1,-1,0,3,-4,-2,01000,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,0,3,-4,-4 ,-4,-2,01000,-3,-2,01000,-1,-1,-3,-2 ,01000,-1,0,3,-4,-4,-2,01000,-3,-2 ,01000,-1,-3,-2,01000,-1,0,2,-4,-4 ,-2,01000,-3,-2,01000,-1,-1,0,2,-4 ,-2,01000,-3,-2,01000,-1,0,4,-4,-4 ,-4,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-4,-2,01000,-3,-2,01000,-1,-1,-1 ,-1,0,4,-4,-4,-4,-2,01000,-1,-3 ,-4,-2,01000,-3,-4,-2,01000,-3,-2,01000 ,-1,-1,-1,-1,0,4,-4,-4,-4,-2 ,01000,-1,-3,-4,-4,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-4,-2,01000,-1,-1 ,-1,-1,-1,0,4,-4,-4,-4,-2,01000 ,-1,-3,-4,-4,-2,01000,-1,-3,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-1,-1,-1 ,0,4,-4,-4,-2,01000,-1,-3,-4,-2 ,01000,-3,-4,-2,01000,-3,-2,01000,-1,-1 ,-1,0,4,-4,-2,01000,-3,-4,-2,01000 ,-3,-4,-2,01000,-3,-2,01000,-1,-1,-1 ,0,4,-4,-4,-2,01000,-1,-3,-4,-4 ,-2,01000,-1,-3,-4,-4,-2,01000,-1,-3 ,-2,01000,-1,-1,-1,0,4,-4,-4,-2 ,01000,-1,-3,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-3,-2,01000,-1,-1,-1,0,3 ,-4,-4,-4,-2,01000,-1,-3,-4,-4,-2 ,01000,-1,-3,-4,-2,01000,-1,-1,-1,-1 ,0,3,-4,-4,-4,-2,01000,-1,-3,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-1,-1 ,0,3,-4,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-3,-2,01000,-1,-1,-1,0,3 ,-4,-4,-2,01000,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,-1,0,3,-4,-4,-4,-2 ,01000,-1,-3,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-1,-1,-1,-1,0,3,-4,-4 ,-4,-2,01000,-1,-3,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-1,-1,0,3,-4,-4 ,-4,-2,01000,-1,-3,-4,-2,01000,-3,-2 ,01000,-1,-1,-1,0,3,-4,-4,-2,01000 ,-1,-3,-4,-4,-2,01000,-1,-3,-2,01000 ,-1,-1,0,3,-4,-4,-2,01000,-1,-3 ,-4,-2,01000,-3,-2,01000,-1,-1,0,3 ,-4,-2,01000,-3,-4,-2,01000,-3,-2,01000 ,-1,-1,0,3,-4,-4,-2,01000,-1,-3 ,-4,-4,-2,01000,-1,-3,-4,-2,01000,-1 ,-1,-1,0,3,-4,-4,-2,01000,-1,-3 ,-4,-4,-2,01000,-1,-3,-2,01000,-1,-1 ,0,3,-4,-4,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,0,3,-4,-2 ,01000,-3,-4,-2,01000,-3,-2,01000,-1,-1 ,0,2,-4,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-1,-1,-1,0,2,-4,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-1,0,2 ,-4,-4,-2,01000,-3,-2,01000,-1,-1,0 ,2,-4,-4,-4,-2,01000,-1,-3,-4,-2 ,01000,-1,-1,-1,0,2,-4,-4,-4,-2 ,01000,-1,-3,-2,01000,-1,-1,0,2,-4 ,-4,-2,01000,-3,-2,01000,-1,-1,0,2 ,-4,-4,-2,01000,-1,-3,-4,-2,01000,-1 ,-1,0,2,-4,-4,-2,01000,-1,-3,-2 ,01000,-1,0,2,-4,-2,01000,-3,-2,01000 ,-1,0,2,-4,-4,-2,01000,-1,-3,-4 ,-2,01000,-1,-1,0,2,-4,-4,-2,01000 ,-1,-3,-2,01000,-1,0,2,-4,-2,01000 ,-3,-2,01000,-1,0,1,-4,-2,01000,-1 ,0,1,-4,-2,01000,-1,0,4,-4,-4 ,-2,01000,-3,-2,01000,-3,-2,01000,-1,-3 ,-2,01001,-3,-3,-3,-1,0,5,-4,-4 ,-2,01000,-3,-2,01000,-3,-2,01000,-1,-3 ,-2,01001,-3,-4,-2,01000,-1,-3,-3,-1 ,0,5,-4,-4,-2,01000,-3,-2,01000,-3 ,-2,01000,-1,-3,-2,01001,-3,-3,-2,01000 ,-3,-1,0,5,-4,-4,-2,01000,-3,-2 ,01000,-3,-2,01000,-1,-3,-2,01001,-3,-3 ,-4,-2,01000,-1,-3,-1,0,5,-4,-4 ,-2,01000,-3,-2,01000,-3,-2,01000,-1,-3 ,-2,01001,-3,-3,-3,-2,01000,-1,0,4 ,-4,-4,-2,01000,-3,-2,01000,-1,-3,-2 ,01001,-3,-3,-3,-2,01000,-1,0,4,-4 ,-4,-4,-2,01000,-1,-3,-2,01000,-1,-3 ,-2,01001,-3,-3,-3,-2,01000,-1,0,4 ,-4,-4,-2,01000,-3,-2,01000,-1,-3,-2 ,01001,-3,-3,-3,-2,01000,-1,0,4,-4 ,-4,-2,01000,-3,-2,01000,-1,-3,-2,01001 ,-3,-3,-2,01000,-3,-1,0,4,-4,-4 ,-4,-2,01000,-1,-3,-2,01000,-1,-3,-2 ,01001,-3,-4,-2,01000,-1,-3,-3,-1,0 ,4,-4,-2,01000,-3,-4,-2,01001,-1,-3 ,-3,-4,-2,01000,-1,-3,-2,01000,-1,0 ,4,-4,-2,01000,-3,-2,01001,-3,-3,-4 ,-2,01000,-1,-3,-2,01000,-1,0,3,-4 ,-4,-2,01000,-1,-3,-4,-2,01001,-1,-3 ,-3,-3,-4,-2,01000,-1,-1,0,3,-4 ,-2,01000,-3,-4,-2,01001,-1,-3,-3,-4 ,-2,01000,-1,-3,-1,0,3,-4,-4,-2 ,01000,-1,-3,-2,01001,-3,-3,-3,-4,-2 ,01000,-1,-1,0,3,-4,-2,01000,-3,-2 ,01001,-3,-3,-4,-2,01000,-1,-3,-1,0 ,3,-4,-4,-2,01000,-1,-3,-4,-2,01001 ,-1,-3,-3,-3,-2,01000,-1,0,3,-4 ,-2,01000,-3,-4,-2,01001,-1,-3,-3,-2 ,01000,-3,-1,0,3,-4,-4,-2,01000,-1 ,-3,-2,01001,-3,-3,-3,-2,01000,-1,0 ,3,-4,-2,01000,-3,-2,01001,-3,-3,-2 ,01000,-3,-1,0,3,-4,-2,01000,-3,-2 ,01001,-3,-3,-3,-2,01000,-1,0,4,-4 ,-2,01000,-3,-2,01001,-3,-2,01000,-3,-4 ,-2,01000,-1,-3,-1,0,4,-4,-2,01000 ,-3,-2,01001,-3,-2,01000,-3,-3,-2,01000 ,-1,0,3,-4,-2,01000,-3,-2,01001,-3 ,-2,01000,-3,-3,-1,0,2,-4,-4,-2 ,01000,-1,-3,-4,-2,01001,-1,-3,-3,-3 ,-1,0,2,-4,-2,01000,-3,-4,-2,01001 ,-1,-3,-3,-3,-1,0,2,-4,-4,-2 ,01000,-1,-3,-2,01001,-3,-3,-3,-1,0 ,2,-4,-2,01000,-3,-2,01001,-3,-3,-3 ,-1,0,5,-4,-4,-2,01000,-3,-2,01000 ,-3,-2,01000,-1,-3,-4,-2,01001,-1,-3 ,-4,-2,01000,-1,-3,-1,0,4,-4,-4 ,-2,01000,-3,-2,01000,-3,-2,01000,-1,-3 ,-4,-2,01001,-1,-3,-3,-1,0,4,-4 ,-4,-2,01000,-3,-2,01000,-3,-2,01000,-1 ,-3,-2,01001,-3,-3,-1,0,3,-4,-2 ,01000,-3,-4,-2,01001,-1,-3,-3,-4,-2 ,01000,-1,-1,0,3,-4,-2,01000,-3,-2 ,01001,-3,-3,-4,-2,01000,-1,-1,0,3 ,-4,-2,01000,-3,-4,-2,01001,-1,-3,-4 ,-2,01000,-1,-3,-1,0,3,-4,-2,01000 ,-3,-4,-2,01001,-1,-3,-2,01000,-3,-1 ,0,3,-4,-2,01000,-3,-2,01001,-3,-4 ,-2,01000,-1,-3,-1,0,3,-4,-2,01000 ,-3,-2,01001,-3,-2,01000,-3,-1,0,2 ,-4,-2,01000,-3,-4,-2,01001,-1,-3,-3 ,-1,0,2,-4,-2,01000,-3,-2,01001,-3 ,-3,-1,0,5,-4,-4,-2,01000,-3,-2 ,01000,-1,-3,-4,-2,01000,-3,-4,-2,01000 ,-3,-2,01000,-3,-1,-1,-1,0,5,-4 ,-4,-2,01000,-3,-2,01000,-1,-3,-4,-2 ,01000,-3,-4,-2,01000,-3,-2,01000,-3,-1 ,-1,-1,0,5,-4,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,-3,-4,-4,-2,01000,-3 ,-2,01000,-1,-3,-2,01000,-1,-1,0,6 ,-4,-4,-4,-2,01000,-1,-3,-4,-2,01000 ,-3,-2,01000,-1,-1,-3,-4,-2,01000,-3 ,-4,-2,01000,-3,-2,01000,-1,-1,-1,0 ,6,-4,-4,-2,01000,-3,-2,01000,-1,-3 ,-4,-4,-2,01000,-3,-2,01000,-1,-3,-4 ,-2,01000,-3,-2,01000,-1,-1,-1,0,6 ,-4,-4,-2,01000,-3,-2,01000,-1,-3,-4 ,-4,-2,01000,-3,-2,01000,-1,-3,-4,-2 ,01000,-3,-2,01000,-1,-1,-1,0,3,-4 ,-2,01000,-3,-2,01000,-3,-2,01001,-1,0 ,3,-4,-2,01000,-3,-2,01001,-3,-2,01000 ,-1,0,7,-4,-2,01000,-3,-4,-2,01001 ,-3,-2,01000,-3,-2,01000,-1,-3,-4,-2 ,01001,-3,-2,01000,-3,-2,01000,-1,-1,0 ,7,-4,-2,01001,-3,-4,-2,01000,-3,-2 ,01000,-3,-2,01000,-1,-3,-4,-2,01000,-3 ,-2,01000,-3,-2,01000,-1,-1,0,2,-4 ,-2,01001,-3,-2,01000,-1,0,2,-4,-2 ,01000,-3,-2,01001,-1,0,2,-4,-4,-2 ,01001,-1,-3,-4,-2,01000,-1,-1,0,2 ,-4,-4,-2,01000,-1,-3,-4,-2,01001,-1 ,-1,0,2,-4,-2,01001,-3,-2,01000,-1 ,0,2,-4,-2,01000,-3,-2,01001,-1,0 ,2,-4,-4,-2,01001,-1,-3,-4,-2,01000 ,-1,-3,-1,0,2,-4,-4,-2,01000,-1 ,-3,-4,-2,01001,-1,-3,-1,0,2,-4 ,-2,01001,-3,-2,01000,-1,0,2,-4,-2 ,01000,-3,-2,01001,-1,0,1,-4,-2,01001 ,-1,0,2,-4,-2,01000,-3,-2,01000,-1 ,0,2,-4,-2,01000,-3,-2,01000,-1,0 ,1,-4,-2,01000,-1,0,1,-4,-2,01000 ,-1,0,1,-4,-2,01000,-1,0,4,-4 ,-4,-2,01000,-3,-2,01000,-1,-3,-4,-4 ,-2,01000,-1,-3,-2,01000,-1,-1,0,1 ,-4,-3,-2,01000,-1,0,1,-4,-3,-2 ,01000,-1,0,2,-4,-2,01000,-3,-4,-2 ,01000,-1,-1,0,2,-4,-4,-2,01000,-1 ,-3,-2,01000,-1,0,1,-4,-4,-2,01000 ,-1,-1,0,0,0,0,0,0,0,0 ,0,0,0,1,-2,01000,0,0,0 }; short int mtPathStart[] = { 4057,4053,4051,4049,4047,4045,4043,4035,4024,4013 ,4006,3999,3978,3972,3966,3960,3951,3942,3936,3927 ,3918,3904,3890,3881,3872,3859,3846,3837,3828,3800 ,3772,3760,3748,3719,3690,3659,3633,3608,3583,3572 ,3559,3546,3531,3516,3499,3484,3467,3448,3427,3402 ,3390,3376,3362,3346,3332,3316,3298,3284,3270,3254 ,3238,3220,3204,3186,3168,3148,3130,3110,3087,3068 ,3049,3028,3009,2987,2963,2941,2917,2897,2891,2885 ,2876,2865,2852,2843,2832,2819,2808,2795,2780,2769 ,2756,2741,2727,2711,2693,2673,2659,2643,2625,2607 ,2587,2565,2549,2531,2511,2489,2466,2441,2422,2401 ,2374,2345,2322,2297,2288,2277,2263,2247,2233,2217 ,2203,2184,2168,2154,2138,2120,2104,2086,2072,2056 ,2040,2022,2004,1986,1967,1946,1923,1898,1884,1868 ,1852,1834,1815,1796,1775,1752,1733,1712,1698,1682 ,1666,1647,1626,1603,1583,1563,1546,1524,1500,1476 ,1450,1438,1424,1410,1394,1380,1366,1350,1336,1320 ,1304,1286,1258,1230,1198,1178,1158,1137,1116,1093 ,1070,1047,1023,1006,989,980,969,956,946,934 ,920,906,890,872,852,838,822,804,781,756 ,737,716,707,696,682,666,652,636,620,603 ,585,570,553,536,517,498,479,460,439,413 ,389,367,342,325,308,288,273,256,239,220 ,200,178,154,123,88,67,47,26,0}; NODEPTR mtAction (int _t, __match **_ll, skeleton *_s) { NODEPTR root = _s->root; switch (_t) { case 0:{ # line 28 "act.mt" push(root); } break; case 1:{ # line 34 "act.mt" } break; case 2:{ # line 39 "act.mt" push(root); } break; case 3:{ # line 45 "act.mt" push(root); } break; case 4:{ # line 51 "act.mt" push(root); } break; case 5:{ # line 57 "act.mt" push(ONE); } break; case 6:{ # line 63 "act.mt" push(ZERO); } break; case 7:{ # line 69 "act.mt" tDO(_ll[(1)-1]); } break; case 8:{ # line 87 "act.mt" return nameit(root->id,notnode(xornode(_mtG(root,1,1, -1),_mtG(root,2, -1)))); } break; case 9:{ # line 93 "act.mt" return nameit(root->id,notnode(xornode(_mtG(root,1, -1),_mtG(root,2,1, -1)))); } break; case 10:{ # line 102 "act.mt" return _mtG(root,2, -1); } break; case 11:{ # line 108 "act.mt" return notnode(_mtG(root,2, -1)); } break; case 12:{ # line 122 "act.mt" return nameit(root->id,ornode(andnode(notnode(_mtG(root,2,1,1, -1)),_mtG(root,2,2, -1)),andnode(_mtG(root,1,1, -1),_mtG(root,1,2, -1)))); } break; case 13:{ # line 129 "act.mt" tDO(_ll[(1)-1]); namepin("PAD", 0); func(root,"INBUF",1,"Y","PAD"); } break; case 14:{ # line 136 "act.mt" tDO(_ll[(1)-1]); namepin("PAD", 0); func(root,"CLKBUF",1,"Y","PAD"); } break; case 15:{ # line 143 "act.mt" tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OUTBUF",1,"PAD","D"); } break; case 16:{ # line 150 "act.mt" tDO(_ll[(2)-1]); namepin("E", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"BIBUF",2,"PADY","D","E"); } break; case 17:{ # line 158 "act.mt" tDO(_ll[(2)-1]); namepin("E", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"TRIBUFF",2,"PAD","D","E"); } break; case 18:{ # line 166 "act.mt" push(ONE); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GNAND2",2,"Y","G","A"); } break; case 19:{ # line 174 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"GAND2",2,"Y","A","G"); } break; case 20:{ # line 182 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GAND2",2,"Y","G","A"); } break; case 21:{ # line 190 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"GNAND2",2,"Y","A","G"); } break; case 22:{ # line 198 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GNAND2",2,"Y","G","A"); } break; case 23:{ # line 206 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"GOR2",2,"Y","A","G"); } break; case 24:{ # line 214 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GOR2",2,"Y","G","A"); } break; case 25:{ # line 222 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"GNOR2",2,"Y","A","G"); } break; case 26:{ # line 230 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GNOR2",2,"Y","G","A"); } break; case 27:{ # line 238 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"GXOR2",2,"Y","A","G"); } break; case 28:{ # line 246 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GXOR2",2,"Y","G","A"); } break; case 29:{ # line 259 "act.mt" tDO(_ll[(7)-1]); namepin("D3", 0); tDO(_ll[(6)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0", 0); tDO(_ll[(1)-1]); namepin("G", 0); func(root,"GMX4",6,"Y","G","S0","D0","D1","D2","D3"); } break; case 30:{ # line 276 "act.mt" tDO(_ll[(7)-1]); namepin("D3", 0); tDO(_ll[(6)-1]); namepin("D1", 0); tDO(_ll[(4)-1]); namepin("D2", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("S0", 0); func(root,"GMX4",6,"Y","S0","G","D0","D2","D1","D3"); } break; case 31:{ # line 288 "act.mt" tDO(_ll[(3)-1]); namepin("D1", 0); push(ONE); namepin("D2", 0); tDO(_ll[(3)-1]); namepin("D1", 0); push(ZERO); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("S0", 0); func(root,"GMX4",6,"Y","S0","G","D0","D1","D2","D3"); } break; case 32:{ # line 300 "act.mt" push(ONE); namepin("D3", 0); tDO(_ll[(2)-1]); namepin("D0", 0); push(ZERO); namepin("D1", 0); tDO(_ll[(2)-1]); namepin("D0", 0); tDO(_ll[(1)-1]); namepin("S0", 0); func(root,"GMX4",5,"Y","S0","D0","D1","D2","D3"); } break; case 33:{ # line 317 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"MAJ3",3,"Y","A","B","C"); } break; case 34:{ # line 332 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"MAJ3",3,"Y","B","C","A"); } break; case 35:{ # line 346 "act.mt" tDO(_ll[(6)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO4A",4,"Y","A","C","B","D"); } break; case 36:{ # line 360 "act.mt" tDO(_ll[(5)-1]); namepin("D", 0); tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO5A",4,"Y","A","B","C","D"); } break; case 37:{ # line 375 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"MAJ3",3,"Y","A","B","C"); } break; case 38:{ # line 389 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"MAJ3",3,"Y","A","B","C"); } break; case 39:{ # line 398 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DL1",2,"Q","D","G"); } break; case 40:{ # line 406 "act.mt" tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DL1B",2,"Q","D","G"); } break; case 41:{ # line 414 "act.mt" tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLE",3,"Q","D","G","E"); } break; case 42:{ # line 423 "act.mt" tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLEA",3,"Q","D","G","E"); } break; case 43:{ # line 432 "act.mt" tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLEB",3,"Q","D","G","E"); } break; case 44:{ # line 441 "act.mt" tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLEC",3,"Q","D","G","E"); } break; case 45:{ # line 450 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLC",3,"Q","D","G","CLR"); } break; case 46:{ # line 459 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("G", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DLCA",3,"Q","D","G","CLR"); } break; case 47:{ # line 468 "act.mt" tDO(_ll[(4)-1]); namepin("G", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DLM",4,"Q","S","A","B","G"); } break; case 48:{ # line 478 "act.mt" tDO(_ll[(4)-1]); namepin("G", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DLMA",4,"Q","S","A","B","G"); } break; case 49:{ # line 488 "act.mt" tDO(_ll[(5)-1]); namepin("E", 0); tDO(_ll[(4)-1]); namepin("G", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DLME1A",5,"Q","S","A","B","G","E"); } break; case 50:{ # line 499 "act.mt" tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DF1",2,"Q","D","CLK"); } break; case 51:{ # line 507 "act.mt" tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DF1A",2,"QN","D","CLK"); } break; case 52:{ # line 515 "act.mt" tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DF1B",2,"Q","D","CLK"); } break; case 53:{ # line 523 "act.mt" tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DF1C",2,"QN","D","CLK"); } break; case 54:{ # line 531 "act.mt" tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFE",3,"Q","D","CLK","E"); } break; case 55:{ # line 540 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFE4",4,"Q","D","CLK","E","PRE"); } break; case 56:{ # line 550 "act.mt" tDO(_ll[(4)-1]); namepin("CLR", 0); tDO(_ll[(3)-1]); namepin("E", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFE3A",4,"Q","D","CLK","E","CLR"); } break; case 57:{ # line 560 "act.mt" tDO(_ll[(3)-1]); namepin("PRE", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFP1",3,"Q","D","CLK","PRE"); } break; case 58:{ # line 569 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1",3,"Q","D","CLK","CLR"); } break; case 59:{ # line 578 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1C",3,"QN","D","CLK","CLR"); } break; case 60:{ # line 587 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1A",3,"Q","D","CLK","CLR"); } break; case 61:{ # line 596 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1F",3,"QN","D","CLK","CLR"); } break; case 62:{ # line 605 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1B",3,"Q","D","CLK","CLR"); } break; case 63:{ # line 614 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1E",3,"QN","D","CLK","CLR"); } break; case 64:{ # line 623 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1D",3,"Q","D","CLK","CLR"); } break; case 65:{ # line 632 "act.mt" tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFC1G",3,"QN","D","CLK","CLR"); } break; case 66:{ # line 641 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFPC",4,"Q","D","CLK","CLR","PRE"); } break; case 67:{ # line 651 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("CLR", 0); tDO(_ll[(2)-1]); namepin("CLK", 1); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"DFPCA",4,"Q","D","CLK","CLR","PRE"); } break; case 68:{ # line 661 "act.mt" tDO(_ll[(4)-1]); namepin("E", 0); tDO(_ll[(3)-1]); namepin("CLK", 1); push(ZERO); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFME1A",5,"Q","S","A","B","CLK","E"); } break; case 69:{ # line 672 "act.mt" tDO(_ll[(4)-1]); namepin("CLR", 0); tDO(_ll[(3)-1]); namepin("CLK", 1); tDO(_ll[(2)-1]); namepin("B", 0); push(ZERO); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM3",5,"Q","S","A","B","CLK","CLR"); } break; case 70:{ # line 683 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("CLK", 1); tDO(_ll[(2)-1]); namepin("B", 0); push(ZERO); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM4",5,"Q","S","A","B","CLK","PRE"); } break; case 71:{ # line 694 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("CLK", 1); push(ZERO); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM4",5,"Q","S","A","B","CLK","PRE"); } break; case 72:{ # line 705 "act.mt" tDO(_ll[(4)-1]); namepin("PRE", 0); tDO(_ll[(3)-1]); namepin("CLK", 1); push(ONE); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM4",5,"Q","S","A","B","CLK","PRE"); } break; case 73:{ # line 716 "act.mt" tDO(_ll[(5)-1]); namepin("PRE", 0); tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM4",5,"Q","S","A","B","CLK","PRE"); } break; case 74:{ # line 727 "act.mt" tDO(_ll[(5)-1]); namepin("CLR", 0); tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFMB",5,"Q","S","A","B","CLK","CLR"); } break; case 75:{ # line 738 "act.mt" tDO(_ll[(5)-1]); namepin("CLR", 0); tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM3",5,"Q","S","A","B","CLK","CLR"); } break; case 76:{ # line 749 "act.mt" tDO(_ll[(5)-1]); namepin("E", 0); tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFME1A",5,"Q","S","A","B","CLK","E"); } break; case 77:{ # line 760 "act.mt" tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFM",4,"Q","S","A","B","CLK"); } break; case 78:{ # line 770 "act.mt" tDO(_ll[(1)-1]); namepin("A", 0); func(root,"INV",1,"Y","A"); } break; case 79:{ # line 777 "act.mt" tDO(_ll[(1)-1]); namepin("A", 0); func(root,"BUF",1,"Y","A"); } break; case 80:{ # line 784 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2",2,"Y","A","B"); } break; case 81:{ # line 792 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2A",2,"Y","A","B"); } break; case 82:{ # line 800 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2B",2,"Y","A","B"); } break; case 83:{ # line 808 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR2",2,"Y","A","B"); } break; case 84:{ # line 816 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR2A",2,"Y","A","B"); } break; case 85:{ # line 824 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR2B",2,"Y","A","B"); } break; case 86:{ # line 832 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND2",2,"Y","A","B"); } break; case 87:{ # line 840 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND2A",2,"Y","A","B"); } break; case 88:{ # line 848 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND2B",2,"Y","A","B"); } break; case 89:{ # line 856 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR2",2,"Y","A","B"); } break; case 90:{ # line 864 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR2A",2,"Y","A","B"); } break; case 91:{ # line 872 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR2B",2,"Y","A","B"); } break; case 92:{ # line 880 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3",3,"Y","A","B","C"); } break; case 93:{ # line 889 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3A",3,"Y","A","B","C"); } break; case 94:{ # line 898 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3B",3,"Y","A","B","C"); } break; case 95:{ # line 907 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3C",3,"Y","A","B","C"); } break; case 96:{ # line 916 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR3",3,"Y","A","B","C"); } break; case 97:{ # line 925 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR3A",3,"Y","A","B","C"); } break; case 98:{ # line 934 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR3B",3,"Y","A","B","C"); } break; case 99:{ # line 943 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND3A",3,"Y","A","B","C"); } break; case 100:{ # line 952 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND3B",3,"Y","A","B","C"); } break; case 101:{ # line 961 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND3C",3,"Y","A","B","C"); } break; case 102:{ # line 970 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR3",3,"Y","A","B","C"); } break; case 103:{ # line 979 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR3A",3,"Y","A","B","C"); } break; case 104:{ # line 988 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR3B",3,"Y","A","B","C"); } break; case 105:{ # line 997 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR3C",3,"Y","A","B","C"); } break; case 106:{ # line 1006 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND4B",4,"Y","A","B","C","D"); } break; case 107:{ # line 1016 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND4C",4,"Y","A","B","C","D"); } break; case 108:{ # line 1026 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR4",4,"Y","A","B","C","D"); } break; case 109:{ # line 1036 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OR4A",4,"Y","A","B","C","D"); } break; case 110:{ # line 1046 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND4C",4,"Y","A","B","C","D"); } break; case 111:{ # line 1056 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NAND4D",4,"Y","A","B","C","D"); } break; case 112:{ # line 1066 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR4A",4,"Y","A","B","C","D"); } break; case 113:{ # line 1076 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"NOR4B",4,"Y","A","B","C","D"); } break; case 114:{ # line 1086 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XOR",2,"Y","A","B"); } break; case 115:{ # line 1094 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XNOR",2,"Y","A","B"); } break; case 116:{ # line 1102 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XO1",3,"Y","A","B","C"); } break; case 117:{ # line 1111 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XO1A",3,"Y","A","B","C"); } break; case 118:{ # line 1120 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XO1",3,"Y","C","A","B"); } break; case 119:{ # line 1129 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XO1A",3,"Y","C","A","B"); } break; case 120:{ # line 1138 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XA1",3,"Y","A","B","C"); } break; case 121:{ # line 1151 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XA1",3,"Y","C","A","B"); } break; case 122:{ # line 1160 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XA1A",3,"Y","A","B","C"); } break; case 123:{ # line 1169 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XA1",3,"Y","C","A","B"); } break; case 124:{ # line 1178 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XA1A",3,"Y","C","A","B"); } break; case 125:{ # line 1187 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AX1A",3,"Y","A","B","C"); } break; case 126:{ # line 1196 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AX1",3,"Y","A","B","C"); } break; case 127:{ # line 1205 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AX1B",3,"Y","A","B","C"); } break; case 128:{ # line 1214 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1",3,"Y","A","B","C"); } break; case 129:{ # line 1223 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1A",3,"Y","A","B","C"); } break; case 130:{ # line 1232 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1B",3,"Y","A","B","C"); } break; case 131:{ # line 1241 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1C",3,"Y","A","B","C"); } break; case 132:{ # line 1250 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AOI1A",3,"Y","A","B","C"); } break; case 133:{ # line 1259 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AOI1B",3,"Y","A","B","C"); } break; case 134:{ # line 1268 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO2",4,"Y","A","B","C","D"); } break; case 135:{ # line 1278 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO2A",4,"Y","A","B","C","D"); } break; case 136:{ # line 1288 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AOI2A",4,"Y","A","B","C","D"); } break; case 137:{ # line 1298 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AOI2B",4,"Y","A","B","C","D"); } break; case 138:{ # line 1308 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1",3,"Y","A","B","C"); } break; case 139:{ # line 1317 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1A",3,"Y","A","B","C"); } break; case 140:{ # line 1326 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1B",3,"Y","A","B","C"); } break; case 141:{ # line 1335 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1C",3,"Y","A","B","C"); } break; case 142:{ # line 1344 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA3",4,"Y","A","B","C","D"); } break; case 143:{ # line 1354 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("D", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA3",4,"Y","C","D","A","B"); } break; case 144:{ # line 1364 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA3A",4,"Y","A","B","C","D"); } break; case 145:{ # line 1374 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA3B",4,"Y","A","B","C","D"); } break; case 146:{ # line 1384 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA2",4,"Y","A","B","C","D"); } break; case 147:{ # line 1394 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA2A",4,"Y","A","B","C","D"); } break; case 148:{ # line 1404 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1",3,"Y","C","A","B"); } break; case 149:{ # line 1413 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1A",3,"Y","C","A","B"); } break; case 150:{ # line 1422 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1B",3,"Y","C","A","B"); } break; case 151:{ # line 1435 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1",3,"Y","A","C","B"); } break; case 152:{ # line 1448 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA1A",3,"Y","A","C","B"); } break; case 153:{ # line 1461 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1B",3,"Y","C","A","B"); } break; case 154:{ # line 1470 "act.mt" tDO(_ll[(5)-1]); namepin("D2", 0); tDO(_ll[(5)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MX4",6,"Y","S1","S0","D0","D1","D2","D3"); } break; case 155:{ # line 1482 "act.mt" tDO(_ll[(2)-1]); namepin("D0", 0); tDO(_ll[(5)-1]); namepin("D3", 0); tDO(_ll[(4)-1]); namepin("D2", 0); tDO(_ll[(3)-1]); namepin("S0", 0); tDO(_ll[(2)-1]); namepin("D0", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MX4",6,"Y","S1","D0","S0","D2","D3","D1"); } break; case 156:{ # line 1494 "act.mt" tDO(_ll[(4)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("D2", 0); tDO(_ll[(3)-1]); namepin("D1", 0); push(ZERO); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MX4",6,"Y","S1","S0","D0","D1","D2","D3"); } break; case 157:{ # line 1506 "act.mt" tDO(_ll[(5)-1]); namepin("D3", 0); push(ZERO); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("S0B", 0); tDO(_ll[(3)-1]); namepin("D1", 0); push(ZERO); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 158:{ # line 1519 "act.mt" tDO(_ll[(5)-1]); namepin("D3", 0); push(ZERO); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("S0B", 0); push(ZERO); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 159:{ # line 1532 "act.mt" push(ZERO); namepin("D3", 0); tDO(_ll[(5)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("S0B", 0); tDO(_ll[(3)-1]); namepin("D1", 0); push(ZERO); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 160:{ # line 1545 "act.mt" push(ZERO); namepin("D3", 0); tDO(_ll[(5)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("S0B", 0); push(ZERO); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 161:{ # line 1558 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2",3,"Y","S","A","B"); } break; case 162:{ # line 1567 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2",3,"Y","S","B","A"); } break; case 163:{ # line 1576 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2A",3,"Y","S","A","B"); } break; case 164:{ # line 1585 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2B",3,"Y","S","B","A"); } break; case 165:{ # line 1594 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2B",3,"Y","S","A","B"); } break; case 166:{ # line 1607 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XOR",2,"Y","A","B"); } break; case 167:{ # line 1615 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2A",3,"Y","S","B","A"); } break; case 168:{ # line 1624 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2C",3,"Y","S","A","B"); } break; case 169:{ # line 1633 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2C",3,"Y","S","A","B"); } break; case 170:{ # line 1642 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2C",3,"Y","S","B","A"); } break; case 171:{ # line 1651 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2C",3,"Y","S","B","A"); } break; case 172:{ # line 1660 "act.mt" tDO(_ll[(7)-1]); namepin("D3", 0); tDO(_ll[(6)-1]); namepin("D2", 0); tDO(_ll[(5)-1]); namepin("S0B", 0); tDO(_ll[(4)-1]); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 173:{ # line 1677 "act.mt" tDO(_ll[(7)-1]); namepin("D3", 0); tDO(_ll[(6)-1]); namepin("D2", 0); tDO(_ll[(4)-1]); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MX4",6,"Y","S1","S0","D0","D1","D2","D3"); } break; case 174:{ # line 1696 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XOR3",3,"Y","A","B","C"); } break; case 175:{ # line 1705 "act.mt" tDO(_ll[(5)-1]); namepin("D", 0); tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MXC1",5,"Y","S","A","B","C","D"); } break; case 176:{ # line 1716 "act.mt" push(ONE); namepin("D3", 0); push(ZERO); namepin("D2", 0); tDO(_ll[(5)-1]); namepin("S0B", 0); tDO(_ll[(4)-1]); namepin("D1", 0); tDO(_ll[(3)-1]); namepin("D0", 0); tDO(_ll[(2)-1]); namepin("S0A", 0); tDO(_ll[(1)-1]); namepin("S1", 0); func(root,"MXT",7,"Y","S1","S0A","D0","D1","S0B","D2","D3"); } break; case 177:{ # line 1733 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2",3,"Y","S","A","B"); } break; case 178:{ # line 1746 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2",3,"Y","S","A","B"); } break; case 179:{ # line 1759 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2A",3,"Y","S","A","B"); } break; case 180:{ # line 1772 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"MX2B",3,"Y","S","A","B"); } break; case 181:{ # line 1786 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"XOR",2,"Y","A","B"); } break; case 182:{ # line 1794 "act.mt" tDO(_ll[(5)-1]); namepin("E", 0); tDO(_ll[(4)-1]); namepin("CLK", 1); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("S", 0); func(root,"DFME1A",5,"Q","S","A","B","CLK","E"); } break; case 183:{ # line 1805 "act.mt" push(ZERO); namepin("C", 0); tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("S", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"MXC1",5,"Y","D","S","A","B","C"); } break; case 184:{ # line 1816 "act.mt" push(ONE); namepin("D", 0); tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("S", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"MXC1",5,"Y","C","S","A","B","D"); } break; case 185:{ # line 1827 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2",2,"Y","A","B"); } break; case 186:{ # line 1835 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2A",2,"Y","A","B"); } break; case 187:{ # line 1843 "act.mt" tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND2B",2,"Y","A","B"); } break; case 188:{ # line 1851 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"OR2",2,"Y","B","A"); } break; case 189:{ # line 1859 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"OR2A",2,"Y","B","A"); } break; case 190:{ # line 1867 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"OR2B",2,"Y","B","A"); } break; case 191:{ # line 1875 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3",3,"Y","A","B","C"); } break; case 192:{ # line 1884 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3A",3,"Y","A","B","C"); } break; case 193:{ # line 1893 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3B",3,"Y","A","B","C"); } break; case 194:{ # line 1902 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND3C",3,"Y","A","B","C"); } break; case 195:{ # line 1911 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OR3",3,"Y","C","A","B"); } break; case 196:{ # line 1920 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OR3A",3,"Y","C","A","B"); } break; case 197:{ # line 1929 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OR3B",3,"Y","C","A","B"); } break; case 198:{ # line 1938 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND4B",4,"Y","A","B","C","D"); } break; case 199:{ # line 1948 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AND4C",4,"Y","A","B","C","D"); } break; case 200:{ # line 1958 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OR4",4,"Y","D","A","B","C"); } break; case 201:{ # line 1968 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OR4A",4,"Y","D","A","B","C"); } break; case 202:{ # line 1978 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"XOR",2,"Y","B","A"); } break; case 203:{ # line 1986 "act.mt" tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("B", 0); func(root,"XNOR",2,"Y","B","A"); } break; case 204:{ # line 1994 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XO1",3,"Y","C","B","A"); } break; case 205:{ # line 2003 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XO1A",3,"Y","C","B","A"); } break; case 206:{ # line 2012 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XA1",3,"Y","C","B","A"); } break; case 207:{ # line 2021 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"XA1A",3,"Y","C","B","A"); } break; case 208:{ # line 2030 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AX1",3,"Y","C","A","B"); } break; case 209:{ # line 2039 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AX1A",3,"Y","C","A","B"); } break; case 210:{ # line 2048 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AX1B",3,"Y","C","A","B"); } break; case 211:{ # line 2057 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1",3,"Y","A","B","C"); } break; case 212:{ # line 2066 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1A",3,"Y","A","B","C"); } break; case 213:{ # line 2075 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1B",3,"Y","A","B","C"); } break; case 214:{ # line 2084 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO1C",3,"Y","A","B","C"); } break; case 215:{ # line 2093 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AOI1A",3,"Y","C","B","A"); } break; case 216:{ # line 2102 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AOI1B",3,"Y","C","A","B"); } break; case 217:{ # line 2111 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("D", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO2",4,"Y","A","B","D","C"); } break; case 218:{ # line 2121 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("D", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO2A",4,"Y","A","B","D","C"); } break; case 219:{ # line 2131 "act.mt" tDO(_ll[(4)-1]); namepin("A", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"AOI2A",4,"Y","D","C","B","A"); } break; case 220:{ # line 2141 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"AOI2B",4,"Y","D","C","A","B"); } break; case 221:{ # line 2151 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AO3",4,"Y","A","B","C","D"); } break; case 222:{ # line 2161 "act.mt" tDO(_ll[(5)-1]); namepin("B", 0); tDO(_ll[(4)-1]); namepin("A", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"MAJ3",5,"Y","A","B","C","A","B"); } break; case 223:{ # line 2172 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"AO4A",4,"Y","C","A","B","D"); } break; case 224:{ # line 2182 "act.mt" tDO(_ll[(4)-1]); namepin("C", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"AO5A",4,"Y","D","A","B","C"); } break; case 225:{ # line 2192 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("D", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"AOI3A",4,"Y","A","D","C","B"); } break; case 226:{ # line 2202 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1",3,"Y","C","A","B"); } break; case 227:{ # line 2211 "act.mt" tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("A", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1A",3,"Y","C","A","B"); } break; case 228:{ # line 2220 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1B",3,"Y","C","B","A"); } break; case 229:{ # line 2229 "act.mt" tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA1C",3,"Y","C","B","A"); } break; case 230:{ # line 2238 "act.mt" tDO(_ll[(4)-1]); namepin("A", 0); tDO(_ll[(3)-1]); namepin("B", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OA3",4,"Y","D","C","B","A"); } break; case 231:{ # line 2248 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OA3A",4,"Y","D","C","A","B"); } break; case 232:{ # line 2258 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OA3B",4,"Y","D","C","A","B"); } break; case 233:{ # line 2268 "act.mt" tDO(_ll[(6)-1]); namepin("A", 0); tDO(_ll[(5)-1]); namepin("B", 0); tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA2",6,"Y","C","B","A","D","B","A"); } break; case 234:{ # line 2280 "act.mt" tDO(_ll[(6)-1]); namepin("A", 0); tDO(_ll[(5)-1]); namepin("B", 0); tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("C", 0); func(root,"OA2A",6,"Y","C","B","A","D","B","A"); } break; case 235:{ # line 2292 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("A", 0); tDO(_ll[(2)-1]); namepin("C", 0); tDO(_ll[(1)-1]); namepin("D", 0); func(root,"OA4A",4,"Y","D","C","A","B"); } break; case 236:{ # line 2302 "act.mt" tDO(_ll[(4)-1]); namepin("B", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("D", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OA5",4,"Y","A","D","C","B"); } break; case 237:{ # line 2312 "act.mt" tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OAI1",3,"Y","A","B","C"); } break; case 238:{ # line 2321 "act.mt" tDO(_ll[(4)-1]); namepin("D", 0); tDO(_ll[(3)-1]); namepin("C", 0); tDO(_ll[(2)-1]); namepin("B", 0); tDO(_ll[(1)-1]); namepin("A", 0); func(root,"OAI2A",4,"Y","A","B","C","D"); } break; } return(_s->root);} short mtEvalCost(__match *_m, __match **_ll, skeleton *_s) { NODEPTR root = _s->root; COST cost; cost = DEFAULT_COST; switch(_m->tree) { case 0:{ # line 27 "act.mt" cost = pincost;} break; case 1:{ # line 33 "act.mt" } break; case 2:{ # line 38 "act.mt" cost = pincost;} break; case 3:{ # line 44 "act.mt" cost = zerocost;} break; case 4:{ # line 50 "act.mt" cost = zerocost;} break; case 5:{ # line 56 "act.mt" cost = zerocost;} break; case 6:{ # line 62 "act.mt" cost = zerocost;} break; case 7:{ # line 68 "act.mt" cost.gate -= 1; TOPDOWN;} break; case 8:{ # line 86 "act.mt" REWRITE;} break; case 9:{ # line 92 "act.mt" REWRITE;} break; case 10:{ # line 101 "act.mt" REWRITE;} break; case 11:{ # line 107 "act.mt" REWRITE;} break; case 12:{ # line 117 "act.mt" if (_mtG(root,1,1, -1)->op == not) ABORT; REWRITE; } break; case 13:{ # line 128 "act.mt" TOPDOWN;} break; case 14:{ # line 135 "act.mt" TOPDOWN;} break; case 15:{ # line 142 "act.mt" TOPDOWN;} break; case 16:{ # line 149 "act.mt" TOPDOWN;} break; case 17:{ # line 157 "act.mt" TOPDOWN;} break; case 18:{ # line 165 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 19:{ # line 173 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 20:{ # line 181 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 21:{ # line 189 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 22:{ # line 197 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 23:{ # line 205 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 24:{ # line 213 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 25:{ # line 221 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 26:{ # line 229 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 27:{ # line 237 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 28:{ # line 245 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 29:{ # line 253 "act.mt" cost.gate += 1000; if (!eq(_mtG(root,2,1, -1),_mtG(root,3,1, -1))) ABORT; TOPDOWN; } break; case 30:{ # line 270 "act.mt" cost.gate += 1000; if (!eq(_mtG(root,2,1, -1),_mtG(root,3,1, -1))) ABORT; TOPDOWN; } break; case 31:{ # line 287 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 32:{ # line 299 "act.mt" cost.gate += 1000; TOPDOWN;} break; case 33:{ # line 310 "act.mt" if (!eq(_mtG(root,1,1, -1),_mtG(root,2,1,1, -1)) || !eq(_mtG(root,1,2, -1),_mtG(root,2,2,1, -1)) || !eq(_mtG(root,2,1,2, -1),_mtG(root,2,2,2, -1))) ABORT; TOPDOWN; } break; case 34:{ # line 325 "act.mt" if (!eq(_mtG(root,1,1, -1),_mtG(root,2,2,2, -1)) || !eq(_mtG(root,2,1,1, -1),_mtG(root,2,2,1, -1)) || !eq(_mtG(root,1,2, -1),_mtG(root,2,1,2, -1))) ABORT; TOPDOWN; } break; case 35:{ # line 340 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,1, -1)) || !eq(_mtG(root,1,2,1, -1),_mtG(root,2,2,1, -1))) ABORT; TOPDOWN; } break; case 36:{ # line 355 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,1,1, -1))) ABORT; TOPDOWN; } break; case 37:{ # line 369 "act.mt" if (!eq(_mtG(root,1,1, -1),_mtG(root,2,2,2, -1)) || !eq(_mtG(root,1,2, -1),_mtG(root,2,2,1, -1))) ABORT; TOPDOWN; } break; case 38:{ # line 383 "act.mt" if (!eq(_mtG(root,1,1, -1),_mtG(root,2,2,1, -1)) || !eq(_mtG(root,1,2, -1),_mtG(root,2,2,2, -1))) ABORT; TOPDOWN; } break; case 39:{ # line 397 "act.mt" TOPDOWN;} break; case 40:{ # line 405 "act.mt" TOPDOWN;} break; case 41:{ # line 413 "act.mt" TOPDOWN;} break; case 42:{ # line 422 "act.mt" TOPDOWN;} break; case 43:{ # line 431 "act.mt" TOPDOWN;} break; case 44:{ # line 440 "act.mt" TOPDOWN;} break; case 45:{ # line 449 "act.mt" TOPDOWN;} break; case 46:{ # line 458 "act.mt" TOPDOWN;} break; case 47:{ # line 467 "act.mt" TOPDOWN;} break; case 48:{ # line 477 "act.mt" TOPDOWN;} break; case 49:{ # line 487 "act.mt" TOPDOWN;} break; case 50:{ # line 498 "act.mt" TOPDOWN;} break; case 51:{ # line 506 "act.mt" TOPDOWN;} break; case 52:{ # line 514 "act.mt" TOPDOWN;} break; case 53:{ # line 522 "act.mt" TOPDOWN;} break; case 54:{ # line 530 "act.mt" TOPDOWN;} break; case 55:{ # line 539 "act.mt" TOPDOWN;} break; case 56:{ # line 549 "act.mt" TOPDOWN;} break; case 57:{ # line 559 "act.mt" TOPDOWN;} break; case 58:{ # line 568 "act.mt" TOPDOWN;} break; case 59:{ # line 577 "act.mt" TOPDOWN;} break; case 60:{ # line 586 "act.mt" TOPDOWN;} break; case 61:{ # line 595 "act.mt" TOPDOWN;} break; case 62:{ # line 604 "act.mt" TOPDOWN;} break; case 63:{ # line 613 "act.mt" TOPDOWN;} break; case 64:{ # line 622 "act.mt" TOPDOWN;} break; case 65:{ # line 631 "act.mt" TOPDOWN;} break; case 66:{ # line 640 "act.mt" TOPDOWN;} break; case 67:{ # line 650 "act.mt" TOPDOWN;} break; case 68:{ # line 660 "act.mt" TOPDOWN;} break; case 69:{ # line 671 "act.mt" TOPDOWN;} break; case 70:{ # line 682 "act.mt" TOPDOWN;} break; case 71:{ # line 693 "act.mt" TOPDOWN;} break; case 72:{ # line 704 "act.mt" TOPDOWN;} break; case 73:{ # line 715 "act.mt" TOPDOWN;} break; case 74:{ # line 726 "act.mt" TOPDOWN;} break; case 75:{ # line 737 "act.mt" TOPDOWN;} break; case 76:{ # line 748 "act.mt" TOPDOWN;} break; case 77:{ # line 759 "act.mt" TOPDOWN;} break; case 78:{ # line 769 "act.mt" TOPDOWN;} break; case 79:{ # line 776 "act.mt" TOPDOWN;} break; case 80:{ # line 783 "act.mt" TOPDOWN;} break; case 81:{ # line 791 "act.mt" TOPDOWN;} break; case 82:{ # line 799 "act.mt" TOPDOWN;} break; case 83:{ # line 807 "act.mt" TOPDOWN;} break; case 84:{ # line 815 "act.mt" TOPDOWN;} break; case 85:{ # line 823 "act.mt" TOPDOWN;} break; case 86:{ # line 831 "act.mt" TOPDOWN;} break; case 87:{ # line 839 "act.mt" TOPDOWN;} break; case 88:{ # line 847 "act.mt" TOPDOWN;} break; case 89:{ # line 855 "act.mt" TOPDOWN;} break; case 90:{ # line 863 "act.mt" TOPDOWN;} break; case 91:{ # line 871 "act.mt" TOPDOWN;} break; case 92:{ # line 879 "act.mt" TOPDOWN;} break; case 93:{ # line 888 "act.mt" TOPDOWN;} break; case 94:{ # line 897 "act.mt" TOPDOWN;} break; case 95:{ # line 906 "act.mt" TOPDOWN;} break; case 96:{ # line 915 "act.mt" TOPDOWN;} break; case 97:{ # line 924 "act.mt" TOPDOWN;} break; case 98:{ # line 933 "act.mt" TOPDOWN;} break; case 99:{ # line 942 "act.mt" TOPDOWN;} break; case 100:{ # line 951 "act.mt" TOPDOWN;} break; case 101:{ # line 960 "act.mt" TOPDOWN;} break; case 102:{ # line 969 "act.mt" TOPDOWN;} break; case 103:{ # line 978 "act.mt" TOPDOWN;} break; case 104:{ # line 987 "act.mt" TOPDOWN;} break; case 105:{ # line 996 "act.mt" TOPDOWN;} break; case 106:{ # line 1005 "act.mt" TOPDOWN;} break; case 107:{ # line 1015 "act.mt" TOPDOWN;} break; case 108:{ # line 1025 "act.mt" TOPDOWN;} break; case 109:{ # line 1035 "act.mt" TOPDOWN;} break; case 110:{ # line 1045 "act.mt" TOPDOWN;} break; case 111:{ # line 1055 "act.mt" TOPDOWN;} break; case 112:{ # line 1065 "act.mt" TOPDOWN;} break; case 113:{ # line 1075 "act.mt" TOPDOWN;} break; case 114:{ # line 1085 "act.mt" TOPDOWN;} break; case 115:{ # line 1093 "act.mt" TOPDOWN;} break; case 116:{ # line 1101 "act.mt" TOPDOWN;} break; case 117:{ # line 1110 "act.mt" TOPDOWN;} break; case 118:{ # line 1119 "act.mt" TOPDOWN;} break; case 119:{ # line 1128 "act.mt" TOPDOWN;} break; case 120:{ # line 1137 "act.mt" TOPDOWN;} break; case 121:{ # line 1146 "act.mt" if (!eq(_mtG(root,2,2, -1),_mtG(root,2,3,1, -1))) ABORT; TOPDOWN; } break; case 122:{ # line 1159 "act.mt" TOPDOWN;} break; case 123:{ # line 1168 "act.mt" TOPDOWN;} break; case 124:{ # line 1177 "act.mt" TOPDOWN;} break; case 125:{ # line 1186 "act.mt" TOPDOWN;} break; case 126:{ # line 1195 "act.mt" TOPDOWN;} break; case 127:{ # line 1204 "act.mt" TOPDOWN;} break; case 128:{ # line 1213 "act.mt" TOPDOWN;} break; case 129:{ # line 1222 "act.mt" TOPDOWN;} break; case 130:{ # line 1231 "act.mt" TOPDOWN;} break; case 131:{ # line 1240 "act.mt" TOPDOWN;} break; case 132:{ # line 1249 "act.mt" TOPDOWN;} break; case 133:{ # line 1258 "act.mt" TOPDOWN;} break; case 134:{ # line 1267 "act.mt" TOPDOWN;} break; case 135:{ # line 1277 "act.mt" TOPDOWN;} break; case 136:{ # line 1287 "act.mt" TOPDOWN;} break; case 137:{ # line 1297 "act.mt" TOPDOWN;} break; case 138:{ # line 1307 "act.mt" TOPDOWN;} break; case 139:{ # line 1316 "act.mt" TOPDOWN;} break; case 140:{ # line 1325 "act.mt" TOPDOWN;} break; case 141:{ # line 1334 "act.mt" TOPDOWN;} break; case 142:{ # line 1343 "act.mt" TOPDOWN;} break; case 143:{ # line 1353 "act.mt" TOPDOWN;} break; case 144:{ # line 1363 "act.mt" TOPDOWN;} break; case 145:{ # line 1373 "act.mt" TOPDOWN;} break; case 146:{ # line 1383 "act.mt" TOPDOWN;} break; case 147:{ # line 1393 "act.mt" TOPDOWN;} break; case 148:{ # line 1403 "act.mt" TOPDOWN;} break; case 149:{ # line 1412 "act.mt" TOPDOWN;} break; case 150:{ # line 1421 "act.mt" TOPDOWN;} break; case 151:{ # line 1430 "act.mt" if (!eq(_mtG(root,1,2, -1),_mtG(root,2,2, -1))) ABORT; TOPDOWN; } break; case 152:{ # line 1443 "act.mt" if (!eq(_mtG(root,1,2, -1),_mtG(root,2,2, -1))) ABORT; TOPDOWN; } break; case 153:{ # line 1456 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,1,1, -1))) ABORT; TOPDOWN; } break; case 154:{ # line 1469 "act.mt" TOPDOWN;} break; case 155:{ # line 1481 "act.mt" TOPDOWN;} break; case 156:{ # line 1493 "act.mt" TOPDOWN;} break; case 157:{ # line 1505 "act.mt" TOPDOWN;} break; case 158:{ # line 1518 "act.mt" TOPDOWN;} break; case 159:{ # line 1531 "act.mt" TOPDOWN;} break; case 160:{ # line 1544 "act.mt" TOPDOWN;} break; case 161:{ # line 1557 "act.mt" TOPDOWN;} break; case 162:{ # line 1566 "act.mt" TOPDOWN;} break; case 163:{ # line 1575 "act.mt" TOPDOWN;} break; case 164:{ # line 1584 "act.mt" TOPDOWN;} break; case 165:{ # line 1593 "act.mt" TOPDOWN;} break; case 166:{ # line 1602 "act.mt" if (!eq(_mtG(root,2, -1),_mtG(root,3,1, -1))) ABORT; TOPDOWN; } break; case 167:{ # line 1614 "act.mt" TOPDOWN;} break; case 168:{ # line 1623 "act.mt" TOPDOWN;} break; case 169:{ # line 1632 "act.mt" TOPDOWN;} break; case 170:{ # line 1641 "act.mt" TOPDOWN;} break; case 171:{ # line 1650 "act.mt" TOPDOWN;} break; case 172:{ # line 1659 "act.mt" TOPDOWN;} break; case 173:{ # line 1672 "act.mt" if (!eq(_mtG(root,2,1, -1),_mtG(root,3,1, -1))) ABORT; TOPDOWN; } break; case 174:{ # line 1688 "act.mt" if (!eq(_mtG(root,2,1, -1),_mtG(root,3,1, -1)) || !eq(_mtG(root,2,2, -1),_mtG(root,3,3, -1)) || !eq(_mtG(root,2,2, -1),_mtG(root,2,3,1, -1)) || !eq(_mtG(root,3,2,1, -1),_mtG(root,3,3, -1))) ABORT; TOPDOWN; } break; case 175:{ # line 1704 "act.mt" TOPDOWN;} break; case 176:{ # line 1715 "act.mt" TOPDOWN;} break; case 177:{ # line 1728 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,1, -1))) ABORT; TOPDOWN; } break; case 178:{ # line 1741 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,2, -1))) ABORT; TOPDOWN; } break; case 179:{ # line 1754 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,1, -1))) ABORT; TOPDOWN; } break; case 180:{ # line 1767 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,2, -1))) ABORT; TOPDOWN; } break; case 181:{ # line 1780 "act.mt" if (!eq(_mtG(root,1,1,1, -1),_mtG(root,2,2, -1)) || !eq(_mtG(root,1,2, -1),_mtG(root,2,1,1, -1))) ABORT; TOPDOWN; } break; case 182:{ # line 1793 "act.mt" TOPDOWN;} break; case 183:{ # line 1804 "act.mt" TOPDOWN;} break; case 184:{ # line 1815 "act.mt" TOPDOWN;} break; case 185:{ # line 1826 "act.mt" TOPDOWN;} break; case 186:{ # line 1834 "act.mt" TOPDOWN;} break; case 187:{ # line 1842 "act.mt" TOPDOWN;} break; case 188:{ # line 1850 "act.mt" TOPDOWN;} break; case 189:{ # line 1858 "act.mt" TOPDOWN;} break; case 190:{ # line 1866 "act.mt" TOPDOWN;} break; case 191:{ # line 1874 "act.mt" TOPDOWN;} break; case 192:{ # line 1883 "act.mt" TOPDOWN;} break; case 193:{ # line 1892 "act.mt" TOPDOWN;} break; case 194:{ # line 1901 "act.mt" TOPDOWN;} break; case 195:{ # line 1910 "act.mt" TOPDOWN;} break; case 196:{ # line 1919 "act.mt" TOPDOWN;} break; case 197:{ # line 1928 "act.mt" TOPDOWN;} break; case 198:{ # line 1937 "act.mt" TOPDOWN;} break; case 199:{ # line 1947 "act.mt" TOPDOWN;} break; case 200:{ # line 1957 "act.mt" TOPDOWN;} break; case 201:{ # line 1967 "act.mt" TOPDOWN;} break; case 202:{ # line 1977 "act.mt" TOPDOWN;} break; case 203:{ # line 1985 "act.mt" TOPDOWN;} break; case 204:{ # line 1993 "act.mt" TOPDOWN;} break; case 205:{ # line 2002 "act.mt" TOPDOWN;} break; case 206:{ # line 2011 "act.mt" TOPDOWN;} break; case 207:{ # line 2020 "act.mt" TOPDOWN;} break; case 208:{ # line 2029 "act.mt" TOPDOWN;} break; case 209:{ # line 2038 "act.mt" TOPDOWN;} break; case 210:{ # line 2047 "act.mt" TOPDOWN;} break; case 211:{ # line 2056 "act.mt" TOPDOWN;} break; case 212:{ # line 2065 "act.mt" TOPDOWN;} break; case 213:{ # line 2074 "act.mt" TOPDOWN;} break; case 214:{ # line 2083 "act.mt" TOPDOWN;} break; case 215:{ # line 2092 "act.mt" TOPDOWN;} break; case 216:{ # line 2101 "act.mt" TOPDOWN;} break; case 217:{ # line 2110 "act.mt" TOPDOWN;} break; case 218:{ # line 2120 "act.mt" TOPDOWN;} break; case 219:{ # line 2130 "act.mt" TOPDOWN;} break; case 220:{ # line 2140 "act.mt" TOPDOWN;} break; case 221:{ # line 2150 "act.mt" TOPDOWN;} break; case 222:{ # line 2160 "act.mt" TOPDOWN;} break; case 223:{ # line 2171 "act.mt" TOPDOWN;} break; case 224:{ # line 2181 "act.mt" TOPDOWN;} break; case 225:{ # line 2191 "act.mt" TOPDOWN;} break; case 226:{ # line 2201 "act.mt" TOPDOWN;} break; case 227:{ # line 2210 "act.mt" TOPDOWN;} break; case 228:{ # line 2219 "act.mt" TOPDOWN;} break; case 229:{ # line 2228 "act.mt" TOPDOWN;} break; case 230:{ # line 2237 "act.mt" TOPDOWN;} break; case 231:{ # line 2247 "act.mt" TOPDOWN;} break; case 232:{ # line 2257 "act.mt" TOPDOWN;} break; case 233:{ # line 2267 "act.mt" TOPDOWN;} break; case 234:{ # line 2279 "act.mt" TOPDOWN;} break; case 235:{ # line 2291 "act.mt" TOPDOWN;} break; case 236:{ # line 2301 "act.mt" TOPDOWN;} break; case 237:{ # line 2311 "act.mt" TOPDOWN;} break; case 238:{ # line 2320 "act.mt" TOPDOWN;} break; } _m->cost = cost; return(xDEFER);}