comparison tests/agcl/contrib/good/yabasic.c @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:13d2b8934445
1 /*
2 YABASIC --- a tiny integrated Basic Compiler/Interpreter
3
4 BISON - part
5
6 this Program is subject to the GNU General Public License;
7 see the file yabasic.c for details.
8 */
9
10
11 //#undef WINDOWS
12 #include "yabasic.h" /* definitions of yabasic */
13 #include <malloc.h>
14
15 #if HAVE_ALLOCA_H
16 #include <alloca.h>
17 #endif
18
19 void __yy_bcopy(char *,char *,int); /* prototype missing */
20
21 int yylineno=1;
22 int yylex(void);
23
24 char *popString(int);
25 void pushChar(int);
26
27
28 /*
29 * AnaGram, A System for Syntax Directed Programming
30 * File generated by: ...
31 *
32 * AnaGram Parsing Engine
33 * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
34 *
35 * This software is provided 'as-is', without any express or implied
36 * warranty. In no event will the authors be held liable for any damages
37 * arising from the use of this software.
38 *
39 * Permission is granted to anyone to use this software for any purpose,
40 * including commercial applications, and to alter it and redistribute it
41 * freely, subject to the following restrictions:
42 *
43 * 1. The origin of this software must not be misrepresented; you must not
44 * claim that you wrote the original software. If you use this software
45 * in a product, an acknowledgment in the product documentation would be
46 * appreciated but is not required.
47 * 2. Altered source versions must be plainly marked as such, and must not be
48 * misrepresented as being the original software.
49 * 3. This notice may not be removed or altered from any source distribution.
50 */
51
52 #ifndef YABASIC_H
53 #include "yabasic.h"
54 #endif
55
56 #ifndef YABASIC_H
57 #error Mismatched header file
58 #endif
59
60 #include <ctype.h>
61 #include <stdio.h>
62
63 #define RULE_CONTEXT (&((PCB).cs[(PCB).ssx]))
64 #define ERROR_CONTEXT ((PCB).cs[(PCB).error_frame_ssx])
65 #define CONTEXT ((PCB).cs[(PCB).ssx])
66
67
68
69 parseBasic_pcb_type parseBasic_pcb;
70 #define PCB parseBasic_pcb
71
72 #line - "yabasic.syn"
73 #define CHAR_STACK_LENGTH 500
74
75 static char charStack[CHAR_STACK_LENGTH+1];
76 static char *charStackTop = charStack;
77
78 /* Define an error record */
79 typedef struct {
80 char *message; /* identifies error */
81 int line; /* location of error */
82 int column;
83 } ErrorRecord;
84
85 ErrorRecord errorRecord; /* define an error record */
86
87 void diagnoseError(char *msg) {
88 if (parseBasic_pcb.exit_flag == AG_RUNNING_CODE)
89 parseBasic_pcb.exit_flag = AG_SEMANTIC_ERROR_CODE; /* stop parse */
90 errorRecord.message = msg;
91 errorRecord.line = parseBasic_pcb.line;
92 errorRecord.column = parseBasic_pcb.column;
93 }
94
95 void pushChar(int c) { /* append char to name string */
96 if (charStackTop < charStack+CHAR_STACK_LENGTH) {
97 *charStackTop++ = (char) c;
98 return;
99 }
100 /* buffer overflow, kill parse and issue diagnostic */
101 diagnoseError("Character Stack Overflow");
102 }
103
104 static char *popString(int nChars) { /* get string */
105 *charStackTop = 0;
106 return charStackTop -= nChars;
107 }
108
109 FILE *parserInputFile;
110 void switch_to_my_file(FILE *inputfile) /* switches lex input to given file */
111 {
112 parserInputFile = inputfile;
113 return;
114 }
115
116 #define GET_INPUT ((PCB).input_code = fgetc(parserInputFile))
117
118 int yyparse() {
119 parseBasic();
120 return !(PCB.exit_flag == AG_SUCCESS_CODE);
121 }
122
123
124 #line - "yabasic.c"
125
126 #ifndef CONVERT_CASE
127
128 static const char agCaseTable[31] = {
129 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
130 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
131 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0,
132 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
133 };
134
135 static int agConvertCase(int c) {
136 if (c >= 'a' && c <= 'z') return c ^= 0x20;
137 if (c >= 0xe0 && c < 0xff) c ^= agCaseTable[c-0xe0];
138 return c;
139 }
140
141 #define CONVERT_CASE(c) agConvertCase(c)
142
143 #endif
144
145
146 #ifndef TAB_SPACING
147 #define TAB_SPACING 8
148 #endif
149
150 static void ag_rp_1(void) {
151 #line - "yabasic.syn"
152 yylineno++;
153 if (interactive) PCB.exit_flag = AG_SUCCESS_CODE;
154 return;
155
156 #line - "yabasic.c"
157 }
158
159 #define ag_rp_2(x, e) (x*pow(10,e))
160
161 #define ag_rp_3(x, e) (x*pow(10,-e))
162
163 #define ag_rp_4(i, f) (i+f)
164
165 #define ag_rp_5(f) (f)
166
167 #define ag_rp_6(d) (d-'0')
168
169 #define ag_rp_7(x, d) (10*x + d-'0')
170
171 #define ag_rp_8(d) ((d-'0')/10.)
172
173 #define ag_rp_9(d, f) ((d-'0' + f)/10.)
174
175 #define ag_rp_10(d) (d-'0')
176
177 #define ag_rp_11(x, d) (10*x + d-'0')
178
179 #define ag_rp_12(c) (pushChar(c), 1)
180
181 #define ag_rp_13(k, c) (pushChar(c), k+1)
182
183 #define ag_rp_14(k) (strdup(popString(k)))
184
185 #define ag_rp_15(k) (pushChar('$'), strdup(popString(k+1)))
186
187 #define ag_rp_16(k) (strdup(popString(k)))
188
189 #define ag_rp_17(d) (pushChar(d), 1)
190
191 #define ag_rp_18(k, d) (pushChar(d), k+1)
192
193 #define ag_rp_19(k) (strdup(popString(k)))
194
195 #define ag_rp_20(k) (strdup(popString(k)))
196
197 #define ag_rp_21() (0)
198
199 #define ag_rp_22(k, c) (pushChar(c), k+1)
200
201 #define ag_rp_23(k) (pushChar('"'), k+1)
202
203 #define ag_rp_24() (end_of_file = TRUE)
204
205 #define ag_rp_25(s) (create_label(s))
206
207 #define ag_rp_26(s) (create_label(s))
208
209 static void ag_rp_27(char * s) {
210 #line - "yabasic.syn"
211 create_goto(s);
212 #line - "yabasic.c"
213 }
214
215 static void ag_rp_28(char * s) {
216 #line - "yabasic.syn"
217 create_gosub(s);
218 #line - "yabasic.c"
219 }
220
221 static void ag_rp_29(void) {
222 #line - "yabasic.syn"
223 create_exception(TRUE);
224 #line - "yabasic.c"
225 }
226
227 static void ag_rp_30(void) {
228 #line - "yabasic.syn"
229 create_exception(FALSE);
230 #line - "yabasic.c"
231 }
232
233 static void ag_rp_31(void) {
234 #line - "yabasic.syn"
235 create_skipper();
236 #line - "yabasic.c"
237 }
238
239 static void ag_rp_32(void) {
240 #line - "yabasic.syn"
241 create_nop();
242 #line - "yabasic.c"
243 }
244
245 static void ag_rp_33(void) {
246 #line - "yabasic.syn"
247 create_skipper();
248 #line - "yabasic.c"
249 }
250
251 static void ag_rp_34(void) {
252 #line - "yabasic.syn"
253 create_nop();
254 #line - "yabasic.c"
255 }
256
257 static void ag_rp_35(int n) {
258 #line - "yabasic.syn"
259 create_myopen(n,'+');
260 #line - "yabasic.c"
261 }
262
263 static void ag_rp_36(int n) {
264 #line - "yabasic.syn"
265 create_myopen(n,'-');
266 #line - "yabasic.c"
267 }
268
269 static void ag_rp_37(int n) {
270 #line - "yabasic.syn"
271 create_myclose(n);
272 #line - "yabasic.c"
273 }
274
275 static void ag_rp_38(void) {
276 #line - "yabasic.syn"
277 create_revert(FALSE);
278 #line - "yabasic.c"
279 }
280
281 #define ag_rp_39() (lastinput->args=0)
282
283 #define ag_rp_40() (create_restore(""))
284
285 #define ag_rp_41(s) (create_restore(s))
286
287 static void ag_rp_42(void) {
288 #line - "yabasic.syn"
289 create_return();
290 #line - "yabasic.c"
291 }
292
293 #define ag_rp_43() (create_openwin(FALSE))
294
295 static void ag_rp_44(void) {
296 #line - "yabasic.syn"
297 create_openwin(TRUE);
298 #line - "yabasic.c"
299 }
300
301 #define ag_rp_45() (create_dot())
302
303 #define ag_rp_46() (create_line('l'))
304
305 #define ag_rp_47() (create_circle())
306
307 #define ag_rp_48() (create_text(TRUE))
308
309 #define ag_rp_49() (create_text(FALSE))
310
311 #define ag_rp_50() (create_makemap())
312
313 #define ag_rp_51() (create_line('a'))
314
315 #define ag_rp_52() (create_tick(1))
316
317 #define ag_rp_53() (create_tick(3))
318
319 #define ag_rp_54() (create_tick(0))
320
321 #define ag_rp_55() (create_tick(2))
322
323 #define ag_rp_56() (create_closewin())
324
325 #define ag_rp_57() (create_clearwin())
326
327 #define ag_rp_58() (create_clearscreen())
328
329 #define ag_rp_59() (create_openprinter(0))
330
331 #define ag_rp_60() (create_openprinter(1))
332
333 #define ag_rp_61() (create_closeprinter())
334
335 #define ag_rp_62() (create_mywait())
336
337 #define ag_rp_63() (create_bell())
338
339 static void ag_rp_64(void) {
340 #line - "yabasic.syn"
341 create_function(MYINKEY); create_popstrsym(NULL);
342 #line - "yabasic.c"
343 }
344
345 static void ag_rp_65(void) {
346 #line - "yabasic.syn"
347 create_function(MYSYSTEM2);
348 create_popdblsym(NULL);
349 #line - "yabasic.c"
350 }
351
352 static void ag_rp_66(void) {
353 #line - "yabasic.syn"
354 create_poke('s');
355 #line - "yabasic.c"
356 }
357
358 static void ag_rp_67(void) {
359 #line - "yabasic.syn"
360 create_poke('d');
361 #line - "yabasic.c"
362 }
363
364 static void ag_rp_68(void) {
365 #line - "yabasic.syn"
366 create_myend();
367 #line - "yabasic.c"
368 }
369
370 static void ag_rp_69(char * s) {
371 #line - "yabasic.syn"
372 create_popstrsym(s);
373 #line - "yabasic.c"
374 }
375
376 static void ag_rp_70(char * s) {
377 #line - "yabasic.syn"
378 create_pushstrptr(s);
379 #line - "yabasic.c"
380 }
381
382 static void ag_rp_71(char * s) {
383 #line - "yabasic.syn"
384 create_changestring(MYMID);
385 #line - "yabasic.c"
386 }
387
388 static void ag_rp_72(char * s) {
389 #line - "yabasic.syn"
390 create_pushstrptr(s);
391 #line - "yabasic.c"
392 }
393
394 static void ag_rp_73(char * s) {
395 #line - "yabasic.syn"
396 create_changestring(MYLEFT);
397 #line - "yabasic.c"
398 }
399
400 static void ag_rp_74(char * s) {
401 #line - "yabasic.syn"
402 create_pushstrptr(s);
403 #line - "yabasic.c"
404 }
405
406 static void ag_rp_75(char * s) {
407 #line - "yabasic.syn"
408 create_changestring(MYRIGHT);
409 #line - "yabasic.c"
410 }
411
412 static void ag_rp_76(char * s) {
413 #line - "yabasic.syn"
414 pushcounter();
415 #line - "yabasic.c"
416 }
417
418 static void ag_rp_77(char * s) {
419 #line - "yabasic.syn"
420 create_doarray(s,ASSIGNSTRINGARRAY);
421 #line - "yabasic.c"
422 }
423
424 static void ag_rp_78(char * s) {
425 #line - "yabasic.syn"
426 pushcounter();
427 #line - "yabasic.c"
428 }
429
430 static void ag_rp_79(char * s) {
431 #line - "yabasic.syn"
432 create_doarray(s,GETSTRINGPOINTER);
433 #line - "yabasic.c"
434 }
435
436 static void ag_rp_80(char * s) {
437 #line - "yabasic.syn"
438 create_changestring(MYMID);
439 #line - "yabasic.c"
440 }
441
442 static void ag_rp_81(char * s) {
443 #line - "yabasic.syn"
444 pushcounter();
445 #line - "yabasic.c"
446 }
447
448 static void ag_rp_82(char * s) {
449 #line - "yabasic.syn"
450 create_doarray(s,GETSTRINGPOINTER);
451 #line - "yabasic.c"
452 }
453
454 static void ag_rp_83(char * s) {
455 #line - "yabasic.syn"
456 create_changestring(MYLEFT);
457 #line - "yabasic.c"
458 }
459
460 static void ag_rp_84(char * s) {
461 #line - "yabasic.syn"
462 pushcounter();
463 #line - "yabasic.c"
464 }
465
466 static void ag_rp_85(char * s) {
467 #line - "yabasic.syn"
468 create_doarray(s,GETSTRINGPOINTER);
469 #line - "yabasic.c"
470 }
471
472 static void ag_rp_86(char * s) {
473 #line - "yabasic.syn"
474 create_changestring(MYRIGHT);
475 #line - "yabasic.c"
476 }
477
478 static void ag_rp_87(void) {
479 #line - "yabasic.syn"
480 create_concat();
481 #line - "yabasic.c"
482 }
483
484 static void ag_rp_88(char * s) {
485 #line - "yabasic.syn"
486 create_pushstrsym(s);
487 #line - "yabasic.c"
488 }
489
490 static void ag_rp_89(char * s) {
491 #line - "yabasic.syn"
492 if (s==NULL) {error(ERROR,"String not terminated");create_pushstr("");} else {create_pushstr(s);}
493 #line - "yabasic.c"
494 }
495
496 static void ag_rp_90(char * s) {
497 #line - "yabasic.syn"
498 pushcounter();
499 #line - "yabasic.c"
500 }
501
502 static void ag_rp_91(char * s) {
503 #line - "yabasic.syn"
504 create_doarray(s,CALLSTRINGARRAY);
505 #line - "yabasic.c"
506 }
507
508 static void ag_rp_92(void) {
509 #line - "yabasic.syn"
510 create_function(MYLEFT);
511 #line - "yabasic.c"
512 }
513
514 static void ag_rp_93(void) {
515 #line - "yabasic.syn"
516 create_function(MYRIGHT);
517 #line - "yabasic.c"
518 }
519
520 static void ag_rp_94(void) {
521 #line - "yabasic.syn"
522 create_function(MYMID);
523 #line - "yabasic.c"
524 }
525
526 static void ag_rp_95(void) {
527 #line - "yabasic.syn"
528 create_function(MYSTR);
529 #line - "yabasic.c"
530 }
531
532 static void ag_rp_96(void) {
533 #line - "yabasic.syn"
534 create_function(MYSTR2);
535 #line - "yabasic.c"
536 }
537
538 static void ag_rp_97(void) {
539 #line - "yabasic.syn"
540 create_function(MYINKEY);
541 #line - "yabasic.c"
542 }
543
544 static void ag_rp_98(void) {
545 #line - "yabasic.syn"
546 create_function(MYCHR);
547 #line - "yabasic.c"
548 }
549
550 static void ag_rp_99(void) {
551 #line - "yabasic.syn"
552 create_function(MYUPPER);
553 #line - "yabasic.c"
554 }
555
556 static void ag_rp_100(void) {
557 #line - "yabasic.syn"
558 create_function(MYLOWER);
559 #line - "yabasic.c"
560 }
561
562 static void ag_rp_101(void) {
563 #line - "yabasic.syn"
564 create_function(MYLTRIM);
565 #line - "yabasic.c"
566 }
567
568 static void ag_rp_102(void) {
569 #line - "yabasic.syn"
570 create_function(MYRTRIM);
571 #line - "yabasic.c"
572 }
573
574 static void ag_rp_103(void) {
575 #line - "yabasic.syn"
576 create_function(MYTRIM);
577 #line - "yabasic.c"
578 }
579
580 static void ag_rp_104(void) {
581 #line - "yabasic.syn"
582 create_function(MYSYSTEM);
583 #line - "yabasic.c"
584 }
585
586 static void ag_rp_105(void) {
587 #line - "yabasic.syn"
588 create_function(MYDATE);
589 #line - "yabasic.c"
590 }
591
592 static void ag_rp_106(void) {
593 #line - "yabasic.syn"
594 create_function(MYTIME);
595 #line - "yabasic.c"
596 }
597
598 static void ag_rp_107(void) {
599 #line - "yabasic.syn"
600 create_function(MYPEEK2);
601 #line - "yabasic.c"
602 }
603
604 static void ag_rp_108(char * s) {
605 #line - "yabasic.syn"
606 create_popdblsym(s);
607 #line - "yabasic.c"
608 }
609
610 static void ag_rp_109(char * s) {
611 #line - "yabasic.syn"
612 pushcounter();
613 #line - "yabasic.c"
614 }
615
616 static void ag_rp_110(char * s) {
617 #line - "yabasic.syn"
618 create_doarray(s,ASSIGNARRAY);
619 #line - "yabasic.c"
620 }
621
622 #define ag_rp_111(n) (create_pushdbl(n))
623
624 #define ag_rp_112(s) (create_pushdblsym(s))
625
626 #define ag_rp_113(s) (pushcounter())
627
628 static void ag_rp_114(char * s) {
629 #line - "yabasic.syn"
630 create_doarray(s,CALLARRAY);
631 #line - "yabasic.c"
632 }
633
634 static void ag_rp_115(void) {
635 #line - "yabasic.syn"
636 create_negate();
637 #line - "yabasic.c"
638 }
639
640 static void ag_rp_116(void) {
641 #line - "yabasic.syn"
642 create_dblbin('^');
643 #line - "yabasic.c"
644 }
645
646 static void ag_rp_117(void) {
647 #line - "yabasic.syn"
648 create_dblbin('*');
649 #line - "yabasic.c"
650 }
651
652 static void ag_rp_118(void) {
653 #line - "yabasic.syn"
654 create_dblbin('/');
655 #line - "yabasic.c"
656 }
657
658 static void ag_rp_119(void) {
659 #line - "yabasic.syn"
660 create_dblbin('+');
661 #line - "yabasic.c"
662 }
663
664 static void ag_rp_120(void) {
665 #line - "yabasic.syn"
666 create_dblbin('-');
667 #line - "yabasic.c"
668 }
669
670 static void ag_rp_121(void) {
671 #line - "yabasic.syn"
672 create_map();
673 #line - "yabasic.c"
674 }
675
676 static void ag_rp_122(void) {
677 #line - "yabasic.syn"
678 create_function(MYSIN);
679 #line - "yabasic.c"
680 }
681
682 static void ag_rp_123(void) {
683 #line - "yabasic.syn"
684 create_function(MYASIN);
685 #line - "yabasic.c"
686 }
687
688 static void ag_rp_124(void) {
689 #line - "yabasic.syn"
690 create_function(MYCOS);
691 #line - "yabasic.c"
692 }
693
694 static void ag_rp_125(void) {
695 #line - "yabasic.syn"
696 create_function(MYACOS);
697 #line - "yabasic.c"
698 }
699
700 static void ag_rp_126(void) {
701 #line - "yabasic.syn"
702 create_function(MYTAN);
703 #line - "yabasic.c"
704 }
705
706 static void ag_rp_127(void) {
707 #line - "yabasic.syn"
708 create_function(MYATAN);
709 #line - "yabasic.c"
710 }
711
712 static void ag_rp_128(void) {
713 #line - "yabasic.syn"
714 create_function(MYATAN2);
715 #line - "yabasic.c"
716 }
717
718 static void ag_rp_129(void) {
719 #line - "yabasic.syn"
720 create_function(MYEXP);
721 #line - "yabasic.c"
722 }
723
724 static void ag_rp_130(void) {
725 #line - "yabasic.syn"
726 create_function(MYLOG);
727 #line - "yabasic.c"
728 }
729
730 static void ag_rp_131(void) {
731 #line - "yabasic.syn"
732 create_function(MYSQRT);
733 #line - "yabasic.c"
734 }
735
736 static void ag_rp_132(void) {
737 #line - "yabasic.syn"
738 create_function(MYINT);
739 #line - "yabasic.c"
740 }
741
742 static void ag_rp_133(void) {
743 #line - "yabasic.syn"
744 create_function(MYFRAC);
745 #line - "yabasic.c"
746 }
747
748 static void ag_rp_134(void) {
749 #line - "yabasic.syn"
750 create_function(MYMOD);
751 #line - "yabasic.c"
752 }
753
754 static void ag_rp_135(void) {
755 #line - "yabasic.syn"
756 create_function(MYRAN);
757 #line - "yabasic.c"
758 }
759
760 static void ag_rp_136(void) {
761 #line - "yabasic.syn"
762 create_function(MYRAN2);
763 #line - "yabasic.c"
764 }
765
766 static void ag_rp_137(void) {
767 #line - "yabasic.syn"
768 create_function(MYMIN);
769 #line - "yabasic.c"
770 }
771
772 static void ag_rp_138(void) {
773 #line - "yabasic.syn"
774 create_function(MYMAX);
775 #line - "yabasic.c"
776 }
777
778 static void ag_rp_139(void) {
779 #line - "yabasic.syn"
780 create_function(MYXMAP);
781 #line - "yabasic.c"
782 }
783
784 static void ag_rp_140(void) {
785 #line - "yabasic.syn"
786 create_function(MYYMAP);
787 #line - "yabasic.c"
788 }
789
790 static void ag_rp_141(void) {
791 #line - "yabasic.syn"
792 create_function(MYLEN);
793 #line - "yabasic.c"
794 }
795
796 static void ag_rp_142(void) {
797 #line - "yabasic.syn"
798 create_function(MYVAL);
799 #line - "yabasic.c"
800 }
801
802 static void ag_rp_143(void) {
803 #line - "yabasic.syn"
804 create_function(MYASC);
805 #line - "yabasic.c"
806 }
807
808 static void ag_rp_144(void) {
809 #line - "yabasic.syn"
810 create_function(MYINSTR);
811 #line - "yabasic.c"
812 }
813
814 static void ag_rp_145(void) {
815 #line - "yabasic.syn"
816 create_function(MYSYSTEM2);
817 #line - "yabasic.c"
818 }
819
820 static void ag_rp_146(void) {
821 #line - "yabasic.syn"
822 create_function(MYPEEK);
823 #line - "yabasic.c"
824 }
825
826 #define ag_rp_147(n) (n)
827
828 #define ag_rp_148(n) (n)
829
830 #define ag_rp_149(n) (-n)
831
832 #define ag_rp_150(d) (atoi(d))
833
834 #define ag_rp_151(s) (s)
835
836 #define ag_rp_152(s) (s)
837
838 static void ag_rp_153(char * s) {
839 #line - "yabasic.syn"
840 pushcounter();
841 #line - "yabasic.c"
842 }
843
844 static void ag_rp_154(char * s) {
845 #line - "yabasic.syn"
846 create_dim(s,'d');
847 #line - "yabasic.c"
848 }
849
850 static void ag_rp_155(char * s) {
851 #line - "yabasic.syn"
852 pushcounter();
853 #line - "yabasic.c"
854 }
855
856 static void ag_rp_156(char * s) {
857 #line - "yabasic.syn"
858 create_dim(s,'d');
859 #line - "yabasic.c"
860 }
861
862 static void ag_rp_157(char * s) {
863 #line - "yabasic.syn"
864 pushcounter();
865 #line - "yabasic.c"
866 }
867
868 static void ag_rp_158(char * s) {
869 #line - "yabasic.syn"
870 create_dim(s,'s');
871 #line - "yabasic.c"
872 }
873
874 static void ag_rp_159(char * s) {
875 #line - "yabasic.syn"
876 pushcounter();
877 #line - "yabasic.c"
878 }
879
880 static void ag_rp_160(char * s) {
881 #line - "yabasic.syn"
882 create_dim(s,'s');
883 #line - "yabasic.c"
884 }
885
886 static void ag_rp_161(void) {
887 #line - "yabasic.syn"
888 inccounter();
889 #line - "yabasic.c"
890 }
891
892 static void ag_rp_162(void) {
893 #line - "yabasic.syn"
894 inccounter();
895 #line - "yabasic.c"
896 }
897
898 static void ag_rp_163(char * s) {
899 #line - "yabasic.syn"
900 pushname(s);create_popdblsym(s);pushgoto();
901 create_pushdblsym(s);
902 #line - "yabasic.c"
903 }
904
905 static void ag_rp_164(char * s, double p) {
906 #line - "yabasic.syn"
907 create_dblrelop((p>0)?'{':'}');
908 create_decide();
909 pushlabel();
910 #line - "yabasic.c"
911 }
912
913 static void ag_rp_165(char * s, double p) {
914 #line - "yabasic.syn"
915 create_pushdbl(p);
916 create_pushdblsym(s);
917 create_dblbin('+');
918 create_popdblsym(s);
919 swap();popgoto();poplabel();
920 #line - "yabasic.c"
921 }
922
923 static void ag_rp_166(char * s, double p) {
924 #line - "yabasic.syn"
925 /* cookie*/
926 #line - "yabasic.c"
927 }
928
929 static void ag_rp_167(void) {
930 #line - "yabasic.syn"
931 end_of_file=TRUE;
932 error(ERROR,"'next'-statement is missing"); PCB.exit_flag = AG_SYNTAX_ERROR_CODE;
933 #line - "yabasic.c"
934 }
935
936 #define ag_rp_168() (1.0)
937
938 #define ag_rp_169(v) (v)
939
940 static void ag_rp_170(void) {
941 #line - "yabasic.syn"
942 pop();
943 #line - "yabasic.c"
944 }
945
946 static void ag_rp_171(char * s) {
947 #line - "yabasic.syn"
948 if (strcmp(pop()->pointer,s))
949 {error(ERROR,"'for' and 'next' do not match"); PCB.exit_flag = AG_SYNTAX_ERROR_CODE;}
950
951 #line - "yabasic.c"
952 }
953
954 static void ag_rp_172(void) {
955 #line - "yabasic.syn"
956 create_decide();pushlabel();
957 #line - "yabasic.c"
958 }
959
960 static void ag_rp_173(void) {
961 #line - "yabasic.syn"
962 pushlabel();swap();poplabel();
963 #line - "yabasic.c"
964 }
965
966 static void ag_rp_174(void) {
967 #line - "yabasic.syn"
968 poplabel();
969 #line - "yabasic.c"
970 }
971
972 static void ag_rp_175(void) {
973 #line - "yabasic.syn"
974 end_of_file=TRUE;
975 error(ERROR,"'endif'-statement is missing"); PCB.exit_flag = AG_SYNTAX_ERROR_CODE;
976 #line - "yabasic.c"
977 }
978
979 static void ag_rp_176(void) {
980 #line - "yabasic.syn"
981 create_boole('|');
982 #line - "yabasic.c"
983 }
984
985 static void ag_rp_177(void) {
986 #line - "yabasic.syn"
987 create_boole('&');
988 #line - "yabasic.c"
989 }
990
991 static void ag_rp_178(void) {
992 #line - "yabasic.syn"
993 create_strrelop('=');
994 #line - "yabasic.c"
995 }
996
997 static void ag_rp_179(void) {
998 #line - "yabasic.syn"
999 create_strrelop('!');
1000 #line - "yabasic.c"
1001 }
1002
1003 static void ag_rp_180(void) {
1004 #line - "yabasic.syn"
1005 create_strrelop('<');
1006 #line - "yabasic.c"
1007 }
1008
1009 static void ag_rp_181(void) {
1010 #line - "yabasic.syn"
1011 create_strrelop('{');
1012 #line - "yabasic.c"
1013 }
1014
1015 static void ag_rp_182(void) {
1016 #line - "yabasic.syn"
1017 create_strrelop('>');
1018 #line - "yabasic.c"
1019 }
1020
1021 static void ag_rp_183(void) {
1022 #line - "yabasic.syn"
1023 create_strrelop('}');
1024 #line - "yabasic.c"
1025 }
1026
1027 static void ag_rp_184(void) {
1028 #line - "yabasic.syn"
1029 create_dblrelop('=');
1030 #line - "yabasic.c"
1031 }
1032
1033 static void ag_rp_185(void) {
1034 #line - "yabasic.syn"
1035 create_dblrelop('!');
1036 #line - "yabasic.c"
1037 }
1038
1039 static void ag_rp_186(void) {
1040 #line - "yabasic.syn"
1041 create_dblrelop('<');
1042 #line - "yabasic.c"
1043 }
1044
1045 static void ag_rp_187(void) {
1046 #line - "yabasic.syn"
1047 create_dblrelop('{');
1048 #line - "yabasic.c"
1049 }
1050
1051 static void ag_rp_188(void) {
1052 #line - "yabasic.syn"
1053 create_dblrelop('>');
1054 #line - "yabasic.c"
1055 }
1056
1057 static void ag_rp_189(void) {
1058 #line - "yabasic.syn"
1059 create_dblrelop('}');
1060 #line - "yabasic.c"
1061 }
1062
1063 static void ag_rp_190(char * s) {
1064 #line - "yabasic.syn"
1065 create_myread('d');create_popdblsym(s);
1066 #line - "yabasic.c"
1067 }
1068
1069 static void ag_rp_191(char * s) {
1070 #line - "yabasic.syn"
1071 pushcounter();
1072 #line - "yabasic.c"
1073 }
1074
1075 static void ag_rp_192(char * s) {
1076 #line - "yabasic.syn"
1077 create_myread('d');create_doarray(s,ASSIGNARRAY);
1078 #line - "yabasic.c"
1079 }
1080
1081 static void ag_rp_193(char * s) {
1082 #line - "yabasic.syn"
1083 create_myread('s');create_popstrsym(s);
1084 #line - "yabasic.c"
1085 }
1086
1087 static void ag_rp_194(char * s) {
1088 #line - "yabasic.syn"
1089 pushcounter();
1090 #line - "yabasic.c"
1091 }
1092
1093 static void ag_rp_195(char * s) {
1094 #line - "yabasic.syn"
1095 create_myread('s');create_doarray(s,ASSIGNSTRINGARRAY);
1096 #line - "yabasic.c"
1097 }
1098
1099 static void ag_rp_196(char * s) {
1100 #line - "yabasic.syn"
1101 create_readdata('d');create_popdblsym(s);
1102 #line - "yabasic.c"
1103 }
1104
1105 static void ag_rp_197(char * s) {
1106 #line - "yabasic.syn"
1107 pushcounter();
1108 #line - "yabasic.c"
1109 }
1110
1111 static void ag_rp_198(char * s) {
1112 #line - "yabasic.syn"
1113 create_readdata('d');create_doarray(s,ASSIGNARRAY);
1114 #line - "yabasic.c"
1115 }
1116
1117 static void ag_rp_199(char * s) {
1118 #line - "yabasic.syn"
1119 create_readdata('s');create_popstrsym(s);
1120 #line - "yabasic.c"
1121 }
1122
1123 static void ag_rp_200(char * s) {
1124 #line - "yabasic.syn"
1125 pushcounter();
1126 #line - "yabasic.c"
1127 }
1128
1129 static void ag_rp_201(char * s) {
1130 #line - "yabasic.syn"
1131 create_readdata('s');create_doarray(s,ASSIGNSTRINGARRAY);
1132 #line - "yabasic.c"
1133 }
1134
1135 static void ag_rp_202(char * s) {
1136 #line - "yabasic.syn"
1137 create_strdata(s);
1138 #line - "yabasic.c"
1139 }
1140
1141 static void ag_rp_203(double v) {
1142 #line - "yabasic.syn"
1143 create_dbldata(v);
1144 #line - "yabasic.c"
1145 }
1146
1147 static void ag_rp_204(char * s) {
1148 #line - "yabasic.syn"
1149 create_strdata(s);
1150 #line - "yabasic.c"
1151 }
1152
1153 static void ag_rp_205(double v) {
1154 #line - "yabasic.syn"
1155 create_dbldata(v);
1156 #line - "yabasic.c"
1157 }
1158
1159 static void ag_rp_206(void) {
1160 #line - "yabasic.syn"
1161 create_print('d');
1162 #line - "yabasic.c"
1163 }
1164
1165 static void ag_rp_207(void) {
1166 #line - "yabasic.syn"
1167 create_print('d');
1168 #line - "yabasic.c"
1169 }
1170
1171 static void ag_rp_208(void) {
1172 #line - "yabasic.syn"
1173 create_print('s');
1174 #line - "yabasic.c"
1175 }
1176
1177 static void ag_rp_209(void) {
1178 #line - "yabasic.syn"
1179 create_print('s');
1180 #line - "yabasic.c"
1181 }
1182
1183 static void ag_rp_210(void) {
1184 #line - "yabasic.syn"
1185 create_myswitch(0);create_readline(NULL);
1186 #line - "yabasic.c"
1187 }
1188
1189 static void ag_rp_211(void) {
1190 #line - "yabasic.syn"
1191 create_myswitch(0);create_readline(NULL);
1192 #line - "yabasic.c"
1193 }
1194
1195 static void ag_rp_212(void) {
1196 #line - "yabasic.syn"
1197 create_myswitch(0);
1198 #line - "yabasic.c"
1199 }
1200
1201 static void ag_rp_213(void) {
1202 #line - "yabasic.syn"
1203 create_myswitch(0);
1204 #line - "yabasic.c"
1205 }
1206
1207 static void ag_rp_214(void) {
1208 #line - "yabasic.syn"
1209 create_myswitch(0);
1210 #line - "yabasic.c"
1211 }
1212
1213 static void ag_rp_215(void) {
1214 #line - "yabasic.syn"
1215 create_revert(TRUE);create_myswitch(0);
1216 #line - "yabasic.c"
1217 }
1218
1219 static void ag_rp_216(void) {
1220 #line - "yabasic.syn"
1221 create_myswitch(0);
1222 #line - "yabasic.c"
1223 }
1224
1225 static void ag_rp_217(void) {
1226 #line - "yabasic.syn"
1227 create_revert(TRUE);create_myswitch(0);
1228 #line - "yabasic.c"
1229 }
1230
1231 static void ag_rp_218(char * s) {
1232 #line - "yabasic.syn"
1233 create_readline(s);
1234 #line - "yabasic.c"
1235 }
1236
1237 static void ag_rp_219(void) {
1238 #line - "yabasic.syn"
1239 create_mymove();
1240 #line - "yabasic.c"
1241 }
1242
1243 static void ag_rp_220(int n) {
1244 #line - "yabasic.syn"
1245 create_myswitch(n);
1246 #line - "yabasic.c"
1247 }
1248
1249 #define ag_rp_221(n) (n)
1250
1251 #define ag_rp_222(n) (n)
1252
1253 static void ag_rp_223(void) {
1254 #line - "yabasic.syn"
1255 create_print('n');
1256 #line - "yabasic.c"
1257 }
1258
1259 static void ag_rp_224(char * s) {
1260 #line - "yabasic.syn"
1261 create_goto(s);create_findnop();
1262 #line - "yabasic.c"
1263 }
1264
1265 static void ag_rp_225(char * s) {
1266 #line - "yabasic.syn"
1267 create_goto(s);create_findnop();
1268 #line - "yabasic.c"
1269 }
1270
1271 static void ag_rp_226(char * s) {
1272 #line - "yabasic.syn"
1273 create_gosub(s);create_findnop();
1274 #line - "yabasic.c"
1275 }
1276
1277 static void ag_rp_227(char * s) {
1278 #line - "yabasic.syn"
1279 create_gosub(s);create_findnop();
1280 #line - "yabasic.c"
1281 }
1282
1283
1284 #define READ_COUNTS
1285 #define WRITE_COUNTS
1286 #undef V
1287 #define V(i,t) (*t (&(PCB).vs[(PCB).ssx + i]))
1288 #undef VS
1289 #define VS(i) (PCB).vs[(PCB).ssx + i]
1290
1291 #ifndef GET_CONTEXT
1292 #define GET_CONTEXT CONTEXT = (PCB).input_context
1293 #endif
1294
1295 typedef enum {
1296 ag_action_1,
1297 ag_action_2,
1298 ag_action_3,
1299 ag_action_4,
1300 ag_action_5,
1301 ag_action_6,
1302 ag_action_7,
1303 ag_action_8,
1304 ag_action_9,
1305 ag_action_10,
1306 ag_action_11,
1307 ag_action_12
1308 } ag_parser_action;
1309
1310
1311 #ifndef NULL_VALUE_INITIALIZER
1312 #define NULL_VALUE_INITIALIZER = { 0 }
1313 #endif
1314
1315 static parseBasic_vs_type const ag_null_value NULL_VALUE_INITIALIZER;
1316
1317 static const unsigned char ag_rpx[] = {
1318 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 3, 4, 0, 0, 0, 5,
1319 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1320 24, 0, 0, 0, 25, 26, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33,
1321 34, 35, 36, 37, 38, 0, 39, 0, 0, 40, 41, 42, 0, 43, 44, 45, 46, 47,
1322 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1323 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1324 84, 85, 86, 0, 87, 88, 0, 89, 90, 91, 0, 92, 93, 94, 95, 96, 97, 98,
1325 99,100,101,102,103,104,105,106,107,108,109,110,111, 0,112,113,114, 0,
1326 115, 0,116, 0,117,118, 0,119,120, 0,121,122,123,124,125,126,127,128,
1327 129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,
1328 147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,
1329 165,166, 0,167,168,169,170,171,172,173,174, 0, 0,175, 0,176, 0,177,
1330 0, 0, 0,178,179,180,181,182,183,184,185,186,187,188,189, 0, 0, 0,
1331 0,190,191,192,193,194,195, 0, 0,196,197,198,199,200,201,202,203,204,
1332 205, 0,206,207,208,209,210, 0,211,212, 0,213, 0,214, 0,215,216,217,
1333 218,219,220,221,222,223, 0,224,225,226,227
1334 };
1335
1336 static const unsigned char ag_key_itt[] = {
1337 0
1338 };
1339
1340 static const unsigned short ag_key_pt[] = {
1341 0
1342 };
1343
1344 static const unsigned char ag_key_ch[] = {
1345 0, 82,255, 61, 62,255, 67, 73,255, 65,255, 67, 78, 82, 83, 84,255, 69,
1346 82,255, 69, 79,255, 78, 83,255, 72, 73, 76, 79,255, 65, 69,255, 84,255,
1347 65, 73, 79,255, 73,255, 68,255, 76, 78, 88,255, 79, 82,255, 83, 84,255,
1348 79,255, 69,255, 75, 80, 83, 84,255, 70, 78,255, 70, 78,255, 71, 87,255,
1349 65, 69, 73, 79, 84,255, 80, 88,255, 68, 78,255, 65, 73, 79,255, 69, 79,
1350 255, 78, 80, 82,255, 50,255, 75,255, 69,255, 69,255, 84,255, 78,255, 73,
1351 255, 69, 79, 82,255, 65, 77, 83, 84, 86,255, 65, 69, 73, 84,255, 69, 82,
1352 255, 50,255, 77,255, 69,255, 84,255, 83,255, 67, 73, 81, 84, 89,255, 65,
1353 69, 72, 73, 79, 82,255, 65, 73,255, 77, 84,255, 77, 84,255, 60, 62, 65,
1354 66, 67, 68, 69, 70, 71, 73, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87,
1355 88, 89,255, 69, 79,255, 73, 76,255, 65, 73, 79,255, 73,255, 68,255, 76,
1356 78,255, 83, 84,255, 79,255, 75, 80,255, 70, 78,255, 65, 69, 73,255, 65,
1357 73,255, 78, 80,255, 79, 82,255, 65, 77, 83, 84,255, 69, 73,255, 65, 66,
1358 67, 68, 69, 70, 71, 73, 76, 77, 78, 79, 80, 82, 83, 84, 87, 88, 89,255,
1359 67, 73,255, 67, 83, 84,255, 83, 84,255, 78,255, 69, 79,255, 65, 73, 79,
1360 255, 73, 81, 89,255, 65, 67, 69, 70, 73, 76, 77, 80, 82, 83, 84, 86, 88,
1361 89,255, 67, 73,255, 67, 83, 84,255, 72, 79,255, 75, 83, 84,255, 78,255,
1362 70, 78,255, 71, 87,255, 69, 79, 84,255, 68, 78,255, 65, 73, 79,255, 50,
1363 255, 75,255, 69,255, 69,255, 65, 73, 84,255, 50,255, 77,255, 69,255, 84,
1364 255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,255, 65, 67, 68, 69, 70, 73,
1365 76, 77, 80, 82, 83, 84, 85, 86, 88, 89,255, 76, 78,255, 69, 78, 82,255,
1366 67, 73,255, 67, 83, 84,255, 72, 79,255, 75, 83, 84,255, 78,255, 70, 78,
1367 255, 71, 87,255, 69, 79, 84,255, 80, 88,255, 68, 78,255, 65, 73, 79,255,
1368 50,255, 75,255, 69,255, 69,255, 65, 73, 84,255, 50,255, 77,255, 69,255,
1369 84,255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,255, 65, 67, 68, 69, 70,
1370 73, 76, 77, 80, 82, 83, 84, 85, 86, 88, 89,255, 61, 62,255, 67, 73,255,
1371 67, 78, 83, 84,255, 72, 79,255, 76, 78, 88,255, 83, 84,255, 79,255, 75,
1372 83, 84,255, 78,255, 70, 78,255, 71, 87,255, 69, 79, 84,255, 68, 78,255,
1373 65, 73, 79,255, 50,255, 75,255, 69,255, 69,255, 65, 69, 73, 84,255, 69,
1374 82,255, 50,255, 77,255, 69,255, 84,255, 83,255, 73, 81, 84, 89,255, 65,
1375 72, 73, 79, 82,255, 60, 62, 65, 67, 68, 69, 70, 71, 73, 76, 77, 78, 79,
1376 80, 82, 83, 84, 85, 86, 88, 89,255, 67, 73,255, 67, 83, 84,255, 72, 79,
1377 255, 75, 83, 84,255, 78,255, 70, 78,255, 71, 87,255, 69, 79, 84,255, 68,
1378 78,255, 65, 73, 79,255, 50,255, 75,255, 69,255, 69,255, 65, 73, 84,255,
1379 50,255, 77,255, 69,255, 84,255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,
1380 255, 65, 67, 68, 69, 70, 73, 76, 77, 78, 80, 82, 83, 84, 85, 86, 88, 89,
1381 255, 67, 73,255, 67, 82, 83, 84,255, 69, 79,255, 72, 73, 76, 79,255, 65,
1382 69,255, 84,255, 65, 73, 79,255, 73,255, 68,255, 76, 78, 88,255, 79, 82,
1383 255, 83, 84,255, 79,255, 75, 80, 83, 84,255, 70, 78,255, 70, 78,255, 71,
1384 87,255, 69, 73, 79, 84,255, 80, 88,255, 68, 78,255, 65, 73, 79,255, 78,
1385 80,255, 50,255, 75,255, 69,255, 69, 79, 82,255, 65, 77, 83, 84,255, 65,
1386 69, 73, 84,255, 50,255, 77,255, 69,255, 84,255, 83,255, 73, 81, 84, 89,
1387 255, 65, 69, 73, 82,255, 77, 84,255, 77, 84,255, 65, 66, 67, 68, 69, 70,
1388 71, 73, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 88, 89,255, 69, 79,
1389 255, 73, 76,255, 65, 73, 79,255, 73,255, 68,255, 76, 78,255, 83, 84,255,
1390 79,255, 75, 80,255, 70, 78,255, 69, 73,255, 65, 73,255, 78, 80,255, 79,
1391 82,255, 65, 77, 83, 84,255, 69, 73,255, 65, 66, 67, 68, 69, 70, 71, 73,
1392 76, 77, 78, 79, 80, 82, 83, 84, 87, 88, 89,255, 61, 62,255, 60, 62,255,
1393 61, 62,255, 76, 78,255, 60, 62, 65, 69, 78, 79, 82, 84,255, 69, 79, 84,
1394 255, 73, 84,255, 84, 89,255, 73, 82,255, 67, 68, 73, 76, 77, 80, 82, 83,
1395 84, 85,255, 83, 87,255, 67, 73,255, 67, 83, 84,255, 83, 84,255, 78,255,
1396 69, 79,255, 80, 88,255, 65, 73, 79,255, 73, 81, 89,255, 65, 67, 69, 70,
1397 73, 76, 77, 80, 82, 83, 84, 86, 88, 89,255, 65,255, 67, 73,255, 65,255,
1398 67, 83, 84,255, 72, 79,255, 76, 78, 88,255, 75, 83, 84,255, 78,255, 70,
1399 78,255, 71, 87,255, 69, 79, 84,255, 68, 78,255, 65, 73, 79,255, 50,255,
1400 75,255, 69,255, 69,255, 77, 86,255, 65, 69, 73, 84,255, 50,255, 77,255,
1401 69,255, 84,255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,255, 65, 67, 68,
1402 69, 70, 73, 76, 77, 78, 80, 82, 83, 84, 85, 86, 88, 89,255, 80, 87,255,
1403 67, 73,255, 67, 83, 84,255, 69,255, 83, 84,255, 78,255, 69, 79,255, 65,
1404 73, 79,255, 73, 81, 89,255, 65, 67, 69, 70, 73, 76, 77, 80, 82, 83, 84,
1405 86, 88, 89,255, 61, 62,255, 76, 78,255, 83, 84,255, 79,255, 72, 79,255,
1406 60, 62, 65, 69, 71, 78, 79, 82, 83, 84,255, 61, 62,255, 83, 84,255, 79,
1407 255, 72, 79,255, 60, 62, 65, 71, 78, 79, 82, 83, 84,255, 92,255, 65, 79,
1408 84,255, 79, 84,255, 67, 73,255, 67, 83, 84,255, 76, 78, 88,255, 83, 84,
1409 255, 78,255, 69, 79,255, 65, 73, 79,255, 65, 69,255, 73, 81, 89,255, 65,
1410 67, 69, 70, 73, 76, 77, 78, 80, 82, 83, 84, 86, 88, 89,255, 84,255, 67,
1411 73,255, 65,255, 67, 83, 84,255, 72, 79,255, 76, 78, 88,255, 75, 83, 84,
1412 255, 78,255, 70, 78,255, 71, 87,255, 69, 79, 84,255, 68, 78,255, 65, 73,
1413 79,255, 50,255, 75,255, 69,255, 69,255, 65, 69, 73, 84,255, 50,255, 77,
1414 255, 69,255, 84,255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,255, 65, 67,
1415 68, 69, 70, 73, 76, 77, 78, 80, 82, 83, 84, 85, 86, 88, 89,255, 67, 73,
1416 255, 67, 83, 84,255, 72, 79,255, 76, 78, 88,255, 75, 83, 84,255, 78,255,
1417 70, 78,255, 71, 87,255, 69, 79, 84,255, 68, 78,255, 65, 73, 79,255, 50,
1418 255, 75,255, 69,255, 69,255, 65, 69, 73, 84,255, 50,255, 77,255, 69,255,
1419 84,255, 83,255, 73, 81, 84, 89,255, 65, 73, 82,255, 65, 67, 68, 69, 70,
1420 73, 76, 77, 78, 80, 82, 83, 84, 85, 86, 88, 89,255, 76, 78,255, 69, 79,
1421 84,255, 69, 73, 84,255, 84, 89,255, 73, 82,255, 67, 68, 69, 73, 76, 77,
1422 78, 80, 82, 83, 84, 85,255, 83, 84,255, 79,255, 71,255, 66, 67,255, 79,
1423 255, 84,255, 76, 78,255, 69, 82,255, 76, 78,255, 69, 78, 82, 84,255, 76,
1424 78,255, 69,255, 69, 82,255, 69,255, 82, 83,255, 78, 82,255, 78,255
1425 };
1426
1427 static const unsigned char ag_key_act[] = {
1428 0,3,4,0,0,4,0,3,4,3,4,3,3,3,2,1,4,3,3,4,3,3,4,3,0,4,3,3,2,2,4,0,0,4,2,
1429 4,2,3,3,4,3,4,1,4,3,2,3,4,3,3,4,3,3,4,2,4,3,4,3,3,3,1,4,0,2,4,3,0,4,0,
1430 3,4,3,2,3,2,3,4,0,0,4,0,0,4,2,2,3,4,3,3,4,0,3,0,4,0,4,1,4,2,4,3,4,1,4,
1431 2,4,2,4,2,3,2,4,3,0,3,3,3,4,3,2,3,3,4,3,0,4,0,4,1,4,2,4,2,4,2,4,3,3,3,
1432 2,2,4,3,3,3,3,0,3,4,3,3,4,3,3,4,3,3,4,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1433 2,2,3,3,2,2,2,4,3,3,4,3,2,4,3,3,3,4,3,4,1,4,3,2,4,3,3,4,2,4,3,3,4,0,2,
1434 4,3,3,3,4,3,3,4,0,3,4,3,3,4,3,0,3,3,4,2,3,4,3,3,2,2,2,3,2,2,2,2,3,2,2,
1435 2,3,3,3,3,3,4,0,3,4,3,2,3,4,3,0,4,2,4,3,3,4,3,3,3,4,3,3,3,4,2,3,3,3,2,
1436 2,2,3,3,2,3,3,3,3,4,0,3,4,3,2,3,4,3,3,4,3,3,0,4,2,4,3,0,4,0,3,4,2,2,3,
1437 4,0,0,4,3,2,3,4,0,4,1,4,2,4,2,4,3,3,3,4,0,4,1,4,2,4,2,4,2,4,3,3,3,2,4,
1438 3,3,3,4,2,2,3,3,3,2,2,2,2,2,2,2,3,3,3,3,4,3,3,4,2,3,3,4,0,3,4,3,2,3,4,
1439 3,3,4,3,3,0,4,2,4,3,0,4,0,3,4,2,2,3,4,0,0,4,0,0,4,2,2,3,4,0,4,1,4,2,4,
1440 2,4,3,3,3,4,0,4,1,4,2,4,2,4,2,4,3,3,3,2,4,3,3,3,4,2,2,3,3,3,2,2,2,2,2,
1441 2,2,3,3,3,3,4,0,0,4,0,3,4,3,3,2,3,4,3,3,4,3,3,3,4,3,3,4,2,4,3,3,0,4,2,
1442 4,3,0,4,0,3,4,2,2,3,4,0,0,4,3,2,3,4,0,4,1,4,2,4,2,4,3,3,3,3,4,3,0,4,0,
1443 4,1,4,2,4,2,4,2,4,3,3,2,2,4,3,3,3,0,3,4,2,3,2,2,3,2,3,2,2,2,2,3,3,2,2,
1444 2,2,3,3,3,3,4,0,3,4,3,2,3,4,3,3,4,3,3,0,4,2,4,3,0,4,0,3,4,2,2,3,4,0,0,
1445 4,3,2,3,4,0,4,1,4,2,4,2,4,3,3,3,4,0,4,1,4,2,4,2,4,2,4,3,3,3,2,4,3,3,3,
1446 4,2,2,3,3,3,2,2,2,3,2,2,2,2,3,3,3,3,4,0,3,4,3,3,2,3,4,3,3,4,3,3,2,3,4,
1447 0,0,4,2,4,2,3,3,4,3,4,1,4,3,2,3,4,3,3,4,3,3,4,2,4,3,3,3,0,4,0,2,4,3,0,
1448 4,0,3,4,2,3,2,3,4,0,0,4,0,0,4,2,2,3,4,0,3,4,0,4,1,4,2,4,2,3,3,4,3,0,3,
1449 3,4,3,2,3,3,4,0,4,1,4,2,4,2,4,2,4,3,3,3,2,4,3,3,3,3,4,3,3,4,3,3,4,2,3,
1450 2,2,2,2,2,2,2,2,3,2,2,2,2,2,3,3,3,2,2,4,3,3,4,3,2,4,3,3,3,4,3,4,1,4,3,
1451 2,4,3,3,4,2,4,3,3,4,0,2,4,3,3,4,3,3,4,0,3,4,3,3,4,3,0,3,3,4,2,3,4,3,3,
1452 2,2,2,3,2,2,2,2,3,2,2,2,3,3,3,3,3,4,0,0,4,2,3,4,0,0,4,3,3,4,2,3,3,2,3,
1453 3,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,4,3,3,3,2,3,3,2,2,2,3,4,3,3,4,0,3,4,3,
1454 2,3,4,3,0,4,2,4,3,3,4,0,0,4,2,3,3,4,3,3,3,4,2,3,3,3,2,2,2,3,3,2,3,3,3,
1455 3,4,3,4,0,3,4,3,4,3,2,1,4,3,3,4,3,3,3,4,3,3,0,4,2,4,3,0,4,0,3,4,2,2,3,
1456 4,0,0,4,3,2,3,4,0,4,1,4,2,4,2,4,0,3,4,3,2,3,3,4,0,4,1,4,2,4,2,4,2,4,3,
1457 3,3,2,4,3,3,3,4,2,2,3,2,3,2,2,2,3,2,2,2,2,3,3,3,3,4,3,3,4,0,3,4,3,2,3,
1458 4,3,4,3,1,4,2,4,3,3,4,3,3,3,4,3,3,3,4,2,3,3,3,2,2,2,3,3,2,3,3,3,3,4,0,
1459 0,4,3,3,4,3,3,4,2,4,3,0,4,2,3,3,2,2,3,3,3,3,2,4,0,0,4,3,3,4,2,4,3,0,4,
1460 2,3,3,2,3,3,3,3,2,4,3,4,3,3,3,4,3,3,4,0,3,4,3,2,3,4,3,3,3,4,3,0,4,2,4,
1461 3,3,4,3,3,3,4,3,3,4,3,3,3,4,2,3,2,3,2,2,2,3,3,2,2,3,3,3,3,4,3,4,0,3,4,
1462 3,4,3,2,1,4,3,3,4,3,3,3,4,3,3,0,4,2,4,3,0,4,0,3,4,2,2,3,4,0,0,4,3,2,3,
1463 4,0,4,1,4,2,4,2,4,3,3,3,3,4,0,4,1,4,2,4,2,4,2,4,3,3,3,2,4,3,3,3,4,2,2,
1464 3,2,3,2,2,2,3,2,2,2,2,3,3,3,3,4,0,3,4,3,2,3,4,3,3,4,3,3,3,4,3,3,0,4,2,
1465 4,3,0,4,0,3,4,2,2,3,4,0,0,4,3,2,3,4,0,4,1,4,2,4,2,4,3,3,3,3,4,0,4,1,4,
1466 2,4,2,4,2,4,3,3,3,2,4,3,3,3,4,2,2,3,2,3,2,2,2,3,2,2,2,2,3,3,3,3,4,3,3,
1467 4,3,3,3,4,3,3,3,4,3,3,4,3,3,4,3,3,2,3,2,3,3,3,2,2,2,3,4,3,3,4,2,4,2,4,
1468 3,3,4,3,4,3,4,3,3,4,2,3,4,3,3,4,2,3,3,3,4,3,3,4,2,4,3,3,4,3,4,3,3,4,3,
1469 3,4,3,4
1470 };
1471
1472 static const unsigned short ag_key_parm[] = {
1473 0,214, 0,312,310, 0,298,280, 0,284, 0,282,308,242, 0,317, 0,249,
1474 221, 0,245,227, 0,224,281, 0,264,239, 0, 0, 0,231,271, 0, 0, 0,
1475 0,234,236, 0,306, 0,255, 0,315, 0,285, 0,301,289, 0,220,219, 0,
1476 0, 0,222, 0,250,229,299,288, 0,305, 0, 0,259,296, 0,286,266, 0,
1477 218, 0,238, 0,267, 0,241,293, 0,258,292, 0, 0, 0,290, 0,302,309,
1478 0,223,226,307, 0,273, 0,300, 0, 0, 0,247, 0,228, 0, 0, 0, 0,
1479 0, 0,254, 0, 0,230,214,232,233,316, 0,291, 0,260,268, 0,303,263,
1480 0,253, 0,270, 0, 0, 0, 0, 0, 0, 0,246,279,287, 0, 0, 0,283,
1481 240,304,272,237,269, 0,248,235, 0,294,243, 0,295,244, 0, 0,314, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,265,297, 0,
1483 0, 0, 0,245,227, 0,239, 0, 0,231,234,236, 0,306, 0,255, 0,315,
1484 0, 0,220,219, 0, 0, 0,250,229, 0,305, 0, 0,218,259,238, 0,241,
1485 258, 0,223,226, 0,254,228, 0,230,214,232,233, 0, 0,260, 0,242,249,
1486 0, 0, 0,301, 0, 0, 0, 0,302, 0, 0, 0,253,240,248,243,244, 0,
1487 298,280, 0,282, 0,284, 0,299,288, 0, 0, 0,296,286, 0,293,292,290,
1488 0,279,287,253, 0, 0,281,285,289, 0, 0, 0,300,291, 0,283,297,294,
1489 295, 0,298,280, 0,282, 0,284, 0,264,281, 0,250,299,288, 0, 0, 0,
1490 259,296, 0,286,266, 0, 0, 0,267, 0,258,292, 0,293, 0,290, 0,273,
1491 0,300, 0, 0, 0, 0, 0,291,260,268, 0,253, 0,270, 0, 0, 0, 0,
1492 0, 0, 0,279,287,263, 0, 0,283,272,269, 0, 0, 0,271,285,289, 0,
1493 0, 0, 0, 0, 0, 0,265,297,294,295, 0,315,306, 0, 0,302,214, 0,
1494 298,280, 0,282, 0,284, 0,264,281, 0,250,299,288, 0, 0, 0,259,296,
1495 0,286,266, 0, 0, 0,267, 0,241,293, 0,258,292, 0, 0, 0,290, 0,
1496 273, 0,300, 0, 0, 0, 0, 0,291,260,268, 0,253, 0,270, 0, 0, 0,
1497 0, 0, 0, 0,279,287,263, 0, 0,283,272,269, 0, 0, 0,271,285,289,
1498 0, 0, 0, 0, 0, 0, 0,265,297,294,295, 0,312,310, 0,298,280, 0,
1499 282,308, 0,284, 0,264,281, 0,315,306,285, 0,220,219, 0, 0, 0,250,
1500 299,288, 0, 0, 0,259,296, 0,286,266, 0, 0, 0,267, 0,258,292, 0,
1501 293, 0,290, 0,273, 0,300, 0, 0, 0, 0, 0,291,214,260,268, 0,303,
1502 263, 0,253, 0,270, 0, 0, 0, 0, 0, 0, 0,279,287, 0, 0, 0,283,
1503 304,272,237,269, 0, 0,314, 0, 0,271, 0,289, 0, 0, 0, 0,302,307,
1504 0, 0, 0, 0,265,297,294,295, 0,298,280, 0,282, 0,284, 0,264,281,
1505 0,250,299,288, 0, 0, 0,259,296, 0,286,266, 0, 0, 0,267, 0,258,
1506 292, 0,293, 0,290, 0,273, 0,300, 0, 0, 0, 0, 0,291,260,268, 0,
1507 253, 0,270, 0, 0, 0, 0, 0, 0, 0,279,287,263, 0, 0,283,272,269,
1508 0, 0, 0,271,285,289, 0, 0, 0,309, 0, 0, 0, 0,265,297,294,295,
1509 0,298,280, 0,282,242, 0,284, 0,245,227, 0,264,239, 0,281, 0,231,
1510 271, 0, 0, 0, 0,234,236, 0,306, 0,255, 0,315, 0,285, 0,301,289,
1511 0,220,219, 0, 0, 0,250,229,299,288, 0,305, 0, 0,259,296, 0,286,
1512 266, 0, 0,238, 0,267, 0,241,293, 0,258,292, 0, 0, 0,290, 0,223,
1513 226, 0,273, 0,300, 0, 0, 0, 0,254,228, 0,230,214,232,233, 0,291,
1514 0,260,268, 0,253, 0,270, 0, 0, 0, 0, 0, 0, 0,279,287,263, 0,
1515 0,283,240,272,269, 0,294,243, 0,295,244, 0, 0,249, 0, 0, 0, 0,
1516 0, 0, 0, 0,302, 0, 0, 0, 0, 0,265,297,248, 0, 0, 0,245,227,
1517 0,239, 0, 0,231,234,236, 0,306, 0,255, 0,315, 0, 0,220,219, 0,
1518 0, 0,250,229, 0,305, 0, 0,259,238, 0,241,258, 0,223,226, 0,254,
1519 228, 0,230,214,232,233, 0, 0,260, 0,242,249, 0, 0, 0,301, 0, 0,
1520 0, 0,302, 0, 0, 0,253,240,248,243,244, 0,312,310, 0, 0,314, 0,
1521 312,310, 0,315,306, 0, 0,314,308, 0,302,307,214,304, 0,259,266,267,
1522 0,260,268, 0,263,270, 0,272,269, 0,264,271,250, 0,258,273, 0, 0,
1523 0,265, 0,246,235, 0,298,280, 0,282, 0,284, 0,299,288, 0, 0, 0,
1524 296,286, 0,241,293, 0, 0,292,290, 0,279,287,253, 0, 0,281,285,289,
1525 0, 0, 0,300,291, 0,283,297,294,295, 0,317, 0,298,280, 0,284, 0,
1526 282, 0,317, 0,264,281, 0,315,306,285, 0,250,299,288, 0, 0, 0,259,
1527 296, 0,286,266, 0, 0, 0,267, 0,258,292, 0,293, 0,290, 0,273, 0,
1528 300, 0, 0, 0, 0, 0,214,316, 0,291, 0,260,268, 0,253, 0,270, 0,
1529 0, 0, 0, 0, 0, 0,279,287,263, 0, 0,283,272,269, 0, 0, 0,271,
1530 0,289, 0, 0, 0,302, 0, 0, 0, 0,265,297,294,295, 0,247,235, 0,
1531 298,280, 0,282, 0,284, 0,222, 0,299,288, 0, 0, 0,296,286, 0,293,
1532 292,290, 0,279,287,253, 0, 0,281,285,289, 0, 0, 0,300,291, 0,283,
1533 297,294,295, 0,312,310, 0,315,306, 0,220,219, 0, 0, 0,304,237, 0,
1534 0,314,308, 0, 0,302,307,214,303, 0, 0,312,310, 0,220,219, 0, 0,
1535 0,304,237, 0, 0,314,308, 0,302,307,214,303, 0, 0, 33, 0,308,307,
1536 304, 0,307,304, 0,298,280, 0,282, 0,284, 0,315,306,285, 0,299,288,
1537 0, 0, 0,296,286, 0,293,292,290, 0,291,214, 0,279,287,253, 0, 0,
1538 281, 0,289, 0, 0, 0,302,300, 0, 0,283,297,294,295, 0,237, 0,298,
1539 280, 0,284, 0,282, 0,317, 0,264,281, 0,315,306,285, 0,250,299,288,
1540 0, 0, 0,259,296, 0,286,266, 0, 0, 0,267, 0,258,292, 0,293, 0,
1541 290, 0,273, 0,300, 0, 0, 0, 0, 0,291,214,260,268, 0,253, 0,270,
1542 0, 0, 0, 0, 0, 0, 0,279,287,263, 0, 0,283,272,269, 0, 0, 0,
1543 271, 0,289, 0, 0, 0,302, 0, 0, 0, 0,265,297,294,295, 0,298,280,
1544 0,282, 0,284, 0,264,281, 0,315,306,285, 0,250,299,288, 0, 0, 0,
1545 259,296, 0,286,266, 0, 0, 0,267, 0,258,292, 0,293, 0,290, 0,273,
1546 0,300, 0, 0, 0, 0, 0,291,214,260,268, 0,253, 0,270, 0, 0, 0,
1547 0, 0, 0, 0,279,287,263, 0, 0,283,272,269, 0, 0, 0,271, 0,289,
1548 0, 0, 0,302, 0, 0, 0, 0,265,297,294,295, 0,315,306, 0,259,266,
1549 267, 0,214,260,268, 0,263,270, 0,272,269, 0,264,271, 0,250, 0,258,
1550 302,273, 0, 0, 0,265, 0,220,219, 0, 0, 0, 0, 0,221,224, 0,307,
1551 0,304, 0,315,306, 0, 0,214, 0,315,306, 0, 0,302,214,237, 0,315,
1552 306, 0, 0, 0,306,214, 0,306, 0,214,303, 0,302,214, 0,302, 0
1553 };
1554
1555 static const unsigned short ag_key_jmp[] = {
1556 0, 0, 0, 0, 0, 0, 0, 14, 0, 16, 0, 5, 8, 10, 6, 9, 0, 18,
1557 21, 0, 32, 35, 0, 38, 0, 0, 25, 27, 20, 23, 0, 0, 0, 0, 31, 0,
1558 34, 44, 46, 0, 51, 0, 40, 0, 48, 42, 53, 0, 55, 57, 0, 60, 63, 0,
1559 51, 0, 74, 0, 65, 68, 71, 56, 0, 0, 58, 0, 84, 0, 0, 0, 89, 0,
1560 80, 66, 86, 69, 92, 0, 0, 0, 0, 0, 0, 0, 78, 81, 96, 0, 98,101,
1561 0, 0,103, 0, 0, 0, 0, 95, 0, 97, 0,109, 0,101, 0,103, 0,105,
1562 0, 99,106,107, 0,113, 0,115,120,124, 0,111,113,129,133, 0,147, 0,
1563 0, 0, 0,127, 0,129, 0,131, 0,133, 0,137,142,144,124,135, 0,149,
1564 151,154,157, 0,160, 0,171,174, 0,179,182, 0,186,189, 0, 3, 3, 11,
1565 17, 26, 36, 44, 48, 54, 63, 72, 84, 88, 91,109,119,137,143,163,168,150,
1566 153,156, 0,207,210, 0,202,183, 0,213,216,218, 0,223, 0,193, 0,220,
1567 195, 0,228,231, 0,200, 0,233,236, 0, 0,205, 0,239,243,246, 0,249,
1568 251, 0, 0,257, 0,260,263, 0,267, 0,269,274, 0,224,278, 0,193,198,
1569 186,189,197,225,203,208,211,215,253,218,221,229,282,289,293,297,302, 0,
1570 0,310, 0,307,252,312, 0,325, 0, 0,259, 0,328,330, 0,332,334,336,
1571 0,345,347,350, 0,255,315,318,321,262,264,267,338,342,271,356,359,362,
1572 366, 0, 0,373, 0,370,290,375, 0,378,380, 0,393,396, 0, 0,300, 0,
1573 399, 0, 0, 0,401, 0,306,309,404, 0, 0, 0, 0,408,316,410, 0, 0,
1574 0,323, 0,325, 0,327, 0,412,414,418, 0, 0, 0,335, 0,337, 0,339,
1575 0,341, 0,422,424,427,343, 0,429,431,434, 0,293,297,382,386,389,304,
1576 312,319,329,331,345,350,437,442,445,449, 0,453,456, 0,371,460,464, 0,
1577 0,470, 0,467,378,472, 0,475,477, 0,490,493, 0, 0,388, 0,496, 0,
1578 0, 0,498, 0,394,397,501, 0, 0, 0, 0, 0, 0, 0,404,407,505, 0,
1579 0, 0,414, 0,416, 0,418, 0,507,509,513, 0, 0, 0,426, 0,428, 0,
1580 430, 0,432, 0,517,519,522,434, 0,524,526,529, 0,381,385,479,483,486,
1581 392,400,410,420,422,436,441,532,537,540,544, 0, 0, 0, 0, 0,555, 0,
1582 550,553,465,557, 0,560,562, 0,568,571,575, 0,581,584, 0,480, 0,586,
1583 589, 0, 0,485, 0,592, 0, 0, 0,594, 0,491,494,597, 0, 0, 0, 0,
1584 601,501,603, 0, 0, 0,508, 0,510, 0,512, 0,611,613,615,619, 0,628,
1585 0, 0, 0, 0,524, 0,526, 0,528, 0,530, 0,623,625,521,532, 0,630,
1586 632,635, 0,638, 0,462,548,468,473,564,476,577,483,489,497,504,605,609,
1587 514,516,534,539,641,646,649,653, 0, 0,660, 0,657,567,662, 0,665,667,
1588 0,680,683, 0, 0,577, 0,686, 0, 0, 0,688, 0,583,586,691, 0, 0,
1589 0, 0,695,593,697, 0, 0, 0,600, 0,602, 0,604, 0,702,704,708, 0,
1590 0, 0,612, 0,614, 0,616, 0,618, 0,712,714,717,620, 0,719,721,724,
1591 0,570,574,669,673,676,581,589,596,699,606,608,622,627,727,732,735,739,
1592 0, 0,750, 0,743,746,649,752, 0,766,769, 0,759,761,657,772, 0, 0,
1593 0, 0,665, 0,668,774,776, 0,781, 0,674, 0,778,676,783, 0,785,787,
1594 0,790,793, 0,685, 0,795,798,801, 0, 0, 0,690, 0,804, 0, 0, 0,
1595 809, 0,698,806,701,812, 0, 0, 0, 0, 0, 0, 0,709,712,816, 0, 0,
1596 822, 0, 0, 0,722, 0,724, 0,726,825,828, 0,834, 0,836,841, 0,832,
1597 732,845,849, 0, 0, 0,742, 0,744, 0,746, 0,748, 0,853,855,858,750,
1598 0,860,862,865,868, 0,883,886, 0,890,893, 0,652,755,660,670,678,682,
1599 688,695,704,715,818,719,728,737,752,757,871,876,879,762,765, 0,911,914,
1600 0,906,790, 0,917,920,922, 0,927, 0,800, 0,924,802, 0,932,935, 0,
1601 807, 0,937,940, 0, 0,812, 0,943,946, 0,949,951, 0, 0,957, 0,960,
1602 963, 0,967, 0,969,974, 0,830,978, 0,897,902,793,796,804,929,810,815,
1603 818,821,953,824,827,835,982,989,993,997,1002, 0, 0, 0, 0,858,1007,
1604 0, 0, 0, 0,1014,1017, 0,864,1009,1011,867,1021,1025,1027,1030, 0,
1605 1046,1049,1053, 0,1065,1069, 0,1073,1075, 0,1080,1083, 0,1034,1037,
1606 1041,879,1057,1060,883,886,889,1086, 0,1091,1097, 0, 0,1106, 0,1103,
1607 906,1108, 0,1121, 0, 0,913, 0,1124,1126, 0, 0, 0, 0,921,1128,1130,
1608 0,1139,1141,1144, 0,909,1111,1114,1117,916,918,924,1132,1136,928,1150,
1609 1153,1156,1160, 0,1164, 0, 0,1169, 0,1171, 0,1166,949,952, 0,1173,
1610 1175, 0,1181,1184,1188, 0,1194,1197, 0, 0,965, 0,1200, 0, 0, 0,
1611 1202, 0,971,974,1205, 0, 0, 0, 0,1209,981,1211, 0, 0, 0,988, 0,
1612 990, 0,992, 0, 0,1219, 0,1217,996,1224,1228, 0, 0, 0,1004, 0,1006,
1613 0,1008, 0,1010, 0,1232,1234,1237,1012, 0,1239,1241,1244, 0,954,958,
1614 1177,961,1190,969,977,984,1213,994,999,1014,1019,1247,1252,1255,1259, 0,
1615 1263,1270, 0, 0,1279, 0,1276,1044,1281, 0,1297, 0,1294,1051, 0,1053,
1616 0,1303,1305, 0,1307,1309,1311, 0,1320,1322,1325, 0,1047,1284,1287,
1617 1290,1056,1058,1061,1313,1317,1065,1331,1334,1337,1341, 0, 0, 0, 0,
1618 1350,1353, 0,1357,1360, 0,1090, 0,1375, 0, 0,1084,1345,1347,1087,
1619 1093,1362,1366,1368,1371,1095, 0, 0, 0, 0,1383,1386, 0,1112, 0,1401,
1620 0, 0,1109,1378,1380,1115,1388,1392,1394,1397,1117, 0,1404, 0,1406,
1621 1409,1411, 0,1415,1417, 0, 0,1424, 0,1421,1139,1426, 0,1432,1435,
1622 1439, 0,1445, 0, 0,1150, 0,1448,1450, 0,1452,1454,1456, 0,1466,1468,
1623 0,1470,1472,1475, 0,1142,1429,1146,1441,1153,1155,1158,1458,1462,1162,
1624 1165,1481,1484,1487,1491, 0,1495, 0, 0,1500, 0,1502, 0,1497,1187,
1625 1190, 0,1504,1506, 0,1512,1515,1519, 0,1525,1528, 0, 0,1203, 0,1531,
1626 0, 0, 0,1533, 0,1209,1212,1536, 0, 0, 0, 0,1540,1219,1542, 0,
1627 0, 0,1226, 0,1228, 0,1230, 0,1548,1550,1552,1556, 0, 0, 0,1239,
1628 0,1241, 0,1243, 0,1245, 0,1560,1562,1565,1247, 0,1567,1569,1572,
1629 0,1192,1196,1508,1199,1521,1207,1215,1222,1544,1232,1234,1249,1254,1575,
1630 1580,1583,1587, 0, 0,1594, 0,1591,1276,1596, 0,1599,1601, 0,1607,
1631 1610,1614, 0,1620,1623, 0, 0,1290, 0,1626, 0, 0, 0,1628, 0,1296,
1632 1299,1631, 0, 0, 0, 0,1635,1306,1637, 0, 0, 0,1313, 0,1315, 0,
1633 1317, 0,1643,1645,1647,1651, 0, 0, 0,1326, 0,1328, 0,1330, 0,1332,
1634 0,1655,1657,1660,1334, 0,1662,1664,1667, 0,1279,1283,1603,1286,1616,
1635 1294,1302,1309,1639,1319,1321,1336,1341,1670,1675,1678,1682, 0,1693,1696,
1636 0,1705,1708,1712, 0,1728,1730,1734, 0,1738,1740, 0,1745,1748, 0,
1637 1686,1689,1363,1700,1366,1716,1719,1723,1370,1374,1377,1751, 0,1756,1759,
1638 0,1393, 0,1396, 0,1761,1766, 0,1774, 0,1776, 0,1780,1783, 0,1407,
1639 1787, 0,1790,1793, 0,1413,1797,1801,1804, 0,1806,1809, 0,1421, 0,
1640 1813,1818, 0,1821, 0,1826,1829, 0,1833,1837, 0,1840, 0
1641 };
1642
1643 static const unsigned short ag_key_index[] = {
1644 1,159, 1, 1, 0, 0, 0,232,275, 0, 0,354,354,354,374, 0,275, 0,
1645 275,445,354,275,545,631, 0, 0, 0, 0, 0,232,768, 0, 0,838,861,631,
1646 0, 0, 0, 0,870,374,892, 0,870,374,275,903,932,932,932,275,445,932,
1647 932,932, 0,374,374, 0, 0,947,1023,1041,1041,1069, 0, 0,631, 0, 0,
1648 0, 0, 0, 0,892, 0,275,903,932,932,932,275,445,932,932,932, 0,374,
1649 0, 0,947,1023,1041,1041,1069, 0, 0,861, 0,1098, 0, 0, 0, 0, 0,
1650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1120,
1651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652 0, 0, 0, 0, 0,1098,275,1098,1130, 0,870,870, 0, 0, 0, 0, 0,
1653 0, 0, 0,870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1098,870,
1654 1098,631,861,861,631,631,1132,1136, 0,275,275, 0, 0, 0,275,892, 0,
1655 892, 0,892,275,374,374,1169, 0, 0,374,374,1185, 0, 0,354, 0, 0,
1656 1185, 0, 0,374, 0, 0,374,374,374,374, 0, 0, 0, 0, 0, 0,1258,
1657 1258,1345,1380, 0,1380,275, 0,1398,1400,1400,1098,1098, 0,892,892,892,
1658 892,892,892,275,275,275,275,275,275,275,275,275,275,275,275,275,275,275,
1659 275,275,275,1130,892,892,892,892,892,892,892,275,275,892,892,892,275,275,
1660 275,275,354,275,275,354,275,275,354,275,275,275,275,892,892,892,892,892,
1661 892,892,1403,861,861,631,631,631,631,1405,275,275,374, 0, 0, 0,275,
1662 374, 0,354, 0, 0,275,275,892,892,932,932,275,892,932,275,932,275,275,
1663 0, 0,275,275, 0,275, 0,374,374,374,374,374,374,374, 0,892, 0, 0,
1664 374,374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665 0, 0, 0, 0, 0, 0, 0, 0, 0,275, 0, 0, 0, 0, 0, 0, 0, 0,
1666 0, 0, 0, 0,275,1098,1098,1132,1132,1132,1132,1132,1132,1098,1098,
1667 1132,1132,1132,1132,1132,1132,1132,1410,1410,1185, 0, 0,275, 0,275,
1668 0,275, 0, 0,374,374, 0,1416,374,374, 0,374,374,275,275, 0, 0,275,
1669 275, 0,275,275, 0,354,374,275,374, 0, 0,1098,1098,892,275,275,275,
1670 275, 0,892,275,275,275, 0,1410,1185,275, 0,275,275,275,275,275,275,
1671 0,275,275, 0, 0,275,275, 0, 0,275,275,275,374,374,374,892,374,374,
1672 0, 0, 0, 0, 0, 0, 0, 0, 0,1424,275, 0,275, 0, 0, 0, 0, 0,
1673 0,892, 0, 0,275,275, 0, 0, 0,892,374, 0, 0,275,1426,1426,1429,
1674 1431,374, 0, 0, 0, 0, 0,275,374,275, 0, 0,374, 0,1426,1429, 0,
1675 0, 1, 0,892, 0,892, 0, 0,1185,374, 1,275,374,275,374,275, 0,275,
1676 1434, 0, 0, 0,892, 0,1434, 0, 0,275,374,275,1437,892,892, 0, 0,
1677 374,374,374,374, 0,275,892, 0,374,275,374
1678 };
1679
1680 static const unsigned char ag_key_ends[] = {
1681 69,77,0, 61,0, 79,83,0, 68,0, 82,79,87,0, 78,0, 78,0,
1682 76,76,0, 69,65,75,0, 82,0, 82,67,76,69,0, 65,82,0, 83,69,0,
1683 84,73,78,85,69,0, 77,0, 84,0, 83,69,0, 70,0, 80,0, 82,0,
1684 65,67,0, 85,66,0, 79,0, 69,89,0, 85,84,0, 84,82,0,
1685 82,82,85,80,84,0, 66,69,76,0, 84,0, 78,69,0, 69,82,0,
1686 82,73,77,0, 68,0, 88,84,0, 84,0, 69,78,0, 75,69,0, 82,0, 78,0,
1687 68,0, 84,79,82,69,0, 85,82,78,0, 69,82,83,69,0, 71,72,84,0,
1688 82,73,77,0, 82,69,69,78,0, 78,0, 82,84,0, 80,0, 78,0, 88,84,0,
1689 69,78,0, 77,69,0, 73,77,0, 80,80,69,82,0, 65,76,0, 73,84,0,
1690 78,68,79,87,0, 65,80,0, 73,67,75,0, 65,80,0, 73,67,75,0,
1691 82,82,79,87,0, 69,76,76,0, 82,67,76,69,0, 65,82,0, 83,69,0,
1692 84,65,0, 77,0, 84,0, 83,69,0, 70,0, 79,82,0, 85,66,0, 79,0,
1693 69,89,0, 85,84,0, 66,69,76,0, 70,84,0, 78,69,0, 80,0, 68,0,
1694 69,88,84,0, 69,78,0, 75,69,0, 73,78,84,0, 68,0, 84,79,82,69,0,
1695 85,82,78,0, 71,72,84,0, 89,83,84,69,77,50,0, 69,88,84,0,
1696 65,73,84,0, 84,73,67,75,0, 84,73,67,75,0, 79,83,0, 78,0,
1697 65,78,0, 79,83,0, 88,80,0, 82,65,67,0, 84,82,0, 78,0, 71,0,
1698 88,0, 78,0, 68,0, 69,69,75,0, 65,78,0, 78,0, 82,84,0,
1699 83,84,69,77,50,0, 65,78,0, 65,76,0, 77,65,80,0, 77,65,80,0,
1700 79,83,0, 78,0, 65,78,0, 82,0, 83,0, 65,84,69,0, 88,80,0,
1701 82,65,67,0, 69,89,0, 84,82,0, 84,0, 69,82,0, 82,73,77,0, 88,0,
1702 68,0, 78,0, 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0,
1703 77,69,0, 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0,
1704 77,65,80,0, 83,69,0, 68,73,70,0, 69,88,84,0, 69,77,0, 79,83,0,
1705 78,0, 65,78,0, 82,0, 83,0, 65,84,69,0, 88,80,0, 82,65,67,0,
1706 69,89,0, 84,82,0, 84,0, 69,82,0, 82,73,77,0, 68,0, 78,0,
1707 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0, 77,69,0,
1708 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0, 77,65,80,0, 61,0,
1709 79,83,0, 68,0, 78,0, 65,78,0, 82,0, 83,0, 65,84,69,0, 83,69,0,
1710 68,73,70,0, 80,0, 82,65,67,0, 85,66,0, 79,0, 69,89,0, 84,82,0,
1711 84,0, 69,82,0, 82,73,77,0, 88,0, 68,0, 69,88,84,0, 82,0, 78,0,
1712 77,0, 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 80,0, 78,0,
1713 69,78,0, 77,69,0, 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0,
1714 77,65,80,0, 79,83,0, 78,0, 65,78,0, 82,0, 83,0, 65,84,69,0,
1715 88,80,0, 82,65,67,0, 69,89,0, 84,82,0, 84,0, 69,82,0,
1716 82,73,77,0, 88,0, 68,0, 79,84,0, 78,0, 71,72,84,0, 82,73,77,0,
1717 78,0, 82,84,0, 82,0, 78,0, 77,69,0, 73,77,0, 80,80,69,82,0,
1718 65,76,0, 77,65,80,0, 77,65,80,0, 79,83,0, 82,79,87,0, 78,0,
1719 65,78,0, 69,76,76,0, 82,0, 82,67,76,69,0, 65,82,0, 83,69,0,
1720 83,0, 77,0, 84,0, 83,69,0, 70,0, 80,0, 82,0, 65,67,0,
1721 85,66,0, 79,0, 69,89,0, 85,84,0, 84,82,0, 84,0, 78,69,0,
1722 69,82,0, 82,73,77,0, 68,0, 69,88,84,0, 69,78,0, 75,69,0,
1723 73,78,84,0, 78,0, 68,0, 84,79,82,69,0, 85,82,78,0, 71,72,84,0,
1724 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0, 88,84,0, 77,69,0,
1725 73,77,0, 80,80,69,82,0, 65,76,0, 65,73,84,0, 65,80,0,
1726 73,67,75,0, 65,80,0, 73,67,75,0, 82,82,79,87,0, 69,76,76,0,
1727 82,67,76,69,0, 65,82,0, 83,69,0, 84,65,0, 77,0, 84,0, 83,69,0,
1728 70,0, 79,82,0, 85,66,0, 79,0, 69,89,0, 85,84,0, 70,84,0,
1729 78,69,0, 80,0, 68,0, 69,88,84,0, 69,78,0, 75,69,0, 73,78,84,0,
1730 68,0, 84,79,82,69,0, 85,82,78,0, 71,72,84,0, 89,83,84,69,77,50,0,
1731 69,88,84,0, 65,73,84,0, 84,73,67,75,0, 84,73,67,75,0, 61,0,
1732 61,0, 78,68,0, 83,69,0, 68,73,70,0, 69,88,84,0, 82,0, 69,77,0,
1733 72,69,78,0, 72,82,0, 65,84,69,0, 78,75,69,89,0, 70,84,0,
1734 87,69,82,0, 82,73,77,0, 73,68,0, 69,69,75,50,0, 71,72,84,0,
1735 82,73,77,0, 82,0, 83,84,69,77,0, 77,69,0, 73,77,0,
1736 80,80,69,82,0, 67,82,69,69,78,0, 73,78,68,79,87,0, 79,83,0, 78,0,
1737 65,78,0, 79,83,0, 88,80,0, 82,65,67,0, 84,82,0, 78,0, 71,0,
1738 78,0, 68,0, 69,69,75,0, 65,78,0, 78,0, 82,84,0,
1739 83,84,69,77,50,0, 65,78,0, 65,76,0, 77,65,80,0, 77,65,80,0,
1740 84,0, 79,83,0, 78,0, 78,0, 82,0, 83,0, 65,84,69,0, 83,69,0,
1741 68,73,70,0, 80,0, 82,65,67,0, 69,89,0, 84,82,0, 84,0, 69,82,0,
1742 82,73,77,0, 88,0, 68,0, 69,88,84,0, 78,0, 69,82,83,69,0,
1743 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0, 77,69,0,
1744 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0, 77,65,80,0,
1745 82,73,78,84,69,82,0, 73,78,68,79,87,0, 79,83,0, 78,0, 65,78,0,
1746 79,83,0, 88,80,0, 82,65,67,0, 84,82,0, 82,82,85,80,84,0, 78,0,
1747 71,0, 88,0, 78,0, 68,0, 69,69,75,0, 65,78,0, 78,0, 82,84,0,
1748 83,84,69,77,50,0, 65,78,0, 65,76,0, 77,65,80,0, 77,65,80,0,
1749 61,0, 78,68,0, 83,69,0, 68,73,70,0, 85,66,0, 79,0, 69,88,84,0,
1750 82,0, 69,77,0, 84,69,80,0, 69,78,0, 61,0, 78,68,0, 85,66,0,
1751 79,0, 69,88,84,0, 82,0, 69,77,0, 84,69,80,0, 69,78,0, 34,0,
1752 78,68,0, 82,0, 72,69,78,0, 82,0, 72,69,78,0, 79,83,0, 78,0,
1753 65,78,0, 79,83,0, 83,69,0, 68,73,70,0, 80,0, 82,65,67,0,
1754 84,82,0, 78,0, 71,0, 88,0, 78,0, 68,0, 69,88,84,0, 69,69,75,0,
1755 78,0, 77,0, 78,0, 82,84,0, 83,84,69,77,50,0, 65,78,0, 65,76,0,
1756 77,65,80,0, 77,65,80,0, 79,0, 79,83,0, 78,0, 78,0, 82,0, 83,0,
1757 65,84,69,0, 83,69,0, 68,73,70,0, 80,0, 82,65,67,0, 69,89,0,
1758 84,82,0, 84,0, 69,82,0, 82,73,77,0, 88,0, 68,0, 69,88,84,0,
1759 78,0, 77,0, 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0,
1760 77,69,0, 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0,
1761 77,65,80,0, 79,83,0, 78,0, 65,78,0, 82,0, 83,0, 65,84,69,0,
1762 83,69,0, 68,73,70,0, 80,0, 82,65,67,0, 69,89,0, 84,82,0, 84,0,
1763 69,82,0, 82,73,77,0, 88,0, 68,0, 69,88,84,0, 78,0, 77,0,
1764 71,72,84,0, 82,73,77,0, 78,0, 82,84,0, 82,0, 78,0, 77,69,0,
1765 73,77,0, 80,80,69,82,0, 65,76,0, 77,65,80,0, 77,65,80,0,
1766 72,82,0, 65,84,69,0, 83,69,0, 68,73,70,0, 78,75,69,89,0,
1767 70,84,0, 87,69,82,0, 82,73,77,0, 73,68,0, 69,88,84,0,
1768 69,69,75,50,0, 77,0, 71,72,84,0, 82,73,77,0, 82,0,
1769 83,84,69,77,0, 77,69,0, 73,77,0, 80,80,69,82,0, 85,66,0, 79,0,
1770 82,69,65,75,0, 79,78,84,73,78,85,69,0, 82,0, 72,69,78,0, 83,69,0,
1771 68,73,70,0, 69,77,0, 83,69,0, 68,73,70,0, 69,88,84,0, 69,77,0,
1772 79,0, 83,69,0, 68,73,70,0, 78,68,73,70,0, 69,77,0,
1773 78,68,73,70,0, 69,77,0, 84,69,80,0, 69,88,84,0, 69,77,0,
1774 69,88,84,0,
1775 };
1776 #define AG_TCV(x) (((int)(x) >= -1 && (int)(x) <= 255) ? ag_tcv[(x) + 1] : 0)
1777
1778 static const unsigned short ag_tcv[] = {
1779 36, 36,320,320,320,320,320,320,320,320, 1,215,320,320,320,320,320,320,
1780 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320, 1,320,321,
1781 318,322,320,320,320,252,251,277,261,225,275,323,278,324,324,324,324,324,
1782 324,324,324,324,324,320,319,311,256,313,320,320,325,325,325,325,326,325,
1783 325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,
1784 325,325,320,320,320,276,320,320,325,325,325,325,326,325,325,325,325,325,
1785 325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,320,320,
1786 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1787 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1788 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1789 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1790 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1791 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1792 320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,
1793 320,320,320,320,320
1794 };
1795
1796 #ifndef SYNTAX_ERROR
1797 #define SYNTAX_ERROR fprintf(stderr,"%s, line %d, column %d\n", \
1798 (PCB).error_message, (PCB).line, (PCB).column)
1799 #endif
1800
1801 #ifndef FIRST_LINE
1802 #define FIRST_LINE 1
1803 #endif
1804
1805 #ifndef FIRST_COLUMN
1806 #define FIRST_COLUMN 1
1807 #endif
1808
1809 #ifndef PARSER_STACK_OVERFLOW
1810 #define PARSER_STACK_OVERFLOW {fprintf(stderr, \
1811 "\nParser stack overflow, line %d, column %d\n",\
1812 (PCB).line, (PCB).column);}
1813 #endif
1814
1815 #ifndef REDUCTION_TOKEN_ERROR
1816 #define REDUCTION_TOKEN_ERROR {fprintf(stderr, \
1817 "\nReduction token error, line %d, column %d\n", \
1818 (PCB).line, (PCB).column);}
1819 #endif
1820
1821
1822 typedef enum
1823 {ag_accept_key, ag_set_key, ag_jmp_key, ag_end_key, ag_no_match_key,
1824 ag_cf_accept_key, ag_cf_set_key, ag_cf_end_key} key_words;
1825
1826 #ifndef GET_INPUT
1827 #define GET_INPUT ((PCB).input_code = getchar())
1828 #endif
1829
1830
1831 static int ag_look_ahead(void) {
1832 if ((PCB).rx < (PCB).fx) {
1833 return CONVERT_CASE((PCB).lab[(PCB).rx++]);
1834 }
1835 GET_INPUT;
1836 (PCB).fx++;
1837 return CONVERT_CASE((PCB).lab[(PCB).rx++] = (PCB).input_code);
1838 }
1839
1840 static void ag_get_key_word(int ag_k) {
1841 int save_index = (PCB).rx;
1842 const unsigned char *sp;
1843 int ag_ch;
1844 while (1) {
1845 switch (ag_key_act[ag_k]) {
1846 case ag_cf_end_key:
1847 sp = ag_key_ends + ag_key_jmp[ag_k];
1848 do {
1849 if ((ag_ch = *sp++) == 0) {
1850 int ag_k1 = ag_key_parm[ag_k];
1851 int ag_k2 = ag_key_pt[ag_k1];
1852 if (ag_key_itt[ag_k2 + ag_look_ahead()]) goto ag_fail;
1853 (PCB).rx--;
1854 (PCB).token_number = (parseBasic_token_type) ag_key_pt[ag_k1 + 1];
1855 return;
1856 }
1857 } while (ag_look_ahead() == ag_ch);
1858 goto ag_fail;
1859 case ag_end_key:
1860 sp = ag_key_ends + ag_key_jmp[ag_k];
1861 do {
1862 if ((ag_ch = *sp++) == 0) {
1863 (PCB).token_number = (parseBasic_token_type) ag_key_parm[ag_k];
1864 return;
1865 }
1866 } while (ag_look_ahead() == ag_ch);
1867 case ag_no_match_key:
1868 ag_fail:
1869 (PCB).rx = save_index;
1870 return;
1871 case ag_cf_set_key: {
1872 int ag_k1 = ag_key_parm[ag_k];
1873 int ag_k2 = ag_key_pt[ag_k1];
1874 ag_k = ag_key_jmp[ag_k];
1875 if (ag_key_itt[ag_k2 + (ag_ch = ag_look_ahead())]) break;
1876 save_index = --(PCB).rx;
1877 (PCB).token_number = (parseBasic_token_type) ag_key_pt[ag_k1+1];
1878 break;
1879 }
1880 case ag_set_key:
1881 save_index = (PCB).rx;
1882 (PCB).token_number = (parseBasic_token_type) ag_key_parm[ag_k];
1883 case ag_jmp_key:
1884 ag_k = ag_key_jmp[ag_k];
1885 ag_ch = ag_look_ahead();
1886 break;
1887 case ag_accept_key:
1888 (PCB).token_number = (parseBasic_token_type) ag_key_parm[ag_k];
1889 return;
1890 case ag_cf_accept_key: {
1891 int ag_k1 = ag_key_parm[ag_k];
1892 int ag_k2 = ag_key_pt[ag_k1];
1893 if (ag_key_itt[ag_k2 + ag_look_ahead()]) (PCB).rx = save_index;
1894 else {
1895 (PCB).rx--;
1896 (PCB).token_number = (parseBasic_token_type) ag_key_pt[ag_k1+1];
1897 }
1898 return;
1899 }
1900 default:
1901 /* not reachable; here to suppress compiler warnings */
1902 goto ag_fail;
1903 }
1904 if (ag_ch <= 255) while (ag_key_ch[ag_k] < ag_ch) ag_k++;
1905 if (ag_ch > 255 || ag_key_ch[ag_k] != ag_ch) {
1906 (PCB).rx = save_index;
1907 return;
1908 }
1909 }
1910 }
1911
1912
1913 #ifndef AG_NEWLINE
1914 #define AG_NEWLINE 10
1915 #endif
1916
1917 #ifndef AG_RETURN
1918 #define AG_RETURN 13
1919 #endif
1920
1921 #ifndef AG_FORMFEED
1922 #define AG_FORMFEED 12
1923 #endif
1924
1925 #ifndef AG_TABCHAR
1926 #define AG_TABCHAR 9
1927 #endif
1928
1929 static void ag_track(void) {
1930 int ag_k = 0;
1931 while (ag_k < (PCB).rx) {
1932 int ag_ch = (PCB).lab[ag_k++];
1933 switch (ag_ch) {
1934 case AG_NEWLINE:
1935 (PCB).column = 1, (PCB).line++;
1936 case AG_RETURN:
1937 case AG_FORMFEED:
1938 break;
1939 case AG_TABCHAR:
1940 (PCB).column += (TAB_SPACING) - ((PCB).column - 1) % (TAB_SPACING);
1941 break;
1942 default:
1943 (PCB).column++;
1944 }
1945 }
1946 ag_k = 0;
1947 while ((PCB).rx < (PCB).fx) (PCB).lab[ag_k++] = (PCB).lab[(PCB).rx++];
1948 (PCB).fx = ag_k;
1949 (PCB).rx = 0;
1950 }
1951
1952
1953 static void ag_prot(void) {
1954 int ag_k;
1955 ag_k = 128 - ++(PCB).btsx;
1956 if (ag_k <= (PCB).ssx) {
1957 (PCB).exit_flag = AG_STACK_ERROR_CODE;
1958 PARSER_STACK_OVERFLOW;
1959 return;
1960 }
1961 (PCB).bts[(PCB).btsx] = (PCB).sn;
1962 (PCB).bts[ag_k] = (PCB).ssx;
1963 (PCB).vs[ag_k] = (PCB).vs[(PCB).ssx];
1964 (PCB).ss[ag_k] = (PCB).ss[(PCB).ssx];
1965 }
1966
1967 static void ag_undo(void) {
1968 if ((PCB).drt == -1) return;
1969 while ((PCB).btsx) {
1970 int ag_k = 128 - (PCB).btsx;
1971 (PCB).sn = (PCB).bts[(PCB).btsx--];
1972 (PCB).ssx = (PCB).bts[ag_k];
1973 (PCB).vs[(PCB).ssx] = (PCB).vs[ag_k];
1974 (PCB).ss[(PCB).ssx] = (PCB).ss[ag_k];
1975 }
1976 (PCB).token_number = (parseBasic_token_type) (PCB).drt;
1977 (PCB).ssx = (PCB).dssx;
1978 (PCB).sn = (PCB).dsn;
1979 (PCB).drt = -1;
1980 }
1981
1982
1983 static const unsigned short ag_tstt[] = {
1984 215,214,36,1,0,212,213,
1985 1,0,
1986 215,214,36,0,34,35,
1987 215,214,36,0,7,8,12,
1988 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
1989 225,215,1,0,212,213,
1990 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
1991 225,215,0,10,11,15,16,19,21,24,28,30,58,95,96,99,133,135,136,190,192,
1992 208,209,210,211,
1993 215,0,13,
1994 326,325,324,315,306,305,302,301,260,259,258,255,254,253,250,249,248,245,244,
1995 243,242,241,240,239,238,236,234,233,232,231,230,229,228,227,226,223,220,
1996 219,218,215,214,36,0,2,3,5,27,29,37,38,39,40,41,42,43,44,46,47,56,60,61,
1997 66,69,71,73,74,75,78,80,82,83,84,85,86,87,88,91,92,93,94,97,98,100,102,
1998 104,165,174,216,217,257,
1999 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2000 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2001 261,256,253,252,251,225,215,1,0,212,213,
2002 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2003 225,215,1,0,212,213,
2004 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2005 225,215,1,0,212,213,
2006 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2007 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2008 273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,252,
2009 251,250,225,215,1,0,212,213,
2010 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2011 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2012 273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,252,
2013 251,250,225,215,1,0,212,213,
2014 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2015 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2016 273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,252,
2017 251,250,225,215,1,0,212,213,
2018 326,325,324,323,322,321,320,319,318,315,313,311,306,302,278,277,276,275,261,
2019 256,252,251,225,215,214,36,1,0,212,213,
2020 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2021 225,215,1,0,212,213,
2022 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2023 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2024 261,256,253,252,251,225,215,1,0,212,213,
2025 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2026 225,215,1,0,212,213,
2027 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2028 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2029 261,256,253,252,251,225,215,1,0,212,213,
2030 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2031 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2032 273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,252,
2033 251,250,241,225,215,1,0,212,213,
2034 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2035 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2036 273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,252,
2037 251,250,225,215,1,0,212,213,
2038 326,325,324,323,322,321,320,319,318,313,311,300,299,298,297,296,295,294,293,
2039 292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,
2040 261,256,253,252,251,225,215,1,0,212,213,
2041 326,325,324,323,322,321,320,319,318,315,314,313,312,311,310,308,307,306,304,
2042 303,302,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,285,
2043 284,283,282,281,280,279,278,277,276,275,273,272,271,270,269,268,267,266,
2044 265,264,263,261,260,259,258,256,253,252,251,250,237,225,220,219,215,214,
2045 36,1,0,212,213,
2046 326,325,324,323,322,321,320,319,318,313,311,309,300,299,298,297,296,295,294,
2047 293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,
2048 275,273,272,271,270,269,268,267,266,265,264,263,261,260,259,258,256,253,
2049 252,251,250,225,215,1,0,212,213,
2050 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2051 225,215,1,0,212,213,
2052 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2053 225,215,1,0,212,213,
2054 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2055 225,215,1,0,212,213,
2056 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2057 225,215,1,0,212,213,
2058 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2059 225,0,15,16,19,21,24,28,30,58,95,96,99,133,135,136,190,192,208,209,210,
2060 211,
2061 326,325,324,315,306,305,302,301,260,259,258,255,254,253,250,249,248,245,244,
2062 243,242,241,240,239,238,236,234,233,232,231,230,229,228,227,226,223,220,
2063 219,218,215,214,36,1,0,212,213,
2064 326,325,324,323,321,319,315,306,305,302,301,300,299,298,297,296,295,294,293,
2065 292,291,290,289,288,287,286,285,284,283,282,281,280,279,275,273,272,271,
2066 270,269,268,267,266,265,264,263,260,259,258,255,254,253,252,250,249,248,
2067 245,244,243,242,241,240,239,238,236,234,233,232,231,230,229,228,227,226,
2068 225,223,220,219,215,214,36,1,0,212,213,
2069 326,325,1,0,212,213,
2070 326,325,0,3,27,216,
2071 326,325,315,306,305,302,301,260,259,258,255,254,253,250,249,248,245,244,243,
2072 242,241,240,239,238,236,234,233,232,231,230,229,228,227,226,223,220,219,
2073 215,214,36,0,3,5,27,37,40,41,42,43,44,46,47,56,60,61,66,69,71,73,74,75,
2074 78,80,82,83,84,85,86,87,88,91,92,93,94,97,98,100,102,104,165,174,216,
2075 257,
2076 326,325,324,322,319,314,313,312,311,310,278,277,276,275,261,256,252,251,225,
2077 215,36,1,0,212,213,
2078 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2079 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2080 265,264,263,260,259,258,253,252,250,1,0,212,213,
2081 326,325,1,0,212,213,
2082 252,1,0,212,213,
2083 252,1,0,212,213,
2084 252,1,0,212,213,
2085 319,315,314,313,312,311,310,308,307,306,304,302,261,256,252,251,225,215,214,
2086 36,1,0,212,213,
2087 315,306,302,215,214,36,1,0,212,213,
2088 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2089 1,0,212,213,
2090 252,1,0,212,213,
2091 319,315,314,313,312,311,310,308,307,306,304,302,261,256,251,225,215,214,36,
2092 1,0,212,213,
2093 315,306,302,215,214,36,1,0,212,213,
2094 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2095 285,284,283,282,281,280,279,275,253,252,1,0,212,213,
2096 246,235,1,0,212,213,
2097 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2098 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2099 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2100 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2101 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2102 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2103 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2104 285,284,283,282,281,280,279,275,253,252,1,0,212,213,
2105 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2106 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2107 264,263,260,259,258,253,252,250,241,1,0,212,213,
2108 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2109 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2110 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2111 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2112 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2113 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2114 326,325,1,0,212,213,
2115 315,306,302,215,214,36,1,0,212,213,
2116 326,325,324,315,306,302,215,214,36,1,0,212,213,
2117 324,323,321,275,261,1,0,212,213,
2118 326,325,1,0,212,213,
2119 326,325,321,318,317,1,0,212,213,
2120 326,325,324,323,321,319,318,317,316,315,306,302,300,299,298,297,296,295,294,
2121 293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,275,273,272,
2122 271,270,269,268,267,266,265,264,263,260,259,258,253,252,250,225,215,214,
2123 36,1,0,212,213,
2124 324,318,247,235,1,0,212,213,
2125 324,318,247,235,1,0,212,213,
2126 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2127 285,284,283,282,281,280,279,275,253,252,222,1,0,212,213,
2128 326,325,324,1,0,212,213,
2129 326,325,324,1,0,212,213,
2130 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2131 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2132 265,264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,
2133 95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,
2134 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2135 152,153,154,155,156,157,158,175,183,185,187,188,216,257,262,274,
2136 326,325,0,3,27,216,
2137 256,252,0,95,99,
2138 252,0,95,
2139 252,0,95,
2140 252,0,95,
2141 256,252,0,95,99,
2142 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2143 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2144 126,127,216,257,262,
2145 252,0,95,
2146 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2147 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2148 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2149 152,153,154,155,156,157,158,216,274,
2150 246,235,0,77,89,
2151 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2152 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2153 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2154 149,150,151,152,153,154,155,156,157,158,216,274,
2155 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2156 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2157 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2158 149,150,151,152,153,154,155,156,157,158,216,274,
2159 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2160 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2161 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2162 149,150,151,152,153,154,155,156,157,158,216,274,
2163 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2164 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2165 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2166 152,153,154,155,156,157,158,216,274,
2167 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2168 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2169 264,263,260,259,258,253,252,250,241,0,3,4,5,6,14,19,20,27,51,59,79,84,
2170 93,94,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,
2171 127,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,
2172 150,151,152,153,154,155,156,157,158,216,257,262,274,
2173 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2174 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2175 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2176 149,150,151,152,153,154,155,156,157,158,216,274,
2177 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2178 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2179 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2180 149,150,151,152,153,154,155,156,157,158,216,274,
2181 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2182 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2183 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2184 149,150,151,152,153,154,155,156,157,158,216,274,
2185 326,325,0,3,5,27,76,216,257,
2186 326,325,324,0,2,3,27,29,45,216,217,
2187 324,323,321,275,261,0,4,6,14,16,19,20,72,159,262,274,
2188 326,325,0,3,5,27,70,198,216,257,
2189 326,325,321,318,317,0,67,201,202,203,207,208,
2190 326,325,324,323,321,319,318,317,316,315,306,302,300,299,298,297,296,295,294,
2191 293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,275,273,272,
2192 271,270,269,268,267,266,265,264,263,260,259,258,253,252,250,225,215,214,
2193 36,0,62,201,202,206,207,208,
2194 324,318,247,235,0,2,29,57,77,90,160,208,217,
2195 324,318,247,235,0,2,29,57,77,90,160,208,217,
2196 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2197 285,284,283,282,281,280,279,275,253,252,222,0,3,6,14,19,20,27,48,51,94,
2198 95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,
2199 150,151,152,153,154,155,156,157,158,216,274,
2200 326,325,324,0,2,3,27,29,45,216,217,
2201 326,325,324,0,2,3,27,29,45,216,217,
2202 326,325,324,319,314,313,312,311,310,278,277,276,275,261,256,252,251,225,215,
2203 36,1,0,212,213,
2204 324,0,22,
2205 326,324,323,319,315,314,313,312,311,310,308,307,306,304,303,302,278,277,276,
2206 275,261,256,251,237,225,220,219,215,214,36,1,0,23,
2207 252,1,0,212,213,
2208 252,1,0,212,213,
2209 252,1,0,212,213,
2210 252,1,0,212,213,
2211 252,1,0,212,213,
2212 252,1,0,212,213,
2213 252,1,0,212,213,
2214 252,1,0,212,213,
2215 252,1,0,212,213,
2216 252,1,0,212,213,
2217 252,1,0,212,213,
2218 252,1,0,212,213,
2219 252,1,0,212,213,
2220 252,1,0,212,213,
2221 252,1,0,212,213,
2222 252,1,0,212,213,
2223 252,1,0,212,213,
2224 252,1,0,212,213,
2225 252,1,0,212,213,
2226 252,1,0,212,213,
2227 252,1,0,212,213,
2228 252,1,0,212,213,
2229 326,0,
2230 252,0,95,
2231 252,0,95,
2232 252,0,95,
2233 252,0,95,
2234 252,0,95,
2235 252,0,95,
2236 252,0,95,
2237 252,0,95,
2238 252,0,95,
2239 252,0,95,
2240 252,0,95,
2241 252,0,95,
2242 252,0,95,
2243 252,0,95,
2244 252,0,95,
2245 252,0,95,
2246 252,0,95,
2247 252,0,95,
2248 252,0,95,
2249 252,0,95,
2250 252,0,95,
2251 252,0,95,
2252 252,0,95,
2253 319,315,314,313,312,311,310,308,307,306,304,303,302,278,277,276,275,261,256,
2254 251,237,225,220,219,215,214,36,1,0,212,213,
2255 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2256 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2257 137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,
2258 155,156,157,158,216,274,
2259 252,0,95,
2260 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2261 225,215,33,1,0,31,
2262 252,1,0,212,213,
2263 319,315,314,313,312,311,310,308,307,306,304,302,261,256,251,225,215,214,36,
2264 1,0,212,213,
2265 319,315,314,313,312,311,310,308,307,306,304,302,261,256,251,225,215,214,36,
2266 1,0,212,213,
2267 252,1,0,212,213,
2268 252,1,0,212,213,
2269 252,1,0,212,213,
2270 252,1,0,212,213,
2271 252,1,0,212,213,
2272 252,1,0,212,213,
2273 252,1,0,212,213,
2274 252,1,0,212,213,
2275 326,325,319,315,314,313,312,311,310,308,307,306,304,302,261,256,251,225,215,
2276 214,36,1,0,212,213,
2277 252,0,95,
2278 252,0,95,
2279 252,0,95,
2280 252,0,95,
2281 252,0,95,
2282 252,0,95,
2283 252,0,95,
2284 252,0,95,
2285 252,0,95,
2286 252,0,95,
2287 252,0,95,
2288 252,0,95,
2289 276,0,133,
2290 252,0,95,
2291 278,277,0,135,136,
2292 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2293 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2294 265,264,263,260,259,258,253,252,250,1,0,212,213,
2295 314,313,312,311,310,275,261,256,0,16,19,99,189,190,191,192,193,
2296 314,313,312,311,310,261,256,0,16,99,189,190,191,192,193,
2297 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2298 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2299 265,264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,
2300 95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,
2301 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2302 152,153,154,155,156,157,158,185,187,188,216,257,262,274,
2303 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2304 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2305 265,264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,
2306 95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,
2307 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2308 152,153,154,155,156,157,158,175,183,185,187,188,216,257,262,274,
2309 308,0,186,
2310 307,304,0,176,184,
2311 256,0,99,
2312 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2313 285,284,283,282,281,280,279,275,253,252,0,128,
2314 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2315 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2316 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2317 152,153,154,155,156,157,158,216,274,
2318 326,325,0,5,216,257,
2319 326,325,0,5,216,257,
2320 326,325,0,5,216,257,
2321 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2322 285,284,283,282,281,280,279,275,253,252,0,106,
2323 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2324 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2325 126,127,216,257,262,
2326 326,325,324,322,0,
2327 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2328 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2329 126,127,216,257,262,
2330 261,225,0,16,58,
2331 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2332 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2333 126,127,216,257,262,
2334 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2335 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2336 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2337 152,153,154,155,156,157,158,216,274,
2338 275,261,0,16,19,
2339 315,306,302,215,214,36,1,0,212,213,
2340 326,325,324,323,315,306,302,300,299,298,297,296,295,294,293,292,291,290,289,
2341 288,287,286,285,284,283,282,281,280,279,275,253,252,215,214,36,1,0,212,
2342 213,
2343 252,0,95,
2344 275,261,225,0,16,19,58,
2345 225,0,58,
2346 225,0,58,
2347 237,0,81,
2348 275,261,225,0,16,19,58,
2349 225,0,58,
2350 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2351 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2352 264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,95,
2353 100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,130,
2354 132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
2355 153,154,155,156,157,158,216,257,262,274,
2356 261,225,0,16,58,
2357 225,0,58,
2358 237,0,81,
2359 252,0,95,
2360 252,0,95,
2361 225,0,58,
2362 324,323,0,6,14,20,274,
2363 324,323,0,6,14,20,274,
2364 225,0,58,
2365 252,0,95,
2366 252,0,95,
2367 225,0,58,
2368 252,1,0,212,213,
2369 252,0,95,
2370 324,0,2,29,160,217,
2371 321,0,4,204,262,
2372 326,325,321,0,205,
2373 326,325,0,3,5,27,68,195,216,257,
2374 326,325,324,323,321,319,317,315,306,302,300,299,298,297,296,295,294,293,292,
2375 291,290,289,288,287,286,285,284,283,282,281,280,279,275,273,272,271,270,
2376 269,268,267,266,265,264,263,260,259,258,253,252,250,225,215,214,36,1,0,
2377 212,213,
2378 317,0,202,207,
2379 326,325,324,323,321,319,315,306,302,300,299,298,297,296,295,294,293,292,291,
2380 290,289,288,287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,
2381 268,267,266,265,264,263,260,259,258,253,252,250,225,215,214,36,0,3,4,5,
2382 6,14,19,20,27,51,59,63,93,94,95,100,102,104,114,115,117,118,119,120,121,
2383 122,123,124,125,126,127,129,130,132,134,137,138,139,140,141,142,143,144,
2384 145,146,147,148,149,150,151,152,153,154,155,156,157,158,216,257,262,274,
2385 326,325,321,315,306,302,273,272,271,270,269,268,267,266,265,264,263,260,259,
2386 258,252,250,215,214,36,1,0,212,213,
2387 324,0,2,29,160,217,
2388 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2389 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2390 126,127,216,257,262,
2391 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2392 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2393 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2394 152,153,154,155,156,157,158,216,274,
2395 225,0,58,
2396 275,261,220,219,0,16,19,44,46,
2397 224,221,1,0,212,213,
2398 224,221,0,49,50,
2399 324,0,22,
2400 324,0,22,
2401 324,275,261,0,17,
2402 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2403 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2404 126,127,216,257,262,
2405 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2406 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2407 126,127,216,257,262,
2408 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2409 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2410 126,127,216,257,262,
2411 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2412 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2413 126,127,216,257,262,
2414 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2415 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2416 126,127,216,257,262,
2417 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2418 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2419 126,127,216,257,262,
2420 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2421 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2422 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2423 152,153,154,155,156,157,158,216,274,
2424 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2425 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2426 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2427 152,153,154,155,156,157,158,216,274,
2428 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2429 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2430 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2431 152,153,154,155,156,157,158,216,274,
2432 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2433 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2434 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2435 152,153,154,155,156,157,158,216,274,
2436 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2437 285,284,283,282,281,280,279,275,253,252,251,0,3,6,14,19,20,27,51,94,95,
2438 96,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,
2439 150,151,152,153,154,155,156,157,158,216,274,
2440 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2441 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2442 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2443 152,153,154,155,156,157,158,216,274,
2444 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2445 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2446 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2447 152,153,154,155,156,157,158,216,274,
2448 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2449 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2450 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2451 152,153,154,155,156,157,158,216,274,
2452 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2453 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2454 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2455 152,153,154,155,156,157,158,216,274,
2456 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2457 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2458 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2459 152,153,154,155,156,157,158,216,274,
2460 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2461 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2462 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2463 152,153,154,155,156,157,158,216,274,
2464 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2465 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2466 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2467 152,153,154,155,156,157,158,216,274,
2468 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2469 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2470 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2471 152,153,154,155,156,157,158,216,274,
2472 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2473 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2474 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2475 152,153,154,155,156,157,158,216,274,
2476 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2477 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2478 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2479 152,153,154,155,156,157,158,216,274,
2480 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2481 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2482 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2483 152,153,154,155,156,157,158,216,274,
2484 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2485 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2486 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2487 152,153,154,155,156,157,158,216,274,
2488 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2489 285,284,283,282,281,280,279,275,253,252,0,131,
2490 326,325,324,323,322,321,320,319,318,313,311,278,277,276,275,261,256,252,251,
2491 225,215,33,1,0,
2492 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2493 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2494 126,127,216,257,262,
2495 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2496 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2497 126,127,216,257,262,
2498 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2499 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2500 126,127,216,257,262,
2501 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2502 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2503 126,127,216,257,262,
2504 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2505 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2506 126,127,216,257,262,
2507 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2508 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2509 126,127,216,257,262,
2510 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2511 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2512 126,127,216,257,262,
2513 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2514 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2515 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2516 152,153,154,155,156,157,158,216,274,
2517 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2518 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2519 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2520 152,153,154,155,156,157,158,216,274,
2521 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2522 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2523 126,127,216,257,262,
2524 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2525 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2526 126,127,216,257,262,
2527 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2528 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2529 126,127,216,257,262,
2530 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2531 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2532 137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,
2533 155,156,157,158,216,274,
2534 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2535 285,284,283,282,281,280,279,275,253,252,0,116,
2536 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2537 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2538 132,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,
2539 154,155,156,157,158,216,274,
2540 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2541 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2542 132,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,
2543 154,155,156,157,158,216,274,
2544 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2545 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2546 264,263,260,259,258,253,252,250,1,0,212,213,
2547 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2548 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2549 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2550 152,153,154,155,156,157,158,216,274,
2551 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2552 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2553 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2554 152,153,154,155,156,157,158,216,274,
2555 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2556 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2557 264,263,260,259,258,253,252,250,1,0,212,213,
2558 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2559 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2560 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2561 152,153,154,155,156,157,158,216,274,
2562 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2563 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2564 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2565 152,153,154,155,156,157,158,216,274,
2566 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2567 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2568 264,263,260,259,258,253,252,250,1,0,212,213,
2569 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2570 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2571 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2572 152,153,154,155,156,157,158,216,274,
2573 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2574 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2575 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2576 152,153,154,155,156,157,158,216,274,
2577 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2578 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2579 132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
2580 153,154,155,156,157,158,216,274,
2581 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2582 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,94,95,129,130,
2583 132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
2584 153,154,155,156,157,158,216,274,
2585 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2586 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2587 126,127,216,257,262,
2588 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2589 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2590 126,127,216,257,262,
2591 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2592 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2593 126,127,216,257,262,
2594 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2595 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2596 126,127,216,257,262,
2597 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2598 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2599 126,127,216,257,262,
2600 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2601 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2602 126,127,216,257,262,
2603 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2604 0,4,5,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,
2605 127,216,257,262,
2606 307,251,0,96,184,
2607 314,313,312,311,310,275,261,256,251,0,16,19,96,99,189,190,191,192,193,
2608 314,313,312,311,310,261,256,251,0,16,96,99,189,190,191,192,193,
2609 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2610 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2611 265,264,263,260,259,258,253,252,250,1,0,212,213,
2612 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2613 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2614 265,264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,
2615 95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,
2616 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2617 152,153,154,155,156,157,158,185,187,188,216,257,262,274,
2618 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2619 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2620 265,264,263,260,259,258,253,252,250,1,0,212,213,
2621 326,325,324,323,321,309,300,299,298,297,296,295,294,293,292,291,290,289,288,
2622 287,286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,
2623 265,264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,
2624 95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,
2625 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2626 152,153,154,155,156,157,158,183,185,187,188,216,257,262,274,
2627 304,0,177,
2628 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2629 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2630 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2631 152,153,154,155,156,157,158,216,274,
2632 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2633 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2634 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2635 151,152,153,154,155,156,157,158,216,274,
2636 275,261,0,16,19,
2637 252,225,0,95,105,
2638 252,225,0,95,103,
2639 252,225,0,95,101,
2640 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2641 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2642 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2643 151,152,153,154,155,156,157,158,216,274,
2644 261,0,16,
2645 261,251,0,16,96,
2646 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2647 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2648 264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,95,
2649 100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,130,
2650 132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
2651 153,154,155,156,157,158,216,257,262,274,
2652 261,251,0,16,96,
2653 275,261,251,0,16,19,96,
2654 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2655 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2656 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2657 152,153,154,155,156,157,158,216,274,
2658 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2659 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2660 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2661 152,153,154,155,156,157,158,216,274,
2662 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2663 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2664 126,127,216,257,262,
2665 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2666 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2667 126,127,216,257,262,
2668 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2669 285,284,283,282,281,280,279,275,253,252,241,1,0,212,213,
2670 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2671 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2672 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2673 149,150,151,152,153,154,155,156,157,158,216,274,
2674 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2675 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2676 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2677 152,153,154,155,156,157,158,216,274,
2678 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2679 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2680 126,127,216,257,262,
2681 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2682 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2683 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2684 149,150,151,152,153,154,155,156,157,158,216,274,
2685 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2686 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2687 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2688 152,153,154,155,156,157,158,216,274,
2689 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2690 285,284,283,282,281,280,279,275,253,252,241,0,3,6,14,19,20,27,51,79,84,
2691 94,95,129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,
2692 149,150,151,152,153,154,155,156,157,158,216,274,
2693 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2694 285,284,283,282,281,280,279,275,253,252,0,163,
2695 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2696 285,284,283,282,281,280,279,275,253,252,0,161,
2697 326,325,0,3,5,27,216,257,
2698 324,323,321,275,261,0,4,6,14,16,19,20,159,262,274,
2699 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2700 285,284,283,282,281,280,279,275,253,252,0,200,
2701 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2702 285,284,283,282,281,280,279,275,253,252,0,199,
2703 326,325,0,3,5,27,198,216,257,
2704 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2705 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2706 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2707 152,153,154,155,156,157,158,216,274,
2708 321,0,4,204,262,
2709 252,0,95,
2710 252,0,95,
2711 225,0,58,
2712 261,0,16,
2713 275,261,0,16,19,
2714 319,315,306,302,225,215,214,36,0,58,64,
2715 261,0,16,
2716 275,261,225,0,16,19,58,
2717 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2718 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2719 126,127,216,257,262,
2720 326,325,324,0,54,
2721 326,325,324,0,52,
2722 315,306,302,215,214,36,1,0,212,213,
2723 315,306,302,215,214,36,1,0,212,213,
2724 324,0,18,
2725 324,0,18,
2726 261,251,0,16,96,
2727 261,251,0,16,96,
2728 261,225,0,16,58,
2729 261,251,0,16,96,
2730 261,251,0,16,96,
2731 261,251,0,16,96,
2732 275,261,251,0,16,19,96,
2733 275,261,251,0,16,19,96,
2734 275,261,225,0,16,19,58,
2735 275,261,225,0,16,19,58,
2736 275,261,251,0,16,19,96,
2737 275,261,225,0,16,19,58,
2738 275,261,251,0,16,19,96,
2739 275,261,251,0,16,19,96,
2740 275,261,251,0,16,19,96,
2741 275,261,251,0,16,19,96,
2742 275,261,251,0,16,19,96,
2743 275,261,251,225,0,16,19,58,96,
2744 275,261,251,0,16,19,96,
2745 275,261,251,0,16,19,96,
2746 275,261,251,0,16,19,96,
2747 275,261,251,0,16,19,96,
2748 275,261,251,0,16,19,96,
2749 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2750 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2751 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2752 151,152,153,154,155,156,157,158,216,274,
2753 261,251,0,16,96,
2754 261,251,0,16,96,
2755 261,251,0,16,96,
2756 261,251,0,16,96,
2757 261,251,0,16,96,
2758 261,251,0,16,96,
2759 261,251,0,16,96,
2760 275,261,251,0,16,19,96,
2761 275,261,251,225,0,16,19,58,96,
2762 261,225,0,16,58,
2763 261,225,0,16,58,
2764 261,225,0,16,58,
2765 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2766 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2767 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2768 151,152,153,154,155,156,157,158,216,274,
2769 276,0,133,
2770 276,0,133,
2771 275,261,0,16,19,
2772 275,261,0,16,19,
2773 275,261,0,16,19,
2774 275,261,0,16,19,
2775 275,261,0,16,19,
2776 275,261,0,16,19,
2777 278,277,0,135,136,
2778 278,277,0,135,136,
2779 261,0,16,
2780 261,0,16,
2781 261,0,16,
2782 261,0,16,
2783 261,0,16,
2784 261,0,16,
2785 308,0,186,
2786 315,306,215,214,36,1,0,212,213,
2787 315,306,215,214,36,0,35,
2788 275,261,237,0,16,19,166,
2789 275,261,0,16,19,
2790 251,225,0,58,96,
2791 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2792 285,284,283,282,281,280,279,275,253,252,0,112,
2793 225,0,58,
2794 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2795 285,284,283,282,281,280,279,275,253,252,0,110,
2796 225,0,58,
2797 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2798 285,284,283,282,281,280,279,275,253,252,0,108,
2799 225,0,58,
2800 251,225,0,58,96,
2801 275,261,0,16,19,
2802 261,0,16,
2803 275,261,225,0,16,19,58,
2804 275,261,0,16,19,
2805 261,0,16,
2806 261,0,16,
2807 275,261,225,0,16,19,58,
2808 261,0,16,
2809 275,261,0,16,19,
2810 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2811 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2812 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2813 151,152,153,154,155,156,157,158,216,274,
2814 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2815 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2816 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2817 151,152,153,154,155,156,157,158,216,274,
2818 252,0,95,
2819 252,0,95,
2820 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2821 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2822 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2823 151,152,153,154,155,156,157,158,216,274,
2824 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2825 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2826 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2827 151,152,153,154,155,156,157,158,216,274,
2828 275,261,225,0,16,19,58,
2829 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2830 285,284,283,282,281,280,279,275,253,252,0,197,
2831 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2832 285,284,283,282,281,280,279,275,253,252,0,196,
2833 326,325,0,3,5,27,68,195,216,257,
2834 326,325,324,323,321,300,299,298,297,296,295,294,293,292,291,290,289,288,287,
2835 286,285,284,283,282,281,280,279,275,273,272,271,270,269,268,267,266,265,
2836 264,263,260,259,258,253,252,250,0,3,4,5,6,14,19,20,27,51,59,93,94,95,
2837 100,102,104,114,115,117,118,119,120,121,122,123,124,125,126,127,129,130,
2838 132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,
2839 153,154,155,156,157,158,216,257,262,274,
2840 319,315,306,302,215,214,36,0,65,209,
2841 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2842 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2843 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2844 152,153,154,155,156,157,158,216,274,
2845 261,225,0,16,58,
2846 326,325,324,0,2,3,27,29,45,55,216,217,
2847 326,325,324,0,2,3,27,29,45,53,216,217,
2848 324,0,
2849 324,0,
2850 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2851 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2852 126,127,216,257,262,
2853 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2854 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2855 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2856 152,153,154,155,156,157,158,216,274,
2857 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2858 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2859 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2860 152,153,154,155,156,157,158,216,274,
2861 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2862 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2863 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2864 152,153,154,155,156,157,158,216,274,
2865 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2866 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2867 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2868 152,153,154,155,156,157,158,216,274,
2869 251,225,0,58,96,
2870 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2871 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2872 126,127,216,257,262,
2873 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2874 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2875 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2876 152,153,154,155,156,157,158,216,274,
2877 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2878 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2879 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2880 152,153,154,155,156,157,158,216,274,
2881 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2882 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2883 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2884 152,153,154,155,156,157,158,216,274,
2885 251,225,0,58,96,
2886 315,306,215,214,36,0,7,8,12,178,
2887 237,0,81,
2888 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2889 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2890 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2891 152,153,154,155,156,157,158,216,274,
2892 256,0,99,
2893 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2894 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2895 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2896 151,152,153,154,155,156,157,158,216,274,
2897 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2898 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2899 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2900 152,153,154,155,156,157,158,216,274,
2901 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2902 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2903 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2904 151,152,153,154,155,156,157,158,216,274,
2905 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2906 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2907 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2908 152,153,154,155,156,157,158,216,274,
2909 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2910 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2911 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2912 151,152,153,154,155,156,157,158,216,274,
2913 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2914 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2915 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2916 152,153,154,155,156,157,158,216,274,
2917 256,0,99,
2918 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2919 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2920 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2921 152,153,154,155,156,157,158,216,274,
2922 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2923 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2924 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2925 152,153,154,155,156,157,158,216,274,
2926 251,225,0,58,96,
2927 251,225,0,58,96,
2928 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2929 285,284,283,282,281,280,279,275,253,252,0,164,
2930 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2931 285,284,283,282,281,280,279,275,253,252,0,162,
2932 251,225,0,58,96,
2933 251,225,0,58,96,
2934 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2935 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2936 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2937 152,153,154,155,156,157,158,216,274,
2938 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2939 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2940 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2941 151,152,153,154,155,156,157,158,216,274,
2942 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2943 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2944 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2945 151,152,153,154,155,156,157,158,216,274,
2946 261,0,16,
2947 275,261,0,16,19,
2948 275,261,225,0,16,19,58,
2949 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2950 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2951 126,127,216,257,262,
2952 225,0,58,
2953 225,0,58,
2954 261,251,0,16,96,
2955 275,261,251,0,16,19,96,
2956 275,261,251,0,16,19,96,
2957 275,261,251,0,16,19,96,
2958 275,261,251,0,16,19,96,
2959 261,251,0,16,96,
2960 275,261,225,0,16,19,58,
2961 275,261,251,0,16,19,96,
2962 275,261,251,0,16,19,96,
2963 315,306,36,0,179,194,
2964 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2965 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2966 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2967 152,153,154,155,156,157,158,216,274,
2968 275,261,0,16,19,
2969 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2970 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
2971 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
2972 152,153,154,155,156,157,158,216,274,
2973 251,225,0,58,96,
2974 275,261,251,0,16,19,96,
2975 251,225,0,58,96,
2976 275,261,251,0,16,19,96,
2977 251,225,0,58,96,
2978 275,261,225,0,16,19,58,
2979 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2980 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2981 126,127,216,257,262,
2982 275,261,251,0,16,19,96,
2983 275,261,225,0,16,19,58,
2984 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2985 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2986 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2987 151,152,153,154,155,156,157,158,216,274,
2988 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
2989 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,107,
2990 129,130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
2991 151,152,153,154,155,156,157,158,216,274,
2992 275,261,251,0,16,19,96,
2993 251,225,0,58,96,
2994 251,225,0,58,96,
2995 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
2996 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
2997 126,127,216,257,262,
2998 261,0,16,
2999 326,325,324,0,2,3,27,29,45,216,217,
3000 326,325,324,0,2,3,27,29,45,216,217,
3001 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3002 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3003 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3004 152,153,154,155,156,157,158,216,274,
3005 306,215,214,36,1,0,212,213,
3006 306,215,214,36,0,35,
3007 306,36,0,180,
3008 303,275,261,215,214,0,16,19,167,173,
3009 275,261,0,16,19,
3010 225,0,113,
3011 256,0,99,
3012 225,0,111,
3013 256,0,99,
3014 225,0,109,
3015 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3016 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3017 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3018 152,153,154,155,156,157,158,216,274,
3019 261,0,16,
3020 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3021 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3022 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3023 152,153,154,155,156,157,158,216,274,
3024 251,225,0,58,96,
3025 251,225,0,58,96,
3026 261,0,16,
3027 275,261,251,0,16,19,96,
3028 306,215,214,36,0,7,8,12,
3029 306,36,0,181,182,
3030 324,323,275,261,1,0,212,213,
3031 324,323,275,261,0,6,14,16,19,20,159,274,
3032 215,214,0,168,
3033 225,0,58,
3034 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3035 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3036 126,127,216,257,262,
3037 225,0,58,
3038 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3039 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3040 126,127,216,257,262,
3041 225,0,58,
3042 275,261,251,0,16,19,96,
3043 275,261,237,0,16,19,81,
3044 315,306,302,215,214,36,1,0,212,213,
3045 215,214,0,7,8,12,
3046 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3047 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3048 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3049 152,153,154,155,156,157,158,216,274,
3050 261,0,16,
3051 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3052 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3053 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3054 152,153,154,155,156,157,158,216,274,
3055 261,0,16,
3056 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3057 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3058 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3059 152,153,154,155,156,157,158,216,274,
3060 256,0,99,
3061 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3062 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3063 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3064 152,153,154,155,156,157,158,216,274,
3065 302,215,214,36,0,35,
3066 275,261,251,0,16,19,96,
3067 275,261,251,0,16,19,96,
3068 275,261,225,0,16,19,58,
3069 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3070 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3071 126,127,216,257,262,
3072 275,261,225,0,16,19,58,
3073 302,215,214,36,0,7,8,12,169,
3074 256,0,99,
3075 256,0,99,
3076 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3077 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3078 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3079 152,153,154,155,156,157,158,216,274,
3080 261,0,16,
3081 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3082 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3083 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3084 152,153,154,155,156,157,158,216,274,
3085 302,36,0,170,172,
3086 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3087 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3088 126,127,216,257,262,
3089 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3090 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3091 126,127,216,257,262,
3092 275,261,251,0,16,19,96,
3093 275,261,225,0,16,19,58,
3094 326,325,315,306,302,215,214,36,1,0,212,213,
3095 326,325,315,306,302,215,214,36,0,3,27,171,216,
3096 261,0,16,
3097 261,0,16,
3098 256,0,99,
3099 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3100 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3101 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3102 152,153,154,155,156,157,158,216,274,
3103 326,325,321,273,272,271,270,269,268,267,266,265,264,263,260,259,258,252,250,
3104 0,4,5,59,93,95,100,102,104,114,115,117,118,119,120,121,122,123,124,125,
3105 126,127,216,257,262,
3106 275,261,225,0,16,19,58,
3107 261,0,16,
3108 326,325,324,323,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,
3109 285,284,283,282,281,280,279,275,253,252,0,3,6,14,19,20,27,51,94,95,129,
3110 130,132,134,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
3111 152,153,154,155,156,157,158,216,274,
3112 275,261,0,16,19,
3113
3114 };
3115
3116
3117 static unsigned const char ag_astt[14392] = {
3118 8,8,8,1,7,1,1,9,5,8,8,8,7,0,1,8,1,2,7,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3119 5,5,5,5,5,5,1,7,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,7,1,3,1,1,1,
3120 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,2,2,5,5,1,5,1,1,1,1,1,1,1,1,1,1,
3121 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,7,2,2,1,1,2,3,1,1,3,3,3,
3122 3,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,5,
3123 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3124 5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,
3125 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3126 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3127 5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3128 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,
3129 3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3130 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,
3131 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3132 5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3133 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3134 5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3135 5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3136 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3137 5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3138 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,
3139 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3140 5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3141 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3142 5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3143 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,
3144 1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,
3145 5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,
3146 7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,1,1,1,1,1,1,1,1,1,
3147 1,1,1,1,1,1,1,1,1,1,1,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,
3148 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3149 1,7,1,3,5,5,10,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3150 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3151 5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,1,7,1,3,2,2,7,2,2,1,2,2,5,5,1,5,1,1,1,1,1,
3152 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,7,2,1,1,3,3,3,3,
3153 3,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,1,1,1,1,1,10,
3154 10,10,2,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,
3155 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,
3156 3,5,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3157 5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3158 5,1,7,1,3,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,
3159 5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,
3160 1,3,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3161 5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,
3162 1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,
3163 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,
3164 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3165 5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3166 5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,
3167 1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,
3168 5,1,7,1,3,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,1,7,1,3,
3169 5,5,1,7,1,3,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3170 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,
3171 3,5,5,5,5,1,7,1,3,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3172 5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,1,7,1,3,5,5,5,1,7,1,3,2,2,2,1,1,1,1,1,1,
3173 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3174 7,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,
3175 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,7,2,1,1,1,1,7,
3176 1,1,1,7,1,1,7,1,1,7,1,1,1,7,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,
3177 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,
3178 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3179 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,
3180 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3181 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3182 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3183 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3184 1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3185 1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3186 1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3187 1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3188 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,2,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,
3189 1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3190 1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,
3191 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
3192 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,
3193 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,
3194 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,2,1,1,1,1,
3195 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,7,2,1,1,1,1,1,2,
3196 2,2,4,2,2,2,2,2,1,1,2,1,1,1,1,7,2,2,1,1,1,1,1,2,1,1,2,2,7,2,1,1,1,1,1,1,4,
3197 4,4,1,1,7,1,1,1,1,1,1,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3198 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,2,1,1,1,
3199 2,1,1,1,7,2,2,2,2,2,2,1,1,2,1,1,1,7,2,2,1,1,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,
3200 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3201 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,7,2,2,2,2,2,1,1,2,2,2,7,2,
3202 2,2,2,2,1,1,10,10,10,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,1,7,2,5,10,
3203 1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,7,3,5,1,7,1,3,5,
3204 1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,
3205 1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,
3206 5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,1,5,1,7,1,1,7,
3207 1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,
3208 1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,5,5,5,5,5,5,5,5,5,5,
3209 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3210 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3211 1,1,1,1,1,1,1,1,1,1,1,1,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3212 7,1,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,5,5,5,5,5,5,
3213 5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,
3214 1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,1,7,1,3,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3215 5,5,5,1,7,1,3,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,1,7,1,
3216 1,7,1,1,7,1,1,5,1,1,4,1,1,1,5,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3217 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,1,1,1,1,1,1,1,
3218 1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,
3219 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,
3220 1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,
3221 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,
3222 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,2,
3223 1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3224 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,1,4,7,1,1,1,7,1,4,4,4,
3225 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,2,2,2,1,1,1,1,1,1,
3226 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3227 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,7,1,1,1,2,2,7,1,1,1,2,2,7,1,
3228 1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,2,2,1,1,
3229 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,
3230 1,1,1,10,10,10,2,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,
3231 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,7,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3232 1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,
3233 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3234 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,5,5,5,5,5,5,1,7,1,3,5,
3235 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,
3236 3,1,7,1,1,1,1,7,1,1,1,1,4,1,1,4,1,1,7,1,1,1,1,7,1,1,1,1,7,1,2,2,2,1,1,1,1,
3237 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3238 1,7,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,
3239 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,7,1,1,7,1,1,7,
3240 1,1,7,1,1,5,1,2,1,7,2,1,1,1,2,1,7,2,1,1,1,1,5,1,1,4,1,1,4,1,1,5,1,5,1,7,1,
3241 3,1,7,1,2,7,2,2,2,1,1,7,2,3,1,4,4,4,7,1,2,2,7,2,1,1,2,1,1,1,5,5,5,5,5,5,5,
3242 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3243 5,5,5,5,5,5,5,5,5,5,1,7,1,3,1,4,2,1,2,2,2,1,1,5,5,5,5,1,1,1,1,1,1,1,1,1,1,
3244 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,5,5,5,7,2,2,
3245 1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,
3246 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3247 5,5,5,5,5,5,5,5,5,1,7,1,3,2,7,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3248 1,4,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,
3249 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3250 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,7,1,1,1,1,5,5,1,7,1,3,
3251 1,1,7,2,2,1,4,2,1,5,2,8,1,1,7,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,
3252 1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3253 1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,
3254 1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,
3255 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3256 1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,
3257 1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,
3258 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3259 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3260 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3261 1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3262 1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,
3263 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3264 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,
3265 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,
3266 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,2,1,1,1,
3267 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,
3268 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3269 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3270 1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3271 1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3272 1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3273 1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,
3274 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
3275 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,
3276 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,
3277 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3278 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3279 1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3280 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3281 1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3282 1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,
3283 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
3284 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,
3285 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,
3286 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3287 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3288 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3289 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3290 4,4,4,4,4,4,4,7,1,10,10,10,10,10,2,10,10,10,10,10,10,10,10,10,10,10,10,10,
3291 10,2,10,10,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,
3292 1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,
3293 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3294 1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,
3295 1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,
3296 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
3297 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,
3298 1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,
3299 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3300 1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3301 1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3302 1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3303 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,
3304 1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,
3305 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3306 7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,
3307 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,
3308 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3309 4,4,4,4,4,4,4,7,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3310 1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3311 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,
3312 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,
3313 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,
3314 7,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,
3315 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,
3316 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,
3317 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,
3318 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,
3319 3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,
3320 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,
3321 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,
3322 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,
3323 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,2,
3324 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,
3325 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,
3326 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3327 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3328 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3329 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3330 1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3331 1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,
3332 1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,
3333 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3334 1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,
3335 1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,
3336 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
3337 1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,
3338 1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2,1,1,1,
3339 1,2,2,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,7,3,1,1,1,1,1,1,1,1,1,1,7,1,1,3,1,1,
3340 1,1,1,1,1,1,1,1,1,1,1,1,7,1,3,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3341 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,2,2,2,
3342 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3343 1,1,1,1,1,1,7,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,
3344 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,5,5,5,5,5,
3345 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
3346 5,5,5,5,1,7,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3347 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,
3348 1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3349 1,1,1,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3350 1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3351 1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,
3352 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,
3353 1,1,1,4,7,1,1,1,4,7,1,1,1,4,7,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3354 1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3355 1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,7,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3356 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,2,1,1,1,1,1,
3357 1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3358 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,1,1,1,7,1,1,3,2,2,2,1,1,1,1,1,1,1,1,1,
3359 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3360 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3361 1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3362 1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,
3363 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3364 7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,
3365 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,7,1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3366 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3367 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3368 1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3369 1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,
3370 1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3371 1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3372 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3373 1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3374 1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3375 7,2,2,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3376 1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,4,4,4,
3377 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,2,2,7,2,1,1,1,1,2,
3378 1,1,1,1,7,2,2,1,1,1,1,2,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3379 4,4,4,4,4,4,7,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3380 7,1,2,2,7,2,1,1,3,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3381 1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3382 1,1,1,1,1,7,2,3,1,1,4,1,1,4,1,1,5,1,1,4,1,1,1,4,1,1,4,4,4,4,1,4,4,4,7,1,1,
3383 1,4,1,1,1,1,7,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,
3384 1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,4,4,4,7,1,4,4,4,7,1,5,5,5,5,5,5,1,7,1,3,
3385 5,5,5,5,5,5,1,7,1,3,2,7,1,2,7,1,1,1,7,1,2,1,1,7,1,2,1,1,7,1,1,1,1,7,1,2,1,
3386 1,7,1,2,1,1,7,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,1,1,1,1,7,1,1,1,
3387 1,1,1,7,1,1,2,1,1,1,7,1,1,1,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,
3388 1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,1,7,1,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,
3389 1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3390 1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3391 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,1,1,7,1,2,1,1,7,1,2,1,1,7,1,2,1,1,7,1,
3392 2,1,1,7,1,2,1,1,7,1,2,1,1,1,7,1,1,2,1,1,1,1,7,1,1,1,2,1,1,7,1,1,1,1,7,1,1,
3393 1,1,7,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,
3394 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3395 4,1,1,4,1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,4,1,1,1,1,
3396 4,1,1,1,1,4,1,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,1,4,1,5,5,5,5,5,1,7,1,
3397 3,5,5,8,8,5,7,1,1,1,4,7,1,1,1,1,1,4,1,1,1,1,7,1,1,4,4,4,4,4,4,4,4,4,4,4,4,
3398 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,7,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3399 4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,1,7,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3400 4,4,4,4,4,4,4,4,4,4,4,7,1,1,7,1,1,1,7,1,1,1,1,4,1,1,1,4,1,1,1,1,7,1,1,1,1,
3401 1,5,1,1,1,4,1,1,4,1,1,1,1,7,1,1,1,1,4,1,1,1,4,1,1,2,2,2,1,1,1,1,1,1,1,1,1,
3402 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3403 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3404 1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3405 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3406 1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3407 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3408 1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3409 1,1,1,1,1,1,1,1,1,1,7,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3410 4,4,4,4,4,4,7,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3411 7,1,2,2,7,2,1,1,3,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3412 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,2,1,1,1,1,1,1,2,1,1,1,1,1,
3413 1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3414 1,1,1,1,1,1,1,4,4,4,4,4,4,7,3,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3415 1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3416 1,1,1,1,1,1,1,1,1,1,1,4,1,1,2,2,2,7,2,2,2,2,2,1,1,1,2,2,2,7,2,2,2,2,2,1,1,
3417 1,10,4,10,4,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,
3418 1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3419 1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3420 1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,
3421 2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
3422 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,
3423 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,
3424 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3425 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,
3426 1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,2,
3427 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,
3428 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,
3429 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3430 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3431 1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3432 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,4,4,8,1,4,7,1,1,1,1,1,7,1,2,2,2,1,1,1,
3433 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,
3434 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,1,
3435 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3436 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3437 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3438 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3439 1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3440 1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3441 7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3442 1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,
3443 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,
3444 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,
3445 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,
3446 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3447 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3448 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3449 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,1,1,7,1,2,4,4,4,4,4,4,4,4,4,4,4,4,4,
3450 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
3451 4,4,4,4,4,4,4,4,4,4,7,1,1,1,7,1,2,1,1,7,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3452 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3453 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3454 1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3455 1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3456 1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3457 1,1,1,1,4,1,1,1,4,1,1,1,1,1,4,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3458 7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,4,1,1,4,1,1,1,7,1,2,1,
3459 1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,1,7,1,2,1,1,1,7,1,
3460 1,1,1,1,1,7,1,1,2,1,1,1,7,1,1,2,1,5,5,7,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
3461 1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3462 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3463 1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3464 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1,7,1,1,1,1,1,7,1,1,1,1,1,7,1,1,1,
3465 1,1,7,1,1,1,1,1,7,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,
3466 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,7,1,1,2,1,1,1,7,1,1,1,2,2,2,1,
3467 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,
3468 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,
3469 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3470 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,2,1,1,7,1,2,1,1,7,1,
3471 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,
3472 1,1,2,2,1,1,1,1,1,4,1,2,2,2,7,2,2,2,2,2,1,1,2,2,2,7,2,2,2,2,2,1,1,2,2,2,1,
3473 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,
3474 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,1,7,1,3,5,8,8,
3475 5,7,1,4,4,7,1,1,1,1,4,4,7,1,1,1,1,1,1,4,1,1,4,7,1,1,7,1,4,7,1,1,7,1,4,7,1,
3476 2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,
3477 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,2,2,1,
3478 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,
3479 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,2,1,1,7,1,2,1,
3480 4,1,1,1,1,7,1,1,2,5,8,1,5,7,1,1,1,1,2,7,3,3,5,5,5,5,1,7,1,3,2,1,1,1,7,2,1,
3481 1,1,1,2,1,4,4,7,1,1,7,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,
3482 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,7,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3483 1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,7,1,1,1,1,7,1,
3484 1,1,1,1,1,7,1,1,1,5,5,5,5,5,5,1,7,1,3,8,1,7,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,
3485 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3486 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3487 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3488 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3489 1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3490 1,1,1,1,1,1,1,1,1,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3491 1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3492 1,1,1,1,1,1,5,8,8,5,7,1,1,1,1,7,1,1,1,1,1,1,7,1,1,1,1,1,1,7,1,1,1,2,2,1,1,
3493 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,
3494 1,1,1,1,1,1,7,1,1,1,4,8,1,4,7,1,1,1,1,1,7,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,1,
3495 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3496 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3497 1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3498 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,7,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3499 1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,
3500 1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,7,
3501 1,1,1,1,1,1,7,1,1,1,5,5,5,5,5,5,5,5,1,7,1,3,2,2,4,4,4,4,4,4,7,2,2,2,1,1,4,
3502 1,1,4,1,1,7,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,
3503 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3504 2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,
3505 1,2,2,1,1,1,1,1,1,1,7,1,1,1,1,4,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3506 1,1,1,1,1,1,1,1,1,7,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
3507 1,1,1,1,1,1,1,1,1,1,1,1,4,1,1
3508 };
3509
3510
3511 static const unsigned short ag_pstt[] = {
3512 2,2,2,1,0,1,2,
3513 327,329,
3514 3,3,3,2,0,3,
3515 6,4,36,3,7,5,6,
3516 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3517 328,328,1,4,1,330,
3518 9,10,15,17,24,26,27,14,25,11,13,16,21,8,18,20,12,23,22,19,3,5,28,6,28,28,28,
3519 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,
3520 29,6,7,
3521 24,24,29,42,42,35,42,36,37,38,39,41,42,43,44,45,46,47,48,49,50,51,52,53,54,
3522 55,56,57,58,59,60,61,62,63,64,65,66,67,31,42,42,42,7,28,26,74,70,41,38,
3523 33,32,38,38,38,38,97,96,95,94,93,92,91,90,89,88,65,87,86,85,84,83,82,81,
3524 80,79,78,77,87,88,76,75,92,73,72,71,69,68,34,30,40,
3525 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3526 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3527 328,328,328,328,328,328,328,1,8,1,392,
3528 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3529 328,328,1,9,1,442,
3530 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3531 328,328,1,10,1,441,
3532 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3533 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3534 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3535 328,328,328,328,1,11,1,429,
3536 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3537 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3538 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3539 328,328,328,328,1,12,1,372,
3540 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3541 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3542 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3543 328,328,328,328,1,13,1,427,
3544 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3545 328,328,328,328,328,328,328,1,14,1,435,
3546 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3547 328,328,1,15,1,440,
3548 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3549 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3550 328,328,328,328,328,328,328,1,16,1,394,
3551 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3552 328,328,1,17,1,439,
3553 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3554 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3555 328,328,328,328,328,328,328,1,18,1,391,
3556 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3557 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3558 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3559 328,328,328,328,328,1,19,1,341,
3560 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3561 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3562 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3563 328,328,328,328,1,20,1,377,
3564 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3565 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3566 328,328,328,328,328,328,328,1,21,1,393,
3567 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3568 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3569 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3570 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3571 328,1,22,1,367,
3572 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3573 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3574 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3575 328,328,328,328,328,1,23,1,368,
3576 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3577 328,328,1,24,1,438,
3578 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3579 328,328,1,25,1,434,
3580 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3581 328,328,1,26,1,437,
3582 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3583 328,328,1,27,1,436,
3584 9,10,15,17,24,26,27,14,25,11,13,16,21,8,18,20,12,23,22,19,4,2,2,2,2,2,2,2,2,
3585 2,2,2,2,2,2,2,2,2,2,2,2,
3586 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3587 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3588 328,328,328,328,328,1,29,1,331,
3589 328,328,30,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3590 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3591 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3592 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3593 328,328,328,328,328,328,328,1,30,1,333,
3594 328,328,1,31,1,334,
3595 24,24,32,26,40,98,
3596 24,24,42,42,35,42,36,37,38,39,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,
3597 56,57,58,59,60,61,62,63,64,65,66,67,42,42,42,33,26,74,70,39,39,39,39,39,
3598 97,96,95,94,93,92,91,90,89,88,65,87,86,85,84,83,82,81,80,79,78,77,87,88,
3599 76,75,92,73,72,71,69,68,34,40,
3600 25,25,25,27,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3601 328,1,34,1,332,
3602 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3603 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3604 328,328,328,328,328,328,328,328,328,1,35,1,421,
3605 328,328,1,36,1,417,
3606 328,1,37,1,376,
3607 328,1,38,1,375,
3608 328,1,39,1,374,
3609 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3610 328,1,40,1,373,
3611 328,328,328,328,328,328,1,41,1,371,
3612 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3613 1,42,1,370,
3614 328,1,43,1,369,
3615 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3616 1,44,1,366,
3617 328,328,328,328,328,328,1,45,1,365,
3618 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3619 328,328,328,328,328,328,328,328,328,328,1,46,1,364,
3620 328,328,1,47,1,361,
3621 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3622 328,328,328,328,328,328,328,328,328,328,328,1,48,1,360,
3623 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3624 328,328,328,328,328,328,328,328,328,328,328,1,49,1,359,
3625 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3626 328,328,328,328,328,328,328,328,328,328,328,1,50,1,358,
3627 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3628 328,328,328,328,328,328,328,328,328,328,1,51,1,357,
3629 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3630 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3631 328,328,328,328,328,328,328,328,328,1,52,1,356,
3632 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3633 328,328,328,328,328,328,328,328,328,328,328,1,53,1,355,
3634 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3635 328,328,328,328,328,328,328,328,328,328,328,1,54,1,354,
3636 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3637 328,328,328,328,328,328,328,328,328,328,328,1,55,1,352,
3638 328,328,1,56,1,350,
3639 328,328,328,328,328,328,1,57,1,349,
3640 328,328,328,328,328,328,328,328,328,1,58,1,348,
3641 328,328,328,328,328,1,59,1,347,
3642 328,328,1,60,1,346,
3643 328,328,328,328,328,1,61,1,345,
3644 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3645 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3646 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3647 328,1,62,1,344,
3648 328,328,328,328,1,63,1,343,
3649 328,328,328,328,1,64,1,342,
3650 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3651 328,328,328,328,328,328,328,328,328,328,328,1,65,1,339,
3652 328,328,328,1,66,1,336,
3653 328,328,328,1,67,1,335,
3654 24,24,18,99,150,178,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
3655 115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,
3656 160,161,37,38,39,43,23,44,68,26,115,176,138,123,148,100,149,179,180,124,
3657 125,182,172,174,173,180,180,171,170,169,168,167,166,165,164,132,133,163,
3658 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3659 132,131,130,129,128,127,126,124,184,183,183,183,181,34,40,162,147,
3660 24,24,69,26,185,98,
3661 12,23,70,186,187,
3662 23,71,188,
3663 23,72,189,
3664 23,73,190,
3665 12,23,74,191,192,
3666 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,75,115,
3667 176,195,124,194,172,174,173,195,195,171,170,169,168,167,166,165,164,132,
3668 133,163,193,40,162,
3669 23,76,196,
3670 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3671 117,118,119,120,121,122,18,43,23,77,26,138,123,148,100,149,198,125,197,
3672 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3673 132,131,130,129,128,127,126,124,98,147,
3674 199,200,78,81,82,
3675 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3676 117,118,119,120,121,122,18,43,23,51,79,26,138,123,148,100,149,202,203,
3677 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3678 135,134,133,132,131,130,129,128,127,126,124,98,147,
3679 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3680 117,118,119,120,121,122,18,43,23,51,80,26,138,123,148,100,149,202,204,
3681 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3682 135,134,133,132,131,130,129,128,127,126,124,98,147,
3683 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3684 117,118,119,120,121,122,18,43,23,51,81,26,138,123,148,100,149,202,205,
3685 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3686 135,134,133,132,131,130,129,128,127,126,124,98,147,
3687 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3688 117,118,119,120,121,122,18,43,23,82,26,138,123,148,100,149,206,125,197,
3689 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3690 132,131,130,129,128,127,126,124,98,147,
3691 24,24,18,99,150,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
3692 116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,160,
3693 161,37,38,39,43,23,44,51,83,26,115,176,138,123,148,100,149,202,209,207,
3694 201,124,125,208,172,174,173,209,209,171,170,169,168,167,166,165,164,132,
3695 133,163,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,
3696 134,133,132,131,130,129,128,127,126,124,34,40,162,147,
3697 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3698 117,118,119,120,121,122,18,43,23,51,84,26,138,123,148,100,149,202,210,
3699 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3700 135,134,133,132,131,130,129,128,127,126,124,98,147,
3701 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3702 117,118,119,120,121,122,18,43,23,51,85,26,138,123,148,100,149,202,211,
3703 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3704 135,134,133,132,131,130,129,128,127,126,124,98,147,
3705 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3706 117,118,119,120,121,122,18,43,23,51,86,26,138,123,148,100,149,202,69,
3707 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
3708 135,134,133,132,131,130,129,128,127,126,124,98,147,
3709 24,24,87,26,212,213,214,34,40,
3710 24,24,29,63,28,26,185,184,64,98,30,
3711 18,99,150,18,20,89,249,180,123,216,215,100,217,250,162,147,
3712 24,24,90,26,218,219,220,220,34,40,
3713 258,258,261,25,221,91,226,226,225,224,222,223,
3714 265,265,265,265,265,265,25,221,227,265,265,265,265,265,265,265,265,265,265,
3715 265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,
3716 265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,
3717 265,92,229,229,268,228,222,223,
3718 29,25,230,200,93,28,183,57,80,85,274,231,30,
3719 29,25,230,200,94,28,183,234,233,232,274,231,30,
3720 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3721 117,118,119,120,121,122,18,43,23,236,95,26,138,123,148,100,149,237,235,
3722 125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,
3723 134,133,132,131,130,129,128,127,126,124,98,147,
3724 24,24,29,96,28,26,185,184,48,98,30,
3725 24,24,29,97,28,26,185,184,47,98,30,
3726 25,25,25,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3727 328,1,98,1,332,
3728 238,99,17,
3729 14,19,239,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
3730 14,14,14,14,14,14,100,16,
3731 328,1,101,1,416,
3732 328,1,102,1,415,
3733 328,1,103,1,414,
3734 328,1,104,1,413,
3735 328,1,105,1,412,
3736 328,1,106,1,411,
3737 328,1,107,1,410,
3738 328,1,108,1,409,
3739 328,1,109,1,408,
3740 328,1,110,1,407,
3741 328,1,111,1,406,
3742 328,1,112,1,405,
3743 328,1,113,1,404,
3744 328,1,114,1,403,
3745 328,1,115,1,402,
3746 328,1,116,1,401,
3747 328,1,117,1,400,
3748 328,1,118,1,399,
3749 328,1,119,1,398,
3750 328,1,120,1,397,
3751 328,1,121,1,396,
3752 328,1,122,1,395,
3753 240,8,
3754 23,124,241,
3755 23,125,242,
3756 23,126,243,
3757 23,127,244,
3758 23,128,245,
3759 23,129,246,
3760 23,130,247,
3761 23,131,248,
3762 23,132,249,
3763 23,133,250,
3764 23,134,251,
3765 23,135,252,
3766 23,136,253,
3767 23,137,254,
3768 23,138,255,
3769 23,139,256,
3770 23,140,257,
3771 23,141,258,
3772 23,142,259,
3773 23,143,260,
3774 23,144,261,
3775 23,145,262,
3776 23,146,263,
3777 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3778 328,328,328,328,328,328,328,328,1,147,1,390,
3779 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3780 117,118,119,120,121,122,18,43,23,148,26,138,123,148,100,149,125,197,144,
3781 144,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,
3782 129,128,127,126,124,98,147,
3783 23,140,264,
3784 33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,150,
3785 265,
3786 328,1,151,1,389,
3787 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3788 1,152,1,388,
3789 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3790 1,153,1,387,
3791 328,1,154,1,386,
3792 328,1,155,1,385,
3793 328,1,156,1,384,
3794 328,1,157,1,383,
3795 328,1,158,1,382,
3796 328,1,159,1,381,
3797 328,1,160,1,380,
3798 328,1,161,1,379,
3799 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3800 328,328,1,162,1,378,
3801 23,163,266,
3802 23,164,267,
3803 23,165,268,
3804 23,166,269,
3805 23,167,270,
3806 23,168,271,
3807 23,169,272,
3808 23,170,273,
3809 23,171,274,
3810 23,172,275,
3811 23,173,276,
3812 23,174,277,
3813 8,147,278,
3814 23,113,279,
3815 16,21,150,281,280,
3816 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3817 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3818 328,328,328,328,328,328,328,328,328,1,178,1,425,
3819 282,11,285,13,288,18,20,12,179,292,291,290,289,287,286,284,283,
3820 282,11,285,13,288,20,12,180,299,298,297,296,295,294,293,
3821 24,24,18,99,150,178,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
3822 115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,
3823 160,161,37,38,39,43,23,44,181,26,115,176,138,123,148,100,149,179,180,
3824 124,125,182,172,174,173,180,180,171,170,169,168,167,166,165,164,132,133,
3825 163,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
3826 133,132,131,130,129,128,127,126,124,218,218,181,34,40,162,147,
3827 24,24,18,99,150,178,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
3828 115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,
3829 160,161,37,38,39,43,23,44,182,26,115,176,138,123,148,100,149,301,302,
3830 124,125,182,172,174,173,302,302,171,170,169,168,167,166,165,164,132,133,
3831 163,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
3832 133,132,131,130,129,128,127,126,124,300,183,183,183,181,34,40,162,147,
3833 303,212,304,
3834 305,206,184,307,306,
3835 12,185,308,
3836 136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
3837 136,136,136,136,136,136,136,136,136,136,186,309,
3838 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3839 117,118,119,120,121,122,18,43,23,187,26,138,123,148,100,149,310,125,197,
3840 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3841 132,131,130,129,128,127,126,124,98,147,
3842 24,24,188,311,193,40,
3843 24,24,189,312,193,40,
3844 24,24,190,313,193,40,
3845 100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,
3846 100,100,100,100,100,100,100,100,100,100,191,314,
3847 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,192,
3848 115,176,315,124,194,172,174,173,315,315,171,170,169,168,167,166,165,164,
3849 132,133,163,193,40,162,
3850 25,25,25,27,193,
3851 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,194,
3852 115,176,316,124,194,172,174,173,316,316,171,170,169,168,167,166,165,164,
3853 132,133,163,193,40,162,
3854 20,19,195,299,317,
3855 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,196,
3856 115,176,318,124,194,172,174,173,318,318,171,170,169,168,167,166,165,164,
3857 132,133,163,193,40,162,
3858 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3859 117,118,119,120,121,122,18,43,23,197,26,138,123,148,100,149,319,125,197,
3860 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3861 132,131,130,129,128,127,126,124,98,147,
3862 18,20,86,292,291,
3863 328,328,328,328,328,328,1,199,1,362,
3864 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3865 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,1,200,1,
3866 351,
3867 23,201,320,
3868 18,20,19,202,292,291,321,
3869 19,79,322,
3870 19,78,323,
3871 324,205,325,
3872 18,20,19,206,292,291,326,
3873 19,207,327,
3874 24,24,18,99,150,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
3875 116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,160,
3876 161,37,38,39,43,23,44,208,26,115,176,138,123,148,100,149,319,316,124,
3877 125,208,172,174,173,316,316,171,170,169,168,167,166,165,164,132,133,163,
3878 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3879 132,131,130,129,128,127,126,124,34,40,162,147,
3880 20,19,209,299,328,
3881 19,210,329,
3882 324,211,330,
3883 23,212,331,
3884 23,213,332,
3885 19,66,333,
3886 18,99,215,182,123,100,147,
3887 18,99,216,181,123,100,147,
3888 19,62,334,
3889 23,246,335,
3890 23,243,336,
3891 19,61,337,
3892 328,1,221,1,433,
3893 23,222,338,
3894 29,223,28,183,272,30,
3895 150,224,270,262,162,
3896 260,260,263,225,339,
3897 24,24,226,26,340,341,60,342,34,40,
3898 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3899 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3900 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,1,
3901 227,1,432,
3902 221,267,269,222,
3903 24,24,18,99,150,253,253,253,253,101,102,103,104,105,106,107,108,109,110,111,
3904 112,113,114,115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,
3905 157,158,159,160,161,37,38,39,43,23,44,345,253,253,253,229,26,115,176,
3906 138,123,148,100,149,344,343,345,124,125,208,172,174,173,343,343,171,170,
3907 169,168,167,166,165,164,132,133,163,175,175,175,177,146,145,144,143,142,
3908 141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,124,34,
3909 40,162,147,
3910 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
3911 328,328,328,328,328,328,1,230,1,363,
3912 29,231,28,183,273,30,
3913 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,83,115,
3914 176,346,124,194,172,174,173,346,346,171,170,169,168,167,166,165,164,132,
3915 133,163,193,40,162,
3916 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3917 117,118,119,120,121,122,18,43,23,233,26,138,123,148,100,149,347,125,197,
3918 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3919 132,131,130,129,128,127,126,124,98,147,
3920 19,234,348,
3921 18,20,66,67,235,292,291,350,349,
3922 328,328,1,236,1,338,
3923 351,352,237,49,50,
3924 238,20,21,
3925 238,15,13,
3926 354,353,354,240,354,
3927 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,241,
3928 115,176,355,124,194,172,174,173,355,355,171,170,169,168,167,166,165,164,
3929 132,133,163,193,40,162,
3930 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,242,
3931 115,176,356,124,194,172,174,173,356,356,171,170,169,168,167,166,165,164,
3932 132,133,163,193,40,162,
3933 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,243,
3934 115,176,357,124,194,172,174,173,357,357,171,170,169,168,167,166,165,164,
3935 132,133,163,193,40,162,
3936 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,244,
3937 115,176,358,124,194,172,174,173,358,358,171,170,169,168,167,166,165,164,
3938 132,133,163,193,40,162,
3939 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,245,
3940 115,176,359,124,194,172,174,173,359,359,171,170,169,168,167,166,165,164,
3941 132,133,163,193,40,162,
3942 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,246,
3943 115,176,360,124,194,172,174,173,360,360,171,170,169,168,167,166,165,164,
3944 132,133,163,193,40,162,
3945 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3946 117,118,119,120,121,122,18,43,23,247,26,138,123,148,100,149,361,125,197,
3947 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3948 132,131,130,129,128,127,126,124,98,147,
3949 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3950 117,118,119,120,121,122,18,43,23,248,26,138,123,148,100,149,362,125,197,
3951 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3952 132,131,130,129,128,127,126,124,98,147,
3953 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3954 117,118,119,120,121,122,18,43,23,249,26,138,123,148,100,149,363,125,197,
3955 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3956 132,131,130,129,128,127,126,124,98,147,
3957 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3958 117,118,119,120,121,122,18,43,23,250,26,138,123,148,100,149,364,125,197,
3959 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3960 132,131,130,129,128,127,126,124,98,147,
3961 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3962 117,118,119,120,121,122,18,43,23,22,251,26,138,123,148,100,149,365,125,
3963 197,169,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,
3964 134,133,132,131,130,129,128,127,126,124,98,147,
3965 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3966 117,118,119,120,121,122,18,43,23,252,26,138,123,148,100,149,366,125,197,
3967 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3968 132,131,130,129,128,127,126,124,98,147,
3969 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3970 117,118,119,120,121,122,18,43,23,253,26,138,123,148,100,149,367,125,197,
3971 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3972 132,131,130,129,128,127,126,124,98,147,
3973 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3974 117,118,119,120,121,122,18,43,23,254,26,138,123,148,100,149,368,125,197,
3975 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3976 132,131,130,129,128,127,126,124,98,147,
3977 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3978 117,118,119,120,121,122,18,43,23,255,26,138,123,148,100,149,369,125,197,
3979 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3980 132,131,130,129,128,127,126,124,98,147,
3981 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3982 117,118,119,120,121,122,18,43,23,256,26,138,123,148,100,149,370,125,197,
3983 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3984 132,131,130,129,128,127,126,124,98,147,
3985 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3986 117,118,119,120,121,122,18,43,23,257,26,138,123,148,100,149,371,125,197,
3987 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3988 132,131,130,129,128,127,126,124,98,147,
3989 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3990 117,118,119,120,121,122,18,43,23,258,26,138,123,148,100,149,372,125,197,
3991 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3992 132,131,130,129,128,127,126,124,98,147,
3993 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3994 117,118,119,120,121,122,18,43,23,259,26,138,123,148,100,149,373,125,197,
3995 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
3996 132,131,130,129,128,127,126,124,98,147,
3997 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
3998 117,118,119,120,121,122,18,43,23,260,26,138,123,148,100,149,374,125,197,
3999 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4000 132,131,130,129,128,127,126,124,98,147,
4001 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4002 117,118,119,120,121,122,18,43,23,261,26,138,123,148,100,149,375,125,197,
4003 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4004 132,131,130,129,128,127,126,124,98,147,
4005 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4006 117,118,119,120,121,122,18,43,23,262,26,138,123,148,100,149,376,125,197,
4007 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4008 132,131,130,129,128,127,126,124,98,147,
4009 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4010 117,118,119,120,121,122,18,43,23,263,26,138,123,148,100,149,377,125,197,
4011 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4012 132,131,130,129,128,127,126,124,98,147,
4013 141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
4014 141,141,141,141,141,141,141,141,141,141,264,378,
4015 34,34,34,34,34,31,34,34,34,34,34,34,34,34,34,34,34,34,34,34,32,35,34,265,
4016 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,266,
4017 115,176,379,124,194,172,174,173,379,379,171,170,169,168,167,166,165,164,
4018 132,133,163,193,40,162,
4019 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,267,
4020 115,176,380,124,194,172,174,173,380,380,171,170,169,168,167,166,165,164,
4021 132,133,163,193,40,162,
4022 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,268,
4023 115,176,381,124,194,172,174,173,381,381,171,170,169,168,167,166,165,164,
4024 132,133,163,193,40,162,
4025 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,269,
4026 115,176,382,124,194,172,174,173,382,382,171,170,169,168,167,166,165,164,
4027 132,133,163,193,40,162,
4028 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,270,
4029 115,176,383,124,194,172,174,173,383,383,171,170,169,168,167,166,165,164,
4030 132,133,163,193,40,162,
4031 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,271,
4032 115,176,384,124,194,172,174,173,384,384,171,170,169,168,167,166,165,164,
4033 132,133,163,193,40,162,
4034 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,272,
4035 115,176,385,124,194,172,174,173,385,385,171,170,169,168,167,166,165,164,
4036 132,133,163,193,40,162,
4037 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4038 117,118,119,120,121,122,18,43,23,273,26,138,123,148,100,149,386,125,197,
4039 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4040 132,131,130,129,128,127,126,124,98,147,
4041 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4042 117,118,119,120,121,122,18,43,23,274,26,138,123,148,100,149,387,125,197,
4043 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4044 132,131,130,129,128,127,126,124,98,147,
4045 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,275,
4046 115,176,388,124,194,172,174,173,388,388,171,170,169,168,167,166,165,164,
4047 132,133,163,193,40,162,
4048 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,276,
4049 115,176,389,124,194,172,174,173,389,389,171,170,169,168,167,166,165,164,
4050 132,133,163,193,40,162,
4051 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,277,
4052 115,176,390,124,194,172,174,173,390,390,171,170,169,168,167,166,165,164,
4053 132,133,163,193,40,162,
4054 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4055 117,118,119,120,121,122,18,43,23,278,26,138,123,148,100,149,125,197,146,
4056 146,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,
4057 129,128,127,126,124,98,147,
4058 116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,
4059 116,116,116,116,116,116,116,116,116,116,279,391,
4060 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4061 117,118,119,120,121,122,18,43,23,280,26,138,123,148,100,149,125,197,392,
4062 392,392,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,
4063 130,129,128,127,126,124,98,147,
4064 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4065 117,118,119,120,121,122,18,43,23,281,26,138,123,148,100,149,125,197,393,
4066 393,393,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,
4067 130,129,128,127,126,124,98,147,
4068 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4069 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4070 328,328,328,328,328,328,328,328,1,282,1,430,
4071 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4072 117,118,119,120,121,122,18,43,23,283,26,138,123,148,100,149,394,125,197,
4073 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4074 132,131,130,129,128,127,126,124,98,147,
4075 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4076 117,118,119,120,121,122,18,43,23,284,26,138,123,148,100,149,395,125,197,
4077 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4078 132,131,130,129,128,127,126,124,98,147,
4079 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4080 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4081 328,328,328,328,328,328,328,328,1,285,1,428,
4082 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4083 117,118,119,120,121,122,18,43,23,286,26,138,123,148,100,149,396,125,197,
4084 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4085 132,131,130,129,128,127,126,124,98,147,
4086 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4087 117,118,119,120,121,122,18,43,23,287,26,138,123,148,100,149,397,125,197,
4088 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4089 132,131,130,129,128,127,126,124,98,147,
4090 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4091 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4092 328,328,328,328,328,328,328,328,1,288,1,426,
4093 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4094 117,118,119,120,121,122,18,43,23,289,26,138,123,148,100,149,398,125,197,
4095 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4096 132,131,130,129,128,127,126,124,98,147,
4097 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4098 117,118,119,120,121,122,18,43,23,290,26,138,123,148,100,149,399,125,197,
4099 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4100 132,131,130,129,128,127,126,124,98,147,
4101 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4102 117,118,119,120,121,122,18,43,23,291,26,138,123,148,100,149,125,197,175,
4103 175,175,400,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,
4104 131,130,129,128,127,126,124,98,147,
4105 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4106 117,118,119,120,121,122,18,43,23,292,26,138,123,148,100,149,125,197,175,
4107 175,175,401,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,
4108 131,130,129,128,127,126,124,98,147,
4109 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,293,
4110 115,176,402,124,194,172,174,173,402,402,171,170,169,168,167,166,165,164,
4111 132,133,163,193,40,162,
4112 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,294,
4113 115,176,403,124,194,172,174,173,403,403,171,170,169,168,167,166,165,164,
4114 132,133,163,193,40,162,
4115 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,295,
4116 115,176,404,124,194,172,174,173,404,404,171,170,169,168,167,166,165,164,
4117 132,133,163,193,40,162,
4118 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,296,
4119 115,176,405,124,194,172,174,173,405,405,171,170,169,168,167,166,165,164,
4120 132,133,163,193,40,162,
4121 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,297,
4122 115,176,406,124,194,172,174,173,406,406,171,170,169,168,167,166,165,164,
4123 132,133,163,193,40,162,
4124 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,298,
4125 115,176,407,124,194,172,174,173,407,407,171,170,169,168,167,166,165,164,
4126 132,133,163,193,40,162,
4127 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,299,
4128 115,176,124,194,172,174,173,112,112,171,170,169,168,167,166,165,164,132,
4129 133,163,193,40,162,
4130 305,22,300,217,306,
4131 282,11,285,13,288,18,20,12,22,301,292,291,143,290,289,287,286,284,283,
4132 282,11,285,13,288,20,12,22,302,299,118,298,297,296,295,294,293,
4133 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4134 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4135 328,328,328,328,328,328,328,328,328,1,303,1,424,
4136 24,24,18,99,150,178,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
4137 115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,
4138 160,161,37,38,39,43,23,44,304,26,115,176,138,123,148,100,149,179,180,
4139 124,125,182,172,174,173,180,180,171,170,169,168,167,166,165,164,132,133,
4140 163,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4141 133,132,131,130,129,128,127,126,124,215,215,181,34,40,162,147,
4142 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4143 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4144 328,328,328,328,328,328,328,328,328,1,305,1,423,
4145 24,24,18,99,150,178,101,102,103,104,105,106,107,108,109,110,111,112,113,114,
4146 115,116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,
4147 160,161,37,38,39,43,23,44,306,26,115,176,138,123,148,100,149,179,180,
4148 124,125,182,172,174,173,180,180,171,170,169,168,167,166,165,164,132,133,
4149 163,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4150 133,132,131,130,129,128,127,126,124,408,408,408,181,34,40,162,147,
4151 409,307,410,
4152 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4153 117,118,119,120,121,122,18,43,23,308,26,138,123,148,100,149,411,125,197,
4154 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4155 132,131,130,129,128,127,126,124,98,147,
4156 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4157 117,118,119,120,121,122,18,43,23,309,26,138,123,148,100,149,412,125,197,
4158 413,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4159 133,132,131,130,129,128,127,126,124,98,147,
4160 18,20,135,292,291,
4161 23,98,311,414,415,
4162 23,96,312,416,417,
4163 23,94,313,418,419,
4164 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4165 117,118,119,120,121,122,18,43,23,314,26,138,123,148,100,149,412,125,197,
4166 420,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4167 133,132,131,130,129,128,127,126,124,98,147,
4168 20,93,299,
4169 20,22,316,299,118,
4170 24,24,18,99,150,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
4171 116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,160,
4172 161,37,38,39,43,23,44,317,26,115,176,138,123,148,100,149,421,422,124,
4173 125,208,172,174,173,422,422,171,170,169,168,167,166,165,164,132,133,163,
4174 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4175 132,131,130,129,128,127,126,124,34,40,162,147,
4176 20,22,318,299,89,
4177 18,20,22,319,292,291,143,
4178 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4179 117,118,119,120,121,122,18,43,23,320,26,138,123,148,100,149,423,125,197,
4180 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4181 132,131,130,129,128,127,126,124,98,147,
4182 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4183 117,118,119,120,121,122,18,43,23,321,26,138,123,148,100,149,424,125,197,
4184 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4185 132,131,130,129,128,127,126,124,98,147,
4186 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,322,
4187 115,176,425,124,194,172,174,173,425,425,171,170,169,168,167,166,165,164,
4188 132,133,163,193,40,162,
4189 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,323,
4190 115,176,426,124,194,172,174,173,426,426,171,170,169,168,167,166,165,164,
4191 132,133,163,193,40,162,
4192 328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,
4193 328,328,328,328,328,328,328,328,328,328,328,1,324,1,353,
4194 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4195 117,118,119,120,121,122,18,43,23,51,325,26,138,123,148,100,149,202,75,
4196 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
4197 135,134,133,132,131,130,129,128,127,126,124,98,147,
4198 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4199 117,118,119,120,121,122,18,43,23,326,26,138,123,148,100,149,427,125,197,
4200 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4201 132,131,130,129,128,127,126,124,98,147,
4202 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,327,
4203 115,176,428,124,194,172,174,173,428,428,171,170,169,168,167,166,165,164,
4204 132,133,163,193,40,162,
4205 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4206 117,118,119,120,121,122,18,43,23,51,328,26,138,123,148,100,149,202,72,
4207 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
4208 135,134,133,132,131,130,129,128,127,126,124,98,147,
4209 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4210 117,118,119,120,121,122,18,43,23,329,26,138,123,148,100,149,429,125,197,
4211 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4212 132,131,130,129,128,127,126,124,98,147,
4213 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4214 117,118,119,120,121,122,18,43,23,51,330,26,138,123,148,100,149,202,70,
4215 201,125,197,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,
4216 135,134,133,132,131,130,129,128,127,126,124,98,147,
4217 190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,190,
4218 190,190,190,190,190,190,190,190,190,190,331,430,
4219 186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,186,
4220 186,186,186,186,186,186,186,186,186,186,332,431,
4221 24,24,333,26,432,433,34,40,
4222 18,99,150,18,20,334,251,180,123,216,215,100,252,162,147,
4223 247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,
4224 247,247,247,247,247,247,247,247,247,247,335,434,
4225 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,
4226 244,244,244,244,244,244,244,244,244,244,336,435,
4227 24,24,337,26,218,219,242,34,40,
4228 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4229 117,118,119,120,121,122,18,43,23,338,26,138,123,148,100,149,436,125,197,
4230 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4231 132,131,130,129,128,127,126,124,98,147,
4232 150,339,270,264,162,
4233 23,238,437,
4234 23,235,438,
4235 19,233,439,
4236 20,256,299,
4237 18,20,254,292,291,
4238 58,58,58,58,19,58,58,58,345,440,441,
4239 20,84,299,
4240 18,20,19,347,292,291,442,
4241 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,348,
4242 115,176,443,124,194,172,174,173,443,443,171,170,169,168,167,166,165,164,
4243 132,133,163,193,40,162,
4244 53,53,53,349,444,
4245 51,51,51,350,445,
4246 328,328,328,328,328,328,1,351,1,340,
4247 328,328,328,328,328,328,1,352,1,337,
4248 22,353,446,
4249 22,354,447,
4250 20,22,355,299,179,
4251 20,22,356,299,178,
4252 20,19,357,299,448,
4253 20,22,358,299,176,
4254 20,22,359,299,175,
4255 20,22,360,299,174,
4256 18,20,22,361,292,291,173,
4257 18,20,22,362,292,291,172,
4258 18,20,19,363,292,291,449,
4259 18,20,19,364,292,291,450,
4260 18,20,22,365,292,291,168,
4261 18,20,19,366,292,291,451,
4262 18,20,22,367,292,291,166,
4263 18,20,22,368,292,291,165,
4264 18,20,22,369,292,291,164,
4265 18,20,22,370,292,291,163,
4266 18,20,22,371,292,291,162,
4267 18,20,22,19,372,292,291,452,160,
4268 18,20,22,373,292,291,159,
4269 18,20,22,374,292,291,158,
4270 18,20,22,375,292,291,157,
4271 18,20,22,376,292,291,156,
4272 18,20,22,377,292,291,155,
4273 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4274 117,118,119,120,121,122,18,43,23,378,26,138,123,148,100,149,412,125,197,
4275 453,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4276 133,132,131,130,129,128,127,126,124,98,147,
4277 20,22,379,299,134,
4278 20,22,380,299,131,
4279 20,22,381,299,130,
4280 20,22,382,299,129,
4281 20,22,383,299,128,
4282 20,22,384,299,127,
4283 20,22,385,299,126,
4284 18,20,22,386,292,291,125,
4285 18,20,22,19,387,292,291,454,122,
4286 20,19,388,299,455,
4287 20,19,389,299,456,
4288 20,19,390,299,457,
4289 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4290 117,118,119,120,121,122,18,43,23,391,26,138,123,148,100,149,412,125,197,
4291 458,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4292 133,132,131,130,129,128,127,126,124,98,147,
4293 8,149,278,
4294 8,148,278,
4295 18,20,230,292,291,
4296 18,20,229,292,291,
4297 18,20,228,292,291,
4298 18,20,227,292,291,
4299 18,20,226,292,291,
4300 18,20,225,292,291,
4301 16,21,152,281,280,
4302 16,21,151,281,280,
4303 20,224,299,
4304 20,223,299,
4305 20,222,299,
4306 20,221,299,
4307 20,220,299,
4308 20,219,299,
4309 303,213,304,
4310 328,328,328,328,328,1,409,1,420,
4311 37,37,459,459,37,410,459,
4312 18,20,196,411,292,291,460,
4313 18,20,194,292,291,
4314 22,19,413,461,462,
4315 108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,
4316 108,108,108,108,108,108,108,108,108,108,414,463,
4317 19,415,464,
4318 105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
4319 105,105,105,105,105,105,105,105,105,105,416,465,
4320 19,417,466,
4321 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
4322 102,102,102,102,102,102,102,102,102,102,418,467,
4323 19,419,468,
4324 22,19,420,461,469,
4325 18,20,91,292,291,
4326 20,90,299,
4327 18,20,19,423,292,291,470,
4328 18,20,153,292,291,
4329 20,77,299,
4330 20,76,299,
4331 18,20,19,427,292,291,471,
4332 20,73,299,
4333 18,20,71,292,291,
4334 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4335 117,118,119,120,121,122,18,43,23,430,26,138,123,148,100,149,412,125,197,
4336 472,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4337 133,132,131,130,129,128,127,126,124,98,147,
4338 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4339 117,118,119,120,121,122,18,43,23,431,26,138,123,148,100,149,412,125,197,
4340 473,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4341 133,132,131,130,129,128,127,126,124,98,147,
4342 23,432,474,
4343 23,433,475,
4344 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4345 117,118,119,120,121,122,18,43,23,434,26,138,123,148,100,149,412,125,197,
4346 476,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4347 133,132,131,130,129,128,127,126,124,98,147,
4348 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4349 117,118,119,120,121,122,18,43,23,435,26,138,123,148,100,149,412,125,197,
4350 477,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4351 133,132,131,130,129,128,127,126,124,98,147,
4352 18,20,19,436,292,291,478,
4353 239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
4354 239,239,239,239,239,239,239,239,239,239,437,479,
4355 236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,
4356 236,236,236,236,236,236,236,236,236,236,438,480,
4357 24,24,439,26,340,341,234,342,34,40,
4358 24,24,18,99,150,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,
4359 116,117,118,119,120,121,122,18,151,152,153,154,155,156,157,158,159,160,
4360 161,37,38,39,43,23,44,440,26,115,176,138,123,148,100,149,482,481,124,
4361 125,208,172,174,173,481,481,171,170,169,168,167,166,165,164,132,133,163,
4362 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4363 132,131,130,129,128,127,126,124,34,40,162,147,
4364 14,275,275,275,275,275,275,441,59,59,
4365 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4366 117,118,119,120,121,122,18,43,23,442,26,138,123,148,100,149,483,125,197,
4367 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4368 132,131,130,129,128,127,126,124,98,147,
4369 20,19,56,299,484,
4370 24,24,29,444,28,26,185,184,279,485,98,30,
4371 24,24,29,445,28,26,185,184,277,486,98,30,
4372 23,12,
4373 23,11,
4374 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,448,
4375 115,176,487,124,194,172,174,173,487,487,171,170,169,168,167,166,165,164,
4376 132,133,163,193,40,162,
4377 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4378 117,118,119,120,121,122,18,43,23,449,26,138,123,148,100,149,488,125,197,
4379 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4380 132,131,130,129,128,127,126,124,98,147,
4381 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4382 117,118,119,120,121,122,18,43,23,450,26,138,123,148,100,149,489,125,197,
4383 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4384 132,131,130,129,128,127,126,124,98,147,
4385 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4386 117,118,119,120,121,122,18,43,23,451,26,138,123,148,100,149,490,125,197,
4387 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4388 132,131,130,129,128,127,126,124,98,147,
4389 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4390 117,118,119,120,121,122,18,43,23,452,26,138,123,148,100,149,491,125,197,
4391 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4392 132,131,130,129,128,127,126,124,98,147,
4393 22,19,453,461,142,
4394 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,454,
4395 115,176,492,124,194,172,174,173,492,492,171,170,169,168,167,166,165,164,
4396 132,133,163,193,40,162,
4397 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4398 117,118,119,120,121,122,18,43,23,455,26,138,123,148,100,149,493,125,197,
4399 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4400 132,131,130,129,128,127,126,124,98,147,
4401 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4402 117,118,119,120,121,122,18,43,23,456,26,138,123,148,100,149,494,125,197,
4403 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4404 132,131,130,129,128,127,126,124,98,147,
4405 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4406 117,118,119,120,121,122,18,43,23,457,26,138,123,148,100,149,495,125,197,
4407 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4408 132,131,130,129,128,127,126,124,98,147,
4409 22,19,458,461,117,
4410 207,207,6,4,207,459,7,5,6,496,
4411 324,460,497,
4412 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4413 117,118,119,120,121,122,18,43,23,461,26,138,123,148,100,149,498,125,197,
4414 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4415 132,131,130,129,128,127,126,124,98,147,
4416 12,462,499,
4417 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4418 117,118,119,120,121,122,18,43,23,463,26,138,123,148,100,149,412,125,197,
4419 500,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4420 133,132,131,130,129,128,127,126,124,98,147,
4421 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4422 117,118,119,120,121,122,18,43,23,464,26,138,123,148,100,149,501,125,197,
4423 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4424 132,131,130,129,128,127,126,124,98,147,
4425 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4426 117,118,119,120,121,122,18,43,23,465,26,138,123,148,100,149,412,125,197,
4427 502,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4428 133,132,131,130,129,128,127,126,124,98,147,
4429 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4430 117,118,119,120,121,122,18,43,23,466,26,138,123,148,100,149,503,125,197,
4431 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4432 132,131,130,129,128,127,126,124,98,147,
4433 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4434 117,118,119,120,121,122,18,43,23,467,26,138,123,148,100,149,412,125,197,
4435 504,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4436 133,132,131,130,129,128,127,126,124,98,147,
4437 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4438 117,118,119,120,121,122,18,43,23,468,26,138,123,148,100,149,505,125,197,
4439 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4440 132,131,130,129,128,127,126,124,98,147,
4441 12,469,506,
4442 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4443 117,118,119,120,121,122,18,43,23,470,26,138,123,148,100,149,507,125,197,
4444 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4445 132,131,130,129,128,127,126,124,98,147,
4446 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4447 117,118,119,120,121,122,18,43,23,471,26,138,123,148,100,149,508,125,197,
4448 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4449 132,131,130,129,128,127,126,124,98,147,
4450 22,19,472,461,191,
4451 22,19,473,461,187,
4452 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,
4453 192,192,192,192,192,192,192,192,192,192,474,509,
4454 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,
4455 188,188,188,188,188,188,188,188,188,188,475,510,
4456 22,19,476,461,248,
4457 22,19,477,461,245,
4458 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4459 117,118,119,120,121,122,18,43,23,478,26,138,123,148,100,149,511,125,197,
4460 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4461 132,131,130,129,128,127,126,124,98,147,
4462 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4463 117,118,119,120,121,122,18,43,23,479,26,138,123,148,100,149,412,125,197,
4464 512,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4465 133,132,131,130,129,128,127,126,124,98,147,
4466 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4467 117,118,119,120,121,122,18,43,23,480,26,138,123,148,100,149,412,125,197,
4468 513,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4469 133,132,131,130,129,128,127,126,124,98,147,
4470 20,257,299,
4471 18,20,255,292,291,
4472 18,20,19,67,292,291,514,
4473 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,484,
4474 115,176,515,124,194,172,174,173,515,515,171,170,169,168,167,166,165,164,
4475 132,133,163,193,40,162,
4476 19,54,516,
4477 19,52,517,
4478 20,22,487,299,177,
4479 18,20,22,488,292,291,171,
4480 18,20,22,489,292,291,170,
4481 18,20,22,490,292,291,167,
4482 18,20,22,491,292,291,161,
4483 20,22,492,299,123,
4484 18,20,19,493,292,291,518,
4485 18,20,22,494,292,291,120,
4486 18,20,22,495,292,291,119,
4487 519,231,231,496,521,520,
4488 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4489 117,118,119,120,121,122,18,43,23,497,26,138,123,148,100,149,522,125,197,
4490 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4491 132,131,130,129,128,127,126,124,98,147,
4492 18,20,195,292,291,
4493 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4494 117,118,119,120,121,122,18,43,23,499,26,138,123,148,100,149,523,125,197,
4495 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4496 132,131,130,129,128,127,126,124,98,147,
4497 22,19,500,461,524,
4498 18,20,22,501,292,291,525,
4499 22,19,502,461,526,
4500 18,20,22,503,292,291,527,
4501 22,19,504,461,528,
4502 18,20,19,505,292,291,529,
4503 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,506,
4504 115,176,530,124,194,172,174,173,530,530,171,170,169,168,167,166,165,164,
4505 132,133,163,193,40,162,
4506 18,20,22,507,292,291,154,
4507 18,20,19,508,292,291,531,
4508 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4509 117,118,119,120,121,122,18,43,23,509,26,138,123,148,100,149,412,125,197,
4510 532,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4511 133,132,131,130,129,128,127,126,124,98,147,
4512 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4513 117,118,119,120,121,122,18,43,23,510,26,138,123,148,100,149,412,125,197,
4514 533,175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,
4515 133,132,131,130,129,128,127,126,124,98,147,
4516 18,20,22,511,292,291,271,
4517 22,19,512,461,240,
4518 22,19,513,461,237,
4519 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,514,
4520 115,176,534,124,194,172,174,173,534,534,171,170,169,168,167,166,165,164,
4521 132,133,163,193,40,162,
4522 20,55,299,
4523 24,24,29,516,28,26,185,184,280,98,30,
4524 24,24,29,517,28,26,185,184,278,98,30,
4525 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4526 117,118,119,120,121,122,18,43,23,518,26,138,123,148,100,149,535,125,197,
4527 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4528 132,131,130,129,128,127,126,124,98,147,
4529 328,328,328,328,1,519,1,431,
4530 37,536,536,37,520,536,
4531 208,208,521,537,
4532 538,18,20,202,202,522,292,291,540,539,
4533 18,20,137,292,291,
4534 109,524,541,
4535 12,525,542,
4536 106,526,543,
4537 12,527,544,
4538 103,528,545,
4539 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4540 117,118,119,120,121,122,18,43,23,529,26,138,123,148,100,149,546,125,197,
4541 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4542 132,131,130,129,128,127,126,124,98,147,
4543 20,101,299,
4544 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4545 117,118,119,120,121,122,18,43,23,531,26,138,123,148,100,149,547,125,197,
4546 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4547 132,131,130,129,128,127,126,124,98,147,
4548 22,19,532,461,193,
4549 22,19,533,461,189,
4550 20,68,299,
4551 18,20,22,535,292,291,121,
4552 232,6,4,232,536,7,5,6,
4553 548,211,537,209,209,
4554 328,328,328,328,1,538,1,419,
4555 18,99,18,20,539,180,123,216,215,100,203,147,
4556 197,197,540,549,
4557 19,541,550,
4558 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,542,
4559 115,176,551,124,194,172,174,173,551,551,171,170,169,168,167,166,165,164,
4560 132,133,163,193,40,162,
4561 19,543,552,
4562 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,544,
4563 115,176,553,124,194,172,174,173,553,553,171,170,169,168,167,166,165,164,
4564 132,133,163,193,40,162,
4565 19,545,554,
4566 18,20,22,546,292,291,555,
4567 18,20,324,547,292,291,556,
4568 328,328,328,328,328,328,1,548,1,422,
4569 6,4,549,557,5,6,
4570 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4571 117,118,119,120,121,122,18,43,23,550,26,138,123,148,100,149,558,125,197,
4572 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4573 132,131,130,129,128,127,126,124,98,147,
4574 20,99,299,
4575 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4576 117,118,119,120,121,122,18,43,23,552,26,138,123,148,100,149,559,125,197,
4577 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4578 132,131,130,129,128,127,126,124,98,147,
4579 20,97,299,
4580 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4581 117,118,119,120,121,122,18,43,23,554,26,138,123,148,100,149,560,125,197,
4582 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4583 132,131,130,129,128,127,126,124,98,147,
4584 12,555,561,
4585 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4586 117,118,119,120,121,122,18,43,23,556,26,138,123,148,100,149,562,125,197,
4587 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4588 132,131,130,129,128,127,126,124,98,147,
4589 37,563,563,37,557,563,
4590 18,20,22,558,292,291,564,
4591 18,20,22,559,292,291,565,
4592 18,20,19,560,292,291,566,
4593 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,561,
4594 115,176,567,124,194,172,174,173,567,567,171,170,169,168,167,166,165,164,
4595 132,133,163,193,40,162,
4596 18,20,19,562,292,291,568,
4597 198,6,4,198,563,7,5,6,569,
4598 12,564,570,
4599 12,565,571,
4600 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4601 117,118,119,120,121,122,18,43,23,566,26,138,123,148,100,149,572,125,197,
4602 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4603 132,131,130,129,128,127,126,124,98,147,
4604 20,95,299,
4605 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4606 117,118,119,120,121,122,18,43,23,568,26,138,123,148,100,149,573,125,197,
4607 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4608 132,131,130,129,128,127,126,124,98,147,
4609 574,201,569,575,575,
4610 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,570,
4611 115,176,576,124,194,172,174,173,576,576,171,170,169,168,167,166,165,164,
4612 132,133,163,193,40,162,
4613 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,571,
4614 115,176,577,124,194,172,174,173,577,577,171,170,169,168,167,166,165,164,
4615 132,133,163,193,40,162,
4616 18,20,22,572,292,291,578,
4617 18,20,19,573,292,291,579,
4618 328,328,328,328,328,328,328,328,1,574,1,418,
4619 24,24,204,204,204,204,204,204,575,26,205,199,98,
4620 20,110,299,
4621 20,107,299,
4622 12,578,580,
4623 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4624 117,118,119,120,121,122,18,43,23,579,26,138,123,148,100,149,581,125,197,
4625 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4626 132,131,130,129,128,127,126,124,98,147,
4627 24,24,150,151,152,153,154,155,156,157,158,159,160,161,37,38,39,23,44,580,
4628 115,176,582,124,194,172,174,173,582,582,171,170,169,168,167,166,165,164,
4629 132,133,163,193,40,162,
4630 18,20,19,581,292,291,583,
4631 20,104,299,
4632 24,24,18,99,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,
4633 117,118,119,120,121,122,18,43,23,583,26,138,123,148,100,149,584,125,197,
4634 175,175,175,177,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
4635 132,131,130,129,128,127,126,124,98,147,
4636 18,20,74,292,291,
4637
4638 };
4639
4640
4641 static const unsigned short ag_sbt[] = {
4642 0, 7, 9, 15, 22, 47, 91, 94, 184, 232, 257, 282, 345, 408,
4643 471, 501, 526, 574, 599, 647, 711, 774, 822, 900, 964, 989,1014,1039,
4644 1064,1105,1151,1235,1241,1247,1330,1355,1405,1411,1416,1421,1426,1450,
4645 1460,1483,1488,1511,1521,1554,1560,1594,1628,1662,1695,1745,1779,1813,
4646 1847,1853,1863,1876,1885,1891,1900,1960,1968,1976,2010,2017,2024,2135,
4647 2141,2146,2149,2152,2155,2160,2204,2207,2274,2279,2349,2419,2489,2556,
4648 2664,2734,2804,2874,2883,2894,2910,2920,2932,2995,3008,3021,3090,3101,
4649 3112,3136,3139,3172,3177,3182,3187,3192,3197,3202,3207,3212,3217,3222,
4650 3227,3232,3237,3242,3247,3252,3257,3262,3267,3272,3277,3282,3284,3287,
4651 3290,3293,3296,3299,3302,3305,3308,3311,3314,3317,3320,3323,3326,3329,
4652 3332,3335,3338,3341,3344,3347,3350,3353,3384,3448,3451,3476,3481,3504,
4653 3527,3532,3537,3542,3547,3552,3557,3562,3567,3592,3595,3598,3601,3604,
4654 3607,3610,3613,3616,3619,3622,3625,3628,3631,3634,3639,3689,3706,3721,
4655 3830,3941,3944,3949,3952,3983,4050,4056,4062,4068,4099,4143,4148,4192,
4656 4197,4241,4308,4313,4323,4362,4365,4372,4375,4378,4381,4388,4391,4496,
4657 4501,4504,4507,4510,4513,4516,4523,4530,4533,4536,4539,4542,4547,4550,
4658 4556,4561,4566,4576,4634,4638,4752,4781,4787,4831,4898,4901,4910,4916,
4659 4921,4924,4927,4932,4976,5020,5064,5108,5152,5196,5263,5330,5397,5464,
4660 5533,5600,5667,5734,5801,5868,5935,6002,6069,6136,6203,6270,6337,6368,
4661 6392,6436,6480,6524,6568,6612,6656,6700,6767,6834,6878,6922,6966,7030,
4662 7061,7126,7191,7240,7307,7374,7423,7490,7557,7606,7673,7740,7806,7872,
4663 7916,7960,8004,8048,8092,8136,8179,8184,8203,8220,8270,8379,8429,8539,
4664 8542,8609,8677,8682,8687,8692,8697,8765,8768,8773,8878,8883,8890,8957,
4665 9024,9068,9112,9146,9216,9283,9327,9397,9464,9534,9565,9596,9604,9619,
4666 9650,9681,9690,9757,9762,9765,9768,9771,9774,9779,9790,9793,9800,9844,
4667 9849,9854,9864,9874,9877,9880,9885,9890,9895,9900,9905,9910,9917,9924,
4668 9931,9938,9945,9952,9959,9966,9973,9980,9987,9996,10003,10010,10017,
4669 10024,10031,10099,10104,10109,10114,10119,10124,10129,10134,10141,10150,
4670 10155,10160,10165,10233,10236,10239,10244,10249,10254,10259,10264,10269,
4671 10274,10279,10282,10285,10288,10291,10294,10297,10300,10309,10316,10323,
4672 10328,10333,10364,10367,10398,10401,10432,10435,10440,10445,10448,10455,
4673 10460,10463,10466,10473,10476,10481,10549,10617,10620,10623,10691,10759,
4674 10766,10797,10828,10838,10943,10953,11020,11025,11037,11049,11051,11053,
4675 11097,11164,11231,11298,11365,11370,11414,11481,11548,11615,11620,11630,
4676 11633,11700,11703,11771,11838,11906,11973,12041,12108,12111,12178,12245,
4677 12250,12255,12286,12317,12322,12327,12394,12462,12530,12533,12538,12545,
4678 12589,12592,12595,12600,12607,12614,12621,12628,12633,12640,12647,12654,
4679 12660,12727,12732,12799,12804,12811,12816,12823,12828,12835,12879,12886,
4680 12893,12961,13029,13036,13041,13046,13090,13093,13104,13115,13182,13190,
4681 13196,13200,13210,13215,13218,13221,13224,13227,13230,13297,13300,13367,
4682 13372,13377,13380,13387,13395,13400,13408,13420,13424,13427,13471,13474,
4683 13518,13521,13528,13535,13545,13551,13618,13621,13688,13691,13758,13761,
4684 13828,13834,13841,13848,13855,13899,13906,13915,13918,13921,13988,13991,
4685 14058,14063,14107,14151,14158,14165,14177,14190,14193,14196,14199,14266,
4686 14310,14317,14320,14387,14392
4687 };
4688
4689
4690 static const unsigned short ag_sbe[] = {
4691 4, 8, 12, 18, 44, 68, 92, 136, 229, 254, 279, 342, 405, 468,
4692 498, 523, 571, 596, 644, 708, 771, 819, 897, 961, 986,1011,1036,1061,
4693 1084,1148,1232,1238,1243,1287,1352,1402,1408,1413,1418,1423,1447,1457,
4694 1480,1485,1508,1518,1551,1557,1591,1625,1659,1692,1742,1776,1810,1844,
4695 1850,1860,1873,1882,1888,1897,1957,1965,1973,2007,2014,2021,2070,2137,
4696 2143,2147,2150,2153,2157,2179,2205,2236,2276,2309,2379,2449,2518,2602,
4697 2694,2764,2834,2876,2886,2899,2912,2925,2988,2999,3012,3051,3093,3104,
4698 3133,3137,3170,3174,3179,3184,3189,3194,3199,3204,3209,3214,3219,3224,
4699 3229,3234,3239,3244,3249,3254,3259,3264,3269,3274,3279,3283,3285,3288,
4700 3291,3294,3297,3300,3303,3306,3309,3312,3315,3318,3321,3324,3327,3330,
4701 3333,3336,3339,3342,3345,3348,3351,3381,3413,3449,3474,3478,3501,3524,
4702 3529,3534,3539,3544,3549,3554,3559,3564,3589,3593,3596,3599,3602,3605,
4703 3608,3611,3614,3617,3620,3623,3626,3629,3632,3636,3686,3697,3713,3767,
4704 3876,3942,3946,3950,3981,4012,4052,4058,4064,4097,4118,4147,4167,4194,
4705 4216,4270,4310,4320,4359,4363,4368,4373,4376,4379,4384,4389,4436,4498,
4706 4502,4505,4508,4511,4514,4518,4525,4531,4534,4537,4540,4544,4548,4551,
4707 4557,4564,4568,4631,4635,4691,4778,4782,4806,4860,4899,4905,4913,4918,
4708 4922,4925,4930,4951,4995,5039,5083,5127,5171,5225,5292,5359,5426,5494,
4709 5562,5629,5696,5763,5830,5897,5964,6031,6098,6165,6232,6299,6366,6391,
4710 6411,6455,6499,6543,6587,6631,6675,6729,6796,6853,6897,6941,6995,7059,
4711 7090,7155,7237,7269,7336,7420,7452,7519,7603,7635,7702,7769,7835,7891,
4712 7935,7979,8023,8067,8111,8155,8181,8193,8211,8267,8316,8426,8475,8540,
4713 8571,8638,8679,8684,8689,8694,8726,8766,8770,8818,8880,8886,8919,8986,
4714 9043,9087,9143,9176,9245,9302,9357,9426,9494,9563,9594,9598,9609,9648,
4715 9679,9683,9719,9758,9763,9766,9769,9772,9776,9787,9791,9796,9819,9847,
4716 9852,9861,9871,9875,9878,9882,9887,9892,9897,9902,9907,9913,9920,9927,
4717 9934,9941,9948,9955,9962,9969,9976,9983,9991,9999,10006,10013,10020,
4718 10027,10060,10101,10106,10111,10116,10121,10126,10131,10137,10145,10152,
4719 10157,10162,10194,10234,10237,10241,10246,10251,10256,10261,10266,10271,
4720 10276,10280,10283,10286,10289,10292,10295,10298,10306,10314,10319,10325,
4721 10330,10362,10365,10396,10399,10430,10433,10437,10442,10446,10451,10457,
4722 10461,10464,10469,10474,10478,10510,10578,10618,10621,10652,10720,10762,
4723 10795,10826,10830,10883,10950,10982,11022,11028,11040,11050,11052,11072,
4724 11126,11193,11260,11327,11367,11389,11443,11510,11577,11617,11625,11631,
4725 11662,11701,11732,11800,11867,11935,12002,12070,12109,12140,12207,12247,
4726 12252,12284,12315,12319,12324,12356,12423,12491,12531,12535,12541,12564,
4727 12590,12593,12597,12603,12610,12617,12624,12630,12636,12643,12650,12657,
4728 12689,12729,12761,12801,12807,12813,12819,12825,12831,12854,12882,12889,
4729 12922,12990,13032,13038,13043,13065,13091,13096,13107,13144,13187,13194,
4730 13198,13205,13212,13216,13219,13222,13225,13228,13259,13298,13329,13369,
4731 13374,13378,13383,13391,13397,13405,13412,13422,13425,13446,13472,13493,
4732 13519,13524,13531,13542,13547,13580,13619,13650,13689,13720,13759,13790,
4733 13832,13837,13844,13851,13874,13902,13910,13916,13919,13950,13989,14020,
4734 14060,14082,14126,14154,14161,14174,14185,14191,14194,14197,14228,14285,
4735 14313,14318,14349,14389,14392
4736 };
4737
4738
4739 static const unsigned char ag_fl[] = {
4740 2,1,2,0,1,0,2,2,1,0,1,4,4,3,0,1,2,2,1,2,1,2,1,2,1,2,1,2,1,1,2,3,3,0,2,
4741 2,2,0,3,4,2,1,0,1,1,1,1,2,2,3,3,0,5,0,5,6,4,2,0,5,3,2,2,1,2,1,2,5,7,2,
4742 4,4,4,4,16,4,4,4,2,2,2,2,2,2,3,2,2,1,1,4,4,4,1,3,0,11,0,9,0,9,0,7,0,0,
4743 15,0,0,13,0,0,13,1,3,1,1,1,0,5,3,6,6,8,4,6,1,4,4,4,4,4,4,4,1,1,4,3,0,7,
4744 1,1,1,0,5,3,2,1,3,1,3,3,1,3,3,3,6,4,4,4,4,4,4,6,4,4,4,4,4,6,4,3,6,6,4,
4745 4,4,4,4,6,4,4,1,2,2,1,1,1,0,5,0,7,0,5,0,7,1,3,0,0,0,14,1,1,0,2,0,1,0,0,
4746 0,9,1,1,1,3,1,3,1,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,2,1,3,1,0,5,1,0,5,1,3,
4747 1,0,5,1,0,5,1,1,3,3,0,1,3,1,3,0,1,1,0,2,0,3,0,1,1,1,2,1,6,2,2,1,0,1,1,
4748 3,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
4749 1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
4750 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
4751 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
4752 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
4753 };
4754
4755 static const unsigned short ag_ptt[] = {
4756 0, 10, 10, 11, 11, 12, 12, 7,274, 17, 17,274,274, 14, 23, 23, 14, 14,
4757 20, 20, 22, 22, 18, 18,216,216, 27,257, 29,217,217,262,262, 31, 31, 31,
4758 34, 35, 35, 35, 38, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 52, 37, 54,
4759 37, 37, 37, 37, 64, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
4760 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
4761 37, 37, 37, 40,101, 40,103, 40,105, 40,106, 40,108,109, 40,110,111, 40,
4762 112,113, 40, 59, 59,114,114,114,116,114,114,115,115,115,115,115,115,115,
4763 115,115,115,115,115,115,115,115,115, 41,128, 41,129,129,129,131,129,129,
4764 129,132,132,134,134,134, 51, 51, 51, 79, 79,130,130,130,130,130,130,130,
4765 130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,
4766 159,159,159,160, 45, 45,161, 76,162, 76,163, 76,164, 76,107,107,166,168,
4767 169, 42,170,170,167,167,171,171,176,178,180, 43,181,181,175,175,183,183,
4768 185,185,185,187,187,187,187,187,187,187,187,187,187,187,187,179,179, 68,
4769 68,195,196,195,195,197,195, 70, 70,198,199,198,198,200,198, 72, 72, 72,
4770 72, 63, 63, 63, 63, 63, 67, 67, 67,203, 67,205, 67, 62, 62, 62, 62, 62,
4771 204,202,201, 57, 57, 65, 65, 53, 53, 55, 55, 9, 9, 9, 9, 9, 9, 9,
4772 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 25, 25, 26, 26, 26,
4773 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
4774 32, 32,212,212,213,213, 8, 13, 3, 2, 39, 44, 46, 49, 48, 47, 50, 58,
4775 56, 60, 61, 66, 69, 71, 73, 74, 75, 77, 78, 81, 80, 82, 83, 84, 85, 86,
4776 87, 88, 89, 90, 91, 92, 93, 96, 95, 94, 97, 98, 99, 5,100,102,104, 16,
4777 4,117,118,119,120,121,122,123,124,125,126,127, 6, 19,133,135,136,137,
4778 138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,
4779 156,157,158,165,172,173,177,174,182,184,186,188,189,190,191,192,193,194,
4780 206,207,208,209,210, 30, 28, 21, 24,211, 15
4781 };
4782
4783
4784 static void ag_ra(void)
4785 {
4786 switch(ag_rpx[(PCB).ag_ap]) {
4787 case 1: ag_rp_1(); break;
4788 case 2: V(0,(double *)) = ag_rp_2(V(0,(double *)), V(3,(int *))); break;
4789 case 3: V(0,(double *)) = ag_rp_3(V(0,(double *)), V(3,(int *))); break;
4790 case 4: V(0,(double *)) = ag_rp_4(V(0,(double *)), V(2,(double *))); break;
4791 case 5: V(0,(double *)) = ag_rp_5(V(1,(double *))); break;
4792 case 6: V(0,(double *)) = ag_rp_6(V(0,(int *))); break;
4793 case 7: V(0,(double *)) = ag_rp_7(V(0,(double *)), V(1,(int *))); break;
4794 case 8: V(0,(double *)) = ag_rp_8(V(0,(int *))); break;
4795 case 9: V(0,(double *)) = ag_rp_9(V(0,(int *)), V(1,(double *))); break;
4796 case 10: V(0,(int *)) = ag_rp_10(V(0,(int *))); break;
4797 case 11: V(0,(int *)) = ag_rp_11(V(0,(int *)), V(1,(int *))); break;
4798 case 12: V(0,(int *)) = ag_rp_12(V(0,(int *))); break;
4799 case 13: V(0,(int *)) = ag_rp_13(V(0,(int *)), V(1,(int *))); break;
4800 case 14: V(0,(char * *)) = ag_rp_14(V(0,(int *))); break;
4801 case 15: V(0,(char * *)) = ag_rp_15(V(0,(int *))); break;
4802 case 16: V(0,(char * *)) = ag_rp_16(V(0,(int *))); break;
4803 case 17: V(0,(int *)) = ag_rp_17(V(0,(int *))); break;
4804 case 18: V(0,(int *)) = ag_rp_18(V(0,(int *)), V(1,(int *))); break;
4805 case 19: V(0,(char * *)) = ag_rp_19(V(1,(int *))); break;
4806 case 20: V(0,(char * *)) = ag_rp_20(V(1,(int *))); break;
4807 case 21: V(0,(int *)) = ag_rp_21(); break;
4808 case 22: V(0,(int *)) = ag_rp_22(V(0,(int *)), V(1,(int *))); break;
4809 case 23: V(0,(int *)) = ag_rp_23(V(0,(int *))); break;
4810 case 24: ag_rp_24(); break;
4811 case 25: ag_rp_25(V(1,(char * *))); break;
4812 case 26: ag_rp_26(V(0,(char * *))); break;
4813 case 27: ag_rp_27(V(1,(char * *))); break;
4814 case 28: ag_rp_28(V(1,(char * *))); break;
4815 case 29: ag_rp_29(); break;
4816 case 30: ag_rp_30(); break;
4817 case 31: ag_rp_31(); break;
4818 case 32: ag_rp_32(); break;
4819 case 33: ag_rp_33(); break;
4820 case 34: ag_rp_34(); break;
4821 case 35: ag_rp_35(V(1,(int *))); break;
4822 case 36: ag_rp_36(V(1,(int *))); break;
4823 case 37: ag_rp_37(V(1,(int *))); break;
4824 case 38: ag_rp_38(); break;
4825 case 39: ag_rp_39(); break;
4826 case 40: ag_rp_40(); break;
4827 case 41: ag_rp_41(V(1,(char * *))); break;
4828 case 42: ag_rp_42(); break;
4829 case 43: ag_rp_43(); break;
4830 case 44: ag_rp_44(); break;
4831 case 45: ag_rp_45(); break;
4832 case 46: ag_rp_46(); break;
4833 case 47: ag_rp_47(); break;
4834 case 48: ag_rp_48(); break;
4835 case 49: ag_rp_49(); break;
4836 case 50: ag_rp_50(); break;
4837 case 51: ag_rp_51(); break;
4838 case 52: ag_rp_52(); break;
4839 case 53: ag_rp_53(); break;
4840 case 54: ag_rp_54(); break;
4841 case 55: ag_rp_55(); break;
4842 case 56: ag_rp_56(); break;
4843 case 57: ag_rp_57(); break;
4844 case 58: ag_rp_58(); break;
4845 case 59: ag_rp_59(); break;
4846 case 60: ag_rp_60(); break;
4847 case 61: ag_rp_61(); break;
4848 case 62: ag_rp_62(); break;
4849 case 63: ag_rp_63(); break;
4850 case 64: ag_rp_64(); break;
4851 case 65: ag_rp_65(); break;
4852 case 66: ag_rp_66(); break;
4853 case 67: ag_rp_67(); break;
4854 case 68: ag_rp_68(); break;
4855 case 69: ag_rp_69(V(0,(char * *))); break;
4856 case 70: ag_rp_70(V(-1,(char * *))); break;
4857 case 71: ag_rp_71(V(2,(char * *))); break;
4858 case 72: ag_rp_72(V(-1,(char * *))); break;
4859 case 73: ag_rp_73(V(2,(char * *))); break;
4860 case 74: ag_rp_74(V(-1,(char * *))); break;
4861 case 75: ag_rp_75(V(2,(char * *))); break;
4862 case 76: ag_rp_76(V(-2,(char * *))); break;
4863 case 77: ag_rp_77(V(0,(char * *))); break;
4864 case 78: ag_rp_78(V(-2,(char * *))); break;
4865 case 79: ag_rp_79(V(-5,(char * *))); break;
4866 case 80: ag_rp_80(V(2,(char * *))); break;
4867 case 81: ag_rp_81(V(-2,(char * *))); break;
4868 case 82: ag_rp_82(V(-5,(char * *))); break;
4869 case 83: ag_rp_83(V(2,(char * *))); break;
4870 case 84: ag_rp_84(V(-2,(char * *))); break;
4871 case 85: ag_rp_85(V(-5,(char * *))); break;
4872 case 86: ag_rp_86(V(2,(char * *))); break;
4873 case 87: ag_rp_87(); break;
4874 case 88: ag_rp_88(V(0,(char * *))); break;
4875 case 89: ag_rp_89(V(0,(char * *))); break;
4876 case 90: ag_rp_90(V(-2,(char * *))); break;
4877 case 91: ag_rp_91(V(0,(char * *))); break;
4878 case 92: ag_rp_92(); break;
4879 case 93: ag_rp_93(); break;
4880 case 94: ag_rp_94(); break;
4881 case 95: ag_rp_95(); break;
4882 case 96: ag_rp_96(); break;
4883 case 97: ag_rp_97(); break;
4884 case 98: ag_rp_98(); break;
4885 case 99: ag_rp_99(); break;
4886 case 100: ag_rp_100(); break;
4887 case 101: ag_rp_101(); break;
4888 case 102: ag_rp_102(); break;
4889 case 103: ag_rp_103(); break;
4890 case 104: ag_rp_104(); break;
4891 case 105: ag_rp_105(); break;
4892 case 106: ag_rp_106(); break;
4893 case 107: ag_rp_107(); break;
4894 case 108: ag_rp_108(V(0,(char * *))); break;
4895 case 109: ag_rp_109(V(-2,(char * *))); break;
4896 case 110: ag_rp_110(V(0,(char * *))); break;
4897 case 111: ag_rp_111(V(0,(double *))); break;
4898 case 112: ag_rp_112(V(0,(char * *))); break;
4899 case 113: ag_rp_113(V(-2,(char * *))); break;
4900 case 114: ag_rp_114(V(0,(char * *))); break;
4901 case 115: ag_rp_115(); break;
4902 case 116: ag_rp_116(); break;
4903 case 117: ag_rp_117(); break;
4904 case 118: ag_rp_118(); break;
4905 case 119: ag_rp_119(); break;
4906 case 120: ag_rp_120(); break;
4907 case 121: ag_rp_121(); break;
4908 case 122: ag_rp_122(); break;
4909 case 123: ag_rp_123(); break;
4910 case 124: ag_rp_124(); break;
4911 case 125: ag_rp_125(); break;
4912 case 126: ag_rp_126(); break;
4913 case 127: ag_rp_127(); break;
4914 case 128: ag_rp_128(); break;
4915 case 129: ag_rp_129(); break;
4916 case 130: ag_rp_130(); break;
4917 case 131: ag_rp_131(); break;
4918 case 132: ag_rp_132(); break;
4919 case 133: ag_rp_133(); break;
4920 case 134: ag_rp_134(); break;
4921 case 135: ag_rp_135(); break;
4922 case 136: ag_rp_136(); break;
4923 case 137: ag_rp_137(); break;
4924 case 138: ag_rp_138(); break;
4925 case 139: ag_rp_139(); break;
4926 case 140: ag_rp_140(); break;
4927 case 141: ag_rp_141(); break;
4928 case 142: ag_rp_142(); break;
4929 case 143: ag_rp_143(); break;
4930 case 144: ag_rp_144(); break;
4931 case 145: ag_rp_145(); break;
4932 case 146: ag_rp_146(); break;
4933 case 147: V(0,(double *)) = ag_rp_147(V(0,(double *))); break;
4934 case 148: V(0,(double *)) = ag_rp_148(V(1,(double *))); break;
4935 case 149: V(0,(double *)) = ag_rp_149(V(1,(double *))); break;
4936 case 150: V(0,(int *)) = ag_rp_150(V(0,(char * *))); break;
4937 case 151: V(0,(char * *)) = ag_rp_151(V(0,(char * *))); break;
4938 case 152: V(0,(char * *)) = ag_rp_152(V(0,(char * *))); break;
4939 case 153: ag_rp_153(V(-2,(char * *))); break;
4940 case 154: ag_rp_154(V(0,(char * *))); break;
4941 case 155: ag_rp_155(V(-2,(char * *))); break;
4942 case 156: ag_rp_156(V(2,(char * *))); break;
4943 case 157: ag_rp_157(V(-2,(char * *))); break;
4944 case 158: ag_rp_158(V(0,(char * *))); break;
4945 case 159: ag_rp_159(V(-2,(char * *))); break;
4946 case 160: ag_rp_160(V(2,(char * *))); break;
4947 case 161: ag_rp_161(); break;
4948 case 162: ag_rp_162(); break;
4949 case 163: ag_rp_163(V(-3,(char * *))); break;
4950 case 164: ag_rp_164(V(-7,(char * *)), V(-1,(double *))); break;
4951 case 165: ag_rp_165(V(-10,(char * *)), V(-4,(double *))); break;
4952 case 166: ag_rp_166(V(1,(char * *)), V(7,(double *))); break;
4953 case 167: ag_rp_167(); break;
4954 case 168: V(0,(double *)) = ag_rp_168(); break;
4955 case 169: V(0,(double *)) = ag_rp_169(V(1,(double *))); break;
4956 case 170: ag_rp_170(); break;
4957 case 171: ag_rp_171(V(0,(char * *))); break;
4958 case 172: ag_rp_172(); break;
4959 case 173: ag_rp_173(); break;
4960 case 174: ag_rp_174(); break;
4961 case 175: ag_rp_175(); break;
4962 case 176: ag_rp_176(); break;
4963 case 177: ag_rp_177(); break;
4964 case 178: ag_rp_178(); break;
4965 case 179: ag_rp_179(); break;
4966 case 180: ag_rp_180(); break;
4967 case 181: ag_rp_181(); break;
4968 case 182: ag_rp_182(); break;
4969 case 183: ag_rp_183(); break;
4970 case 184: ag_rp_184(); break;
4971 case 185: ag_rp_185(); break;
4972 case 186: ag_rp_186(); break;
4973 case 187: ag_rp_187(); break;
4974 case 188: ag_rp_188(); break;
4975 case 189: ag_rp_189(); break;
4976 case 190: ag_rp_190(V(0,(char * *))); break;
4977 case 191: ag_rp_191(V(-2,(char * *))); break;
4978 case 192: ag_rp_192(V(0,(char * *))); break;
4979 case 193: ag_rp_193(V(0,(char * *))); break;
4980 case 194: ag_rp_194(V(-2,(char * *))); break;
4981 case 195: ag_rp_195(V(0,(char * *))); break;
4982 case 196: ag_rp_196(V(0,(char * *))); break;
4983 case 197: ag_rp_197(V(-2,(char * *))); break;
4984 case 198: ag_rp_198(V(0,(char * *))); break;
4985 case 199: ag_rp_199(V(0,(char * *))); break;
4986 case 200: ag_rp_200(V(-2,(char * *))); break;
4987 case 201: ag_rp_201(V(0,(char * *))); break;
4988 case 202: ag_rp_202(V(0,(char * *))); break;
4989 case 203: ag_rp_203(V(0,(double *))); break;
4990 case 204: ag_rp_204(V(2,(char * *))); break;
4991 case 205: ag_rp_205(V(2,(double *))); break;
4992 case 206: ag_rp_206(); break;
4993 case 207: ag_rp_207(); break;
4994 case 208: ag_rp_208(); break;
4995 case 209: ag_rp_209(); break;
4996 case 210: ag_rp_210(); break;
4997 case 211: ag_rp_211(); break;
4998 case 212: ag_rp_212(); break;
4999 case 213: ag_rp_213(); break;
5000 case 214: ag_rp_214(); break;
5001 case 215: ag_rp_215(); break;
5002 case 216: ag_rp_216(); break;
5003 case 217: ag_rp_217(); break;
5004 case 218: ag_rp_218(V(0,(char * *))); break;
5005 case 219: ag_rp_219(); break;
5006 case 220: ag_rp_220(V(1,(int *))); break;
5007 case 221: V(0,(int *)) = ag_rp_221(V(1,(int *))); break;
5008 case 222: V(0,(int *)) = ag_rp_222(V(0,(int *))); break;
5009 case 223: ag_rp_223(); break;
5010 case 224: ag_rp_224(V(0,(char * *))); break;
5011 case 225: ag_rp_225(V(2,(char * *))); break;
5012 case 226: ag_rp_226(V(0,(char * *))); break;
5013 case 227: ag_rp_227(V(2,(char * *))); break;
5014 }
5015 }
5016
5017 #define TOKEN_NAMES parseBasic_token_names
5018 const char *const parseBasic_token_names[327] = {
5019 "program",
5020 "white space",
5021 "digit string",
5022 "name",
5023 "STRING",
5024 "STRSYM",
5025 "number",
5026 "SEP",
5027 "\"REM\"",
5028 "",
5029 "",
5030 "",
5031 "",
5032 "'\\n'",
5033 "simple real",
5034 "",
5035 "'+'",
5036 "",
5037 "exponent",
5038 "'-'",
5039 "integer part",
5040 "'.'",
5041 "fraction part",
5042 "",
5043 "digit",
5044 "letter",
5045 "",
5046 "SYMBOL",
5047 "'$'",
5048 "DIGITS",
5049 "'\\\"'",
5050 "string text",
5051 "",
5052 "\"\\\\\\\"\"",
5053 "program",
5054 "statement list",
5055 "eof",
5056 "statement",
5057 "label",
5058 "\"LABEL\"",
5059 "string_assignment",
5060 "assignment",
5061 "for_loop",
5062 "if_clause",
5063 "\"GOTO\"",
5064 "symbol_or_lineno",
5065 "\"GOSUB\"",
5066 "\"ON\"",
5067 "\"INTERRUPT\"",
5068 "\"BREAK\"",
5069 "\"CONTINUE\"",
5070 "expression",
5071 "",
5072 "goto_list",
5073 "",
5074 "gosub_list",
5075 "\"OPEN\"",
5076 "hashed_number",
5077 "','",
5078 "string expression",
5079 "\"CLOSE\"",
5080 "\"PRINT\"",
5081 "printintro",
5082 "printlist",
5083 "",
5084 "semicolon",
5085 "\"INPUT\"",
5086 "inputintro",
5087 "inputlist",
5088 "\"READ\"",
5089 "readlist",
5090 "\"DATA\"",
5091 "datalist",
5092 "\"RESTORE\"",
5093 "\"RETURN\"",
5094 "\"DIM\"",
5095 "dimlist",
5096 "\"WINDOW\"",
5097 "\"DOT\"",
5098 "mapping",
5099 "\"LINE\"",
5100 "\"TO\"",
5101 "\"CIRCLE\"",
5102 "\"TEXT\"",
5103 "\"MAP\"",
5104 "\"ARROW\"",
5105 "\"XTICK\"",
5106 "\"YTICK\"",
5107 "\"CLEAR\"",
5108 "\"SCREEN\"",
5109 "\"PRINTER\"",
5110 "\"WAIT\"",
5111 "\"BELL\"",
5112 "\"INKEY\"",
5113 "\"SYSTEM2\"",
5114 "'('",
5115 "')'",
5116 "\"POKE\"",
5117 "\"END\"",
5118 "'='",
5119 "\"MID\"",
5120 "",
5121 "\"LEFT\"",
5122 "",
5123 "\"RIGHT\"",
5124 "",
5125 "",
5126 "indexlist",
5127 "",
5128 "",
5129 "",
5130 "",
5131 "",
5132 "",
5133 "primary string expression",
5134 "string_function",
5135 "",
5136 "\"STR\"",
5137 "\"CHR\"",
5138 "\"UPPER\"",
5139 "\"LOWER\"",
5140 "\"LTRIM\"",
5141 "\"RTRIM\"",
5142 "\"TRIM\"",
5143 "\"SYSTEM\"",
5144 "\"DATE\"",
5145 "\"TIME\"",
5146 "\"PEEK2\"",
5147 "",
5148 "primary expression",
5149 "function",
5150 "",
5151 "exponential expression",
5152 "'^'",
5153 "multiplicative expression",
5154 "'*'",
5155 "'/'",
5156 "\"SIN\"",
5157 "\"ASIN\"",
5158 "\"COS\"",
5159 "\"ACOS\"",
5160 "\"TAN\"",
5161 "\"ATAN\"",
5162 "\"EXP\"",
5163 "\"LOG\"",
5164 "\"SQRT\"",
5165 "\"INT\"",
5166 "\"FRAC\"",
5167 "\"MOD\"",
5168 "\"RAN\"",
5169 "\"MIN\"",
5170 "\"MAX\"",
5171 "\"XMAP\"",
5172 "\"YMAP\"",
5173 "\"LEN\"",
5174 "\"VAL\"",
5175 "\"ASC\"",
5176 "\"INSTR\"",
5177 "\"PEEK\"",
5178 "const",
5179 "intnum",
5180 "",
5181 "",
5182 "",
5183 "",
5184 "\"FOR\"",
5185 "",
5186 "step_part",
5187 "",
5188 "",
5189 "next_or_eofile",
5190 "next_symbol",
5191 "\"NEXT\"",
5192 "\"STEP\"",
5193 "\"IF\"",
5194 "condition",
5195 "",
5196 "\"THEN\"",
5197 "",
5198 "else_part",
5199 "",
5200 "endif_or_eof",
5201 "\"ENDIF\"",
5202 "and condition",
5203 "\"OR\"",
5204 "primary condition",
5205 "\"AND\"",
5206 "comparison",
5207 "\"NOT\"",
5208 "\"<>\"",
5209 "'<'",
5210 "\"<=\"",
5211 "'>'",
5212 "\">=\"",
5213 "\"ELSE\"",
5214 "input",
5215 "",
5216 "",
5217 "readitem",
5218 "",
5219 "",
5220 "stream",
5221 "position",
5222 "",
5223 "prompt",
5224 "",
5225 "\"REVERSE\"",
5226 "\"AT\"",
5227 "'#'",
5228 "';'",
5229 "",
5230 "",
5231 "",
5232 "",
5233 "\"REM\"",
5234 "'\\n'",
5235 "name",
5236 "digit string",
5237 "\"LABEL\"",
5238 "\"GOTO\"",
5239 "\"GOSUB\"",
5240 "\"BREAK\"",
5241 "\"INTERRUPT\"",
5242 "\"ON\"",
5243 "\"CONTINUE\"",
5244 "','",
5245 "\"OPEN\"",
5246 "\"CLOSE\"",
5247 "\"PRINT\"",
5248 "\"INPUT\"",
5249 "\"READ\"",
5250 "\"DATA\"",
5251 "\"RESTORE\"",
5252 "\"RETURN\"",
5253 "\"DIM\"",
5254 "\"WINDOW\"",
5255 "\"DOT\"",
5256 "\"TO\"",
5257 "\"LINE\"",
5258 "\"CIRCLE\"",
5259 "\"TEXT\"",
5260 "\"MAP\"",
5261 "\"ARROW\"",
5262 "\"XTICK\"",
5263 "\"YTICK\"",
5264 "\"CLEAR\"",
5265 "\"SCREEN\"",
5266 "\"PRINTER\"",
5267 "\"WAIT\"",
5268 "\"BELL\"",
5269 "\"INKEY\"",
5270 "')'",
5271 "'('",
5272 "\"SYSTEM2\"",
5273 "\"POKE\"",
5274 "\"END\"",
5275 "'='",
5276 "STRSYM",
5277 "\"MID\"",
5278 "\"LEFT\"",
5279 "\"RIGHT\"",
5280 "'+'",
5281 "STRING",
5282 "\"STR\"",
5283 "\"CHR\"",
5284 "\"UPPER\"",
5285 "\"LOWER\"",
5286 "\"LTRIM\"",
5287 "\"RTRIM\"",
5288 "\"TRIM\"",
5289 "\"SYSTEM\"",
5290 "\"DATE\"",
5291 "\"TIME\"",
5292 "\"PEEK2\"",
5293 "number",
5294 "'-'",
5295 "'^'",
5296 "'*'",
5297 "'/'",
5298 "\"SIN\"",
5299 "\"ASIN\"",
5300 "\"COS\"",
5301 "\"ACOS\"",
5302 "\"TAN\"",
5303 "\"ATAN\"",
5304 "\"EXP\"",
5305 "\"LOG\"",
5306 "\"SQRT\"",
5307 "\"INT\"",
5308 "\"FRAC\"",
5309 "\"MOD\"",
5310 "\"RAN\"",
5311 "\"MIN\"",
5312 "\"MAX\"",
5313 "\"XMAP\"",
5314 "\"YMAP\"",
5315 "\"LEN\"",
5316 "\"VAL\"",
5317 "\"ASC\"",
5318 "\"INSTR\"",
5319 "\"PEEK\"",
5320 "\"FOR\"",
5321 "\"NEXT\"",
5322 "\"STEP\"",
5323 "\"THEN\"",
5324 "\"IF\"",
5325 "\"ENDIF\"",
5326 "\"OR\"",
5327 "\"AND\"",
5328 "\"NOT\"",
5329 "\"<>\"",
5330 "'<'",
5331 "\"<=\"",
5332 "'>'",
5333 "\">=\"",
5334 "\"ELSE\"",
5335 "\"REVERSE\"",
5336 "\"AT\"",
5337 "'#'",
5338 "';'",
5339 "",
5340 "'\\\"'",
5341 "'$'",
5342 "'.'",
5343 "digit",
5344 "",
5345 "",
5346
5347 };
5348
5349 #ifndef MISSING_FORMAT
5350 #define MISSING_FORMAT "Missing %s"
5351 #endif
5352 #ifndef UNEXPECTED_FORMAT
5353 #define UNEXPECTED_FORMAT "Unexpected %s"
5354 #endif
5355 #ifndef UNNAMED_TOKEN
5356 #define UNNAMED_TOKEN "input"
5357 #endif
5358
5359
5360 static void ag_diagnose(void) {
5361 int ag_snd = (PCB).sn;
5362 int ag_k = ag_sbt[ag_snd];
5363
5364 if (*TOKEN_NAMES[ag_tstt[ag_k]] && ag_astt[ag_k + 1] == ag_action_8) {
5365 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]);
5366 }
5367 else if (ag_astt[ag_sbe[(PCB).sn]] == ag_action_8
5368 && (ag_k = (int) ag_sbe[(PCB).sn] + 1) == (int) ag_sbt[(PCB).sn+1] - 1
5369 && *TOKEN_NAMES[ag_tstt[ag_k]]) {
5370 sprintf((PCB).ag_msg, MISSING_FORMAT, TOKEN_NAMES[ag_tstt[ag_k]]);
5371 }
5372 else if ((PCB).token_number && *TOKEN_NAMES[(PCB).token_number]) {
5373 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, TOKEN_NAMES[(PCB).token_number]);
5374 }
5375 else if (isprint((*(PCB).lab)) && (*(PCB).lab) != '\\') {
5376 char buf[20];
5377 sprintf(buf, "\'%c\'", (char) (*(PCB).lab));
5378 sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, buf);
5379 }
5380 else sprintf((PCB).ag_msg, UNEXPECTED_FORMAT, UNNAMED_TOKEN);
5381 (PCB).error_message = (PCB).ag_msg;
5382
5383
5384 }
5385 static int ag_action_1_r_proc(void);
5386 static int ag_action_2_r_proc(void);
5387 static int ag_action_3_r_proc(void);
5388 static int ag_action_4_r_proc(void);
5389 static int ag_action_1_s_proc(void);
5390 static int ag_action_3_s_proc(void);
5391 static int ag_action_1_proc(void);
5392 static int ag_action_2_proc(void);
5393 static int ag_action_3_proc(void);
5394 static int ag_action_4_proc(void);
5395 static int ag_action_5_proc(void);
5396 static int ag_action_6_proc(void);
5397 static int ag_action_7_proc(void);
5398 static int ag_action_8_proc(void);
5399 static int ag_action_9_proc(void);
5400 static int ag_action_10_proc(void);
5401 static int ag_action_11_proc(void);
5402 static int ag_action_8_proc(void);
5403
5404
5405 static int (*const ag_r_procs_scan[])(void) = {
5406 ag_action_1_r_proc,
5407 ag_action_2_r_proc,
5408 ag_action_3_r_proc,
5409 ag_action_4_r_proc
5410 };
5411
5412 static int (*const ag_s_procs_scan[])(void) = {
5413 ag_action_1_s_proc,
5414 ag_action_2_r_proc,
5415 ag_action_3_s_proc,
5416 ag_action_4_r_proc
5417 };
5418
5419 static int (*const ag_gt_procs_scan[])(void) = {
5420 ag_action_1_proc,
5421 ag_action_2_proc,
5422 ag_action_3_proc,
5423 ag_action_4_proc,
5424 ag_action_5_proc,
5425 ag_action_6_proc,
5426 ag_action_7_proc,
5427 ag_action_8_proc,
5428 ag_action_9_proc,
5429 ag_action_10_proc,
5430 ag_action_11_proc,
5431 ag_action_8_proc
5432 };
5433
5434
5435 static int ag_action_10_proc(void) {
5436 int ag_t = (PCB).token_number;
5437 (PCB).btsx = 0, (PCB).drt = -1;
5438 do {
5439 ag_track();
5440 if ((PCB).rx < (PCB).fx) {
5441 (PCB).input_code = (PCB).lab[(PCB).rx++];
5442 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);}
5443 else {
5444 GET_INPUT;
5445 (PCB).lab[(PCB).fx++] = (PCB).input_code;
5446 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);
5447 (PCB).rx++;
5448 }
5449 if (ag_key_index[(PCB).sn]) {
5450 unsigned ag_k = ag_key_index[(PCB).sn];
5451 int ag_ch = CONVERT_CASE((PCB).input_code);
5452 if (ag_ch < 255) {
5453 while (ag_key_ch[ag_k] < ag_ch) ag_k++;
5454 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k);
5455 }
5456 }
5457 } while ((PCB).token_number == (parseBasic_token_type) ag_t);
5458 (PCB).rx = 0;
5459 return 1;
5460 }
5461
5462 static int ag_action_11_proc(void) {
5463 int ag_t = (PCB).token_number;
5464
5465 (PCB).btsx = 0, (PCB).drt = -1;
5466 do {
5467 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).lab;
5468 (PCB).ssx--;
5469 ag_track();
5470 ag_ra();
5471 if ((PCB).exit_flag != AG_RUNNING_CODE) return 0;
5472 (PCB).ssx++;
5473 if ((PCB).rx < (PCB).fx) {
5474 (PCB).input_code = (PCB).lab[(PCB).rx++];
5475 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);}
5476 else {
5477 GET_INPUT;
5478 (PCB).lab[(PCB).fx++] = (PCB).input_code;
5479 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);
5480 (PCB).rx++;
5481 }
5482 if (ag_key_index[(PCB).sn]) {
5483 unsigned ag_k = ag_key_index[(PCB).sn];
5484 int ag_ch = CONVERT_CASE((PCB).input_code);
5485 if (ag_ch < 255) {
5486 while (ag_key_ch[ag_k] < ag_ch) ag_k++;
5487 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k);
5488 }
5489 }
5490 }
5491 while ((PCB).token_number == (parseBasic_token_type) ag_t);
5492 (PCB).rx = 0;
5493 return 1;
5494 }
5495
5496 static int ag_action_3_r_proc(void) {
5497 int ag_sd = ag_fl[(PCB).ag_ap] - 1;
5498 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5499 (PCB).btsx = 0, (PCB).drt = -1;
5500 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5501 ag_ra();
5502 return (PCB).exit_flag == AG_RUNNING_CODE;
5503 }
5504
5505 static int ag_action_3_s_proc(void) {
5506 int ag_sd = ag_fl[(PCB).ag_ap] - 1;
5507 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5508 (PCB).btsx = 0, (PCB).drt = -1;
5509 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5510 ag_ra();
5511 return (PCB).exit_flag == AG_RUNNING_CODE;
5512 }
5513
5514 static int ag_action_4_r_proc(void) {
5515 int ag_sd = ag_fl[(PCB).ag_ap] - 1;
5516 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5517 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5518 return 1;
5519 }
5520
5521 static int ag_action_2_proc(void) {
5522 (PCB).btsx = 0, (PCB).drt = -1;
5523 if ((PCB).ssx >= 128) {
5524 (PCB).exit_flag = AG_STACK_ERROR_CODE;
5525 PARSER_STACK_OVERFLOW;
5526 }
5527 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).lab;
5528 (PCB).ss[(PCB).ssx] = (PCB).sn;
5529 (PCB).ssx++;
5530 (PCB).sn = (PCB).ag_ap;
5531 ag_track();
5532 return 0;
5533 }
5534
5535 static int ag_action_9_proc(void) {
5536 if ((PCB).drt == -1) {
5537 (PCB).drt=(PCB).token_number;
5538 (PCB).dssx=(PCB).ssx;
5539 (PCB).dsn=(PCB).sn;
5540 }
5541 ag_prot();
5542 (PCB).vs[(PCB).ssx] = ag_null_value;
5543 (PCB).ss[(PCB).ssx] = (PCB).sn;
5544 (PCB).ssx++;
5545 (PCB).sn = (PCB).ag_ap;
5546 (PCB).rx = 0;
5547 return (PCB).exit_flag == AG_RUNNING_CODE;
5548 }
5549
5550 static int ag_action_2_r_proc(void) {
5551 (PCB).ssx++;
5552 (PCB).sn = (PCB).ag_ap;
5553 return 0;
5554 }
5555
5556 static int ag_action_7_proc(void) {
5557 --(PCB).ssx;
5558 (PCB).rx = 0;
5559 (PCB).exit_flag = AG_SUCCESS_CODE;
5560 return 0;
5561 }
5562
5563 static int ag_action_1_proc(void) {
5564 ag_track();
5565 (PCB).exit_flag = AG_SUCCESS_CODE;
5566 return 0;
5567 }
5568
5569 static int ag_action_1_r_proc(void) {
5570 (PCB).exit_flag = AG_SUCCESS_CODE;
5571 return 0;
5572 }
5573
5574 static int ag_action_1_s_proc(void) {
5575 (PCB).exit_flag = AG_SUCCESS_CODE;
5576 return 0;
5577 }
5578
5579 static int ag_action_4_proc(void) {
5580 int ag_sd = ag_fl[(PCB).ag_ap] - 1;
5581 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5582 (PCB).btsx = 0, (PCB).drt = -1;
5583 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).lab;
5584 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5585 else (PCB).ss[(PCB).ssx] = (PCB).sn;
5586 ag_track();
5587 while ((PCB).exit_flag == AG_RUNNING_CODE) {
5588 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1;
5589 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1;
5590 do {
5591 unsigned ag_tx = (ag_t1 + ag_t2)/2;
5592 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1;
5593 else ag_t2 = ag_tx;
5594 } while (ag_t1 < ag_t2);
5595 (PCB).ag_ap = ag_pstt[ag_t1];
5596 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break;
5597 }
5598 return 0;
5599 }
5600
5601 static int ag_action_3_proc(void) {
5602 int ag_sd = ag_fl[(PCB).ag_ap] - 1;
5603 (PCB).btsx = 0, (PCB).drt = -1;
5604 (*(int *) &(PCB).vs[(PCB).ssx]) = *(PCB).lab;
5605 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5606 else (PCB).ss[(PCB).ssx] = (PCB).sn;
5607 ag_track();
5608 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5609 ag_ra();
5610 while ((PCB).exit_flag == AG_RUNNING_CODE) {
5611 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1;
5612 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1;
5613 do {
5614 unsigned ag_tx = (ag_t1 + ag_t2)/2;
5615 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1;
5616 else ag_t2 = ag_tx;
5617 } while (ag_t1 < ag_t2);
5618 (PCB).ag_ap = ag_pstt[ag_t1];
5619 if ((ag_s_procs_scan[ag_astt[ag_t1]])() == 0) break;
5620 }
5621 return 0;
5622 }
5623
5624 static int ag_action_8_proc(void) {
5625 ag_undo();
5626 (PCB).rx = 0;
5627 (PCB).exit_flag = AG_SYNTAX_ERROR_CODE;
5628 ag_diagnose();
5629 SYNTAX_ERROR;
5630 {(PCB).rx = 1; ag_track();}
5631 return (PCB).exit_flag == AG_RUNNING_CODE;
5632 }
5633
5634 static int ag_action_5_proc(void) {
5635 int ag_sd = ag_fl[(PCB).ag_ap];
5636 (PCB).btsx = 0, (PCB).drt = -1;
5637 if (ag_sd) (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5638 else {
5639 (PCB).ss[(PCB).ssx] = (PCB).sn;
5640 }
5641 (PCB).rx = 0;
5642 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5643 ag_ra();
5644 while ((PCB).exit_flag == AG_RUNNING_CODE) {
5645 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1;
5646 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1;
5647 do {
5648 unsigned ag_tx = (ag_t1 + ag_t2)/2;
5649 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1;
5650 else ag_t2 = ag_tx;
5651 } while (ag_t1 < ag_t2);
5652 (PCB).ag_ap = ag_pstt[ag_t1];
5653 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break;
5654 }
5655 return (PCB).exit_flag == AG_RUNNING_CODE;
5656 }
5657
5658 static int ag_action_6_proc(void) {
5659 int ag_sd = ag_fl[(PCB).ag_ap];
5660 (PCB).reduction_token = (parseBasic_token_type) ag_ptt[(PCB).ag_ap];
5661 if ((PCB).drt == -1) {
5662 (PCB).drt=(PCB).token_number;
5663 (PCB).dssx=(PCB).ssx;
5664 (PCB).dsn=(PCB).sn;
5665 }
5666 if (ag_sd) {
5667 (PCB).sn = (PCB).ss[(PCB).ssx -= ag_sd];
5668 }
5669 else {
5670 ag_prot();
5671 (PCB).vs[(PCB).ssx] = ag_null_value;
5672 (PCB).ss[(PCB).ssx] = (PCB).sn;
5673 }
5674 (PCB).rx = 0;
5675 while ((PCB).exit_flag == AG_RUNNING_CODE) {
5676 unsigned ag_t1 = ag_sbe[(PCB).sn] + 1;
5677 unsigned ag_t2 = ag_sbt[(PCB).sn+1] - 1;
5678 do {
5679 unsigned ag_tx = (ag_t1 + ag_t2)/2;
5680 if (ag_tstt[ag_tx] < (unsigned short)(PCB).reduction_token) ag_t1 = ag_tx + 1;
5681 else ag_t2 = ag_tx;
5682 } while (ag_t1 < ag_t2);
5683 (PCB).ag_ap = ag_pstt[ag_t1];
5684 if ((ag_r_procs_scan[ag_astt[ag_t1]])() == 0) break;
5685 }
5686 return (PCB).exit_flag == AG_RUNNING_CODE;
5687 }
5688
5689
5690 void init_parseBasic(void) {
5691 (PCB).rx = (PCB).fx = 0;
5692 (PCB).ss[0] = (PCB).sn = (PCB).ssx = 0;
5693 (PCB).exit_flag = AG_RUNNING_CODE;
5694 (PCB).line = FIRST_LINE;
5695 (PCB).column = FIRST_COLUMN;
5696 (PCB).btsx = 0, (PCB).drt = -1;
5697 }
5698
5699 void parseBasic(void) {
5700 init_parseBasic();
5701 (PCB).exit_flag = AG_RUNNING_CODE;
5702 while ((PCB).exit_flag == AG_RUNNING_CODE) {
5703 unsigned ag_t1 = ag_sbt[(PCB).sn];
5704 if (ag_tstt[ag_t1]) {
5705 unsigned ag_t2 = ag_sbe[(PCB).sn] - 1;
5706 if ((PCB).rx < (PCB).fx) {
5707 (PCB).input_code = (PCB).lab[(PCB).rx++];
5708 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);}
5709 else {
5710 GET_INPUT;
5711 (PCB).lab[(PCB).fx++] = (PCB).input_code;
5712 (PCB).token_number = (parseBasic_token_type) AG_TCV((PCB).input_code);
5713 (PCB).rx++;
5714 }
5715 if (ag_key_index[(PCB).sn]) {
5716 unsigned ag_k = ag_key_index[(PCB).sn];
5717 int ag_ch = CONVERT_CASE((PCB).input_code);
5718 if (ag_ch < 255) {
5719 while (ag_key_ch[ag_k] < ag_ch) ag_k++;
5720 if (ag_key_ch[ag_k] == ag_ch) ag_get_key_word(ag_k);
5721 }
5722 }
5723 do {
5724 unsigned ag_tx = (ag_t1 + ag_t2)/2;
5725 if (ag_tstt[ag_tx] > (unsigned short)(PCB).token_number)
5726 ag_t1 = ag_tx + 1;
5727 else ag_t2 = ag_tx;
5728 } while (ag_t1 < ag_t2);
5729 if (ag_tstt[ag_t1] != (unsigned short)(PCB).token_number)
5730 ag_t1 = ag_sbe[(PCB).sn];
5731 }
5732 (PCB).ag_ap = ag_pstt[ag_t1];
5733 (ag_gt_procs_scan[ag_astt[ag_t1]])();
5734 }
5735 }
5736
5737