1#ifndef lint
2static char yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93 (groff)";
3#endif
4#define YYBYACC 1
5#define YYMAJOR 1
6#define YYMINOR 9
7#define yyclearin (yychar=(-1))
8#define yyerrok (yyerrflag=0)
9#define YYRECOVERING (yyerrflag!=0)
10#define YYPREFIX "yy"
11#line 21 "pic.y"
12#include "pic.h"
13#include "ptable.h"
14#include "object.h"
15
16extern int delim_flag;
17extern void copy_rest_thru(const char *, const char *);
18extern void copy_file_thru(const char *, const char *, const char *);
19extern void push_body(const char *);
20extern void do_for(char *var, double from, double to,
21		   int by_is_multiplicative, double by, char *body);
22extern void do_lookahead();
23
24/* Maximum number of characters produced by printf("%g") */
25#define GDIGITS 14
26
27int yylex();
28void yyerror(const char *);
29
30void reset(const char *nm);
31void reset_all();
32
33place *lookup_label(const char *);
34void define_label(const char *label, const place *pl);
35
36direction current_direction;
37position current_position;
38
39implement_ptable(place)
40
41PTABLE(place) top_table;
42
43PTABLE(place) *current_table = &top_table;
44saved_state *current_saved_state = 0;
45
46object_list olist;
47
48const char *ordinal_postfix(int n);
49const char *object_type_name(object_type type);
50char *format_number(const char *form, double n);
51char *do_sprintf(const char *form, const double *v, int nv);
52
53#line 65 "pic.y"
54typedef union {
55	char *str;
56	int n;
57	double x;
58	struct { double x, y; } pair;
59	struct { double x; char *body; } if_data;
60	struct { char *str; const char *filename; int lineno; } lstr;
61	struct { double *v; int nv; int maxv; } dv;
62	struct { double val; int is_multiplicative; } by;
63	place pl;
64	object *obj;
65	corner crn;
66	path *pth;
67	object_spec *spec;
68	saved_state *pstate;
69	graphics_state state;
70	object_type obtype;
71} YYSTYPE;
72#line 73 "y.tab.c"
73#define LABEL 257
74#define VARIABLE 258
75#define NUMBER 259
76#define TEXT 260
77#define COMMAND_LINE 261
78#define DELIMITED 262
79#define ORDINAL 263
80#define TH 264
81#define LEFT_ARROW_HEAD 265
82#define RIGHT_ARROW_HEAD 266
83#define DOUBLE_ARROW_HEAD 267
84#define LAST 268
85#define UP 269
86#define DOWN 270
87#define LEFT 271
88#define RIGHT 272
89#define BOX 273
90#define CIRCLE 274
91#define ELLIPSE 275
92#define ARC 276
93#define LINE 277
94#define ARROW 278
95#define MOVE 279
96#define SPLINE 280
97#define HEIGHT 281
98#define RADIUS 282
99#define FIGNAME 283
100#define WIDTH 284
101#define DIAMETER 285
102#define FROM 286
103#define TO 287
104#define AT 288
105#define WITH 289
106#define BY 290
107#define THEN 291
108#define SOLID 292
109#define DOTTED 293
110#define DASHED 294
111#define CHOP 295
112#define SAME 296
113#define INVISIBLE 297
114#define LJUST 298
115#define RJUST 299
116#define ABOVE 300
117#define BELOW 301
118#define OF 302
119#define THE 303
120#define WAY 304
121#define BETWEEN 305
122#define AND 306
123#define HERE 307
124#define DOT_N 308
125#define DOT_E 309
126#define DOT_W 310
127#define DOT_S 311
128#define DOT_NE 312
129#define DOT_SE 313
130#define DOT_NW 314
131#define DOT_SW 315
132#define DOT_C 316
133#define DOT_START 317
134#define DOT_END 318
135#define DOT_X 319
136#define DOT_Y 320
137#define DOT_HT 321
138#define DOT_WID 322
139#define DOT_RAD 323
140#define SIN 324
141#define COS 325
142#define ATAN2 326
143#define LOG 327
144#define EXP 328
145#define SQRT 329
146#define K_MAX 330
147#define K_MIN 331
148#define INT 332
149#define RAND 333
150#define SRAND 334
151#define COPY 335
152#define THRU 336
153#define TOP 337
154#define BOTTOM 338
155#define UPPER 339
156#define LOWER 340
157#define SH 341
158#define PRINT 342
159#define CW 343
160#define CCW 344
161#define FOR 345
162#define DO 346
163#define IF 347
164#define ELSE 348
165#define ANDAND 349
166#define OROR 350
167#define NOTEQUAL 351
168#define EQUALEQUAL 352
169#define LESSEQUAL 353
170#define GREATEREQUAL 354
171#define LEFT_CORNER 355
172#define RIGHT_CORNER 356
173#define NORTH 357
174#define SOUTH 358
175#define EAST 359
176#define WEST 360
177#define CENTER 361
178#define END 362
179#define START 363
180#define RESET 364
181#define UNTIL 365
182#define PLOT 366
183#define THICKNESS 367
184#define FILL 368
185#define COLORED 369
186#define OUTLINED 370
187#define SHADED 371
188#define ALIGNED 372
189#define SPRINTF 373
190#define COMMAND 374
191#define DEFINE 375
192#define UNDEF 376
193#define YYERRCODE 256
194short yylhs[] = {                                        -1,
195    0,    0,   16,   17,   17,   29,   29,   30,   30,   31,
196   31,   31,   31,   31,   31,   31,   31,   31,   31,   32,
197   31,   31,   33,   34,   31,   35,   36,   31,   37,   31,
198   31,   38,   31,   31,   31,   23,   23,   39,   39,   39,
199   27,   27,   28,   28,   28,   40,    7,   24,   24,    2,
200    2,    3,    3,    3,    3,    3,    3,    3,    3,    3,
201    4,    4,    4,   15,   15,   15,   15,   41,   43,   15,
202   15,   42,   42,   18,   18,   18,   18,   18,   18,   18,
203   18,   18,   18,   18,   44,   18,   18,   18,   18,   18,
204   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
205   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
206   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
207   18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
208   18,   18,   26,   26,   25,   25,   19,   19,   19,    6,
209    6,    6,    6,    6,    6,    6,    6,    6,    6,   45,
210   45,    5,    5,   13,   13,   13,   13,   13,   14,   14,
211   14,   22,   22,   21,   21,    8,    8,   20,   20,   20,
212   20,   20,   20,   20,   20,   20,   11,   11,   12,   12,
213   12,   10,   10,   10,   10,   10,   10,    9,    9,    9,
214    9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
215    9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
216    9,    9,    9,    9,    9,    9,    9,    9,    9,    1,
217    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
218    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
219    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
220    1,    1,    1,    1,    1,
221};
222short yylen[] = {                                         2,
223    1,    1,    3,    1,    3,    0,    1,    1,    2,    3,
224    3,    4,    1,    1,    1,    1,    1,    2,    2,    0,
225    3,    2,    0,    0,    7,    0,    0,    6,    0,   10,
226    1,    0,    4,    1,    1,    1,    1,    2,    2,    3,
227    1,    2,    1,    1,    1,    0,    5,    0,    2,    1,
228    1,    3,    3,    3,    3,    3,    3,    3,    3,    2,
229    0,    2,    3,    1,    4,    4,    4,    0,    0,    6,
230    1,    0,    1,    1,    1,    1,    1,    1,    1,    1,
231    1,    1,    2,    3,    0,    4,    3,    3,    3,    3,
232    2,    2,    3,    2,    3,    2,    3,    2,    3,    3,
233    3,    3,    3,    3,    3,    2,    2,    2,    3,    2,
234    3,    2,    3,    3,    3,    3,    2,    3,    2,    2,
235    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
236    3,    2,    1,    5,    0,    3,    1,    1,    3,    1,
237    3,    5,    3,    5,    5,    5,    7,    6,    8,    1,
238    4,    3,    3,    1,    2,    2,    3,    1,    1,    1,
239    3,    1,    3,    1,    2,    2,    2,    1,    1,    1,
240    1,    1,    1,    1,    2,    1,    2,    3,    1,    1,
241    2,    1,    5,    4,    3,    3,    2,    1,    1,    1,
242    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
243    1,    1,    2,    2,    2,    2,    1,    1,    2,    2,
244    2,    2,    1,    1,    1,    1,    1,    1,    1,    1,
245    1,    2,    2,    2,    2,    2,    3,    3,    3,    3,
246    3,    3,    2,    3,    4,    4,    6,    4,    4,    4,
247    6,    6,    4,    4,    3,    4,    3,    3,    3,    3,
248    3,    3,    3,    3,    2,
249};
250short yydefred[] = {                                      0,
251    8,    0,    2,    0,    0,    0,    0,  133,   17,   13,
252   14,   15,   16,   74,   75,   76,   77,   78,   79,   80,
253   81,    0,    0,   20,    0,    0,    0,    0,    0,    0,
254    0,   85,   68,    0,    4,    0,    0,   82,   71,    0,
255    9,    0,    0,    0,    0,    0,   26,    0,  159,  220,
256  221,  162,  164,  201,  202,  158,  188,  189,  190,  191,
257  192,  193,  194,  195,  196,  197,  198,    0,    0,    0,
258    0,    0,    0,    0,    0,    0,    0,    0,  199,  200,
259    0,    0,  207,  208,  213,  214,  215,  216,  217,  219,
260  218,    0,    0,    0,    0,    0,  140,  137,  160,    0,
261    0,    0,    0,    0,    0,   44,    0,   41,    0,    0,
262    0,    0,    0,    0,    0,    0,   38,    0,    0,    0,
263    0,    0,   32,    3,    0,  121,  122,  123,    0,    0,
264    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
265    0,  106,  107,    0,    0,    0,  119,  120,  127,  128,
266  129,  130,  124,  125,    0,    0,    0,    0,    0,  132,
267    0,  126,   39,    0,    0,   11,    0,   37,   36,   10,
268   23,    0,   21,    0,    0,    0,    0,    0,    0,    0,
269    0,    0,    0,    0,  203,  205,  209,  211,  204,  206,
270  210,  212,    0,    0,    0,    0,    0,    0,    0,    0,
271    0,  150,    0,    0,    0,    0,    0,    0,    0,    0,
272    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
273  222,  223,  224,  225,  226,    0,  155,    0,    0,  176,
274  168,  169,  170,  171,  172,  173,  174,    0,  167,  165,
275  166,   42,    0,    0,   60,    0,    0,    0,   46,    0,
276    0,    0,    0,   84,  135,    0,    0,    0,    0,    5,
277    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
278    0,    0,    0,    0,    0,    0,    0,    0,  103,    0,
279  182,    0,    0,    0,  105,    0,    0,    0,    0,    0,
280  115,  116,  114,   40,    0,    0,    0,    0,    0,    0,
281   65,    0,   12,    0,   27,    0,    0,    0,    0,    0,
282    0,    0,    0,    0,  245,    0,    0,    0,    0,  234,
283  153,  139,    0,    0,    0,  163,    0,    0,    0,    0,
284    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
285    0,    0,    0,    0,    0,  161,  141,  143,  175,    0,
286    0,   56,    0,    0,    0,    0,    0,   54,    0,    0,
287   53,   52,    0,   86,   69,   33,  179,  187,    0,    0,
288    0,  177,    0,    0,  181,    0,    0,   24,    0,  235,
289  236,    0,  238,  239,  240,    0,    0,  243,  244,  246,
290    0,    0,    0,    0,    0,    0,    0,    0,    0,   47,
291    0,  134,    0,    0,  186,  185,    0,  178,    0,    0,
292   28,    0,    0,    0,    0,    0,  145,  142,  144,  151,
293    0,    0,    0,    0,   73,   70,  184,    0,   25,   49,
294  237,  241,  242,    0,    0,  148,    0,    0,  183,    0,
295  147,    0,    0,   29,  149,    0,    0,   30,
296};
297short yydgoto[] = {                                       2,
298  112,  194,  114,  438,   97,   98,   34,   99,  100,  279,
299  280,  281,  115,  102,   35,    3,   36,   37,  103,  239,
300  104,  105,  170,  411,  363,  116,  107,  108,  257,    5,
301   39,   48,  304,  409,  172,  379,  447,  259,   40,  356,
302  122,  426,  403,  121,  218,
303};
304short yysindex[] = {                                    -58,
305    0,    0,    0, 5077,  -43,  -21,   -2,    0,    0,    0,
306    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
307    0,   19, -242,    0,12299, -173,12422, -155,13019,   85,
30812299,    0,    0, -214,    0,  -58,11880,    0,    0,  -42,
309    0,  -58,12422,   76, -160, -195,    0, -118,    0,    0,
310    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
311    0,    0,    0,    0,    0,    0,    0,  108,  120,  127,
312  133,  137,  154,  161,  162,  173,  174,  179,    0,    0,
313 -193, -119,    0,    0,    0,    0,    0,    0,    0,    0,
314    0,12539,12422,13019,13019,  -34,    0,    0,    0,  -51,
315  170,  585,   46,  495,  329,    0,12299,    0,  110,12422,
31612422, 1768,  -71, -227,  170, -197,    0,  -22,  -50,12299,
317  -58,  -58,    0,    0,13489,    0,    0,    0,13382,13382,
31813382,13382,13019,13019,13019,13019,13142,13142,13142,12779,
31913259,    0,    0,13382,13382,13382,    0,    0,    0,    0,
320    0,    0,    0,    0,13019,13382, -228, -228, -228,    0,
321 1792,    0,    0,  -30,11548,    0,12422,    0,    0,    0,
322    0,  -28,    0,12422,12422,12422,12422,12422,12422,12422,
32312422,12422,11997,12422,    0,    0,    0,    0,    0,    0,
324    0,    0, 1315,  194,  198,  -11,  299,  -10,  159,  159,
325  -47,    0,13019,13019,13019,13019,13019,13019,13019,13142,
32613019,13019,13019,13019,13019,13019,13019,13142,   -8,  211,
327    0,    0,    0,    0,    0,    2,    0,13259,13259,    0,
328    0,    0,    0,    0,    0,    0,    0,  177,    0,    0,
329    0,    0,13019,  159,    0,12422,12422,13019,    0,12422,
33012422, -228, -228,    0,    0,  180, 5077,  147,   25,    0,
331 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,  -34,   46,
332   46,   46, 1842,  318,  318,   29,12182,  -51,    0,  525,
333    0,   46,12662, 1336,    0, 1792, 1792, 1792, 1792, 1792,
334    0,    0,    0,    0,  -21,   -2,    0,    0,    0,  170,
335    0,   46,    0,   27,    0,  251,  264,  262,  292,  293,
336  295,  301,  304,  308,    0,  312,  313,13142,13142,    0,
337    0,    0,13142,13259,13259,    0,   57, 1194,    6, 1166,
338 1166,  506,  506, 1792,   -1,  343,  506,  388,  388,  159,
339  159,  159,  159,  -16,  211,    0,    0,    0,    0, 3170,
340 1194,    0,  394,   14,  506,  103, 1194,    0,  394,   14,
341    0,    0,   21,    0,    0,    0,    0,    0,  495,  986,
342  986,    0,  324,  118,    0, 1756,  198,    0,   12,    0,
343    0,12422,    0,    0,    0,12422,12422,    0,    0,    0,
344  389,    7,  131,  351,  353,   79,13142,13142,13019,    0,
34513019,    0, 5077,  986,    0,    0,  986,    0,   12,  135,
346    0,  361,  363,  365,13142,13142,    0,    0,    0,    0,
347   56,   46, 2233, 1792,    0,    0,    0,  367,    0,    0,
348    0,    0,    0,  205,  296,    0,12902,   64,    0,  370,
349    0,13019, 1792,    0,    0, 1792,  151,    0,
350};
351short yyrindex[] = {                                      5,
352    0,    0,    0,  424,  200,    0,    0,    0,    0,    0,
353    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
354    0,    0,    0,    0,    0,    0,    0,   24,    0,    0,
355    0,    0,    0,   31,    0,   34,  102,    0,    0,  139,
356    0,11744,    0,    0,    0,  639,    0,    0,    0,    0,
357    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
358    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
359    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
360    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
361    0,    0,    0,    0,    0,10124,    0,    0,    0,    0,
362 4478, 9516,10459,    0,    0,    0,  691,    0,    0,    0,
363    0, 1713,    0, 2171,    0,    0,    0,11366,    0,  692,
364 5532, 5532,    0,    0,  136,    0,    0,    0,10701,10765,
36510277,10580,    0,    0,    0,    0,    0,    0,    0,    0,
366    0,    0,    0,10829,10955,11019,    0,    0,    0,    0,
367    0,    0,    0,    0,    0,11083,    0,    0,    0,    0,
368 5277,    0,    0,    0,    0,    0,    0,    0,    0,    0,
369    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
370    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
371    0,    0,  385,    0,  421,  441,    0,    0,  356,  697,
372    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
373    0,    0,    0,    0,    0,    0,    0,    0,    0, 3104,
374    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
375    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
376    0,    0,    0,10627,    0,    0,    0,    0,    0,    0,
377    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
378 5394, 5735, 5852, 6193, 6310, 6651, 6768, 7109,    0, 7226,
379 7567, 7684, 9818, -213,  169,    0,    0, 9399,    0, 9912,
380    0, 8025,    0,    0,    0, 8142, 8483, 8600, 8941, 9058,
381    0,    0,    0,    0,11436, 1656, 2507, 2965,  321,  362,
382    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
383    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
384    0,    0,    0,    0,    0,    0,    0, 4020, 4361, 3445,
385 3562, 2188, 2529, 4936,10001,    0, 2646, 1730, 2071,  814,
386 1155, 1272, 1613,    0, 3903,    0,    0,    0,    0,    0,
387   33,    0, 4451, 3118, 2987,    0,  326,    0, 3990, 4906,
388    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
389    0,    0,    0,    0,    0,  385,    0,    0,  701,    0,
390    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
391    0,    0,    0,  452,  455,    0,    0,    0,    0,    0,
392    0,    0,  720,    0,    0,    0,    0,    0,  701,    0,
393    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394    0, 4819,   92,   32,    0,    0,    0,    0,    0,    0,
395    0,    0,    0,    0,  396,    0,    0,    0,    0,  460,
396    0,    0,   96,    0,    0,   97,    0,    0,
397};
398short yygindex[] = {                                      0,
399  -25,  401, -104,    0,  -78,  280,    0,    0, 1852,    0,
400    0, -238,  104,  -81, -108,   43,    0,    0, 2253,  -44,
401    0,    0,    0,   38,    0,   50,  417,  -36,   22,  414,
402    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403    0,    0,    0,    0,  269,
404};
405#define YYTABLESIZE 13863
406short yytable[] = {                                      96,
407    1,  164,  216,  118,    6,   96,  245,  214,  212,  209,
408  213,  161,  215,  195,  216,   41,  260,   46,  220,  214,
409  212,    4,  213,   35,  215,  210,  228,  211,  229,  322,
410   31,    8,  253,    6,  368,  216,   42,  248,  373,  211,
411  214,  212,  216,  213,   93,  215,  162,  214,  212,  228,
412  213,  229,  215,   38,  162,   44,  301,  124,   43,  217,
413  241,  402,  285,  165,  401,  248,  193,  211,  199,  200,
414  242,  217,  136,  253,  106,  136,  253,  185,  186,   45,
415  106,   96,   35,  242,  109,  244,  162,   93,  228,   31,
416  229,  253,  217,   47,   96,    6,  168,  169,  228,  217,
417  229,   64,  117,  261,  262,  263,  264,  265,  266,  267,
418  268,  269,  269,  269,  269,  284,   35,  436,  286,  287,
419  288,  250,  251,   31,  119,  253,    6,    6,  101,  289,
420  290,  405,  406,  123,  101,    7,  167,  345,   34,  269,
421  171,  352,  354,  173,   30,  358,  360,  174,   35,  347,
422  348,  189,  190,  252,  253,   31,  106,  253,    6,  175,
423   64,  187,  188,  256,  258,  427,  176,  254,  428,  106,
424  243,  417,  177,  228,   38,  229,  178,  328,  329,  330,
425  331,  332,  333,  334,  335,  337,  338,  339,  340,  341,
426  342,  343,  269,  179,   64,  196,  220,   34,  195,    7,
427  180,  181,  284,  284,  377,   49,  291,  292,  293,  255,
428  101,   52,  182,  183,   38,  163,   53,  350,  184,  249,
429  351,  353,  355,  101,  357,  359,   64,  294,    7,  370,
430  371,   34,    7,  305,  320,  191,  192,    8,  321,    7,
431  101,  101,  101,  101,    7,  394,  395,  228,   49,  229,
432  219,  193,  217,  326,   52,  327,  226,  376,  346,   53,
433    7,    6,    6,   34,    6,    6,  440,  201,  300,  349,
434  202,  365,  364,    6,    6,    6,    6,    6,    6,    6,
435    6,    6,    6,    6,    6,  372,  366,    6,  378,  398,
436    7,  380,  335,  269,  425,    7,  253,  269,  284,  284,
437  201,  361,  362,  202,  381,  382,   38,  221,  222,  223,
438  224,  225,  416,  101,  203,  204,  205,  206,  207,  208,
439   66,  101,    7,  253,  404,   55,  203,  204,  205,  206,
440  207,  208,  383,  384,  253,  385,  441,  253,  228,    6,
441  229,  324,  323,  325,  386,    6,    6,  387,  388,    6,
442   30,    6,  389,  390,  203,  233,  205,  206,  207,  208,
443  396,   67,  250,  137,  400,  137,   55,  407,    6,   55,
444    6,  269,  269,  423,  408,  424,  410,    6,    6,   66,
445  196,  253,  253,  420,   55,  228,  397,  229,  233,  269,
446  269,  418,  233,  419,  430,  233,  233,  233,  233,  233,
447  233,  431,  233,  432,  138,  433,  138,  439,  238,  444,
448  445,  443,  448,   66,  233,  233,  446,  233,   55,  238,
449   67,  101,  101,    1,  216,   50,  101,  113,  164,  214,
450  216,  228,  415,  229,  215,  214,  212,   61,  213,  146,
451  215,   62,   63,  166,  299,   66,  429,  120,  233,  125,
452   55,  233,   38,  248,   67,  211,    7,    7,    7,    7,
453    7,  319,    7,  140,  140,  140,    0,    7,    7,    7,
454    7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
455  233,  217,    7,  138,  138,  138,   67,  217,  221,  222,
456  223,  224,  225,  198,  141,  141,  141,  143,  143,  143,
457  101,  101,  148,  148,  148,    0,    7,    7,    7,    7,
458    7,    7,    7,    7,    7,    7,    7,    7,  101,  101,
459    0,    0,    0,    7,    7,    7,    7,    7,    7,    7,
460    7,    7,    7,    7,    7,    0,    7,    7,    7,    7,
461    7,    7,  216,    0,    7,    0,    7,  214,  212,    0,
462  213,    0,  215,    0,    7,    7,    7,    7,    7,    7,
463    7,    7,    7,    7,    0,    7,    0,  303,    0,    0,
464  374,    0,    7,    7,  306,  307,  308,  309,  310,  311,
465  312,  313,  314,  316,  317,  238,    0,    0,  230,   55,
466  231,  232,  233,  234,  235,  236,  240,  237,    0,  217,
467    0,  231,  232,  233,  234,  235,  236,    0,  237,    0,
468    0,    0,  233,  233,  233,  233,   55,    0,  233,  233,
469  233,  233,  233,  233,  233,  233,  233,  233,    0,    0,
470  226,    0,    0,    0,    0,    0,  233,  233,   22,  233,
471  233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
472  233,  233,  233,  233,  233,  233,  233,  233,    0,    0,
473  233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
474  233,  233,  233,  233,   55,   55,    0,    0,    0,  233,
475  233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
476   19,   18,  233,  233,  233,  233,  255,   22,  233,  233,
477   48,  233,    0,    0,  233,  233,  233,  233,  233,  233,
478  233,  233,  233,  233,  233,  233,  233,  233,  233,   72,
479    0,    0,  233,  233,  233,  233,  233,  233,  233,  255,
480    0,   22,    0,  255,    0,    0,  255,  255,  255,  255,
481  255,  255,  246,  255,  205,  206,  207,  208,    0,   19,
482   18,    0,    0,    0,  230,  255,  255,    0,  255,   48,
483    0,    0,    0,   22,    0,    0,    0,  231,  232,  233,
484  234,  235,  236,    0,  237,    0,    0,    0,   72,    0,
485    0,    0,  412,   19,   18,    0,  413,  414,    0,  255,
486    0,    0,  255,   48,    0,   54,   55,    0,    0,    0,
487    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
488    0,    0,   72,  229,    0,   19,   18,    0,    0,    0,
489    0,  255,    0,    0,    0,   48,    0,    0,    0,    0,
490    0,    0,   57,   58,   59,   60,   61,   62,   63,   64,
491   65,   66,   67,    0,   72,    0,  229,    0,    0,    0,
492  229,    0,    0,  229,  229,  229,  229,  229,  229,    0,
493  229,   79,   80,   81,   82,    0,    0,    0,    0,    0,
494    0,    0,  229,  229,    0,  229,    0,    0,    0,   83,
495   84,   85,   86,   87,   88,   89,   90,   91,    0,    0,
496    0,    0,   57,   58,   59,   60,   61,   62,   63,   64,
497   65,   66,   67,    0,    0,    0,  229,    0,    0,  229,
498    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499    0,   79,   80,   81,   82,    0,    0,    0,    0,    0,
500    0,    0,    0,    0,    0,    0,    0,    0,  229,   83,
501   84,   85,   86,   87,   88,   89,   90,   91,    0,    0,
502    0,    0,    0,  255,  255,  255,  255,    0,    0,  255,
503  255,  255,  255,  255,  255,  255,  255,  255,  255,    0,
504    0,    0,    0,    0,    0,    0,    0,  255,  255,    0,
505  255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
506  255,  255,  255,  255,  255,  255,  255,  255,  255,    0,
507    0,  255,  255,  255,  255,  255,  255,  255,  255,  255,
508  255,  255,  255,  255,  255,    0,    0,    0,    0,    0,
509  255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
510  255,  276,    0,  255,  255,  255,  255,    0,    0,  255,
511  255,    0,  255,    0,    0,  255,  255,  255,  255,  255,
512  255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
513    0,    0,    0,  255,  255,  255,  255,  255,  255,  255,
514  229,  229,  229,  229,    0,    0,  229,  229,  229,  229,
515  229,  229,  229,  229,  229,  229,    0,    0,    0,    0,
516    0,    0,    0,    0,  229,  229,    0,  229,  229,  229,
517  229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
518  229,  229,  229,  229,  229,  229,    0,    0,  229,  229,
519  229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
520  229,  229,    0,    0,    0,    0,    0,  229,  229,  229,
521  229,  229,  229,  229,  229,  229,  229,  229,    0,    0,
522  229,  229,  229,  229,  230,    0,  229,  229,    0,  229,
523    0,    0,  229,  229,  229,  229,  229,  229,  229,  229,
524  229,  229,  229,  229,  229,  229,  229,    0,    0,    0,
525  229,  229,  229,  229,  229,  229,  229,  230,    0,    0,
526    0,  230,    0,    0,  230,  230,  230,  230,  230,  230,
527    0,  230,  216,    0,    0,    0,    0,  214,  212,    0,
528  213,    0,  215,  230,  230,    0,  230,    0,    0,    0,
529    0,    0,    0,    0,    0,  248,    0,  211,    0,    0,
530  216,    0,    0,    0,    0,  214,  212,    0,  213,    0,
531  215,    0,    0,    0,    0,    0,    0,  230,    0,    0,
532  230,    0,    0,  248,    0,  211,   54,   55,    0,  217,
533    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
534    0,  231,    0,    0,    0,    0,    0,    0,    0,  230,
535    0,    0,    0,    0,    0,    0,    0,  217,    0,    0,
536    0,    0,    0,   57,   58,   59,   60,   61,   62,   63,
537   64,   65,   66,   67,  231,    0,    0,    0,  231,    0,
538    0,  231,  231,  231,  231,  231,  231,    0,  231,    0,
539    0,    0,   79,   80,   81,   82,    0,    0,    0,    0,
540  231,  231,    0,  231,    0,    0,    0,    0,    0,    0,
541   83,   84,   85,   86,   87,   88,   89,   90,   91,    0,
542    0,  216,    0,    0,    0,    0,  214,  212,  209,  213,
543    0,  215,    0,    0,  231,    0,    0,  231,    0,    0,
544    0,    0,  216,    0,  318,    0,  211,  214,  212,  209,
545  213,    0,  215,    0,    0,    0,    0,    0,    0,    0,
546    0,    0,    0,    0,    0,  248,  231,  211,    0,    0,
547    0,    0,    0,    0,    0,    0,    0,    0,  217,    0,
548    0,  230,  230,  230,  230,    0,    0,  230,  230,  230,
549  230,  230,  230,  230,  230,  230,  230,    0,    0,  217,
550    0,    0,    0,    0,    0,  230,  230,    0,  230,  230,
551  230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
552  230,  230,  230,  230,  230,  230,  230,    0,    0,  230,
553  230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
554  230,  230,  230,    0,    0,    0,    0,    0,  230,  230,
555  230,  230,  230,  230,  230,  230,  230,  230,  230,    0,
556    0,  230,  230,  230,  230,    0,    0,  230,  230,    0,
557  230,    0,    0,  230,  230,  230,  230,  230,  230,  230,
558  230,  230,  230,  230,  230,  230,  230,  230,  207,  208,
559    0,  230,  230,  230,  230,  230,  230,  230,  231,  231,
560  231,  231,    0,    0,  231,  231,  231,  231,  231,  231,
561  231,  231,  231,  231,  205,  206,  207,  208,    0,    0,
562    0,    0,  231,  231,    0,  231,  231,  231,  231,  231,
563  231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
564  231,  231,  231,  231,    0,    0,  231,  231,  231,  231,
565  231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
566    0,    0,    0,    0,    0,  231,  231,  231,  231,  231,
567  231,  231,  231,  231,  231,  231,    0,    0,  231,  231,
568  231,  231,  232,    0,  231,  231,  201,  231,    0,  202,
569  231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
570  231,  231,  231,  231,  231,    0,    0,    0,  231,  231,
571  231,  231,  231,  231,  231,  232,    0,    0,    0,  232,
572    0,    0,  232,  232,  232,  232,  232,  232,    0,  232,
573    0,    0,    0,  246,  247,  205,  206,  207,  208,    0,
574    0,  232,  232,    0,  232,    0,    0,    0,    0,    0,
575    0,    0,    0,    0,  203,  204,  205,  206,  207,  208,
576    0,    0,  220,    0,    0,    0,    0,  220,  220,  220,
577  220,    0,  220,    0,    0,  232,    0,    0,  232,    0,
578    0,    0,   50,    0,    0,  220,    0,  220,    0,    0,
579    0,    0,    0,    0,    0,    0,    0,    0,    0,  227,
580    0,    0,    0,    0,    0,    0,    0,  232,    0,    0,
581    0,    0,    0,    0,    0,    0,    0,    0,    0,  220,
582    0,    0,    0,   50,    0,    0,   50,    0,    0,    0,
583    0,    0,  227,    0,    0,    0,    0,    0,    0,  227,
584  227,   50,  227,  227,  227,    0,    0,    0,    0,    0,
585    0,    0,    0,    0,    0,    0,    0,    0,  227,  227,
586    0,  227,  216,    0,    0,    0,    0,  214,  212,  209,
587  213,    0,  215,    0,  216,   50,    0,    0,    0,  214,
588  212,    0,  213,    0,  215,  248,    0,  211,    0,    0,
589    0,    0,  227,    0,    0,  227,    0,  248,  216,  211,
590    0,    0,    0,  214,  212,    0,  213,   50,  215,    0,
591    0,    0,    0,    0,    0,    0,    0,    0,    0,  217,
592    0,  248,    0,  211,  227,    0,    0,    0,    0,    0,
593    0,  217,    0,    0,    0,    0,    0,    0,    0,  232,
594  232,  232,  232,    0,    0,  232,  232,  232,  232,  232,
595  232,  232,  232,  232,  232,  217,    0,    0,    0,    0,
596    0,    0,    0,  232,  232,    0,  232,  232,  232,  232,
597  232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
598  232,  232,  232,  232,  232,    0,    0,  232,  232,  232,
599  232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
600  232,    0,    0,    0,    0,    0,  232,  232,  232,  232,
601  232,  232,  232,  232,  232,  232,  232,    0,    0,  232,
602  232,  232,  232,  227,    0,  232,  232,  220,  232,    0,
603  220,  232,  232,  232,  232,  232,  232,  232,  232,  232,
604  232,  232,  232,  232,  232,  232,   50,    0,    0,  232,
605  232,  232,  232,  232,  232,  232,  227,  227,  227,  227,
606    0,  278,  227,  227,  227,  227,  227,  227,  227,  227,
607  227,  227,    0,   50,  220,  220,  220,  220,  220,  220,
608  227,  227,    0,  227,  227,  227,  227,  227,  227,  227,
609  227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
610  227,  227,    0,    0,  227,  227,  227,  227,  227,  227,
611  227,  227,  227,  227,  227,  227,  227,  227,    0,    0,
612    0,    0,    0,  227,  227,  227,  227,  227,  227,  227,
613  227,  227,  227,  227,    0,    0,  227,  227,  227,  227,
614  228,    0,  227,  227,    0,  227,    0,    0,  227,  227,
615  227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
616  227,  227,  227,    0,    0,    0,  227,  227,  227,  227,
617  227,  227,  227,  228,  246,  247,  205,  206,  207,  208,
618  228,  228,    0,  228,  228,  228,  246,  247,  205,  206,
619  207,  208,    0,    0,  367,    0,    0,    0,  278,  228,
620  228,  375,  228,    0,    0,    0,    0,    0,    0,    0,
621  203,  204,  205,  206,  207,  208,    0,    0,    0,   57,
622   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
623    0,    0,    0,  228,    0,    0,  228,    0,    0,    0,
624   51,    0,    0,    0,    0,    0,    0,    0,   79,   80,
625   81,   82,    0,    0,    0,    0,    0,  248,    0,    0,
626    0,    0,    0,    0,    0,  228,   83,   84,   85,   86,
627   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
628    0,   51,    0,    0,   51,    0,    0,    0,    0,    0,
629  248,  367,  367,    0,    0,    0,    0,  248,  248,   51,
630    0,  248,    0,    0,    0,    0,    0,    0,    0,    0,
631    0,    0,    0,    0,    0,    0,  248,  248,    0,  248,
632    0,    0,    0,    0,    0,  367,    0,    0,  367,    0,
633    0,    0,    0,   51,    0,    0,    0,    0,    0,  216,
634    0,    0,    0,    0,  214,  212,    0,  213,    0,  215,
635  248,    0,    0,  248,    0,    0,    0,    0,    0,    0,
636    0,    0,  248,    0,  211,   51,    0,    0,    0,    0,
637    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
638    0,    0,  248,    0,    0,    0,    0,    0,    0,    0,
639    0,    0,    0,    0,    0,    0,  217,  228,  228,  228,
640  228,    0,    0,  228,  228,  228,  228,  228,  228,  228,
641  228,  228,  228,    0,  197,    0,    0,    0,    0,    0,
642    0,  228,  228,    0,  228,  228,  228,  228,  228,  228,
643  228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
644  228,  228,  228,    0,    0,  228,  228,  228,  228,  228,
645  228,  228,  228,  228,  228,  228,  228,  228,  228,  270,
646  271,  272,  282,    0,  228,  228,  228,  228,  228,  228,
647  228,  228,  228,  228,  228,    0,    0,  228,  228,  228,
648  228,    0,    0,  228,  228,    0,  228,  302,    0,  228,
649  228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
650  228,  228,  228,  228,   51,    0,    0,  228,  228,  228,
651  228,  228,  228,  228,  248,  248,  248,  248,    0,    0,
652  248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
653    0,   51,  336,    0,    0,    0,    0,    0,  248,  248,
654  344,  248,  248,  248,  248,  248,  248,  248,  248,  248,
655  248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
656    0,    0,  248,  248,  248,  248,  248,  248,  248,  248,
657  248,  248,  248,  248,  248,  248,   15,    0,    0,    0,
658    0,  248,  248,  248,  248,  248,  248,  248,  248,  248,
659  248,  248,  437,    0,  248,  248,  248,  248,  250,  197,
660  248,  248,    0,  248,    0,    0,  248,  248,  248,  248,
661  248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
662  248,    0,    0,    0,  248,  248,  248,  248,  248,  248,
663  248,  250,    0,    0,    0,   15,    0,    0,  250,  250,
664  391,  392,  250,    0,    0,  393,    0,    0,    0,    0,
665    0,  203,  204,  205,  206,  207,  208,  250,  250,    0,
666  250,    0,    0,    0,    0,    0,    0,    0,    0,   15,
667    0,    0,  201,    0,    0,    0,    0,    0,    0,    0,
668    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669    0,  250,    0,    0,  250,    0,    0,    0,    0,    0,
670    0,   15,    0,    0,    0,    0,    0,    0,    0,    0,
671    0,    0,    0,    0,    0,  249,    0,    0,    0,  421,
672  422,    0,    0,  250,    0,    0,    0,    0,    0,    0,
673    0,    0,    0,    0,    0,    0,    0,  434,  435,    0,
674    0,    0,    0,    0,    0,    0,    0,    0,  249,    0,
675    0,    0,    0,    0,    0,  249,  249,    0,    0,  249,
676    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
677    0,    0,    0,    0,  249,  249,    0,  249,    0,    0,
678    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
680    0,    0,    0,    0,    0,    0,    0,    0,  249,    0,
681    0,  249,    0,    0,    0,    0,    0,    0,    0,    0,
682    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683    0,    0,    0,  201,    0,    0,    0,    0,    0,  201,
684  249,    0,    0,    0,  201,    0,    0,    0,    0,    0,
685    0,    0,    0,    0,    0,  250,  250,  250,  250,    0,
686    0,  250,  250,  250,  250,  250,  250,  250,  250,  250,
687  250,    0,    0,    0,    0,    0,    0,    0,  201,  250,
688  250,    0,  250,  250,  250,  250,  250,  250,  250,  250,
689  250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
690  250,    0,    0,  250,  250,  250,  250,  250,  250,  250,
691  250,  250,  250,  250,  250,  250,  250,    0,    0,    0,
692    0,    0,  250,  250,  250,  250,  250,  250,  250,  250,
693  250,  250,  250,    0,    0,  250,  250,  250,  250,    0,
694    0,  250,  250,    0,  250,    0,    0,  250,  250,  250,
695  250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
696  250,  250,    0,    0,    0,  250,  250,  250,  250,  250,
697  250,  250,  249,  249,  249,  249,    0,    0,  249,  249,
698  249,  249,  249,  249,  249,  249,  249,  249,    0,    0,
699    0,    0,    0,    0,    0,    0,  249,  249,    0,  249,
700  249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
701  249,  249,  249,  249,  249,  249,  249,  249,    0,    0,
702  249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
703  249,  249,  249,  249,   16,    0,    0,    0,    0,  249,
704  249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
705    0,    0,  249,  249,  249,  249,  247,    0,  249,  249,
706    0,  249,    0,    0,  249,  249,  249,  249,  249,  249,
707  249,  249,  249,  249,  249,  249,  249,  249,  249,    0,
708    0,    0,  249,  249,  249,  249,  249,  249,  249,  247,
709    0,    0,    0,   16,    0,    0,  247,  247,    0,    0,
710  247,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711    0,    0,    0,    0,    0,  247,  247,    0,  247,    0,
712    0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
713  202,    0,    0,    0,    0,    0,    0,    0,    0,    0,
714    0,    0,    0,    0,    0,    0,    0,    0,    0,  247,
715    0,    0,  247,    0,    0,    0,    0,    0,    0,   16,
716    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717    0,    0,    0,  156,    0,    0,    0,    0,    0,    0,
718    0,  247,    0,    0,    0,    0,    0,   59,    0,    0,
719    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720    0,    0,    0,    0,    0,    0,  156,    0,    0,    0,
721    0,    0,    0,  156,  156,    0,  156,  156,  156,    0,
722    0,    0,    0,    0,    0,    0,    0,    0,   59,    0,
723    0,   59,  156,    0,    0,  156,    0,    0,    0,    0,
724    0,    0,    0,    0,    0,    0,   59,    0,    0,    0,
725    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726    0,    0,    0,    0,    0,    0,  156,    0,    0,  156,
727    0,    0,    0,    0,    0,    0,  216,    0,    0,    0,
728   59,  214,  212,    0,  213,    0,  215,    0,    0,    0,
729    0,  202,    0,    0,    0,    0,    0,  202,  156,  248,
730    0,  211,  202,    0,    0,    0,    0,    0,    0,    0,
731    0,    0,   59,  247,  247,  247,  247,    0,    0,  247,
732  247,  247,  247,  247,  247,  247,  247,  247,  247,    0,
733    0,    0,    0,  217,    0,    0,  202,  247,  247,    0,
734  247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
735  247,  247,  247,  247,  247,  247,  247,  247,  247,    0,
736    0,  247,  247,  247,  247,  247,  247,  247,  247,  247,
737  247,  247,  247,  247,  247,    0,    0,    0,    0,    0,
738  247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
739  247,    0,    0,  247,  247,  247,  247,    0,    0,  247,
740  247,    0,  247,    0,    0,  247,  247,  247,  247,  247,
741  247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
742    0,    0,    0,  247,  247,  247,  247,  247,  247,  247,
743  156,  156,  156,  156,    0,    0,  156,    0,  156,  156,
744  156,  156,  156,  156,  156,  156,    0,    0,    0,    0,
745    0,   59,    0,    0,  156,  156,    0,  156,  156,  156,
746  156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
747  156,  156,  156,  156,  156,    0,    0,    0,   59,  156,
748  156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
749  156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
750  156,  156,  156,  156,  156,  156,  156,  156,    0,    0,
751  156,  156,  156,  156,  252,    0,  156,  156,    0,    0,
752    0,    0,    0,    0,    0,    0,  399,    0,  156,  156,
753  156,  156,  156,  156,  156,  156,  156,   59,    0,    0,
754  156,  156,  156,  156,  156,  156,  156,  252,    0,    0,
755    0,    0,    0,    0,  252,  252,    0,    0,  252,    0,
756    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757    0,    0,    0,  252,    0,    0,    0,    0,    0,    0,
758    0,    0,    0,    0,    0,    0,    0,    0,  203,  204,
759  205,  206,  207,  208,    0,    0,    0,    0,    0,    0,
760    0,    0,    0,    0,    0,    0,    0,  252,    0,    0,
761  252,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763    0,  251,    0,    0,    0,    0,    0,    0,    0,  252,
764    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766    0,    0,    0,    0,  251,    0,    0,    0,    0,    0,
767    0,  251,  251,    0,    0,  251,    0,    0,    0,    0,
768    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
769  251,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772    0,    0,    0,    0,  251,    0,    0,  251,    0,    0,
773    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775    0,    0,    0,    0,    0,    0,  251,    0,    0,    0,
776    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777    0,  252,  252,  252,  252,    0,    0,  252,  252,  252,
778  252,  252,  252,  252,  252,  252,  252,    0,    0,    0,
779    0,    0,    0,    0,    0,  252,  252,    0,  252,  252,
780  252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
781  252,  252,  252,  252,  252,  252,  252,    0,    0,  252,
782  252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
783  252,  252,  252,    0,    0,    0,    0,    0,  252,  252,
784  252,  252,  252,  252,  252,  252,  252,  252,  252,    0,
785    0,  252,  252,  252,  252,    0,    0,  252,  252,    0,
786  252,    0,    0,  252,  252,  252,  252,    0,    0,  252,
787  252,  252,  252,  252,  252,  252,  252,  252,    0,    0,
788    0,  252,  252,  252,  252,  252,  252,  252,  251,  251,
789  251,  251,    0,    0,  251,  251,  251,  251,  251,  251,
790  251,  251,  251,  251,    0,    0,    0,    0,    0,    0,
791    0,    0,  251,  251,    0,  251,  251,  251,  251,  251,
792  251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
793  251,  251,  251,  251,    0,    0,  251,  251,  251,  251,
794  251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
795    0,    0,    0,    0,    0,  251,  251,  251,  251,  251,
796  251,  251,  251,  251,  251,  251,    0,    0,  251,  251,
797  251,  251,  157,    0,  251,  251,    0,  251,    0,    0,
798  251,  251,  251,  251,    0,    0,  251,  251,  251,  251,
799  251,  251,  251,  251,  251,    0,    0,    0,  251,  251,
800  251,  251,  251,  251,  251,  157,    0,    0,    0,    0,
801    0,    0,  157,  157,    0,  157,  157,  157,    0,    0,
802    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803    0,  157,    0,    0,  157,    0,    0,    0,    0,    0,
804    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
805    0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
806    0,    0,    0,    0,    0,  157,    0,    0,  157,    0,
807    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
808    0,    0,    0,    0,    0,    0,    0,    0,    0,  253,
809    0,    0,    0,    0,    0,    0,    0,  157,    0,    0,
810   58,    0,    0,   58,    0,    0,    0,    0,    0,    0,
811    0,    0,    0,    0,    0,    0,    0,    0,   58,    0,
812    0,    0,  253,    0,    0,    0,    0,    0,    0,  253,
813  253,    0,    0,  253,    0,    0,    0,    0,    0,    0,
814    0,    0,    0,    0,    0,    0,    0,    0,  253,    0,
815    0,    0,   58,    0,    0,    0,    0,    0,    0,    0,
816    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
817    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
818    0,    0,  253,    0,   58,  253,    0,    0,    0,    0,
819    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
820    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
821    0,    0,    0,    0,  253,    0,    0,    0,    0,    0,
822    0,    0,    0,    0,    0,    0,    0,    0,    0,  157,
823  157,  157,  157,    0,    0,  157,    0,  157,  157,  157,
824  157,  157,  157,  157,  157,    0,    0,    0,    0,    0,
825    0,    0,    0,  157,  157,    0,  157,  157,  157,  157,
826  157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
827  157,  157,  157,  157,    0,    0,    0,    0,  157,  157,
828  157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
829  157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
830  157,  157,  157,  157,  157,  157,  157,    0,    0,  157,
831  157,  157,  157,    0,    0,  157,  157,    0,    0,    0,
832    0,    0,    0,   58,    0,    0,    0,  157,  157,  157,
833  157,  157,  157,  157,  157,  157,    0,    0,    0,  157,
834  157,  157,  157,  157,  157,  157,  253,  253,  253,  253,
835   58,    0,  253,  253,  253,  253,  253,  253,  253,  253,
836  253,  253,    0,    0,    0,    0,    0,    0,    0,    0,
837  253,  253,    0,  253,  253,  253,  253,  253,  253,  253,
838  253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
839  253,  253,    0,    0,  253,  253,  253,  253,  253,  253,
840  253,  253,  253,  253,  253,  253,  253,  253,    0,   58,
841    0,    0,    0,  253,  253,  253,  253,  253,  253,  253,
842  253,  253,  253,  253,    0,    0,  253,  253,  253,  253,
843  254,    0,  253,  253,    0,  253,    0,    0,  253,  253,
844    0,    0,    0,    0,  253,  253,  253,  253,  253,  253,
845  253,  253,  253,    0,    0,    0,  253,  253,  253,  253,
846  253,  253,  253,  254,    0,    0,    0,    0,    0,    0,
847  254,  254,    0,    0,  254,    0,    0,    0,    0,    0,
848    0,    0,    0,    0,    0,    0,    0,    0,    0,  254,
849    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
850    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
851    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
852  254,    0,    0,  254,    0,    0,  254,    0,    0,    0,
853    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
854    0,    0,    0,    0,    0,    0,    0,  138,    0,    0,
855    0,    0,    0,    0,    0,  254,    0,    0,    0,    0,
856    0,  254,    0,    0,  254,    0,    0,    0,    0,    0,
857    0,    0,    0,    0,    0,    0,    0,    0,    0,  254,
858  138,    0,    0,    0,    0,    0,    0,  138,  138,    0,
859  138,  138,  138,    0,    0,    0,    0,    0,    0,    0,
860    0,    0,    0,    0,    0,    0,  138,    0,    0,  138,
861    0,    0,    0,  254,    0,    0,    0,    0,    0,    0,
862    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
863    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
864  138,    0,    0,  138,    0,  254,    0,    0,    0,    0,
865    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
866    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
867    0,    0,  138,    0,    0,    0,    0,    0,    0,    0,
868    0,    0,    0,    0,    0,    0,    0,  254,  254,  254,
869  254,    0,    0,  254,  254,  254,  254,  254,  254,  254,
870  254,  254,  254,    0,    0,    0,    0,    0,    0,    0,
871    0,  254,  254,    0,  254,  254,  254,  254,  254,  254,
872  254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
873  254,  254,  254,    0,    0,  254,  254,  254,  254,  254,
874  254,  254,  254,  254,  254,  254,  254,  254,  254,    0,
875    0,    0,    0,    0,  254,  254,  254,  254,  254,  254,
876  254,  254,  254,  254,  254,    0,    0,  254,  254,  254,
877  254,    0,    0,  254,  254,    0,  254,    0,    0,    0,
878  254,    0,    0,    0,  254,  254,  254,  254,  254,  254,
879  254,  254,  254,  254,    0,    0,    0,  254,  254,  254,
880  254,  254,  254,  254,  138,  138,  138,  138,    0,    0,
881  138,  254,  138,  138,  138,  138,  138,  138,  138,  138,
882    0,    0,  254,    0,    0,  254,    0,    0,  138,  138,
883    0,  138,  138,  138,  138,  138,  138,  138,  138,  138,
884  138,  138,  138,  138,  138,  138,  138,  138,  138,    0,
885    0,    0,    0,  138,  138,  138,  138,  138,  138,  138,
886  138,  138,  138,  138,  138,  138,    0,    0,    0,    0,
887  254,  138,  138,  138,  138,  138,  138,  138,  138,  138,
888  138,  138,    0,    0,  138,  138,  138,  138,  146,    0,
889  138,  138,    0,    0,    0,    0,    0,    0,    0,    0,
890    0,    0,  138,  138,  138,  138,  138,  138,  138,  138,
891  138,    0,    0,    0,  138,  138,  138,  138,  138,  138,
892  138,  146,    0,    0,    0,    0,    0,    0,  146,  146,
893    0,    0,  146,    0,    0,    0,    0,    0,    0,    0,
894    0,    0,    0,    0,    0,    0,    0,  146,    0,    0,
895  146,    0,    0,    0,    0,    0,    0,    0,    0,    0,
896    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
897    0,    0,    0,    0,    0,   57,    0,    0,    0,    0,
898    0,  146,    0,    0,  146,    0,    0,    0,    0,    0,
899    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
900    0,    0,    0,    0,    0,  152,    0,    0,    0,    0,
901    0,    0,    0,  146,    0,    0,   57,    0,    0,   57,
902    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
903    0,    0,    0,    0,   57,    0,    0,    0,  152,    0,
904    0,    0,    0,    0,    0,  152,  152,    0,    0,  152,
905    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
906    0,    0,    0,    0,  152,    0,    0,    0,   57,    0,
907    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
908    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
909    0,    0,    0,    0,    0,    0,    0,    0,  152,    0,
910   57,  152,    0,    0,    0,    0,    0,    0,    0,    0,
911    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
912    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
913  152,    0,    0,    0,    0,    0,    0,    0,    0,    0,
914    0,    0,    0,    0,    0,  146,  146,  146,  146,    0,
915    0,  146,    0,  146,  146,  146,  146,  146,  146,  146,
916  146,    0,    0,    0,    0,    0,    0,    0,    0,  146,
917  146,    0,  146,  146,  146,  146,  146,  146,  146,  146,
918  146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
919    0,    0,    0,    0,  146,  146,  146,  146,  146,  146,
920  146,  146,  146,  146,  146,  146,  146,    0,    0,    0,
921    0,    0,  146,  146,  146,  146,  146,  146,  146,  146,
922  146,  146,  146,    0,    0,  146,  146,  146,  146,    0,
923    0,  146,  146,    0,    0,    0,    0,   32,    0,   57,
924    0,    0,    0,  146,  146,  146,  146,  146,  146,  146,
925  146,  146,    0,    0,    0,  146,  146,  146,  146,  146,
926  146,  146,  152,  152,  152,  152,   57,    0,  152,   33,
927  152,  152,  152,  152,  152,  152,  152,  152,    0,    0,
928    0,    0,    0,    0,    0,    0,  152,  152,    0,  152,
929  152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
930  152,  152,  152,  152,  152,  152,  152,    0,    0,    0,
931    0,  152,  152,  152,  152,  152,  152,  152,  152,  152,
932  152,  152,  152,  152,    0,   57,    0,    0,    0,  152,
933  152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
934    0,    0,  152,  152,  152,  152,   91,    0,  152,  152,
935    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
936  152,  152,  152,  152,  152,  152,  152,  152,  152,    0,
937    0,    0,  152,  152,  152,  152,  152,  152,  152,   91,
938    0,    0,    0,    0,    0,    0,   91,    0,    0,    0,
939    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
940    0,    0,    0,    6,    7,   91,    8,    9,    0,    0,
941    0,    0,    0,    0,    0,   10,   11,   12,   13,   14,
942   15,   16,   17,   18,   19,   20,   21,    0,    0,   22,
943    0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
944    0,    0,   91,    0,    0,    0,    0,    0,    0,    0,
945    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
946    0,    0,    0,   93,    0,    0,    0,    0,    0,    0,
947    0,   91,    0,    0,    0,    0,    0,    0,    0,    0,
948    0,   23,    0,    0,    0,    0,    0,   24,   25,    0,
949    0,   26,    0,   27,    0,    0,   93,    0,    0,    0,
950    0,    0,    0,   93,    0,    0,    0,    0,    0,    0,
951   28,    0,   29,    0,    0,    0,    0,    0,    0,   30,
952   31,    0,   93,    0,    0,    0,    0,    0,    0,    0,
953    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
954    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
955    0,    0,    0,    0,    0,    0,   93,    0,    0,   93,
956    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
957    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
958    0,    0,    0,    0,    0,    0,    0,    0,   93,    0,
959    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
960    0,    0,    0,   91,   91,   91,   91,    0,    0,   91,
961    0,   91,   91,   91,   91,   91,   91,   91,   91,    0,
962    0,    0,    0,    0,    0,    0,    0,   91,   91,    0,
963   91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
964   91,   91,   91,   91,   91,   91,   91,   91,    0,    0,
965    0,    0,    0,   91,   91,   91,   91,   91,   91,   91,
966   91,   91,   91,   91,   91,    0,    0,    0,    0,    0,
967   91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
968   91,    0,    0,   91,   91,   91,   91,    0,    0,   91,
969   91,    0,    6,    0,    0,    0,    0,    0,    0,    0,
970    0,   91,   91,   91,   91,   91,   91,   91,   91,   91,
971    0,    0,    0,   91,   91,   91,   91,   91,   91,   91,
972   93,   93,   93,   93,    6,    0,   93,    0,   93,   93,
973   93,   93,   93,   93,   93,   93,    0,    0,    0,    0,
974    0,    0,    0,    0,   93,   93,    0,   93,   93,   93,
975   93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
976   93,   93,   93,   93,   93,    0,    0,    0,    0,    0,
977   93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
978   93,   93,    0,    0,    0,    0,    0,   93,   93,   93,
979   93,   93,   93,   93,   93,   93,   93,   93,    0,    0,
980   93,   93,   93,   93,   95,    0,   93,   93,    0,    0,
981    0,    0,    0,    0,    0,    0,    0,    0,   93,   93,
982   93,   93,   93,   93,   93,   93,   93,    0,    0,    0,
983   93,   93,   93,   93,   93,   93,   93,   95,    0,    0,
984    0,    0,    0,    0,   95,    0,    0,    0,    0,    0,
985    0,    0,    0,    0,    0,    0,    0,    0,    6,    6,
986    0,    6,    6,   95,    0,    0,    0,    0,    0,    0,
987    6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
988    6,    6,    0,    0,    6,    0,    0,    0,    0,    0,
989    0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
990   95,    0,    0,    0,    0,    0,    0,    0,    0,    0,
991    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
992    0,   99,    0,    0,    0,    0,    0,    0,    0,   95,
993    0,    0,    0,    0,    0,    0,    6,    0,    0,    0,
994    0,    0,    6,    6,    0,    0,    6,    0,    6,    0,
995    0,    0,    0,    0,   99,    0,    0,    0,    0,    0,
996    0,   99,    0,    0,    0,    6,    0,    6,    0,    0,
997    0,    0,    0,    0,    6,    6,    0,    0,    0,    0,
998   99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
999    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1000    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1001    0,    0,    0,    0,   99,    0,    0,   99,    0,    0,
1002    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1003    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1004    0,    0,    0,    0,    0,    0,   99,    0,    0,    0,
1005    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1006    0,   95,   95,   95,   95,    0,    0,   95,    0,   95,
1007   95,   95,   95,   95,   95,   95,   95,    0,    0,    0,
1008    0,    0,    0,    0,    0,   95,   95,    0,   95,   95,
1009   95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
1010   95,   95,   95,   95,   95,   95,    0,    0,    0,    0,
1011    0,   95,   95,   95,   95,   95,   95,   95,   95,   95,
1012   95,   95,   95,    0,    0,    0,    0,    0,   95,   95,
1013   95,   95,   95,   95,   95,   95,   95,   95,   95,    0,
1014    0,   95,   95,   95,   95,    0,    0,   95,   95,    0,
1015    0,    0,    0,    0,    0,    0,    0,    0,    0,   95,
1016   95,   95,   95,   95,   95,   95,   95,   95,    0,    0,
1017    0,   95,   95,   95,   95,   95,   95,   95,   99,   99,
1018   99,   99,    0,    0,   99,    0,   99,   99,   99,   99,
1019   99,   99,   99,   99,    0,    0,    0,    0,    0,    0,
1020    0,    0,   99,   99,    0,   99,   99,   99,   99,   99,
1021   99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1022   99,   99,   99,    0,    0,    0,    0,    0,   99,   99,
1023   99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1024    0,    0,    0,    0,    0,   99,   99,   99,   99,   99,
1025   99,   99,   99,   99,   99,   99,    0,    0,   99,   99,
1026   99,   99,   97,    0,   99,   99,    0,    0,    0,    0,
1027    0,    0,    0,    0,    0,    0,   99,   99,   99,   99,
1028   99,   99,   99,   99,   99,    0,    0,    0,   99,   99,
1029   99,   99,   99,   99,   99,   97,    0,    0,    0,    0,
1030    0,    0,   97,    0,    0,    0,    0,    0,    0,    0,
1031    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1032    0,   97,    0,    0,    0,    0,    0,    0,    0,    0,
1033    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1034    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1035    0,    0,    0,    0,    0,   97,    0,    0,   97,    0,
1036    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1037    0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
1038    0,    0,    0,    0,    0,    0,    0,   97,    0,    0,
1039    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1040    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041    0,    0,   87,    0,    0,    0,    0,    0,    0,   87,
1042    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1043    0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
1044    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1046    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1047    0,    0,   87,    0,    0,   87,    0,    0,    0,    0,
1048    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1049    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1050    0,    0,    0,    0,   87,    0,    0,    0,    0,    0,
1051    0,    0,    0,    0,    0,    0,    0,    0,    0,   97,
1052   97,   97,   97,    0,    0,   97,    0,   97,   97,   97,
1053   97,   97,   97,   97,   97,    0,    0,    0,    0,    0,
1054    0,    0,    0,   97,   97,    0,   97,   97,   97,   97,
1055   97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1056   97,   97,   97,   97,    0,    0,    0,    0,    0,   97,
1057   97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1058   97,    0,    0,    0,    0,    0,   97,   97,   97,   97,
1059   97,   97,   97,   97,   97,   97,   97,    0,    0,   97,
1060   97,   97,   97,    0,    0,   97,   97,    0,    0,    0,
1061    0,    0,    0,    0,    0,    0,    0,   97,   97,   97,
1062   97,   97,   97,   97,   97,   97,    0,    0,    0,   97,
1063   97,   97,   97,   97,   97,   97,   87,   87,   87,   87,
1064    0,    0,   87,    0,   87,   87,   87,   87,   87,   87,
1065   87,   87,    0,    0,    0,    0,    0,    0,    0,    0,
1066   87,   87,    0,   87,   87,   87,   87,   87,   87,   87,
1067   87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
1068   87,    0,    0,    0,    0,    0,   87,   87,   87,   87,
1069   87,   87,   87,   87,   87,   87,   87,   87,    0,    0,
1070    0,    0,    0,   87,   87,   87,   87,   87,   87,   87,
1071   87,   87,   87,   87,    0,    0,   87,   87,   87,   87,
1072   88,    0,   87,   87,    0,    0,    0,    0,    0,    0,
1073    0,    0,    0,    0,   87,   87,   87,   87,   87,   87,
1074   87,   87,   87,    0,    0,    0,   87,   87,   87,   87,
1075   87,   87,   87,   88,    0,    0,    0,    0,    0,    0,
1076   88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1077    0,    0,    0,    0,    0,    0,    0,    0,    0,   88,
1078    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1079    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1080    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081    0,    0,    0,   88,    0,    0,   88,    0,    0,    0,
1082    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1083    0,    0,    0,    0,    0,    0,    0,   89,    0,    0,
1084    0,    0,    0,    0,    0,   88,    0,    0,    0,    0,
1085    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1086    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1087   89,    0,    0,    0,    0,    0,    0,   89,    0,    0,
1088    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1089    0,    0,    0,    0,    0,    0,   89,    0,    0,    0,
1090    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1091    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1092    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1093   89,    0,    0,   89,    0,    0,    0,    0,    0,    0,
1094    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1095    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1096    0,    0,   89,    0,    0,    0,    0,    0,    0,    0,
1097    0,    0,    0,    0,    0,    0,    0,   88,   88,   88,
1098   88,    0,    0,   88,    0,   88,   88,   88,   88,   88,
1099   88,   88,   88,    0,    0,    0,    0,    0,    0,    0,
1100    0,   88,   88,    0,   88,   88,   88,   88,   88,   88,
1101   88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1102   88,   88,    0,    0,    0,    0,    0,   88,   88,   88,
1103   88,   88,   88,   88,   88,   88,   88,   88,   88,    0,
1104    0,    0,    0,    0,   88,   88,   88,   88,   88,   88,
1105   88,   88,   88,   88,   88,    0,    0,   88,   88,   88,
1106   88,    0,    0,   88,   88,    0,    0,    0,    0,    0,
1107    0,    0,    0,    0,    0,   88,   88,   88,   88,   88,
1108   88,   88,   88,   88,    0,    0,    0,   88,   88,   88,
1109   88,   88,   88,   88,   89,   89,   89,   89,    0,    0,
1110   89,    0,   89,   89,   89,   89,   89,   89,   89,   89,
1111    0,    0,    0,    0,    0,    0,    0,    0,   89,   89,
1112    0,   89,   89,   89,   89,   89,   89,   89,   89,   89,
1113   89,   89,   89,   89,   89,   89,   89,   89,   89,    0,
1114    0,    0,    0,    0,   89,   89,   89,   89,   89,   89,
1115   89,   89,   89,   89,   89,   89,    0,    0,    0,    0,
1116    0,   89,   89,   89,   89,   89,   89,   89,   89,   89,
1117   89,   89,    0,    0,   89,   89,   89,   89,   90,    0,
1118   89,   89,    0,    0,    0,    0,    0,    0,    0,    0,
1119    0,    0,   89,   89,   89,   89,   89,   89,   89,   89,
1120   89,    0,    0,    0,   89,   89,   89,   89,   89,   89,
1121   89,   90,    0,    0,    0,    0,    0,    0,   90,    0,
1122    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1123    0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
1124    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1125    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1126    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1127    0,   90,    0,    0,   90,    0,    0,    0,    0,    0,
1128    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1129    0,    0,    0,    0,    0,  100,    0,    0,    0,    0,
1130    0,    0,    0,   90,    0,    0,    0,    0,    0,    0,
1131    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1132    0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
1133    0,    0,    0,    0,    0,  100,    0,    0,    0,    0,
1134    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1135    0,    0,    0,    0,  100,    0,    0,    0,    0,    0,
1136    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1137    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1138    0,    0,    0,    0,    0,    0,    0,    0,  100,    0,
1139    0,  100,    0,    0,    0,    0,    0,    0,    0,    0,
1140    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1141    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1142  100,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1143    0,    0,    0,    0,    0,   90,   90,   90,   90,    0,
1144    0,   90,    0,   90,   90,   90,   90,   90,   90,   90,
1145   90,    0,    0,    0,    0,    0,    0,    0,    0,   90,
1146   90,    0,   90,   90,   90,   90,   90,   90,   90,   90,
1147   90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1148    0,    0,    0,    0,    0,   90,   90,   90,   90,   90,
1149   90,   90,   90,   90,   90,   90,   90,    0,    0,    0,
1150    0,    0,   90,   90,   90,   90,   90,   90,   90,   90,
1151   90,   90,   90,    0,    0,   90,   90,   90,   90,    0,
1152    0,   90,   90,    0,    0,    0,    0,    0,    0,    0,
1153    0,    0,    0,   90,   90,   90,   90,   90,   90,   90,
1154   90,   90,    0,    0,    0,   90,   90,   90,   90,   90,
1155   90,   90,  100,  100,  100,  100,    0,    0,  100,    0,
1156  100,  100,  100,  100,  100,  100,  100,  100,    0,    0,
1157    0,    0,    0,    0,    0,    0,  100,  100,    0,  100,
1158  100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
1159  100,  100,  100,  100,  100,  100,  100,    0,    0,    0,
1160    0,    0,  100,  100,  100,  100,  100,  100,  100,  100,
1161  100,  100,  100,  100,    0,    0,    0,    0,    0,  100,
1162  100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
1163    0,    0,  100,  100,  100,  100,  101,    0,  100,  100,
1164    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1165  100,  100,  100,  100,  100,  100,  100,  100,  100,    0,
1166    0,    0,  100,  100,  100,  100,  100,  100,  100,  101,
1167    0,    0,    0,    0,    0,    0,  101,    0,    0,    0,
1168    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1169    0,    0,    0,    0,    0,  101,    0,    0,    0,    0,
1170    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1171    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1172    0,    0,    0,    0,    0,    0,    0,    0,    0,  101,
1173    0,    0,  101,    0,    0,    0,    0,    0,    0,    0,
1174    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1175    0,    0,    0,  102,    0,    0,    0,    0,    0,    0,
1176    0,  101,    0,    0,    0,    0,    0,    0,    0,    0,
1177    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1178    0,    0,    0,    0,    0,    0,  102,    0,    0,    0,
1179    0,    0,    0,  102,    0,    0,    0,    0,    0,    0,
1180    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1181    0,    0,  102,    0,    0,    0,    0,    0,    0,    0,
1182    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1183    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1184    0,    0,    0,    0,    0,    0,  102,    0,    0,  102,
1185    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1186    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1187    0,    0,    0,    0,    0,    0,    0,    0,  102,    0,
1188    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1189    0,    0,    0,  101,  101,  101,  101,    0,    0,  101,
1190    0,  101,  101,  101,  101,  101,  101,  101,  101,    0,
1191    0,    0,    0,    0,    0,    0,    0,  101,  101,    0,
1192  101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
1193  101,  101,  101,  101,  101,  101,  101,  101,    0,    0,
1194    0,    0,    0,  101,  101,  101,  101,  101,  101,  101,
1195  101,  101,  101,  101,  101,    0,    0,    0,    0,    0,
1196  101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
1197  101,    0,    0,  101,  101,  101,  101,    0,    0,  101,
1198  101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1199    0,  101,  101,  101,  101,  101,  101,  101,  101,  101,
1200    0,    0,    0,  101,  101,  101,  101,  101,  101,  101,
1201  102,  102,  102,  102,    0,    0,  102,    0,  102,  102,
1202  102,  102,  102,  102,  102,  102,    0,    0,    0,    0,
1203    0,    0,    0,    0,  102,  102,    0,  102,  102,  102,
1204  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1205  102,  102,  102,  102,  102,    0,    0,    0,    0,    0,
1206  102,  102,  102,  102,  102,  102,  102,  102,  102,  102,
1207  102,  102,    0,    0,    0,    0,    0,  102,  102,  102,
1208  102,  102,  102,  102,  102,  102,  102,  102,    0,    0,
1209  102,  102,  102,  102,  104,    0,  102,  102,    0,    0,
1210    0,    0,    0,    0,    0,    0,    0,    0,  102,  102,
1211  102,  102,  102,  102,  102,  102,  102,    0,    0,    0,
1212  102,  102,  102,  102,  102,  102,  102,  104,    0,    0,
1213    0,    0,    0,    0,  104,    0,    0,    0,    0,    0,
1214    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1215    0,    0,    0,  104,    0,    0,    0,    0,    0,    0,
1216    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1217    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1218    0,    0,    0,    0,    0,    0,    0,  104,    0,    0,
1219  104,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1220    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1221    0,  109,    0,    0,    0,    0,    0,    0,    0,  104,
1222    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1223    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1224    0,    0,    0,    0,  109,    0,    0,    0,    0,    0,
1225    0,  109,    0,    0,    0,    0,    0,    0,    0,    0,
1226    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1227  109,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1228    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1229    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1230    0,    0,    0,    0,  109,    0,    0,  109,    0,    0,
1231    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1232    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1233    0,    0,    0,    0,    0,    0,  109,    0,    0,    0,
1234    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1235    0,  104,  104,  104,  104,    0,    0,  104,    0,  104,
1236  104,  104,  104,  104,  104,  104,  104,    0,    0,    0,
1237    0,    0,    0,    0,    0,  104,  104,    0,  104,  104,
1238  104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
1239  104,  104,  104,  104,  104,  104,    0,    0,    0,    0,
1240    0,  104,  104,  104,  104,  104,  104,  104,  104,  104,
1241  104,  104,  104,    0,    0,    0,    0,    0,  104,  104,
1242  104,  104,  104,  104,  104,  104,  104,  104,  104,    0,
1243    0,  104,  104,  104,  104,    0,    0,  104,  104,    0,
1244    0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
1245  104,  104,  104,  104,  104,  104,  104,  104,    0,    0,
1246    0,  104,  104,  104,  104,  104,  104,  104,  109,  109,
1247  109,  109,    0,    0,  109,    0,  109,  109,  109,  109,
1248  109,  109,  109,  109,    0,    0,    0,    0,    0,    0,
1249    0,    0,  109,  109,    0,  109,  109,  109,  109,  109,
1250  109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
1251  109,  109,  109,    0,    0,    0,    0,    0,  109,  109,
1252  109,  109,  109,  109,  109,  109,  109,  109,  109,  109,
1253    0,    0,    0,    0,    0,  109,  109,  109,  109,  109,
1254  109,  109,  109,  109,  109,  109,    0,    0,  109,  109,
1255  109,  109,  111,    0,  109,  109,    0,    0,    0,    0,
1256    0,    0,    0,    0,    0,    0,  109,  109,  109,  109,
1257  109,  109,  109,  109,  109,    0,    0,    0,  109,  109,
1258  109,  109,  109,  109,  109,  111,    0,    0,    0,    0,
1259    0,    0,  111,    0,    0,    0,    0,    0,    0,    0,
1260    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1261    0,  111,    0,    0,    0,    0,    0,    0,    0,    0,
1262    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1263    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1264    0,    0,    0,    0,    0,  111,    0,    0,  111,    0,
1265    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1266    0,    0,    0,    0,    0,    0,    0,    0,    0,  118,
1267    0,    0,    0,    0,    0,    0,    0,  111,    0,    0,
1268    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1269    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1270    0,    0,  118,    0,    0,    0,    0,    0,    0,  118,
1271    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1272    0,    0,    0,    0,    0,    0,    0,    0,  118,    0,
1273    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1274    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1275    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1276    0,    0,  118,    0,    0,  118,    0,    0,    0,    0,
1277    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1278    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1279    0,    0,    0,    0,  118,    0,    0,    0,    0,    0,
1280    0,    0,    0,    0,    0,    0,    0,    0,    0,  111,
1281  111,  111,  111,    0,    0,  111,    0,  111,  111,  111,
1282  111,  111,  111,  111,  111,    0,    0,    0,    0,    0,
1283    0,    0,    0,  111,  111,    0,  111,  111,  111,  111,
1284  111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
1285  111,  111,  111,  111,    0,    0,    0,    0,    0,  111,
1286  111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
1287  111,    0,    0,    0,    0,    0,  111,  111,  111,  111,
1288  111,  111,  111,  111,  111,  111,  111,    0,    0,  111,
1289  111,  111,  111,    0,    0,  111,  111,    0,    0,    0,
1290    0,    0,    0,    0,    0,    0,    0,  111,  111,  111,
1291  111,  111,  111,  111,  111,  111,    0,    0,    0,  111,
1292  111,  111,  111,  111,  111,  111,  118,  118,  118,  118,
1293    0,    0,  118,    0,  118,  118,  118,  118,  118,  118,
1294  118,  118,    0,    0,    0,    0,    0,    0,    0,    0,
1295  118,  118,    0,  118,  118,  118,  118,  118,  118,  118,
1296  118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
1297  118,    0,    0,    0,    0,    0,  118,  118,  118,  118,
1298  118,  118,  118,  118,  118,  118,  118,  118,    0,    0,
1299    0,    0,    0,  118,  118,  118,  118,  118,  118,  118,
1300  118,  118,  118,  118,    0,    0,  118,  118,  118,  118,
1301  131,    0,  118,  118,    0,    0,    0,    0,    0,    0,
1302    0,    0,    0,    0,  118,  118,  118,  118,  118,  118,
1303  118,  118,  118,    0,    0,    0,  118,  118,  118,  118,
1304  118,  118,  118,  131,    0,    0,    0,    0,    0,    0,
1305  131,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1306    0,    0,    0,    0,    0,    0,    0,    0,    0,  131,
1307    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1308    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1309    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1310    0,    0,    0,  131,    0,    0,  131,    0,    0,    0,
1311    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1312    0,    0,    0,    0,    0,    0,    0,  113,    0,    0,
1313    0,    0,    0,    0,    0,  131,    0,    0,    0,    0,
1314    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1315    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1316  113,    0,    0,    0,    0,    0,    0,  113,    0,    0,
1317    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1318    0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
1319    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1320    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1321    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1322  113,    0,    0,  113,    0,    0,    0,    0,    0,    0,
1323    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1324    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1325    0,    0,  113,    0,    0,    0,    0,    0,    0,    0,
1326    0,    0,    0,    0,    0,    0,    0,  131,  131,  131,
1327  131,    0,    0,  131,    0,  131,  131,  131,  131,  131,
1328  131,  131,  131,    0,    0,    0,    0,    0,    0,    0,
1329    0,  131,  131,    0,  131,  131,  131,  131,  131,  131,
1330  131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
1331  131,  131,    0,    0,    0,    0,    0,  131,  131,  131,
1332  131,  131,  131,  131,  131,  131,  131,  131,  131,    0,
1333    0,    0,    0,    0,  131,  131,  131,  131,  131,  131,
1334  131,  131,  131,  131,  131,    0,    0,  131,  131,  131,
1335  131,    0,    0,  131,  131,    0,    0,    0,    0,    0,
1336    0,    0,    0,    0,    0,  131,  131,  131,  131,  131,
1337  131,  131,  131,  131,    0,    0,    0,  131,  131,  131,
1338  131,  131,  131,  131,  113,  113,  113,  113,    0,    0,
1339  113,    0,  113,  113,  113,  113,  113,  113,  113,  113,
1340    0,    0,    0,    0,    0,    0,    0,    0,  113,  113,
1341    0,  113,  113,  113,  113,  113,  113,  113,  113,  113,
1342  113,  113,  113,  113,  113,  113,  113,  113,  113,    0,
1343    0,    0,    0,    0,  113,  113,  113,  113,  113,  113,
1344  113,  113,  113,  113,  113,  113,    0,    0,    0,    0,
1345    0,  113,  113,  113,  113,  113,  113,  113,  113,  113,
1346  113,  113,    0,    0,  113,  113,  113,  113,  179,    0,
1347  113,  113,    0,    0,    0,    0,    0,    0,    0,    0,
1348    0,    0,  113,  113,  113,  113,  113,  113,  113,  113,
1349  113,    0,    0,    0,  113,  113,  113,  113,  113,  113,
1350  113,  179,    0,    0,    0,    0,    0,    0,  179,    0,
1351    0,    0,  179,  179,    0,    0,    0,    0,    0,    0,
1352    0,    0,    0,    0,    0,    0,    0,  179,    0,    0,
1353    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1354    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1355    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1356    0,  179,    0,    0,    0,    0,    0,    0,    0,    0,
1357    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1358    0,    0,    0,    0,    0,  154,    0,    0,    0,    0,
1359    0,    0,    0,  179,    0,    0,    0,    0,    0,    0,
1360    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1361    0,    0,    0,    0,    0,    0,    0,    0,  154,    0,
1362    0,    0,    0,    0,    0,  154,  154,    0,  154,  154,
1363  154,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1364    0,    0,    0,    0,  154,    0,    0,  154,    0,    0,
1365    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1366    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1367    0,    0,    0,    0,    0,    0,    0,    0,  154,    0,
1368    0,  154,    0,    0,    0,    0,    0,    0,    0,    0,
1369    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1370    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1371  154,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1372    0,    0,    0,    0,    0,    0,  179,  179,  179,    0,
1373    0,    0,    0,  179,  179,  179,    0,  179,  179,  179,
1374  179,    0,    0,    0,    0,    0,    0,    0,    0,  179,
1375  179,    0,  179,  179,  179,  179,  179,  179,  179,  179,
1376  179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
1377    0,    0,    0,    0,    0,  179,  179,  179,  179,  179,
1378  179,  179,  179,  179,  179,  179,  179,    0,    0,    0,
1379    0,    0,  179,  179,  179,  179,  179,  179,  179,  179,
1380  179,  179,  179,    0,    0,  179,  179,  179,  179,    0,
1381    0,  179,  179,    0,    0,    0,    0,    0,    0,    0,
1382    0,    0,    0,  179,  179,  179,  179,  179,  179,  179,
1383  179,  179,    0,    0,    0,  179,  179,  179,  179,  179,
1384  179,  179,  154,  154,  154,  154,    0,    0,  154,    0,
1385  154,  154,  154,  154,  154,  154,  154,  154,    0,    0,
1386    0,    0,    0,    0,    0,    0,  154,  154,    0,  154,
1387  154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
1388  154,  154,  154,  154,  154,  154,  154,  159,    0,    0,
1389    0,  154,  154,    0,    0,    0,    0,    0,    0,    0,
1390    0,    0,    0,    0,  154,  154,  154,  154,  154,  154,
1391  154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
1392  159,    0,    0,    0,    0,    0,    0,  159,  154,  154,
1393  159,    0,  159,  159,    0,    0,    0,    0,    0,    0,
1394    0,    0,    0,    0,    0,    0,  159,    0,    0,    0,
1395    0,    0,  154,  154,  154,  154,  154,  154,  154,    0,
1396    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1397    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1398  159,  180,    0,  159,    0,    0,    0,    0,    0,    0,
1399    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1400    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1401    0,    0,  159,    0,  180,    0,    0,    0,    0,    0,
1402    0,  180,  180,    0,    0,  180,  180,    0,    0,    0,
1403    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1404  180,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1405    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1406    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1407  247,    0,    0,    0,  180,    0,    0,  180,    0,    0,
1408    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1409    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1410    0,    0,    0,  247,    0,    0,  180,    0,    0,    0,
1411  247,  247,    0,    0,  247,    0,    0,    0,    0,    0,
1412    0,    0,    0,    0,    0,    0,    0,    0,    0,  247,
1413  247,    0,  247,    0,    0,    0,    0,    0,    0,    0,
1414    0,    0,    0,    0,  159,  159,  159,  159,    0,    0,
1415  159,    0,  159,  159,  159,  159,  159,  159,  159,  159,
1416    0,    0,    0,  247,    0,    0,  247,    0,  159,  159,
1417    0,  159,  159,  159,  159,  159,  159,  159,  159,  159,
1418  159,  159,  159,  159,  159,  159,  159,  159,  159,    0,
1419    0,    0,    0,   43,  159,  247,    0,    0,    0,    0,
1420    0,    0,    0,    0,    0,    0,  159,  159,  159,  159,
1421  159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
1422  159,  159,    0,    0,    0,    0,   43,    0,    0,    0,
1423  159,  159,    0,   43,    0,    0,    0,    0,  180,  180,
1424  180,  180,    0,    0,  180,    0,  180,  180,  180,  180,
1425  180,  180,   43,    0,  159,  159,  159,  159,  159,  159,
1426  159,    0,  180,  180,    0,  180,  180,  180,  180,  180,
1427  180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
1428  180,  180,  180,    0,    0,    0,   43,    0,  180,   43,
1429    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1430    0,    0,    0,    0,    0,  180,  180,  180,  180,  180,
1431  180,  180,  180,  180,  180,  180,    0,    0,   43,    0,
1432    0,    0,    0,    0,  180,  180,    0,  247,  247,  247,
1433  247,    0,    0,  247,    0,    0,    0,    0,  247,    0,
1434    0,  247,  247,    0,    0,    0,   98,    0,  180,  180,
1435  180,  180,  180,  180,  180,    0,    0,    0,    0,    0,
1436    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1437    0,    0,    0,    0,    0,    0,    0,  247,  247,  247,
1438  247,  247,  247,  247,  247,  247,  247,  247,  247,    0,
1439    0,    0,    0,    0,  247,  247,  247,  247,  247,  247,
1440  247,  247,  247,  247,  247,   98,    0,  247,  247,  247,
1441  247,    0,    0,    0,    0,    0,    0,    0,    0,  247,
1442  247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
1443  247,  247,  247,  247,    0,    0,    0,    0,    0,   98,
1444    0,    0,    0,  247,    0,    0,    0,    0,    0,    0,
1445   43,   43,   43,   43,    0,    0,   43,    0,    0,    0,
1446    0,   43,    0,    0,   43,   43,    0,    0,    0,    0,
1447    0,   98,    0,    0,    0,    0,    0,    0,    0,    0,
1448    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1449    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1450   43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
1451   43,   43,    0,    0,    0,    0,    0,   43,   43,   43,
1452   43,   43,   43,   43,   43,   43,   43,   43,   45,    0,
1453   43,   43,   43,   43,    0,    0,    0,    0,    0,    0,
1454    0,    0,    0,    0,    0,    0,    0,    0,   43,   43,
1455   43,   43,   43,   43,   43,   43,   43,    0,    0,    0,
1456    0,   45,    0,    0,    0,    0,   43,    0,   45,    0,
1457    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1458    0,    0,    0,    0,    0,    0,    0,   45,    0,    0,
1459    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1460    0,    0,    0,    0,    0,    0,   98,    0,    0,    0,
1461    0,   98,   98,   98,    0,   98,   98,   98,   98,    0,
1462    0,   45,    0,    0,   45,    0,    0,   98,   98,    0,
1463   98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
1464   98,   98,   98,   98,   98,   98,   98,   98,  201,   96,
1465    0,    0,    0,   45,    0,    0,    0,    0,    0,    0,
1466    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1467    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1468    0,    0,    0,    0,    0,    0,    0,    0,    0,   98,
1469   98,    0,    0,    0,    0,    0,  255,    0,    0,    0,
1470    0,    0,    0,    0,    0,    0,    0,    0,   96,    0,
1471    0,    0,    0,   98,   98,   98,   98,   98,   98,   98,
1472    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1473    0,    0,    0,  255,    0,    0,    0,  255,  255,  255,
1474  255,  255,   96,  255,    0,    0,    0,    0,    0,    0,
1475    0,    0,    0,    0,    0,  255,  255,    0,  255,    0,
1476    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1477   92,    0,    0,    0,   96,    0,    0,    0,    0,    0,
1478    0,    0,    0,    0,    0,   45,   45,   45,   45,  255,
1479    0,   45,    0,    0,    0,    0,   45,    0,    0,   45,
1480   45,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1481    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1482    0,  255,    0,    0,    0,    0,    0,    0,    0,   92,
1483    0,    0,    0,    0,   94,   45,   45,   45,   45,   45,
1484   45,   45,   45,   45,   45,   45,   45,    0,    0,    0,
1485    0,    0,   45,   45,   45,   45,   45,   45,   45,   45,
1486   45,   45,   45,   92,    0,   45,   45,   45,   45,    0,
1487    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1488    0,    0,    0,   45,   45,   45,   45,   45,   45,   45,
1489   45,   45,    0,   94,    0,   92,    0,    0,  108,    0,
1490    0,   45,    0,    0,    0,    0,    0,    0,    0,   96,
1491    0,    0,    0,    0,   96,   96,   96,    0,   96,   96,
1492   96,   96,    0,    0,    0,    0,    0,   94,    0,    0,
1493   96,   96,    0,   96,   96,   96,   96,   96,   96,   96,
1494   96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
1495   96,  202,    0,    0,    0,    0,    0,  108,    0,   94,
1496  255,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1497    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1498    0,    0,    0,    0,    0,    0,    0,  255,    0,    0,
1499    0,  108,   96,   96,    0,    0,    0,    0,  255,    0,
1500    0,  255,    0,    0,    0,    0,    0,    0,    0,    0,
1501    0,    0,    0,    0,    0,    0,   96,   96,   96,   96,
1502   96,   96,   96,  108,  110,    0,    0,    0,    0,    0,
1503   92,    0,    0,    0,    0,   92,   92,   92,    0,   92,
1504   92,   92,   92,    0,    0,  255,  255,  255,  255,  255,
1505  255,   92,   92,    0,   92,   92,   92,   92,   92,   92,
1506   92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
1507   92,   92,    0,    0,    0,    0,    0,    0,    0,    0,
1508    0,    0,    0,  110,    0,    0,    0,    0,  117,    0,
1509    0,    0,    0,    0,   94,    0,    0,    0,    0,   94,
1510   94,   94,    0,   94,   94,   94,   94,    0,    0,    0,
1511    0,    0,    0,   92,   92,   94,   94,  110,   94,   94,
1512   94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
1513   94,   94,   94,   94,   94,   94,    0,   92,   92,   92,
1514   92,   92,   92,   92,    0,    0,    0,  117,    0,  110,
1515    0,    0,  112,    0,    0,    0,    0,    0,  108,    0,
1516    0,    0,    0,  108,  108,  108,    0,  108,  108,  108,
1517  108,    0,    0,    0,    0,    0,    0,   94,   94,  108,
1518  108,  117,  108,  108,  108,  108,  108,  108,  108,  108,
1519  108,  108,  108,  108,  108,  108,  108,  108,  108,  108,
1520    0,   94,   94,   94,   94,   94,   94,   94,    0,    0,
1521    0,  112,    0,  117,    0,    0,    0,    0,    0,    0,
1522    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1523    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1524    0,  108,  108,    0,    0,  112,    0,    0,    0,    0,
1525    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1526    0,    0,    0,    0,    0,  108,  108,  108,  108,  108,
1527  108,  108,    0,    0,    0,    0,    0,  112,    0,    0,
1528    0,    0,    0,    0,  110,    0,    0,    0,    0,  110,
1529  110,  110,    0,  110,  110,  110,  110,    0,    0,    0,
1530    0,    0,    0,    0,    0,  110,  110,    0,  110,  110,
1531  110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
1532  110,  110,  110,  110,  110,  110,    0,    0,    0,    0,
1533    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1534    0,    0,    0,    0,    0,    0,    0,    0,  117,    0,
1535    0,    0,    0,  117,  117,  117,    0,  117,  117,  117,
1536  117,    0,    0,    0,    0,    0,    0,  110,  110,  117,
1537  117,    0,  117,  117,  117,  117,  117,  117,  117,  117,
1538  117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
1539    0,  110,  110,  110,  110,  110,  110,  110,    0,    0,
1540    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1541    0,    0,  112,    0,    0,    0,    0,  112,  112,  112,
1542    0,  112,  112,  112,  112,    0,    0,    0,    0,    0,
1543    0,  117,  117,  112,  112,   83,  112,  112,  112,  112,
1544  112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
1545  112,  112,  112,  112,    0,  117,  117,  117,  117,  117,
1546  117,  117,    0,    0,    0,    0,    0,    0,   83,    0,
1547    0,    0,    0,    0,    0,   83,    0,    0,    0,    0,
1548    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1549    0,    0,    0,    0,   83,  112,  112,    0,    0,    0,
1550    0,    0,    0,    0,    0,  159,    0,    0,    0,    0,
1551    0,    0,    0,    0,    0,    0,    0,    0,    0,  112,
1552  112,  112,  112,  112,  112,  112,    0,    0,   83,    0,
1553    0,   83,    0,    0,    0,    0,    0,    0,    0,    0,
1554    0,    0,    0,    0,    0,    0,    0,    0,  159,    0,
1555  159,  159,    0,    0,    0,    0,    0,    0,    0,    0,
1556   83,    0,    0,    0,  159,    0,    0,    0,    0,    0,
1557    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1558    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1559    0,    0,    0,    0,    0,    0,    0,    0,  159,    0,
1560    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1561    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1562    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1563  159,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1564    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1565   95,    0,    0,    0,    0,    0,    0,   92,    0,    0,
1566    0,    0,   94,    0,    0,    0,    0,    0,    0,    0,
1567    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1568    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1569    0,    0,   83,   83,   83,    0,    0,    0,   83,    0,
1570   83,   83,   83,   83,   83,   83,   83,   83,   32,    0,
1571    0,    0,    0,   93,    0,    0,   83,   83,    0,   83,
1572   83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
1573   83,   83,   83,   83,   83,   83,   83,    0,    0,    0,
1574   33,    0,   83,   83,   83,   83,   83,   83,   83,   83,
1575   83,   83,   83,   83,    0,    0,    0,    0,    0,   83,
1576   83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
1577    0,    0,   83,   83,   83,   83,  159,  159,   83,   83,
1578    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1579   83,   83,   83,   83,   83,   83,   83,   83,   83,    0,
1580    0,    0,   83,   83,   83,   83,   83,   83,    0,    0,
1581    0,    0,    0,  159,  159,  159,  159,  159,  159,  159,
1582  159,  159,  159,  159,  159,  159,  159,  159,  159,    0,
1583    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1584    0,    0,  159,  159,  159,  159,    6,    0,    0,    0,
1585    0,    0,    0,    6,    0,    0,    0,    0,    6,    0,
1586  159,  159,  159,  159,  159,  159,  159,  159,  159,    0,
1587    0,    0,    0,    0,  295,  296,   51,    8,    9,    0,
1588   52,    0,    0,    0,    0,   53,   10,   11,  297,  298,
1589   14,   15,   16,   17,   18,   19,   20,   21,    0,    0,
1590   22,    0,    0,    0,    6,    0,    0,    0,    0,    6,
1591    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1592    0,    0,    0,    0,   56,   57,   58,   59,   60,   61,
1593   62,   63,   64,   65,   66,   67,    6,    0,    0,    0,
1594    0,   68,   69,   70,   71,   72,   73,   74,   75,   76,
1595   77,   78,   23,    0,   79,   80,   81,   82,   24,   25,
1596    0,    0,   26,    0,   27,    0,    0,    0,    0,    0,
1597    0,    0,   83,   84,   85,   86,   87,   88,   89,   90,
1598   91,   28,   95,   29,    0,    0,    0,    0,    0,  110,
1599   30,   31,    0,    0,   94,    0,    0,    0,    0,    0,
1600    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1601    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1602    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1603    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1604    0,    0,    0,    0,    0,   93,    0,    0,    0,    0,
1605    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1606    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1607    6,    6,    6,    6,    6,    0,    6,    0,    0,    0,
1608    0,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1609    6,    6,    6,    6,    0,    0,    6,    0,    0,  111,
1610    0,    0,    0,    0,    0,    0,  110,  315,    0,    0,
1611    0,   94,    0,    0,    0,    0,    0,    0,    0,    0,
1612    6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
1613    6,    6,    0,    0,    0,    0,    0,    6,    6,    6,
1614    6,    6,    6,    6,    6,    6,    6,    6,    6,    0,
1615    6,    6,    6,    6,    6,    6,    0,    0,    6,    0,
1616    6,    0,   93,    0,    0,    0,    0,    0,    6,    6,
1617    6,    6,    6,    6,    6,    6,    6,    6,    0,    6,
1618    0,    0,    0,    0,    0,    0,    6,    6,    0,    0,
1619    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1620    0,    0,    0,    0,    0,    0,   49,   50,   51,    8,
1621    0,    0,   52,    0,  126,  127,  128,   53,  129,  130,
1622  131,  132,    0,    0,    0,    0,    0,    0,    0,    0,
1623  133,  134,    0,  135,  136,  137,  138,  139,  140,  141,
1624  142,  143,  144,  145,  146,  147,  148,  149,  150,  151,
1625  152,    0,    0,    0,    0,    0,   56,   57,   58,   59,
1626   60,   61,   62,   63,   64,   65,   66,   67,    0,    0,
1627    0,    0,    0,   68,   69,   70,   71,   72,   73,   74,
1628   75,   76,   77,   78,  111,    0,   79,   80,   81,   82,
1629    0,   92,  153,  154,    0,    0,   94,  276,    0,    0,
1630    0,    0,    0,    0,   83,   84,   85,   86,   87,   88,
1631   89,   90,   91,    0,    0,    0,  155,  156,  157,  158,
1632  159,  160,   30,   49,   50,   51,    8,    0,    0,   52,
1633    0,    0,    0,    0,   53,    0,    0,   54,   55,    0,
1634    0,    0,    0,    0,    0,    0,    0,   93,    0,    0,
1635    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1636    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1637    0,    0,    0,   56,   57,   58,   59,   60,   61,   62,
1638   63,   64,   65,   66,   67,    0,    0,    0,    0,    0,
1639   68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
1640   78,   95,    0,   79,   80,   81,   82,    0,   92,    0,
1641    0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
1642    0,   83,   84,   85,   86,   87,   88,   89,   90,   91,
1643    0,    0,    0,    0,    0,    0,    0,    0,    0,   30,
1644    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1645    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1646    0,    0,    0,    0,   93,    0,    0,    0,    0,    0,
1647    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1648    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1649    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1650    0,    0,    0,    0,    0,    0,    0,    0,   49,   50,
1651   51,    8,    0,    0,   52,    0,    0,    0,    0,   53,
1652    0,    0,   54,   55,  111,    0,    0,    0,    0,    0,
1653    0,  110,    0,    0,    0,    0,   94,    0,    0,    0,
1654    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1655    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1656   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1657    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1658   73,   74,   75,   76,   77,   78,    0,   93,   79,   80,
1659   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1660    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1661   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
1662    0,    0,    0,    0,   30,   49,   50,   51,    8,    0,
1663    0,   52,    0,    0,    0,    0,   53,    0,    0,   54,
1664   55,  111,    0,    0,    0,    0,    0,    0,   92,    0,
1665    0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
1666    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1667    0,    0,    0,    0,    0,   56,   57,   58,   59,   60,
1668   61,   62,   63,   64,   65,   66,   67,    0,    0,    0,
1669    0,    0,   68,   69,   70,   71,   72,   73,   74,   75,
1670   76,   77,   78,    0,   93,   79,   80,   81,   82,    0,
1671    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1672    0,    0,    0,   83,   84,   85,   86,   87,   88,   89,
1673   90,   91,    0,    0,    0,    0,    0,    0,    0,    0,
1674    0,   30,    0,    0,    0,    0,    0,    0,   49,   50,
1675   51,    8,    0,    0,   52,    0,    0,    0,    0,   53,
1676    0,    0,   54,   55,  111,    0,    0,    0,    0,    0,
1677    0,  283,    0,    0,    0,    0,   94,    0,    0,    0,
1678    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1679    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1680   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1681    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1682   73,   74,   75,   76,   77,   78,    0,   93,   79,   80,
1683   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1684    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1685   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
1686    0,    0,    0,    0,   30,   49,   50,   51,    8,    0,
1687    0,   52,    0,    0,    0,    0,   53,    0,    0,   54,
1688   55,   95,    0,    0,    0,    0,    0,    0,  277,    0,
1689    0,    0,    0,   94,  276,    0,    0,    0,    0,    0,
1690    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1691    0,    0,    0,    0,    0,   56,   57,   58,   59,   60,
1692   61,   62,   63,   64,   65,   66,   67,    0,    0,    0,
1693    0,    0,   68,   69,   70,   71,   72,   73,   74,   75,
1694   76,   77,   78,    0,   93,   79,   80,   81,   82,    0,
1695    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1696    0,    0,    0,   83,   84,   85,   86,   87,   88,   89,
1697   90,   91,    0,    0,    0,    0,    0,    0,    0,    0,
1698    0,   30,    0,    0,    0,    0,    0,    0,   49,   50,
1699   51,    8,    0,    0,   52,    0,    0,    0,    0,   53,
1700    0,    0,   54,   55,   95,    0,    0,    0,    0,    0,
1701    0,  110,    0,  442,    0,    0,   94,    0,    0,    0,
1702    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1703    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1704   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1705    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1706   73,   74,   75,   76,   77,   78,    0,   93,   79,   80,
1707   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1708    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1709   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
1710    0,    0,    0,    0,   30,  273,   50,   51,    0,    0,
1711    0,  274,    0,    0,    0,    0,  275,    0,    0,   54,
1712   55,   95,    0,    0,    0,    0,    0,    0,  110,    0,
1713    0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
1714    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1715    0,    0,    0,    0,    0,   56,   57,   58,   59,   60,
1716   61,   62,   63,   64,   65,   66,   67,    0,    0,    0,
1717    0,    0,   68,   69,   70,   71,   72,   73,   74,   75,
1718   76,   77,   78,    0,   93,   79,   80,   81,   82,    0,
1719    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1720    0,    0,    0,   83,   84,   85,   86,   87,   88,   89,
1721   90,   91,    0,    0,    0,    0,    0,    0,    0,    0,
1722    0,    0,    0,    0,    0,    0,    0,    0,   49,   50,
1723   51,    0,    0,    0,   52,    0,    0,    0,    0,   53,
1724    0,    0,   54,   55,   95,    0,    0,    0,    0,    0,
1725    0,   92,    0,    0,    0,    0,   94,    0,    0,    0,
1726    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1727    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1728   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1729    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1730   73,   74,   75,   76,   77,   78,    0,   93,   79,   80,
1731   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1732    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1733   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
1734    0,    0,    0,    0,    0,   49,   50,   51,    0,    0,
1735    0,   52,    0,    0,    0,    0,   53,    0,    0,   54,
1736   55,   95,    0,    0,    0,    0,    0,    0,  283,    0,
1737    0,    0,    0,   94,    0,    0,    0,    0,    0,    0,
1738    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1739    0,    0,    0,    0,    0,   56,   57,   58,   59,   60,
1740   61,   62,   63,   64,   65,   66,   67,    0,    0,    0,
1741    0,    0,   68,   69,   70,   71,   72,   73,   74,   75,
1742   76,   77,   78,    0,   93,   79,   80,   81,   82,    0,
1743    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1744    0,    0,    0,   83,   84,   85,   86,   87,   88,   89,
1745   90,   91,    0,    0,    0,    0,    0,    0,    0,    0,
1746    0,    0,    0,    0,    0,    0,    0,    0,   49,   50,
1747   51,    0,    0,    0,   52,    0,    0,    0,    0,   53,
1748    0,    0,   54,   55,   95,    0,    0,    0,    0,    0,
1749    0,  110,    0,    0,    0,    0,   94,    0,    0,    0,
1750    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1751    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1752   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1753    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1754   73,   74,   75,   76,   77,   78,    0,   93,   79,   80,
1755   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1756    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1757   87,   88,   89,   90,   91,    0,    0,    0,    0,    0,
1758    0,    0,    0,    0,    0,   49,   50,   51,    0,    0,
1759    0,   52,    0,    0,    0,    0,   53,    0,    0,   54,
1760   55,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1761    0,    0,    0,    0,    0,    0,    0,   41,    0,    0,
1762    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1763    0,    0,    0,    0,    0,   56,   57,   58,   59,   60,
1764   61,   62,   63,   64,   65,   66,   67,    0,    0,   32,
1765    0,    0,   68,   69,   70,   71,   72,   73,   74,   75,
1766   76,   77,   78,    0,    0,   79,   80,   81,   82,    0,
1767    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1768    0,   33,    0,   83,   84,   85,   86,   87,   88,   89,
1769   90,   91,    0,    0,    0,    0,    0,    0,    0,    0,
1770    0,    0,    0,    0,    0,    0,    0,    0,   49,   50,
1771   51,    0,    0,    0,   52,    0,    0,    0,    0,   53,
1772    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1773    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1774    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1775    0,    0,    0,    0,    0,    0,    0,    0,   56,   57,
1776   58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
1777    0,    0,    0,    0,    0,   68,   69,   70,   71,   72,
1778   73,   74,   75,   76,   77,   78,    0,    0,   79,   80,
1779   81,   82,    0,    0,    0,    0,    0,    0,    0,    0,
1780    0,    0,    0,    0,    0,    0,   83,   84,   85,   86,
1781   87,   88,   89,   90,   91,    6,    7,    0,    8,    9,
1782    0,    0,    0,    0,    0,    0,    0,   10,   11,   12,
1783   13,   14,   15,   16,   17,   18,   19,   20,   21,    0,
1784    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
1785    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1786    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1787    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1788    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1789    0,    0,    0,   23,    0,    0,    0,    0,    0,   24,
1790   25,    0,    0,   26,    0,   27,    0,    0,    0,    0,
1791    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1792    0,    0,   28,    0,   29,    0,    0,    0,    0,    0,
1793    0,   30,   31,
1794};
1795short yycheck[] = {                                      25,
1796   59,   44,   37,   29,    0,   31,  111,   42,   43,   44,
1797   45,   37,   47,   92,   37,   59,  125,  260,  100,   42,
1798   43,    0,   45,    0,   47,   60,   43,   62,   45,   41,
1799    0,  260,    0,    0,  273,   37,   58,   60,  277,   62,
1800   42,   43,   37,   45,   96,   47,  260,   42,   43,   43,
1801   45,   45,   47,    4,  268,   58,  165,   36,   61,   94,
1802  105,   41,  141,   42,   44,   60,   92,   62,   94,   95,
1803  107,   94,   41,   41,   25,   44,   44,  271,  272,   61,
1804   31,  107,   59,  120,  258,  111,   37,   96,   43,   59,
1805   45,   59,   94,  336,  120,   91,  257,  258,   43,   94,
1806   45,    0,  258,  129,  130,  131,  132,  133,  134,  135,
1807  136,  137,  138,  139,  140,  141,   93,   62,  144,  145,
1808  146,  349,  350,   93,   40,   93,   93,  123,   25,  155,
1809  156,  370,  371,  348,   31,    0,   61,  219,    0,  165,
1810  336,  246,  247,  262,  373,  250,  251,   40,  125,  228,
1811  229,  271,  272,  351,  352,  125,  107,  125,  125,   40,
1812   59,  355,  356,  121,  122,  404,   40,  118,  407,  120,
1813   61,   41,   40,   43,  125,   45,   40,  203,  204,  205,
1814  206,  207,  208,  209,  210,  211,  212,  213,  214,  215,
1815  216,  217,  218,   40,   93,   92,  278,   59,  277,    0,
1816   40,   40,  228,  229,  283,  257,  157,  158,  159,  260,
1817  107,  263,   40,   40,  165,  258,  268,  243,   40,  291,
1818  246,  247,  248,  120,  250,  251,  125,  258,   93,  274,
1819  275,   93,   33,  262,   41,  355,  356,  260,   41,   40,
1820  137,  138,  139,  140,   45,  324,  325,   43,  257,   45,
1821  302,  277,   94,  264,  263,  303,   46,  283,  257,  268,
1822  125,  257,  258,  125,  260,  261,   62,  302,  165,   93,
1823  305,  125,   93,  269,  270,  271,  272,  273,  274,  275,
1824  276,  277,  278,  279,  280,  257,  262,  283,  262,  306,
1825   91,   41,  318,  319,  403,   96,  264,  323,  324,  325,
1826  302,  252,  253,  305,   41,   44,  257,  319,  320,  321,
1827  322,  323,  306,  210,  349,  350,  351,  352,  353,  354,
1828    0,  218,  123,  291,  369,    0,  349,  350,  351,  352,
1829  353,  354,   41,   41,  302,   41,   41,  305,   43,  335,
1830   45,   43,   44,   45,   44,  341,  342,   44,   41,  345,
1831  373,  347,   41,   41,  349,    0,  351,  352,  353,  354,
1832  304,    0,  349,   43,  262,   45,   41,   44,  364,   44,
1833  366,  397,  398,  399,  257,  401,  365,  373,  374,   59,
1834  277,  349,  350,  305,   59,   43,   44,   45,   33,  415,
1835  416,   41,   37,   41,  260,   40,   41,   42,   43,   44,
1836   45,   41,   47,   41,   43,   41,   45,   41,   91,  346,
1837   41,  437,  262,   93,   59,   60,  442,   62,   93,   91,
1838   59,  318,  319,    0,   37,   41,  323,   27,  260,   42,
1839   37,   43,   44,   45,   47,   42,   43,  346,   45,   44,
1840   47,  346,  346,   43,  165,  125,  409,   31,   93,   36,
1841  125,   96,  403,   60,   93,   62,  257,  258,  259,  260,
1842  261,  193,  263,   43,   44,   45,   -1,  268,  269,  270,
1843  271,  272,  273,  274,  275,  276,  277,  278,  279,  280,
1844  125,   94,  283,   43,   44,   45,  125,   94,  319,  320,
1845  321,  322,  323,   93,   43,   44,   45,   43,   44,   45,
1846  397,  398,   43,   44,   45,   -1,  307,  308,  309,  310,
1847  311,  312,  313,  314,  315,  316,  317,  318,  415,  416,
1848   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
1849  331,  332,  333,  334,  335,   -1,  337,  338,  339,  340,
1850  341,  342,   37,   -1,  345,   -1,  347,   42,   43,   -1,
1851   45,   -1,   47,   -1,  355,  356,  357,  358,  359,  360,
1852  361,  362,  363,  364,   -1,  366,   -1,  167,   -1,   -1,
1853   46,   -1,  373,  374,  174,  175,  176,  177,  178,  179,
1854  180,  181,  182,  183,  184,   91,   -1,   -1,  260,  264,
1855  273,  274,  275,  276,  277,  278,  268,  280,   -1,   94,
1856   -1,  273,  274,  275,  276,  277,  278,   -1,  280,   -1,
1857   -1,   -1,  257,  258,  259,  260,  291,   -1,  263,  264,
1858  265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
1859   46,   -1,   -1,   -1,   -1,   -1,  281,  282,    0,  284,
1860  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
1861  295,  296,  297,  298,  299,  300,  301,  302,   -1,   -1,
1862  305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
1863  315,  316,  317,  318,  349,  350,   -1,   -1,   -1,  324,
1864  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
1865    0,    0,  337,  338,  339,  340,    0,   59,  343,  344,
1866    0,  346,   -1,   -1,  349,  350,  351,  352,  353,  354,
1867  355,  356,  357,  358,  359,  360,  361,  362,  363,    0,
1868   -1,   -1,  367,  368,  369,  370,  371,  372,  373,   33,
1869   -1,   93,   -1,   37,   -1,   -1,   40,   41,   42,   43,
1870   44,   45,  349,   47,  351,  352,  353,  354,   -1,   59,
1871   59,   -1,   -1,   -1,  260,   59,   60,   -1,   62,   59,
1872   -1,   -1,   -1,  125,   -1,   -1,   -1,  273,  274,  275,
1873  276,  277,  278,   -1,  280,   -1,   -1,   -1,   59,   -1,
1874   -1,   -1,  382,   93,   93,   -1,  386,  387,   -1,   93,
1875   -1,   -1,   96,   93,   -1,  271,  272,   -1,   -1,   -1,
1876   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1877   -1,   -1,   93,    0,   -1,  125,  125,   -1,   -1,   -1,
1878   -1,  125,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
1879   -1,   -1,  308,  309,  310,  311,  312,  313,  314,  315,
1880  316,  317,  318,   -1,  125,   -1,   33,   -1,   -1,   -1,
1881   37,   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,
1882   47,  337,  338,  339,  340,   -1,   -1,   -1,   -1,   -1,
1883   -1,   -1,   59,   60,   -1,   62,   -1,   -1,   -1,  355,
1884  356,  357,  358,  359,  360,  361,  362,  363,   -1,   -1,
1885   -1,   -1,  308,  309,  310,  311,  312,  313,  314,  315,
1886  316,  317,  318,   -1,   -1,   -1,   93,   -1,   -1,   96,
1887   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1888   -1,  337,  338,  339,  340,   -1,   -1,   -1,   -1,   -1,
1889   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,  355,
1890  356,  357,  358,  359,  360,  361,  362,  363,   -1,   -1,
1891   -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
1892  264,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
1893   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,
1894  284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
1895  294,  295,  296,  297,  298,  299,  300,  301,  302,   -1,
1896   -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
1897  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,
1898  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
1899  334,   46,   -1,  337,  338,  339,  340,   -1,   -1,  343,
1900  344,   -1,  346,   -1,   -1,  349,  350,  351,  352,  353,
1901  354,  355,  356,  357,  358,  359,  360,  361,  362,  363,
1902   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
1903  257,  258,  259,  260,   -1,   -1,  263,  264,  265,  266,
1904  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
1905   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,
1906  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
1907  297,  298,  299,  300,  301,  302,   -1,   -1,  305,  306,
1908  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
1909  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,
1910  327,  328,  329,  330,  331,  332,  333,  334,   -1,   -1,
1911  337,  338,  339,  340,    0,   -1,  343,  344,   -1,  346,
1912   -1,   -1,  349,  350,  351,  352,  353,  354,  355,  356,
1913  357,  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,
1914  367,  368,  369,  370,  371,  372,  373,   33,   -1,   -1,
1915   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
1916   -1,   47,   37,   -1,   -1,   -1,   -1,   42,   43,   -1,
1917   45,   -1,   47,   59,   60,   -1,   62,   -1,   -1,   -1,
1918   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   -1,   -1,
1919   37,   -1,   -1,   -1,   -1,   42,   43,   -1,   45,   -1,
1920   47,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
1921   96,   -1,   -1,   60,   -1,   62,  271,  272,   -1,   94,
1922   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1923   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
1924   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,   -1,   -1,
1925   -1,   -1,   -1,  308,  309,  310,  311,  312,  313,  314,
1926  315,  316,  317,  318,   33,   -1,   -1,   -1,   37,   -1,
1927   -1,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1928   -1,   -1,  337,  338,  339,  340,   -1,   -1,   -1,   -1,
1929   59,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,
1930  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
1931   -1,   37,   -1,   -1,   -1,   -1,   42,   43,   44,   45,
1932   -1,   47,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
1933   -1,   -1,   37,   -1,   60,   -1,   62,   42,   43,   44,
1934   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1935   -1,   -1,   -1,   -1,   -1,   60,  125,   62,   -1,   -1,
1936   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,   -1,
1937   -1,  257,  258,  259,  260,   -1,   -1,  263,  264,  265,
1938  266,  267,  268,  269,  270,  271,  272,   -1,   -1,   94,
1939   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,
1940  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
1941  296,  297,  298,  299,  300,  301,  302,   -1,   -1,  305,
1942  306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
1943  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,
1944  326,  327,  328,  329,  330,  331,  332,  333,  334,   -1,
1945   -1,  337,  338,  339,  340,   -1,   -1,  343,  344,   -1,
1946  346,   -1,   -1,  349,  350,  351,  352,  353,  354,  355,
1947  356,  357,  358,  359,  360,  361,  362,  363,  353,  354,
1948   -1,  367,  368,  369,  370,  371,  372,  373,  257,  258,
1949  259,  260,   -1,   -1,  263,  264,  265,  266,  267,  268,
1950  269,  270,  271,  272,  351,  352,  353,  354,   -1,   -1,
1951   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,  288,
1952  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
1953  299,  300,  301,  302,   -1,   -1,  305,  306,  307,  308,
1954  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
1955   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
1956  329,  330,  331,  332,  333,  334,   -1,   -1,  337,  338,
1957  339,  340,    0,   -1,  343,  344,  302,  346,   -1,  305,
1958  349,  350,  351,  352,  353,  354,  355,  356,  357,  358,
1959  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,
1960  369,  370,  371,  372,  373,   33,   -1,   -1,   -1,   37,
1961   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1962   -1,   -1,   -1,  349,  350,  351,  352,  353,  354,   -1,
1963   -1,   59,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
1964   -1,   -1,   -1,   -1,  349,  350,  351,  352,  353,  354,
1965   -1,   -1,   37,   -1,   -1,   -1,   -1,   42,   43,   44,
1966   45,   -1,   47,   -1,   -1,   93,   -1,   -1,   96,   -1,
1967   -1,   -1,    0,   -1,   -1,   60,   -1,   62,   -1,   -1,
1968   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
1969   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
1970   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,
1971   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,
1972   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1973   41,   59,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
1974   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   60,
1975   -1,   62,   37,   -1,   -1,   -1,   -1,   42,   43,   44,
1976   45,   -1,   47,   -1,   37,   93,   -1,   -1,   -1,   42,
1977   43,   -1,   45,   -1,   47,   60,   -1,   62,   -1,   -1,
1978   -1,   -1,   93,   -1,   -1,   96,   -1,   60,   37,   62,
1979   -1,   -1,   -1,   42,   43,   -1,   45,  125,   47,   -1,
1980   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   94,
1981   -1,   60,   -1,   62,  125,   -1,   -1,   -1,   -1,   -1,
1982   -1,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1983  258,  259,  260,   -1,   -1,  263,  264,  265,  266,  267,
1984  268,  269,  270,  271,  272,   94,   -1,   -1,   -1,   -1,
1985   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,
1986  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
1987  298,  299,  300,  301,  302,   -1,   -1,  305,  306,  307,
1988  308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
1989  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,
1990  328,  329,  330,  331,  332,  333,  334,   -1,   -1,  337,
1991  338,  339,  340,  102,   -1,  343,  344,  302,  346,   -1,
1992  305,  349,  350,  351,  352,  353,  354,  355,  356,  357,
1993  358,  359,  360,  361,  362,  363,  264,   -1,   -1,  367,
1994  368,  369,  370,  371,  372,  373,  257,  258,  259,  260,
1995   -1,  140,  263,  264,  265,  266,  267,  268,  269,  270,
1996  271,  272,   -1,  291,  349,  350,  351,  352,  353,  354,
1997  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
1998  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
1999  301,  302,   -1,   -1,  305,  306,  307,  308,  309,  310,
2000  311,  312,  313,  314,  315,  316,  317,  318,   -1,   -1,
2001   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
2002  331,  332,  333,  334,   -1,   -1,  337,  338,  339,  340,
2003    0,   -1,  343,  344,   -1,  346,   -1,   -1,  349,  350,
2004  351,  352,  353,  354,  355,  356,  357,  358,  359,  360,
2005  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,
2006  371,  372,  373,   33,  349,  350,  351,  352,  353,  354,
2007   40,   41,   -1,   43,   44,   45,  349,  350,  351,  352,
2008  353,  354,   -1,   -1,  273,   -1,   -1,   -1,  277,   59,
2009   60,  280,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2010  349,  350,  351,  352,  353,  354,   -1,   -1,   -1,  308,
2011  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
2012   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
2013    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  337,  338,
2014  339,  340,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
2015   -1,   -1,   -1,   -1,   -1,  125,  355,  356,  357,  358,
2016  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
2017   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
2018   33,  370,  371,   -1,   -1,   -1,   -1,   40,   41,   59,
2019   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2020   -1,   -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,
2021   -1,   -1,   -1,   -1,   -1,  404,   -1,   -1,  407,   -1,
2022   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   37,
2023   -1,   -1,   -1,   -1,   42,   43,   -1,   45,   -1,   47,
2024   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
2025   -1,   -1,   60,   -1,   62,  125,   -1,   -1,   -1,   -1,
2026   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2027   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2028   -1,   -1,   -1,   -1,   -1,   -1,   94,  257,  258,  259,
2029  260,   -1,   -1,  263,  264,  265,  266,  267,  268,  269,
2030  270,  271,  272,   -1,   92,   -1,   -1,   -1,   -1,   -1,
2031   -1,  281,  282,   -1,  284,  285,  286,  287,  288,  289,
2032  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
2033  300,  301,  302,   -1,   -1,  305,  306,  307,  308,  309,
2034  310,  311,  312,  313,  314,  315,  316,  317,  318,  137,
2035  138,  139,  140,   -1,  324,  325,  326,  327,  328,  329,
2036  330,  331,  332,  333,  334,   -1,   -1,  337,  338,  339,
2037  340,   -1,   -1,  343,  344,   -1,  346,  165,   -1,  349,
2038  350,  351,  352,  353,  354,  355,  356,  357,  358,  359,
2039  360,  361,  362,  363,  264,   -1,   -1,  367,  368,  369,
2040  370,  371,  372,  373,  257,  258,  259,  260,   -1,   -1,
2041  263,  264,  265,  266,  267,  268,  269,  270,  271,  272,
2042   -1,  291,  210,   -1,   -1,   -1,   -1,   -1,  281,  282,
2043  218,  284,  285,  286,  287,  288,  289,  290,  291,  292,
2044  293,  294,  295,  296,  297,  298,  299,  300,  301,  302,
2045   -1,   -1,  305,  306,  307,  308,  309,  310,  311,  312,
2046  313,  314,  315,  316,  317,  318,    0,   -1,   -1,   -1,
2047   -1,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2048  333,  334,  290,   -1,  337,  338,  339,  340,    0,  277,
2049  343,  344,   -1,  346,   -1,   -1,  349,  350,  351,  352,
2050  353,  354,  355,  356,  357,  358,  359,  360,  361,  362,
2051  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,
2052  373,   33,   -1,   -1,   -1,   59,   -1,   -1,   40,   41,
2053  318,  319,   44,   -1,   -1,  323,   -1,   -1,   -1,   -1,
2054   -1,  349,  350,  351,  352,  353,  354,   59,   60,   -1,
2055   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
2056   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2057   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2058   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
2059   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2060   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,  397,
2061  398,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
2062   -1,   -1,   -1,   -1,   -1,   -1,   -1,  415,  416,   -1,
2063   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
2064   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
2065   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2066   -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,   -1,
2067   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2068   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2069   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
2070   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2071   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2072   -1,   -1,   -1,  257,   -1,   -1,   -1,   -1,   -1,  263,
2073  125,   -1,   -1,   -1,  268,   -1,   -1,   -1,   -1,   -1,
2074   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
2075   -1,  263,  264,  265,  266,  267,  268,  269,  270,  271,
2076  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  302,  281,
2077  282,   -1,  284,  285,  286,  287,  288,  289,  290,  291,
2078  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2079  302,   -1,   -1,  305,  306,  307,  308,  309,  310,  311,
2080  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
2081   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
2082  332,  333,  334,   -1,   -1,  337,  338,  339,  340,   -1,
2083   -1,  343,  344,   -1,  346,   -1,   -1,  349,  350,  351,
2084  352,  353,  354,  355,  356,  357,  358,  359,  360,  361,
2085  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,
2086  372,  373,  257,  258,  259,  260,   -1,   -1,  263,  264,
2087  265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
2088   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,
2089  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
2090  295,  296,  297,  298,  299,  300,  301,  302,   -1,   -1,
2091  305,  306,  307,  308,  309,  310,  311,  312,  313,  314,
2092  315,  316,  317,  318,    0,   -1,   -1,   -1,   -1,  324,
2093  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2094   -1,   -1,  337,  338,  339,  340,    0,   -1,  343,  344,
2095   -1,  346,   -1,   -1,  349,  350,  351,  352,  353,  354,
2096  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
2097   -1,   -1,  367,  368,  369,  370,  371,  372,  373,   33,
2098   -1,   -1,   -1,   59,   -1,   -1,   40,   41,   -1,   -1,
2099   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2100   -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,
2101   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
2102   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2103   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
2104   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,  125,
2105   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2106   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
2107   -1,  125,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
2108   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2109   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,
2110   -1,   -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,
2111   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
2112   -1,   44,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,
2113   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
2114   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2115   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
2116   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,
2117   93,   42,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
2118   -1,  257,   -1,   -1,   -1,   -1,   -1,  263,  125,   60,
2119   -1,   62,  268,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2120   -1,   -1,  125,  257,  258,  259,  260,   -1,   -1,  263,
2121  264,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
2122   -1,   -1,   -1,   94,   -1,   -1,  302,  281,  282,   -1,
2123  284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
2124  294,  295,  296,  297,  298,  299,  300,  301,  302,   -1,
2125   -1,  305,  306,  307,  308,  309,  310,  311,  312,  313,
2126  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,
2127  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
2128  334,   -1,   -1,  337,  338,  339,  340,   -1,   -1,  343,
2129  344,   -1,  346,   -1,   -1,  349,  350,  351,  352,  353,
2130  354,  355,  356,  357,  358,  359,  360,  361,  362,  363,
2131   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
2132  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,
2133  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
2134   -1,  264,   -1,   -1,  281,  282,   -1,  284,  285,  286,
2135  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
2136  297,  298,  299,  300,  301,   -1,   -1,   -1,  291,  306,
2137  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
2138  317,  318,  319,  320,  321,  322,  323,  324,  325,  326,
2139  327,  328,  329,  330,  331,  332,  333,  334,   -1,   -1,
2140  337,  338,  339,  340,    0,   -1,  343,  344,   -1,   -1,
2141   -1,   -1,   -1,   -1,   -1,   -1,  287,   -1,  355,  356,
2142  357,  358,  359,  360,  361,  362,  363,  350,   -1,   -1,
2143  367,  368,  369,  370,  371,  372,  373,   33,   -1,   -1,
2144   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,   -1,
2145   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2146   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
2147   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  349,  350,
2148  351,  352,  353,  354,   -1,   -1,   -1,   -1,   -1,   -1,
2149   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
2150   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2151   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2152   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
2153   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2154   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2155   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
2156   -1,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,
2157   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2158   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2159   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2160   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2161   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
2162   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2163   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2164   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
2165   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2166   -1,  257,  258,  259,  260,   -1,   -1,  263,  264,  265,
2167  266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
2168   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,
2169  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
2170  296,  297,  298,  299,  300,  301,  302,   -1,   -1,  305,
2171  306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
2172  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,
2173  326,  327,  328,  329,  330,  331,  332,  333,  334,   -1,
2174   -1,  337,  338,  339,  340,   -1,   -1,  343,  344,   -1,
2175  346,   -1,   -1,  349,  350,  351,  352,   -1,   -1,  355,
2176  356,  357,  358,  359,  360,  361,  362,  363,   -1,   -1,
2177   -1,  367,  368,  369,  370,  371,  372,  373,  257,  258,
2178  259,  260,   -1,   -1,  263,  264,  265,  266,  267,  268,
2179  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
2180   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,  288,
2181  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
2182  299,  300,  301,  302,   -1,   -1,  305,  306,  307,  308,
2183  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
2184   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
2185  329,  330,  331,  332,  333,  334,   -1,   -1,  337,  338,
2186  339,  340,    0,   -1,  343,  344,   -1,  346,   -1,   -1,
2187  349,  350,  351,  352,   -1,   -1,  355,  356,  357,  358,
2188  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,
2189  369,  370,  371,  372,  373,   33,   -1,   -1,   -1,   -1,
2190   -1,   -1,   40,   41,   -1,   43,   44,   45,   -1,   -1,
2191   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2192   -1,   59,   -1,   -1,   62,   -1,   -1,   -1,   -1,   -1,
2193   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2194   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
2195   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
2196   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2197   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
2198   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
2199   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
2200   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
2201   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
2202   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,
2203   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
2204   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2205   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2206   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2207   -1,   -1,   93,   -1,  125,   96,   -1,   -1,   -1,   -1,
2208   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2209   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2210   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
2211   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
2212  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,
2213  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
2214   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,
2215  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
2216  298,  299,  300,  301,   -1,   -1,   -1,   -1,  306,  307,
2217  308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
2218  318,  319,  320,  321,  322,  323,  324,  325,  326,  327,
2219  328,  329,  330,  331,  332,  333,  334,   -1,   -1,  337,
2220  338,  339,  340,   -1,   -1,  343,  344,   -1,   -1,   -1,
2221   -1,   -1,   -1,  264,   -1,   -1,   -1,  355,  356,  357,
2222  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,
2223  368,  369,  370,  371,  372,  373,  257,  258,  259,  260,
2224  291,   -1,  263,  264,  265,  266,  267,  268,  269,  270,
2225  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2226  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
2227  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
2228  301,  302,   -1,   -1,  305,  306,  307,  308,  309,  310,
2229  311,  312,  313,  314,  315,  316,  317,  318,   -1,  350,
2230   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
2231  331,  332,  333,  334,   -1,   -1,  337,  338,  339,  340,
2232    0,   -1,  343,  344,   -1,  346,   -1,   -1,  349,  350,
2233   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,
2234  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,
2235  371,  372,  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,
2236   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
2237   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2238   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2239   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2240   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2241    0,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
2242   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2243   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
2244   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
2245   -1,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
2246   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2247   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
2248   43,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2249   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   62,
2250   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
2251   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2252   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2253   93,   -1,   -1,   96,   -1,  125,   -1,   -1,   -1,   -1,
2254   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2255   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2256   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2257   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
2258  260,   -1,   -1,  263,  264,  265,  266,  267,  268,  269,
2259  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2260   -1,  281,  282,   -1,  284,  285,  286,  287,  288,  289,
2261  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
2262  300,  301,  302,   -1,   -1,  305,  306,  307,  308,  309,
2263  310,  311,  312,  313,  314,  315,  316,  317,  318,   -1,
2264   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,
2265  330,  331,  332,  333,  334,   -1,   -1,  337,  338,  339,
2266  340,   -1,   -1,  343,  344,   -1,  346,   -1,   -1,   -1,
2267  350,   -1,   -1,   -1,  264,  355,  356,  357,  358,  359,
2268  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,
2269  370,  371,  372,  373,  257,  258,  259,  260,   -1,   -1,
2270  263,  291,  265,  266,  267,  268,  269,  270,  271,  272,
2271   -1,   -1,  302,   -1,   -1,  305,   -1,   -1,  281,  282,
2272   -1,  284,  285,  286,  287,  288,  289,  290,  291,  292,
2273  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
2274   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,  312,
2275  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,
2276  350,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2277  333,  334,   -1,   -1,  337,  338,  339,  340,    0,   -1,
2278  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2279   -1,   -1,  355,  356,  357,  358,  359,  360,  361,  362,
2280  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,
2281  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
2282   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2283   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
2284   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2285   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2286   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
2287   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
2288   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2289   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
2290   -1,   -1,   -1,  125,   -1,   -1,   41,   -1,   -1,   44,
2291   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2292   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   33,   -1,
2293   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,   44,
2294   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2295   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   93,   -1,
2296   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2297   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2298   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
2299  125,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2300   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2301   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2302  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2303   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
2304   -1,  263,   -1,  265,  266,  267,  268,  269,  270,  271,
2305  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
2306  282,   -1,  284,  285,  286,  287,  288,  289,  290,  291,
2307  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2308   -1,   -1,   -1,   -1,  306,  307,  308,  309,  310,  311,
2309  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
2310   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
2311  332,  333,  334,   -1,   -1,  337,  338,  339,  340,   -1,
2312   -1,  343,  344,   -1,   -1,   -1,   -1,   91,   -1,  264,
2313   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
2314  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,
2315  372,  373,  257,  258,  259,  260,  291,   -1,  263,  123,
2316  265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
2317   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,
2318  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
2319  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
2320   -1,  306,  307,  308,  309,  310,  311,  312,  313,  314,
2321  315,  316,  317,  318,   -1,  350,   -1,   -1,   -1,  324,
2322  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2323   -1,   -1,  337,  338,  339,  340,    0,   -1,  343,  344,
2324   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2325  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
2326   -1,   -1,  367,  368,  369,  370,  371,  372,  373,   33,
2327   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
2328   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2329   -1,   -1,   -1,  257,  258,   59,  260,  261,   -1,   -1,
2330   -1,   -1,   -1,   -1,   -1,  269,  270,  271,  272,  273,
2331  274,  275,  276,  277,  278,  279,  280,   -1,   -1,  283,
2332   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
2333   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2334   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2335   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
2336   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2337   -1,  335,   -1,   -1,   -1,   -1,   -1,  341,  342,   -1,
2338   -1,  345,   -1,  347,   -1,   -1,   33,   -1,   -1,   -1,
2339   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,
2340  364,   -1,  366,   -1,   -1,   -1,   -1,   -1,   -1,  373,
2341  374,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2342   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2343   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2344   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
2345   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2346   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2347   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,
2348   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2349   -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
2350   -1,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
2351   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,
2352  284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
2353  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
2354   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,  313,
2355  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,
2356  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
2357  334,   -1,   -1,  337,  338,  339,  340,   -1,   -1,  343,
2358  344,   -1,   91,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2359   -1,  355,  356,  357,  358,  359,  360,  361,  362,  363,
2360   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
2361  257,  258,  259,  260,  123,   -1,  263,   -1,  265,  266,
2362  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
2363   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,
2364  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
2365  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
2366  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
2367  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,
2368  327,  328,  329,  330,  331,  332,  333,  334,   -1,   -1,
2369  337,  338,  339,  340,    0,   -1,  343,  344,   -1,   -1,
2370   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,
2371  357,  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,
2372  367,  368,  369,  370,  371,  372,  373,   33,   -1,   -1,
2373   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,
2374   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
2375   -1,  260,  261,   59,   -1,   -1,   -1,   -1,   -1,   -1,
2376  269,  270,  271,  272,  273,  274,  275,  276,  277,  278,
2377  279,  280,   -1,   -1,  283,   -1,   -1,   -1,   -1,   -1,
2378   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
2379   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2380   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2381   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
2382   -1,   -1,   -1,   -1,   -1,   -1,  335,   -1,   -1,   -1,
2383   -1,   -1,  341,  342,   -1,   -1,  345,   -1,  347,   -1,
2384   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
2385   -1,   40,   -1,   -1,   -1,  364,   -1,  366,   -1,   -1,
2386   -1,   -1,   -1,   -1,  373,  374,   -1,   -1,   -1,   -1,
2387   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2388   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2389   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2390   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
2391   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2392   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2393   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
2394   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2395   -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
2396  266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
2397   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,
2398  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
2399  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
2400   -1,  307,  308,  309,  310,  311,  312,  313,  314,  315,
2401  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,
2402  326,  327,  328,  329,  330,  331,  332,  333,  334,   -1,
2403   -1,  337,  338,  339,  340,   -1,   -1,  343,  344,   -1,
2404   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,
2405  356,  357,  358,  359,  360,  361,  362,  363,   -1,   -1,
2406   -1,  367,  368,  369,  370,  371,  372,  373,  257,  258,
2407  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
2408  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
2409   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,  288,
2410  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
2411  299,  300,  301,   -1,   -1,   -1,   -1,   -1,  307,  308,
2412  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
2413   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
2414  329,  330,  331,  332,  333,  334,   -1,   -1,  337,  338,
2415  339,  340,    0,   -1,  343,  344,   -1,   -1,   -1,   -1,
2416   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
2417  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,
2418  369,  370,  371,  372,  373,   33,   -1,   -1,   -1,   -1,
2419   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2420   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2421   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2422   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2423   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2424   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
2425   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2426   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
2427   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
2428   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2429   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2430   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
2431   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2432   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
2433   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2434   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2435   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2436   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,
2437   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2438   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2439   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
2440   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
2441  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,
2442  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
2443   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,
2444  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
2445  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,  307,
2446  308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
2447  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,
2448  328,  329,  330,  331,  332,  333,  334,   -1,   -1,  337,
2449  338,  339,  340,   -1,   -1,  343,  344,   -1,   -1,   -1,
2450   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,
2451  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,
2452  368,  369,  370,  371,  372,  373,  257,  258,  259,  260,
2453   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,  270,
2454  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2455  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
2456  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
2457  301,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,
2458  311,  312,  313,  314,  315,  316,  317,  318,   -1,   -1,
2459   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
2460  331,  332,  333,  334,   -1,   -1,  337,  338,  339,  340,
2461    0,   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,
2462   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,
2463  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,
2464  371,  372,  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,
2465   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2466   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2467   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2468   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2469   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2470   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
2471   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2472   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
2473   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
2474   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2475   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2476   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
2477   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2478   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
2479   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2480   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2481   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2482   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
2483   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2484   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2485   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2486   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
2487  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,
2488  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2489   -1,  281,  282,   -1,  284,  285,  286,  287,  288,  289,
2490  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
2491  300,  301,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,
2492  310,  311,  312,  313,  314,  315,  316,  317,  318,   -1,
2493   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,
2494  330,  331,  332,  333,  334,   -1,   -1,  337,  338,  339,
2495  340,   -1,   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,
2496   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,
2497  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,
2498  370,  371,  372,  373,  257,  258,  259,  260,   -1,   -1,
2499  263,   -1,  265,  266,  267,  268,  269,  270,  271,  272,
2500   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,
2501   -1,  284,  285,  286,  287,  288,  289,  290,  291,  292,
2502  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
2503   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,
2504  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,
2505   -1,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2506  333,  334,   -1,   -1,  337,  338,  339,  340,    0,   -1,
2507  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2508   -1,   -1,  355,  356,  357,  358,  359,  360,  361,  362,
2509  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,
2510  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
2511   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2512   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
2513   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2514   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2515   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2516   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
2517   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2518   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
2519   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
2520   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2521   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
2522   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,
2523   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2524   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
2525   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2526   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2527   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
2528   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2529   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2530   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2531  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2532   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,
2533   -1,  263,   -1,  265,  266,  267,  268,  269,  270,  271,
2534  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
2535  282,   -1,  284,  285,  286,  287,  288,  289,  290,  291,
2536  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2537   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
2538  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
2539   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
2540  332,  333,  334,   -1,   -1,  337,  338,  339,  340,   -1,
2541   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2542   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
2543  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,
2544  372,  373,  257,  258,  259,  260,   -1,   -1,  263,   -1,
2545  265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
2546   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,
2547  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
2548  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
2549   -1,   -1,  307,  308,  309,  310,  311,  312,  313,  314,
2550  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,
2551  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2552   -1,   -1,  337,  338,  339,  340,    0,   -1,  343,  344,
2553   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2554  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
2555   -1,   -1,  367,  368,  369,  370,  371,  372,  373,   33,
2556   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,
2557   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2558   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
2559   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2560   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2561   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
2562   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2563   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2564   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
2565   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2566   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2567   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,
2568   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,
2569   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2570   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2571   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2572   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2573   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,
2574   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2575   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2576   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,
2577   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2578   -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,  263,
2579   -1,  265,  266,  267,  268,  269,  270,  271,  272,   -1,
2580   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,
2581  284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
2582  294,  295,  296,  297,  298,  299,  300,  301,   -1,   -1,
2583   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,  313,
2584  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,
2585  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
2586  334,   -1,   -1,  337,  338,  339,  340,   -1,   -1,  343,
2587  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2588   -1,  355,  356,  357,  358,  359,  360,  361,  362,  363,
2589   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
2590  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,
2591  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,
2592   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,
2593  287,  288,  289,  290,  291,  292,  293,  294,  295,  296,
2594  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,
2595  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
2596  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,
2597  327,  328,  329,  330,  331,  332,  333,  334,   -1,   -1,
2598  337,  338,  339,  340,    0,   -1,  343,  344,   -1,   -1,
2599   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,
2600  357,  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,
2601  367,  368,  369,  370,  371,  372,  373,   33,   -1,   -1,
2602   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,
2603   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2604   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
2605   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2606   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2607   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
2608   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2609   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2610   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,
2611   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2612   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2613   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,
2614   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2615   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2616   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2617   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2618   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2619   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
2620   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2621   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2622   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,
2623   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2624   -1,  257,  258,  259,  260,   -1,   -1,  263,   -1,  265,
2625  266,  267,  268,  269,  270,  271,  272,   -1,   -1,   -1,
2626   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,
2627  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
2628  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
2629   -1,  307,  308,  309,  310,  311,  312,  313,  314,  315,
2630  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,
2631  326,  327,  328,  329,  330,  331,  332,  333,  334,   -1,
2632   -1,  337,  338,  339,  340,   -1,   -1,  343,  344,   -1,
2633   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,
2634  356,  357,  358,  359,  360,  361,  362,  363,   -1,   -1,
2635   -1,  367,  368,  369,  370,  371,  372,  373,  257,  258,
2636  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
2637  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,
2638   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,  288,
2639  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
2640  299,  300,  301,   -1,   -1,   -1,   -1,   -1,  307,  308,
2641  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
2642   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
2643  329,  330,  331,  332,  333,  334,   -1,   -1,  337,  338,
2644  339,  340,    0,   -1,  343,  344,   -1,   -1,   -1,   -1,
2645   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
2646  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,
2647  369,  370,  371,  372,  373,   33,   -1,   -1,   -1,   -1,
2648   -1,   -1,   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2649   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2650   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2651   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2652   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2653   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,
2654   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2655   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,
2656   -1,   -1,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
2657   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2658   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2659   -1,   -1,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,
2660   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2661   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
2662   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2663   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2664   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2665   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,
2666   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2667   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2668   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
2669   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
2670  258,  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,
2671  268,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
2672   -1,   -1,   -1,  281,  282,   -1,  284,  285,  286,  287,
2673  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
2674  298,  299,  300,  301,   -1,   -1,   -1,   -1,   -1,  307,
2675  308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
2676  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,
2677  328,  329,  330,  331,  332,  333,  334,   -1,   -1,  337,
2678  338,  339,  340,   -1,   -1,  343,  344,   -1,   -1,   -1,
2679   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,
2680  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,
2681  368,  369,  370,  371,  372,  373,  257,  258,  259,  260,
2682   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,  270,
2683  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2684  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
2685  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
2686  301,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,
2687  311,  312,  313,  314,  315,  316,  317,  318,   -1,   -1,
2688   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
2689  331,  332,  333,  334,   -1,   -1,  337,  338,  339,  340,
2690    0,   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,
2691   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,
2692  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,
2693  371,  372,  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,
2694   40,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2695   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2696   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2697   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2698   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2699   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,   -1,
2700   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2701   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
2702   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,
2703   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2704   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2705   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
2706   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2707   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
2708   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2709   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2710   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2711   93,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
2712   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2713   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2714   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2715   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
2716  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,
2717  270,  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2718   -1,  281,  282,   -1,  284,  285,  286,  287,  288,  289,
2719  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
2720  300,  301,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,
2721  310,  311,  312,  313,  314,  315,  316,  317,  318,   -1,
2722   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,
2723  330,  331,  332,  333,  334,   -1,   -1,  337,  338,  339,
2724  340,   -1,   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,
2725   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,
2726  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,
2727  370,  371,  372,  373,  257,  258,  259,  260,   -1,   -1,
2728  263,   -1,  265,  266,  267,  268,  269,  270,  271,  272,
2729   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,
2730   -1,  284,  285,  286,  287,  288,  289,  290,  291,  292,
2731  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
2732   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,
2733  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,
2734   -1,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2735  333,  334,   -1,   -1,  337,  338,  339,  340,    0,   -1,
2736  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2737   -1,   -1,  355,  356,  357,  358,  359,  360,  361,  362,
2738  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,
2739  373,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
2740   -1,   -1,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,
2741   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
2742   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2743   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2744   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2745   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2746   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2747   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
2748   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
2749   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2750   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
2751   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   43,   44,
2752   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2753   -1,   -1,   -1,   -1,   59,   -1,   -1,   62,   -1,   -1,
2754   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2755   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2756   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
2757   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2758   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2759   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2760  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2761   -1,   -1,   -1,   -1,   -1,   -1,  258,  259,  260,   -1,
2762   -1,   -1,   -1,  265,  266,  267,   -1,  269,  270,  271,
2763  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  281,
2764  282,   -1,  284,  285,  286,  287,  288,  289,  290,  291,
2765  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2766   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
2767  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
2768   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
2769  332,  333,  334,   -1,   -1,  337,  338,  339,  340,   -1,
2770   -1,  343,  344,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2771   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
2772  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,  371,
2773  372,  373,  257,  258,  259,  260,   -1,   -1,  263,   -1,
2774  265,  266,  267,  268,  269,  270,  271,  272,   -1,   -1,
2775   -1,   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,
2776  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
2777  295,  296,  297,  298,  299,  300,  301,    0,   -1,   -1,
2778   -1,  306,  307,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2779   -1,   -1,   -1,   -1,  319,  320,  321,  322,  323,  324,
2780  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2781   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,  343,  344,
2782   43,   -1,   45,   46,   -1,   -1,   -1,   -1,   -1,   -1,
2783   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,
2784   -1,   -1,  367,  368,  369,  370,  371,  372,  373,   -1,
2785   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2786   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2787   93,    0,   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,
2788   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2789   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2790   -1,   -1,  125,   -1,   33,   -1,   -1,   -1,   -1,   -1,
2791   -1,   40,   41,   -1,   -1,   44,   45,   -1,   -1,   -1,
2792   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2793   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2794   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2795   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2796    0,   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,   -1,
2797   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2798   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2799   -1,   -1,   -1,   33,   -1,   -1,  125,   -1,   -1,   -1,
2800   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
2801   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2802   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2803   -1,   -1,   -1,   -1,  257,  258,  259,  260,   -1,   -1,
2804  263,   -1,  265,  266,  267,  268,  269,  270,  271,  272,
2805   -1,   -1,   -1,   93,   -1,   -1,   96,   -1,  281,  282,
2806   -1,  284,  285,  286,  287,  288,  289,  290,  291,  292,
2807  293,  294,  295,  296,  297,  298,  299,  300,  301,   -1,
2808   -1,   -1,   -1,    0,  307,  125,   -1,   -1,   -1,   -1,
2809   -1,   -1,   -1,   -1,   -1,   -1,  319,  320,  321,  322,
2810  323,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2811  333,  334,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,
2812  343,  344,   -1,   40,   -1,   -1,   -1,   -1,  257,  258,
2813  259,  260,   -1,   -1,  263,   -1,  265,  266,  267,  268,
2814  269,  270,   59,   -1,  367,  368,  369,  370,  371,  372,
2815  373,   -1,  281,  282,   -1,  284,  285,  286,  287,  288,
2816  289,  290,  291,  292,  293,  294,  295,  296,  297,  298,
2817  299,  300,  301,   -1,   -1,   -1,   93,   -1,  307,   96,
2818   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2819   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
2820  329,  330,  331,  332,  333,  334,   -1,   -1,  125,   -1,
2821   -1,   -1,   -1,   -1,  343,  344,   -1,  257,  258,  259,
2822  260,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,
2823   -1,  271,  272,   -1,   -1,   -1,    0,   -1,  367,  368,
2824  369,  370,  371,  372,  373,   -1,   -1,   -1,   -1,   -1,
2825   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2826   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,
2827  310,  311,  312,  313,  314,  315,  316,  317,  318,   -1,
2828   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,
2829  330,  331,  332,  333,  334,   59,   -1,  337,  338,  339,
2830  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  349,
2831  350,  351,  352,  353,  354,  355,  356,  357,  358,  359,
2832  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   93,
2833   -1,   -1,   -1,  373,   -1,   -1,   -1,   -1,   -1,   -1,
2834  257,  258,  259,  260,   -1,   -1,  263,   -1,   -1,   -1,
2835   -1,  268,   -1,   -1,  271,  272,   -1,   -1,   -1,   -1,
2836   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2837   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2838   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2839  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
2840  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,
2841  327,  328,  329,  330,  331,  332,  333,  334,    0,   -1,
2842  337,  338,  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,
2843   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,
2844  357,  358,  359,  360,  361,  362,  363,   -1,   -1,   -1,
2845   -1,   33,   -1,   -1,   -1,   -1,  373,   -1,   40,   -1,
2846   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2847   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
2848   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2849   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,   -1,   -1,
2850   -1,  265,  266,  267,   -1,  269,  270,  271,  272,   -1,
2851   -1,   93,   -1,   -1,   96,   -1,   -1,  281,  282,   -1,
2852  284,  285,  286,  287,  288,  289,  290,  291,  292,  293,
2853  294,  295,  296,  297,  298,  299,  300,  301,  302,    0,
2854   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
2855   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2856   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2857   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  343,
2858  344,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,
2859   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
2860   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
2861   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2862   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,   43,
2863   44,   45,   93,   47,   -1,   -1,   -1,   -1,   -1,   -1,
2864   -1,   -1,   -1,   -1,   -1,   59,   60,   -1,   62,   -1,
2865   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2866    0,   -1,   -1,   -1,  125,   -1,   -1,   -1,   -1,   -1,
2867   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,   93,
2868   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
2869  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2870   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2871   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,
2872   -1,   -1,   -1,   -1,    0,  307,  308,  309,  310,  311,
2873  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
2874   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
2875  332,  333,  334,   93,   -1,  337,  338,  339,  340,   -1,
2876   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2877   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
2878  362,  363,   -1,   59,   -1,  125,   -1,   -1,    0,   -1,
2879   -1,  373,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,
2880   -1,   -1,   -1,   -1,  265,  266,  267,   -1,  269,  270,
2881  271,  272,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
2882  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
2883  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
2884  301,  302,   -1,   -1,   -1,   -1,   -1,   59,   -1,  125,
2885  264,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2886   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2887   -1,   -1,   -1,   -1,   -1,   -1,   -1,  291,   -1,   -1,
2888   -1,   93,  343,  344,   -1,   -1,   -1,   -1,  302,   -1,
2889   -1,  305,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2890   -1,   -1,   -1,   -1,   -1,   -1,  367,  368,  369,  370,
2891  371,  372,  373,  125,    0,   -1,   -1,   -1,   -1,   -1,
2892  260,   -1,   -1,   -1,   -1,  265,  266,  267,   -1,  269,
2893  270,  271,  272,   -1,   -1,  349,  350,  351,  352,  353,
2894  354,  281,  282,   -1,  284,  285,  286,  287,  288,  289,
2895  290,  291,  292,  293,  294,  295,  296,  297,  298,  299,
2896  300,  301,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2897   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,    0,   -1,
2898   -1,   -1,   -1,   -1,  260,   -1,   -1,   -1,   -1,  265,
2899  266,  267,   -1,  269,  270,  271,  272,   -1,   -1,   -1,
2900   -1,   -1,   -1,  343,  344,  281,  282,   93,  284,  285,
2901  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
2902  296,  297,  298,  299,  300,  301,   -1,  367,  368,  369,
2903  370,  371,  372,  373,   -1,   -1,   -1,   59,   -1,  125,
2904   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,  260,   -1,
2905   -1,   -1,   -1,  265,  266,  267,   -1,  269,  270,  271,
2906  272,   -1,   -1,   -1,   -1,   -1,   -1,  343,  344,  281,
2907  282,   93,  284,  285,  286,  287,  288,  289,  290,  291,
2908  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2909   -1,  367,  368,  369,  370,  371,  372,  373,   -1,   -1,
2910   -1,   59,   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
2911   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2912   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2913   -1,  343,  344,   -1,   -1,   93,   -1,   -1,   -1,   -1,
2914   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2915   -1,   -1,   -1,   -1,   -1,  367,  368,  369,  370,  371,
2916  372,  373,   -1,   -1,   -1,   -1,   -1,  125,   -1,   -1,
2917   -1,   -1,   -1,   -1,  260,   -1,   -1,   -1,   -1,  265,
2918  266,  267,   -1,  269,  270,  271,  272,   -1,   -1,   -1,
2919   -1,   -1,   -1,   -1,   -1,  281,  282,   -1,  284,  285,
2920  286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
2921  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,   -1,
2922   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2923   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  260,   -1,
2924   -1,   -1,   -1,  265,  266,  267,   -1,  269,  270,  271,
2925  272,   -1,   -1,   -1,   -1,   -1,   -1,  343,  344,  281,
2926  282,   -1,  284,  285,  286,  287,  288,  289,  290,  291,
2927  292,  293,  294,  295,  296,  297,  298,  299,  300,  301,
2928   -1,  367,  368,  369,  370,  371,  372,  373,   -1,   -1,
2929   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2930   -1,   -1,  260,   -1,   -1,   -1,   -1,  265,  266,  267,
2931   -1,  269,  270,  271,  272,   -1,   -1,   -1,   -1,   -1,
2932   -1,  343,  344,  281,  282,    0,  284,  285,  286,  287,
2933  288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
2934  298,  299,  300,  301,   -1,  367,  368,  369,  370,  371,
2935  372,  373,   -1,   -1,   -1,   -1,   -1,   -1,   33,   -1,
2936   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,
2937   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2938   -1,   -1,   -1,   -1,   59,  343,  344,   -1,   -1,   -1,
2939   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
2940   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  367,
2941  368,  369,  370,  371,  372,  373,   -1,   -1,   93,   -1,
2942   -1,   96,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2943   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   43,   -1,
2944   45,   46,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2945  125,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,
2946   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2947   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2948   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,
2949   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2950   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2951   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2952  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2953   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2954   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,
2955   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2956   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2957   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2958   -1,   -1,  257,  258,  259,   -1,   -1,   -1,  263,   -1,
2959  265,  266,  267,  268,  269,  270,  271,  272,   91,   -1,
2960   -1,   -1,   -1,   96,   -1,   -1,  281,  282,   -1,  284,
2961  285,  286,  287,  288,  289,  290,  291,  292,  293,  294,
2962  295,  296,  297,  298,  299,  300,  301,   -1,   -1,   -1,
2963  123,   -1,  307,  308,  309,  310,  311,  312,  313,  314,
2964  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,  324,
2965  325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2966   -1,   -1,  337,  338,  339,  340,  271,  272,  343,  344,
2967   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2968  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
2969   -1,   -1,  367,  368,  369,  370,  371,  372,   -1,   -1,
2970   -1,   -1,   -1,  308,  309,  310,  311,  312,  313,  314,
2971  315,  316,  317,  318,  319,  320,  321,  322,  323,   -1,
2972   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2973   -1,   -1,  337,  338,  339,  340,   33,   -1,   -1,   -1,
2974   -1,   -1,   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,
2975  355,  356,  357,  358,  359,  360,  361,  362,  363,   -1,
2976   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,   -1,
2977  263,   -1,   -1,   -1,   -1,  268,  269,  270,  271,  272,
2978  273,  274,  275,  276,  277,  278,  279,  280,   -1,   -1,
2979  283,   -1,   -1,   -1,   91,   -1,   -1,   -1,   -1,   96,
2980   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2981   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,
2982  313,  314,  315,  316,  317,  318,  123,   -1,   -1,   -1,
2983   -1,  324,  325,  326,  327,  328,  329,  330,  331,  332,
2984  333,  334,  335,   -1,  337,  338,  339,  340,  341,  342,
2985   -1,   -1,  345,   -1,  347,   -1,   -1,   -1,   -1,   -1,
2986   -1,   -1,  355,  356,  357,  358,  359,  360,  361,  362,
2987  363,  364,   33,  366,   -1,   -1,   -1,   -1,   -1,   40,
2988  373,  374,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,
2989   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2990   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2991   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2992   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2993   -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,   -1,   -1,
2994   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2995   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2996  257,  258,  259,  260,  261,   -1,  263,   -1,   -1,   -1,
2997   -1,  268,  269,  270,  271,  272,  273,  274,  275,  276,
2998  277,  278,  279,  280,   -1,   -1,  283,   -1,   -1,   33,
2999   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,   -1,
3000   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3001  307,  308,  309,  310,  311,  312,  313,  314,  315,  316,
3002  317,  318,   -1,   -1,   -1,   -1,   -1,  324,  325,  326,
3003  327,  328,  329,  330,  331,  332,  333,  334,  335,   -1,
3004  337,  338,  339,  340,  341,  342,   -1,   -1,  345,   -1,
3005  347,   -1,   96,   -1,   -1,   -1,   -1,   -1,  355,  356,
3006  357,  358,  359,  360,  361,  362,  363,  364,   -1,  366,
3007   -1,   -1,   -1,   -1,   -1,   -1,  373,  374,   -1,   -1,
3008   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3009   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
3010   -1,   -1,  263,   -1,  265,  266,  267,  268,  269,  270,
3011  271,  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3012  281,  282,   -1,  284,  285,  286,  287,  288,  289,  290,
3013  291,  292,  293,  294,  295,  296,  297,  298,  299,  300,
3014  301,   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,
3015  311,  312,  313,  314,  315,  316,  317,  318,   -1,   -1,
3016   -1,   -1,   -1,  324,  325,  326,  327,  328,  329,  330,
3017  331,  332,  333,  334,   33,   -1,  337,  338,  339,  340,
3018   -1,   40,  343,  344,   -1,   -1,   45,   46,   -1,   -1,
3019   -1,   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,
3020  361,  362,  363,   -1,   -1,   -1,  367,  368,  369,  370,
3021  371,  372,  373,  257,  258,  259,  260,   -1,   -1,  263,
3022   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,  272,   -1,
3023   -1,   -1,   -1,   -1,   -1,   -1,   -1,   96,   -1,   -1,
3024   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3025   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3026   -1,   -1,   -1,  307,  308,  309,  310,  311,  312,  313,
3027  314,  315,  316,  317,  318,   -1,   -1,   -1,   -1,   -1,
3028  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
3029  334,   33,   -1,  337,  338,  339,  340,   -1,   40,   -1,
3030   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
3031   -1,  355,  356,  357,  358,  359,  360,  361,  362,  363,
3032   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  373,
3033   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3034   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3035   -1,   -1,   -1,   -1,   96,   -1,   -1,   -1,   -1,   -1,
3036   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3037   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3038   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3039   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3040  259,  260,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3041   -1,   -1,  271,  272,   33,   -1,   -1,   -1,   -1,   -1,
3042   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
3043   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3044   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3045  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3046   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3047  329,  330,  331,  332,  333,  334,   -1,   96,  337,  338,
3048  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3049   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3050  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
3051   -1,   -1,   -1,   -1,  373,  257,  258,  259,  260,   -1,
3052   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
3053  272,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
3054   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
3055   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3056   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
3057  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
3058   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
3059  332,  333,  334,   -1,   96,  337,  338,  339,  340,   -1,
3060   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3061   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
3062  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3063   -1,  373,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3064  259,  260,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3065   -1,   -1,  271,  272,   33,   -1,   -1,   -1,   -1,   -1,
3066   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
3067   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3068   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3069  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3070   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3071  329,  330,  331,  332,  333,  334,   -1,   96,  337,  338,
3072  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3073   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3074  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
3075   -1,   -1,   -1,   -1,  373,  257,  258,  259,  260,   -1,
3076   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
3077  272,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
3078   -1,   -1,   -1,   45,   46,   -1,   -1,   -1,   -1,   -1,
3079   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3080   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
3081  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
3082   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
3083  332,  333,  334,   -1,   96,  337,  338,  339,  340,   -1,
3084   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3085   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
3086  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3087   -1,  373,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3088  259,  260,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3089   -1,   -1,  271,  272,   33,   -1,   -1,   -1,   -1,   -1,
3090   -1,   40,   -1,   42,   -1,   -1,   45,   -1,   -1,   -1,
3091   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3092   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3093  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3094   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3095  329,  330,  331,  332,  333,  334,   -1,   96,  337,  338,
3096  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3097   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3098  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
3099   -1,   -1,   -1,   -1,  373,  257,  258,  259,   -1,   -1,
3100   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
3101  272,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
3102   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
3103   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3104   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
3105  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
3106   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
3107  332,  333,  334,   -1,   96,  337,  338,  339,  340,   -1,
3108   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3109   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
3110  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3111   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3112  259,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3113   -1,   -1,  271,  272,   33,   -1,   -1,   -1,   -1,   -1,
3114   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
3115   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3116   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3117  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3118   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3119  329,  330,  331,  332,  333,  334,   -1,   96,  337,  338,
3120  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3121   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3122  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
3123   -1,   -1,   -1,   -1,   -1,  257,  258,  259,   -1,   -1,
3124   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
3125  272,   33,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
3126   -1,   -1,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
3127   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3128   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
3129  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   -1,
3130   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
3131  332,  333,  334,   -1,   96,  337,  338,  339,  340,   -1,
3132   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3133   -1,   -1,   -1,  355,  356,  357,  358,  359,  360,  361,
3134  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3135   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3136  259,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3137   -1,   -1,  271,  272,   33,   -1,   -1,   -1,   -1,   -1,
3138   -1,   40,   -1,   -1,   -1,   -1,   45,   -1,   -1,   -1,
3139   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3140   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3141  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3142   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3143  329,  330,  331,  332,  333,  334,   -1,   96,  337,  338,
3144  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3145   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3146  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
3147   -1,   -1,   -1,   -1,   -1,  257,  258,  259,   -1,   -1,
3148   -1,  263,   -1,   -1,   -1,   -1,  268,   -1,   -1,  271,
3149  272,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3150   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,
3151   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3152   -1,   -1,   -1,   -1,   -1,  307,  308,  309,  310,  311,
3153  312,  313,  314,  315,  316,  317,  318,   -1,   -1,   91,
3154   -1,   -1,  324,  325,  326,  327,  328,  329,  330,  331,
3155  332,  333,  334,   -1,   -1,  337,  338,  339,  340,   -1,
3156   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3157   -1,  123,   -1,  355,  356,  357,  358,  359,  360,  361,
3158  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3159   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
3160  259,   -1,   -1,   -1,  263,   -1,   -1,   -1,   -1,  268,
3161   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3162   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3163   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3164   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  307,  308,
3165  309,  310,  311,  312,  313,  314,  315,  316,  317,  318,
3166   -1,   -1,   -1,   -1,   -1,  324,  325,  326,  327,  328,
3167  329,  330,  331,  332,  333,  334,   -1,   -1,  337,  338,
3168  339,  340,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3169   -1,   -1,   -1,   -1,   -1,   -1,  355,  356,  357,  358,
3170  359,  360,  361,  362,  363,  257,  258,   -1,  260,  261,
3171   -1,   -1,   -1,   -1,   -1,   -1,   -1,  269,  270,  271,
3172  272,  273,  274,  275,  276,  277,  278,  279,  280,   -1,
3173   -1,  283,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3174   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3175   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3176   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3177   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3178   -1,   -1,   -1,  335,   -1,   -1,   -1,   -1,   -1,  341,
3179  342,   -1,   -1,  345,   -1,  347,   -1,   -1,   -1,   -1,
3180   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3181   -1,   -1,  364,   -1,  366,   -1,   -1,   -1,   -1,   -1,
3182   -1,  373,  374,
3183};
3184#define YYFINAL 2
3185#ifndef YYDEBUG
3186#define YYDEBUG 0
3187#endif
3188#define YYMAXTOKEN 376
3189#if YYDEBUG
3190char *yyname[] = {
3191"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3192"'!'",0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,
31930,0,0,0,0,"':'","';'","'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31940,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,"'`'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31950,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31970,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
31980,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"LABEL","VARIABLE","NUMBER",
3199"TEXT","COMMAND_LINE","DELIMITED","ORDINAL","TH","LEFT_ARROW_HEAD",
3200"RIGHT_ARROW_HEAD","DOUBLE_ARROW_HEAD","LAST","UP","DOWN","LEFT","RIGHT","BOX",
3201"CIRCLE","ELLIPSE","ARC","LINE","ARROW","MOVE","SPLINE","HEIGHT","RADIUS",
3202"FIGNAME","WIDTH","DIAMETER","FROM","TO","AT","WITH","BY","THEN","SOLID",
3203"DOTTED","DASHED","CHOP","SAME","INVISIBLE","LJUST","RJUST","ABOVE","BELOW",
3204"OF","THE","WAY","BETWEEN","AND","HERE","DOT_N","DOT_E","DOT_W","DOT_S",
3205"DOT_NE","DOT_SE","DOT_NW","DOT_SW","DOT_C","DOT_START","DOT_END","DOT_X",
3206"DOT_Y","DOT_HT","DOT_WID","DOT_RAD","SIN","COS","ATAN2","LOG","EXP","SQRT",
3207"K_MAX","K_MIN","INT","RAND","SRAND","COPY","THRU","TOP","BOTTOM","UPPER",
3208"LOWER","SH","PRINT","CW","CCW","FOR","DO","IF","ELSE","ANDAND","OROR",
3209"NOTEQUAL","EQUALEQUAL","LESSEQUAL","GREATEREQUAL","LEFT_CORNER","RIGHT_CORNER",
3210"NORTH","SOUTH","EAST","WEST","CENTER","END","START","RESET","UNTIL","PLOT",
3211"THICKNESS","FILL","COLORED","OUTLINED","SHADED","ALIGNED","SPRINTF","COMMAND",
3212"DEFINE","UNDEF",
3213};
3214char *yyrule[] = {
3215"$accept : top",
3216"top : optional_separator",
3217"top : element_list",
3218"element_list : optional_separator middle_element_list optional_separator",
3219"middle_element_list : element",
3220"middle_element_list : middle_element_list separator element",
3221"optional_separator :",
3222"optional_separator : separator",
3223"separator : ';'",
3224"separator : separator ';'",
3225"placeless_element : FIGNAME '=' macro_name",
3226"placeless_element : VARIABLE '=' any_expr",
3227"placeless_element : VARIABLE ':' '=' any_expr",
3228"placeless_element : UP",
3229"placeless_element : DOWN",
3230"placeless_element : LEFT",
3231"placeless_element : RIGHT",
3232"placeless_element : COMMAND_LINE",
3233"placeless_element : COMMAND print_args",
3234"placeless_element : PRINT print_args",
3235"$$1 :",
3236"placeless_element : SH $$1 DELIMITED",
3237"placeless_element : COPY TEXT",
3238"$$2 :",
3239"$$3 :",
3240"placeless_element : COPY TEXT THRU $$2 DELIMITED $$3 until",
3241"$$4 :",
3242"$$5 :",
3243"placeless_element : COPY THRU $$4 DELIMITED $$5 until",
3244"$$6 :",
3245"placeless_element : FOR VARIABLE '=' expr TO expr optional_by DO $$6 DELIMITED",
3246"placeless_element : simple_if",
3247"$$7 :",
3248"placeless_element : simple_if ELSE $$7 DELIMITED",
3249"placeless_element : reset_variables",
3250"placeless_element : RESET",
3251"macro_name : VARIABLE",
3252"macro_name : LABEL",
3253"reset_variables : RESET VARIABLE",
3254"reset_variables : reset_variables VARIABLE",
3255"reset_variables : reset_variables ',' VARIABLE",
3256"print_args : print_arg",
3257"print_args : print_args print_arg",
3258"print_arg : expr",
3259"print_arg : text",
3260"print_arg : position",
3261"$$8 :",
3262"simple_if : IF any_expr THEN $$8 DELIMITED",
3263"until :",
3264"until : UNTIL TEXT",
3265"any_expr : expr",
3266"any_expr : text_expr",
3267"text_expr : text EQUALEQUAL text",
3268"text_expr : text NOTEQUAL text",
3269"text_expr : text_expr ANDAND text_expr",
3270"text_expr : text_expr ANDAND expr",
3271"text_expr : expr ANDAND text_expr",
3272"text_expr : text_expr OROR text_expr",
3273"text_expr : text_expr OROR expr",
3274"text_expr : expr OROR text_expr",
3275"text_expr : '!' text_expr",
3276"optional_by :",
3277"optional_by : BY expr",
3278"optional_by : BY '*' expr",
3279"element : object_spec",
3280"element : LABEL ':' optional_separator element",
3281"element : LABEL ':' optional_separator position_not_place",
3282"element : LABEL ':' optional_separator place",
3283"$$9 :",
3284"$$10 :",
3285"element : '{' $$9 element_list '}' $$10 optional_element",
3286"element : placeless_element",
3287"optional_element :",
3288"optional_element : element",
3289"object_spec : BOX",
3290"object_spec : CIRCLE",
3291"object_spec : ELLIPSE",
3292"object_spec : ARC",
3293"object_spec : LINE",
3294"object_spec : ARROW",
3295"object_spec : MOVE",
3296"object_spec : SPLINE",
3297"object_spec : text",
3298"object_spec : PLOT expr",
3299"object_spec : PLOT expr text",
3300"$$11 :",
3301"object_spec : '[' $$11 element_list ']'",
3302"object_spec : object_spec HEIGHT expr",
3303"object_spec : object_spec RADIUS expr",
3304"object_spec : object_spec WIDTH expr",
3305"object_spec : object_spec DIAMETER expr",
3306"object_spec : object_spec expr",
3307"object_spec : object_spec UP",
3308"object_spec : object_spec UP expr",
3309"object_spec : object_spec DOWN",
3310"object_spec : object_spec DOWN expr",
3311"object_spec : object_spec RIGHT",
3312"object_spec : object_spec RIGHT expr",
3313"object_spec : object_spec LEFT",
3314"object_spec : object_spec LEFT expr",
3315"object_spec : object_spec FROM position",
3316"object_spec : object_spec TO position",
3317"object_spec : object_spec AT position",
3318"object_spec : object_spec WITH path",
3319"object_spec : object_spec WITH position",
3320"object_spec : object_spec BY expr_pair",
3321"object_spec : object_spec THEN",
3322"object_spec : object_spec SOLID",
3323"object_spec : object_spec DOTTED",
3324"object_spec : object_spec DOTTED expr",
3325"object_spec : object_spec DASHED",
3326"object_spec : object_spec DASHED expr",
3327"object_spec : object_spec FILL",
3328"object_spec : object_spec FILL expr",
3329"object_spec : object_spec SHADED text",
3330"object_spec : object_spec COLORED text",
3331"object_spec : object_spec OUTLINED text",
3332"object_spec : object_spec CHOP",
3333"object_spec : object_spec CHOP expr",
3334"object_spec : object_spec SAME",
3335"object_spec : object_spec INVISIBLE",
3336"object_spec : object_spec LEFT_ARROW_HEAD",
3337"object_spec : object_spec RIGHT_ARROW_HEAD",
3338"object_spec : object_spec DOUBLE_ARROW_HEAD",
3339"object_spec : object_spec CW",
3340"object_spec : object_spec CCW",
3341"object_spec : object_spec text",
3342"object_spec : object_spec LJUST",
3343"object_spec : object_spec RJUST",
3344"object_spec : object_spec ABOVE",
3345"object_spec : object_spec BELOW",
3346"object_spec : object_spec THICKNESS expr",
3347"object_spec : object_spec ALIGNED",
3348"text : TEXT",
3349"text : SPRINTF '(' TEXT sprintf_args ')'",
3350"sprintf_args :",
3351"sprintf_args : sprintf_args ',' expr",
3352"position : position_not_place",
3353"position : place",
3354"position : '(' place ')'",
3355"position_not_place : expr_pair",
3356"position_not_place : position '+' expr_pair",
3357"position_not_place : '(' position '+' expr_pair ')'",
3358"position_not_place : position '-' expr_pair",
3359"position_not_place : '(' position '-' expr_pair ')'",
3360"position_not_place : '(' position ',' position ')'",
3361"position_not_place : expr between position AND position",
3362"position_not_place : '(' expr between position AND position ')'",
3363"position_not_place : expr '<' position ',' position '>'",
3364"position_not_place : '(' expr '<' position ',' position '>' ')'",
3365"between : BETWEEN",
3366"between : OF THE WAY BETWEEN",
3367"expr_pair : expr ',' expr",
3368"expr_pair : '(' expr_pair ')'",
3369"place : label",
3370"place : label corner",
3371"place : corner label",
3372"place : corner OF label",
3373"place : HERE",
3374"label : LABEL",
3375"label : nth_primitive",
3376"label : label '.' LABEL",
3377"ordinal : ORDINAL",
3378"ordinal : '`' any_expr TH",
3379"optional_ordinal_last : LAST",
3380"optional_ordinal_last : ordinal LAST",
3381"nth_primitive : ordinal object_type",
3382"nth_primitive : optional_ordinal_last object_type",
3383"object_type : BOX",
3384"object_type : CIRCLE",
3385"object_type : ELLIPSE",
3386"object_type : ARC",
3387"object_type : LINE",
3388"object_type : ARROW",
3389"object_type : SPLINE",
3390"object_type : '[' ']'",
3391"object_type : TEXT",
3392"label_path : '.' LABEL",
3393"label_path : label_path '.' LABEL",
3394"relative_path : corner",
3395"relative_path : label_path",
3396"relative_path : label_path corner",
3397"path : relative_path",
3398"path : '(' relative_path ',' relative_path ')'",
3399"path : ORDINAL LAST object_type relative_path",
3400"path : LAST object_type relative_path",
3401"path : ORDINAL object_type relative_path",
3402"path : LABEL relative_path",
3403"corner : DOT_N",
3404"corner : DOT_E",
3405"corner : DOT_W",
3406"corner : DOT_S",
3407"corner : DOT_NE",
3408"corner : DOT_SE",
3409"corner : DOT_NW",
3410"corner : DOT_SW",
3411"corner : DOT_C",
3412"corner : DOT_START",
3413"corner : DOT_END",
3414"corner : TOP",
3415"corner : BOTTOM",
3416"corner : LEFT",
3417"corner : RIGHT",
3418"corner : UPPER LEFT",
3419"corner : LOWER LEFT",
3420"corner : UPPER RIGHT",
3421"corner : LOWER RIGHT",
3422"corner : LEFT_CORNER",
3423"corner : RIGHT_CORNER",
3424"corner : UPPER LEFT_CORNER",
3425"corner : LOWER LEFT_CORNER",
3426"corner : UPPER RIGHT_CORNER",
3427"corner : LOWER RIGHT_CORNER",
3428"corner : NORTH",
3429"corner : SOUTH",
3430"corner : EAST",
3431"corner : WEST",
3432"corner : CENTER",
3433"corner : START",
3434"corner : END",
3435"expr : VARIABLE",
3436"expr : NUMBER",
3437"expr : place DOT_X",
3438"expr : place DOT_Y",
3439"expr : place DOT_HT",
3440"expr : place DOT_WID",
3441"expr : place DOT_RAD",
3442"expr : expr '+' expr",
3443"expr : expr '-' expr",
3444"expr : expr '*' expr",
3445"expr : expr '/' expr",
3446"expr : expr '%' expr",
3447"expr : expr '^' expr",
3448"expr : '-' expr",
3449"expr : '(' any_expr ')'",
3450"expr : SIN '(' any_expr ')'",
3451"expr : COS '(' any_expr ')'",
3452"expr : ATAN2 '(' any_expr ',' any_expr ')'",
3453"expr : LOG '(' any_expr ')'",
3454"expr : EXP '(' any_expr ')'",
3455"expr : SQRT '(' any_expr ')'",
3456"expr : K_MAX '(' any_expr ',' any_expr ')'",
3457"expr : K_MIN '(' any_expr ',' any_expr ')'",
3458"expr : INT '(' any_expr ')'",
3459"expr : RAND '(' any_expr ')'",
3460"expr : RAND '(' ')'",
3461"expr : SRAND '(' any_expr ')'",
3462"expr : expr '<' expr",
3463"expr : expr LESSEQUAL expr",
3464"expr : expr '>' expr",
3465"expr : expr GREATEREQUAL expr",
3466"expr : expr EQUALEQUAL expr",
3467"expr : expr NOTEQUAL expr",
3468"expr : expr ANDAND expr",
3469"expr : expr OROR expr",
3470"expr : '!' expr",
3471};
3472#endif
3473#ifdef YYSTACKSIZE
3474#undef YYMAXDEPTH
3475#define YYMAXDEPTH YYSTACKSIZE
3476#else
3477#ifdef YYMAXDEPTH
3478#define YYSTACKSIZE YYMAXDEPTH
3479#else
3480#define YYSTACKSIZE 500
3481#define YYMAXDEPTH 500
3482#endif
3483#endif
3484int yydebug;
3485int yynerrs;
3486int yyerrflag;
3487int yychar;
3488short *yyssp;
3489YYSTYPE *yyvsp;
3490YYSTYPE yyval;
3491YYSTYPE yylval;
3492short yyss[YYSTACKSIZE];
3493YYSTYPE yyvs[YYSTACKSIZE];
3494#define yystacksize YYSTACKSIZE
3495#line 1643 "pic.y"
3496
3497/* bison defines const to be empty unless __STDC__ is defined, which it
3498isn't under cfront */
3499
3500#ifdef const
3501#undef const
3502#endif
3503
3504static struct {
3505  const char *name;
3506  double val;
3507  int scaled;		     // non-zero if val should be multiplied by scale
3508} defaults_table[] = {
3509  { "arcrad", .25, 1 },
3510  { "arrowht", .1, 1 },
3511  { "arrowwid", .05, 1 },
3512  { "circlerad", .25, 1 },
3513  { "boxht", .5, 1 },
3514  { "boxwid", .75, 1 },
3515  { "boxrad", 0.0, 1 },
3516  { "dashwid", .05, 1 },
3517  { "ellipseht", .5, 1 },
3518  { "ellipsewid", .75, 1 },
3519  { "moveht", .5, 1 },
3520  { "movewid", .5, 1 },
3521  { "lineht", .5, 1 },
3522  { "linewid", .5, 1 },
3523  { "textht", 0.0, 1 },
3524  { "textwid", 0.0, 1 },
3525  { "scale", 1.0, 0 },
3526  { "linethick", -1.0, 0 },		// in points
3527  { "fillval", .5, 0 },
3528  { "arrowhead", 1.0, 0 },
3529  { "maxpswid", 8.5, 0 },
3530  { "maxpsht", 11.0, 0 },
3531};
3532
3533place *lookup_label(const char *label)
3534{
3535  saved_state *state = current_saved_state;
3536  PTABLE(place) *tbl = current_table;
3537  for (;;) {
3538    place *pl = tbl->lookup(label);
3539    if (pl)
3540      return pl;
3541    if (!state)
3542      return 0;
3543    tbl = state->tbl;
3544    state = state->prev;
3545  }
3546}
3547
3548void define_label(const char *label, const place *pl)
3549{
3550  place *p = new place[1];
3551  *p = *pl;
3552  current_table->define(label, p);
3553}
3554
3555int lookup_variable(const char *name, double *val)
3556{
3557  place *pl = lookup_label(name);
3558  if (pl) {
3559    *val = pl->x;
3560    return 1;
3561  }
3562  return 0;
3563}
3564
3565void define_variable(const char *name, double val)
3566{
3567  place *p = new place[1];
3568  p->obj = 0;
3569  p->x = val;
3570  p->y = 0.0;
3571  current_table->define(name, p);
3572  if (strcmp(name, "scale") == 0) {
3573    // When the scale changes, reset all scaled pre-defined variables to
3574    // their default values.
3575    for (unsigned int i = 0;
3576	 i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
3577      if (defaults_table[i].scaled)
3578	define_variable(defaults_table[i].name, val*defaults_table[i].val);
3579  }
3580}
3581
3582// called once only (not once per parse)
3583
3584void parse_init()
3585{
3586  current_direction = RIGHT_DIRECTION;
3587  current_position.x = 0.0;
3588  current_position.y = 0.0;
3589  // This resets everything to its default value.
3590  reset_all();
3591}
3592
3593void reset(const char *nm)
3594{
3595  for (unsigned int i = 0;
3596       i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
3597    if (strcmp(nm, defaults_table[i].name) == 0) {
3598      double val = defaults_table[i].val;
3599      if (defaults_table[i].scaled) {
3600	double scale;
3601	lookup_variable("scale", &scale);
3602	val *= scale;
3603      }
3604      define_variable(defaults_table[i].name, val);
3605      return;
3606    }
3607  lex_error("`%1' is not a predefined variable", nm);
3608}
3609
3610void reset_all()
3611{
3612  // We only have to explicitly reset the pre-defined variables that
3613  // aren't scaled because `scale' is not scaled, and changing the
3614  // value of `scale' will reset all the pre-defined variables that
3615  // are scaled.
3616  for (unsigned int i = 0;
3617       i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
3618    if (!defaults_table[i].scaled)
3619      define_variable(defaults_table[i].name, defaults_table[i].val);
3620}
3621
3622// called after each parse
3623
3624void parse_cleanup()
3625{
3626  while (current_saved_state != 0) {
3627    delete current_table;
3628    current_table = current_saved_state->tbl;
3629    saved_state *tem = current_saved_state;
3630    current_saved_state = current_saved_state->prev;
3631    delete tem;
3632  }
3633  assert(current_table == &top_table);
3634  PTABLE_ITERATOR(place) iter(current_table);
3635  const char *key;
3636  place *pl;
3637  while (iter.next(&key, &pl))
3638    if (pl->obj != 0) {
3639      position pos = pl->obj->origin();
3640      pl->obj = 0;
3641      pl->x = pos.x;
3642      pl->y = pos.y;
3643    }
3644  while (olist.head != 0) {
3645    object *tem = olist.head;
3646    olist.head = olist.head->next;
3647    delete tem;
3648  }
3649  olist.tail = 0;
3650  current_direction = RIGHT_DIRECTION;
3651  current_position.x = 0.0;
3652  current_position.y = 0.0;
3653}
3654
3655const char *ordinal_postfix(int n)
3656{
3657  if (n < 10 || n > 20)
3658    switch (n % 10) {
3659    case 1:
3660      return "st";
3661    case 2:
3662      return "nd";
3663    case 3:
3664      return "rd";
3665    }
3666  return "th";
3667}
3668
3669const char *object_type_name(object_type type)
3670{
3671  switch (type) {
3672  case BOX_OBJECT:
3673    return "box";
3674  case CIRCLE_OBJECT:
3675    return "circle";
3676  case ELLIPSE_OBJECT:
3677    return "ellipse";
3678  case ARC_OBJECT:
3679    return "arc";
3680  case SPLINE_OBJECT:
3681    return "spline";
3682  case LINE_OBJECT:
3683    return "line";
3684  case ARROW_OBJECT:
3685    return "arrow";
3686  case MOVE_OBJECT:
3687    return "move";
3688  case TEXT_OBJECT:
3689    return "\"\"";
3690  case BLOCK_OBJECT:
3691    return "[]";
3692  case OTHER_OBJECT:
3693  case MARK_OBJECT:
3694  default:
3695    break;
3696  }
3697  return "object";
3698}
3699
3700static char sprintf_buf[1024];
3701
3702char *format_number(const char *form, double n)
3703{
3704  if (form == 0)
3705    form = "%g";
3706  return do_sprintf(form, &n, 1);
3707}
3708
3709char *do_sprintf(const char *form, const double *v, int nv)
3710{
3711  string result;
3712  int i = 0;
3713  string one_format;
3714  while (*form) {
3715    if (*form == '%') {
3716      one_format += *form++;
3717      for (; *form != '\0' && strchr("#-+ 0123456789.", *form) != 0; form++)
3718	one_format += *form;
3719      if (*form == '\0' || strchr("eEfgG%", *form) == 0) {
3720	lex_error("bad sprintf format");
3721	result += one_format;
3722	result += form;
3723	break;
3724      }
3725      if (*form == '%') {
3726	one_format += *form++;
3727	one_format += '\0';
3728	snprintf(sprintf_buf, sizeof(sprintf_buf),
3729		 "%s", one_format.contents());
3730      }
3731      else {
3732	if (i >= nv) {
3733	  lex_error("too few arguments to snprintf");
3734	  result += one_format;
3735	  result += form;
3736	  break;
3737	}
3738	one_format += *form++;
3739	one_format += '\0';
3740	snprintf(sprintf_buf, sizeof(sprintf_buf),
3741		 one_format.contents(), v[i++]);
3742      }
3743      one_format.clear();
3744      result += sprintf_buf;
3745    }
3746    else
3747      result += *form++;
3748  }
3749  result += '\0';
3750  return strsave(result.contents());
3751}
3752#line 3753 "y.tab.c"
3753#define YYABORT goto yyabort
3754#define YYREJECT goto yyabort
3755#define YYACCEPT goto yyaccept
3756#define YYERROR goto yyerrlab
3757int
3758#if defined(__STDC__)
3759yyparse(void)
3760#else
3761yyparse()
3762#endif
3763{
3764    register int yym, yyn, yystate;
3765#if YYDEBUG
3766    register char *yys;
3767    extern char *getenv();
3768
3769    if (yys = getenv("YYDEBUG"))
3770    {
3771        yyn = *yys;
3772        if (yyn >= '0' && yyn <= '9')
3773            yydebug = yyn - '0';
3774    }
3775#endif
3776
3777    yynerrs = 0;
3778    yyerrflag = 0;
3779    yychar = (-1);
3780
3781    yyssp = yyss;
3782    yyvsp = yyvs;
3783    *yyssp = yystate = 0;
3784
3785yyloop:
3786    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
3787    if (yychar < 0)
3788    {
3789        if ((yychar = yylex()) < 0) yychar = 0;
3790#if YYDEBUG
3791        if (yydebug)
3792        {
3793            yys = 0;
3794            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
3795            if (!yys) yys = "illegal-symbol";
3796            printf("%sdebug: state %d, reading %d (%s)\n",
3797                    YYPREFIX, yystate, yychar, yys);
3798        }
3799#endif
3800    }
3801    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
3802            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
3803    {
3804#if YYDEBUG
3805        if (yydebug)
3806            printf("%sdebug: state %d, shifting to state %d\n",
3807                    YYPREFIX, yystate, yytable[yyn]);
3808#endif
3809        if (yyssp >= yyss + yystacksize - 1)
3810        {
3811            goto yyoverflow;
3812        }
3813        *++yyssp = yystate = yytable[yyn];
3814        *++yyvsp = yylval;
3815        yychar = (-1);
3816        if (yyerrflag > 0)  --yyerrflag;
3817        goto yyloop;
3818    }
3819    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
3820            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
3821    {
3822        yyn = yytable[yyn];
3823        goto yyreduce;
3824    }
3825    if (yyerrflag) goto yyinrecovery;
3826#ifdef lint
3827    goto yynewerror;
3828#endif
3829yynewerror:
3830    yyerror("syntax error");
3831#ifdef lint
3832    goto yyerrlab;
3833#endif
3834yyerrlab:
3835    ++yynerrs;
3836yyinrecovery:
3837    if (yyerrflag < 3)
3838    {
3839        yyerrflag = 3;
3840        for (;;)
3841        {
3842            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
3843                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
3844            {
3845#if YYDEBUG
3846                if (yydebug)
3847                    printf("%sdebug: state %d, error recovery shifting\
3848 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
3849#endif
3850                if (yyssp >= yyss + yystacksize - 1)
3851                {
3852                    goto yyoverflow;
3853                }
3854                *++yyssp = yystate = yytable[yyn];
3855                *++yyvsp = yylval;
3856                goto yyloop;
3857            }
3858            else
3859            {
3860#if YYDEBUG
3861                if (yydebug)
3862                    printf("%sdebug: error recovery discarding state %d\n",
3863                            YYPREFIX, *yyssp);
3864#endif
3865                if (yyssp <= yyss) goto yyabort;
3866                --yyssp;
3867                --yyvsp;
3868            }
3869        }
3870    }
3871    else
3872    {
3873        if (yychar == 0) goto yyabort;
3874#if YYDEBUG
3875        if (yydebug)
3876        {
3877            yys = 0;
3878            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
3879            if (!yys) yys = "illegal-symbol";
3880            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
3881                    YYPREFIX, yystate, yychar, yys);
3882        }
3883#endif
3884        yychar = (-1);
3885        goto yyloop;
3886    }
3887yyreduce:
3888#if YYDEBUG
3889    if (yydebug)
3890        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
3891                YYPREFIX, yystate, yyn, yyrule[yyn]);
3892#endif
3893    yym = yylen[yyn];
3894    yyval = yyvsp[1-yym];
3895    switch (yyn)
3896    {
3897case 2:
3898#line 278 "pic.y"
3899{
3900		  if (olist.head)
3901		    print_picture(olist.head);
3902		}
3903break;
3904case 3:
3905#line 287 "pic.y"
3906{ yyval.pl = yyvsp[-1].pl; }
3907break;
3908case 4:
3909#line 292 "pic.y"
3910{ yyval.pl = yyvsp[0].pl; }
3911break;
3912case 5:
3913#line 294 "pic.y"
3914{ yyval.pl = yyvsp[-2].pl; }
3915break;
3916case 10:
3917#line 309 "pic.y"
3918{
3919		  a_delete graphname;
3920		  graphname = new char[strlen(yyvsp[0].str) + 1];
3921		  strcpy(graphname, yyvsp[0].str);
3922		  a_delete yyvsp[0].str;
3923		}
3924break;
3925case 11:
3926#line 317 "pic.y"
3927{
3928		  define_variable(yyvsp[-2].str, yyvsp[0].x);
3929		  a_delete yyvsp[-2].str;
3930		}
3931break;
3932case 12:
3933#line 322 "pic.y"
3934{
3935		  place *p = lookup_label(yyvsp[-3].str);
3936		  if (!p) {
3937		    lex_error("variable `%1' not defined", yyvsp[-3].str);
3938		    YYABORT;
3939		  }
3940		  p->obj = 0;
3941		  p->x = yyvsp[0].x;
3942		  p->y = 0.0;
3943		  a_delete yyvsp[-3].str;
3944		}
3945break;
3946case 13:
3947#line 334 "pic.y"
3948{ current_direction = UP_DIRECTION; }
3949break;
3950case 14:
3951#line 336 "pic.y"
3952{ current_direction = DOWN_DIRECTION; }
3953break;
3954case 15:
3955#line 338 "pic.y"
3956{ current_direction = LEFT_DIRECTION; }
3957break;
3958case 16:
3959#line 340 "pic.y"
3960{ current_direction = RIGHT_DIRECTION; }
3961break;
3962case 17:
3963#line 342 "pic.y"
3964{
3965		  olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
3966						   yyvsp[0].lstr.lineno));
3967		}
3968break;
3969case 18:
3970#line 347 "pic.y"
3971{
3972		  olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
3973						   yyvsp[0].lstr.lineno));
3974		}
3975break;
3976case 19:
3977#line 352 "pic.y"
3978{
3979		  fprintf(stderr, "%s\n", yyvsp[0].lstr.str);
3980		  a_delete yyvsp[0].lstr.str;
3981		  fflush(stderr);
3982		}
3983break;
3984case 20:
3985#line 358 "pic.y"
3986{ delim_flag = 1; }
3987break;
3988case 21:
3989#line 360 "pic.y"
3990{
3991		  delim_flag = 0;
3992		  if (safer_flag)
3993		    lex_error("unsafe to run command `%1'", yyvsp[0].str);
3994		  else
3995		    system(yyvsp[0].str);
3996		  a_delete yyvsp[0].str;
3997		}
3998break;
3999case 22:
4000#line 369 "pic.y"
4001{
4002		  if (yychar < 0)
4003		    do_lookahead();
4004		  do_copy(yyvsp[0].lstr.str);
4005		  /* do not delete the filename*/
4006		}
4007break;
4008case 23:
4009#line 376 "pic.y"
4010{ delim_flag = 2; }
4011break;
4012case 24:
4013#line 378 "pic.y"
4014{ delim_flag = 0; }
4015break;
4016case 25:
4017#line 380 "pic.y"
4018{
4019		  if (yychar < 0)
4020		    do_lookahead();
4021		  copy_file_thru(yyvsp[-5].lstr.str, yyvsp[-2].str, yyvsp[0].str);
4022		  /* do not delete the filename*/
4023		  a_delete yyvsp[-2].str;
4024		  a_delete yyvsp[0].str;
4025		}
4026break;
4027case 26:
4028#line 389 "pic.y"
4029{ delim_flag = 2; }
4030break;
4031case 27:
4032#line 391 "pic.y"
4033{ delim_flag = 0; }
4034break;
4035case 28:
4036#line 393 "pic.y"
4037{
4038		  if (yychar < 0)
4039		    do_lookahead();
4040		  copy_rest_thru(yyvsp[-2].str, yyvsp[0].str);
4041		  a_delete yyvsp[-2].str;
4042		  a_delete yyvsp[0].str;
4043		}
4044break;
4045case 29:
4046#line 401 "pic.y"
4047{ delim_flag = 1; }
4048break;
4049case 30:
4050#line 403 "pic.y"
4051{
4052		  delim_flag = 0;
4053		  if (yychar < 0)
4054		    do_lookahead();
4055		  do_for(yyvsp[-8].str, yyvsp[-6].x, yyvsp[-4].x, yyvsp[-3].by.is_multiplicative, yyvsp[-3].by.val, yyvsp[0].str);
4056		}
4057break;
4058case 31:
4059#line 410 "pic.y"
4060{
4061		  if (yychar < 0)
4062		    do_lookahead();
4063		  if (yyvsp[0].if_data.x != 0.0)
4064		    push_body(yyvsp[0].if_data.body);
4065		  a_delete yyvsp[0].if_data.body;
4066		}
4067break;
4068case 32:
4069#line 418 "pic.y"
4070{ delim_flag = 1; }
4071break;
4072case 33:
4073#line 420 "pic.y"
4074{
4075		  delim_flag = 0;
4076		  if (yychar < 0)
4077		    do_lookahead();
4078		  if (yyvsp[-3].if_data.x != 0.0)
4079		    push_body(yyvsp[-3].if_data.body);
4080		  else
4081		    push_body(yyvsp[0].str);
4082		  a_delete yyvsp[-3].if_data.body;
4083		  a_delete yyvsp[0].str;
4084		}
4085break;
4086case 35:
4087#line 433 "pic.y"
4088{ define_variable("scale", 1.0); }
4089break;
4090case 38:
4091#line 443 "pic.y"
4092{
4093		  reset(yyvsp[0].str);
4094		  a_delete yyvsp[0].str;
4095		}
4096break;
4097case 39:
4098#line 448 "pic.y"
4099{
4100		  reset(yyvsp[0].str);
4101		  a_delete yyvsp[0].str;
4102		}
4103break;
4104case 40:
4105#line 453 "pic.y"
4106{
4107		  reset(yyvsp[0].str);
4108		  a_delete yyvsp[0].str;
4109		}
4110break;
4111case 41:
4112#line 461 "pic.y"
4113{ yyval.lstr = yyvsp[0].lstr; }
4114break;
4115case 42:
4116#line 463 "pic.y"
4117{
4118		  yyval.lstr.str = new char[strlen(yyvsp[-1].lstr.str) + strlen(yyvsp[0].lstr.str) + 1];
4119		  strcpy(yyval.lstr.str, yyvsp[-1].lstr.str);
4120		  strcat(yyval.lstr.str, yyvsp[0].lstr.str);
4121		  a_delete yyvsp[-1].lstr.str;
4122		  a_delete yyvsp[0].lstr.str;
4123		  if (yyvsp[-1].lstr.filename) {
4124		    yyval.lstr.filename = yyvsp[-1].lstr.filename;
4125		    yyval.lstr.lineno = yyvsp[-1].lstr.lineno;
4126		  }
4127		  else if (yyvsp[0].lstr.filename) {
4128		    yyval.lstr.filename = yyvsp[0].lstr.filename;
4129		    yyval.lstr.lineno = yyvsp[0].lstr.lineno;
4130		  }
4131		}
4132break;
4133case 43:
4134#line 482 "pic.y"
4135{
4136		  yyval.lstr.str = new char[GDIGITS + 1];
4137		  sprintf(yyval.lstr.str, "%g", yyvsp[0].x);
4138		  yyval.lstr.filename = 0;
4139		  yyval.lstr.lineno = 0;
4140		}
4141break;
4142case 44:
4143#line 489 "pic.y"
4144{ yyval.lstr = yyvsp[0].lstr; }
4145break;
4146case 45:
4147#line 491 "pic.y"
4148{
4149		  yyval.lstr.str = new char[GDIGITS + 2 + GDIGITS + 1];
4150		  sprintf(yyval.lstr.str, "%g, %g", yyvsp[0].pair.x, yyvsp[0].pair.y);
4151		  yyval.lstr.filename = 0;
4152		  yyval.lstr.lineno = 0;
4153		}
4154break;
4155case 46:
4156#line 501 "pic.y"
4157{ delim_flag = 1; }
4158break;
4159case 47:
4160#line 503 "pic.y"
4161{
4162		  delim_flag = 0;
4163		  yyval.if_data.x = yyvsp[-3].x;
4164		  yyval.if_data.body = yyvsp[0].str;
4165		}
4166break;
4167case 48:
4168#line 512 "pic.y"
4169{ yyval.str = 0; }
4170break;
4171case 49:
4172#line 514 "pic.y"
4173{ yyval.str = yyvsp[0].lstr.str; }
4174break;
4175case 50:
4176#line 519 "pic.y"
4177{ yyval.x = yyvsp[0].x; }
4178break;
4179case 51:
4180#line 521 "pic.y"
4181{ yyval.x = yyvsp[0].x; }
4182break;
4183case 52:
4184#line 526 "pic.y"
4185{
4186		  yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) == 0;
4187		  a_delete yyvsp[-2].lstr.str;
4188		  a_delete yyvsp[0].lstr.str;
4189		}
4190break;
4191case 53:
4192#line 532 "pic.y"
4193{
4194		  yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) != 0;
4195		  a_delete yyvsp[-2].lstr.str;
4196		  a_delete yyvsp[0].lstr.str;
4197		}
4198break;
4199case 54:
4200#line 538 "pic.y"
4201{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
4202break;
4203case 55:
4204#line 540 "pic.y"
4205{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
4206break;
4207case 56:
4208#line 542 "pic.y"
4209{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
4210break;
4211case 57:
4212#line 544 "pic.y"
4213{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
4214break;
4215case 58:
4216#line 546 "pic.y"
4217{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
4218break;
4219case 59:
4220#line 548 "pic.y"
4221{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
4222break;
4223case 60:
4224#line 550 "pic.y"
4225{ yyval.x = (yyvsp[0].x == 0.0); }
4226break;
4227case 61:
4228#line 556 "pic.y"
4229{
4230		  yyval.by.val = 1.0;
4231		  yyval.by.is_multiplicative = 0;
4232		}
4233break;
4234case 62:
4235#line 561 "pic.y"
4236{
4237		  yyval.by.val = yyvsp[0].x;
4238		  yyval.by.is_multiplicative = 0;
4239		}
4240break;
4241case 63:
4242#line 566 "pic.y"
4243{
4244		  yyval.by.val = yyvsp[0].x;
4245		  yyval.by.is_multiplicative = 1;
4246		}
4247break;
4248case 64:
4249#line 574 "pic.y"
4250{
4251		  yyval.pl.obj = yyvsp[0].spec->make_object(&current_position,
4252					   &current_direction);
4253		  if (yyval.pl.obj == 0)
4254		    YYABORT;
4255		  delete yyvsp[0].spec;
4256		  if (yyval.pl.obj)
4257		    olist.append(yyval.pl.obj);
4258		  else {
4259		    yyval.pl.x = current_position.x;
4260		    yyval.pl.y = current_position.y;
4261		  }
4262		}
4263break;
4264case 65:
4265#line 588 "pic.y"
4266{
4267		  yyval.pl = yyvsp[0].pl;
4268		  define_label(yyvsp[-3].str, & yyval.pl);
4269		  a_delete yyvsp[-3].str;
4270		}
4271break;
4272case 66:
4273#line 594 "pic.y"
4274{
4275		  yyval.pl.obj = 0;
4276		  yyval.pl.x = yyvsp[0].pair.x;
4277		  yyval.pl.y = yyvsp[0].pair.y;
4278		  define_label(yyvsp[-3].str, & yyval.pl);
4279		  a_delete yyvsp[-3].str;
4280		}
4281break;
4282case 67:
4283#line 602 "pic.y"
4284{
4285		  yyval.pl = yyvsp[0].pl;
4286		  define_label(yyvsp[-3].str, & yyval.pl);
4287		  a_delete yyvsp[-3].str;
4288		}
4289break;
4290case 68:
4291#line 608 "pic.y"
4292{
4293		  yyval.state.x = current_position.x;
4294		  yyval.state.y = current_position.y;
4295		  yyval.state.dir = current_direction;
4296		}
4297break;
4298case 69:
4299#line 614 "pic.y"
4300{
4301		  current_position.x = yyvsp[-2].state.x;
4302		  current_position.y = yyvsp[-2].state.y;
4303		  current_direction = yyvsp[-2].state.dir;
4304		}
4305break;
4306case 70:
4307#line 620 "pic.y"
4308{
4309		  yyval.pl = yyvsp[-3].pl;
4310		}
4311break;
4312case 71:
4313#line 624 "pic.y"
4314{
4315		  yyval.pl.obj = 0;
4316		  yyval.pl.x = current_position.x;
4317		  yyval.pl.y = current_position.y;
4318		}
4319break;
4320case 72:
4321#line 633 "pic.y"
4322{}
4323break;
4324case 73:
4325#line 635 "pic.y"
4326{}
4327break;
4328case 74:
4329#line 640 "pic.y"
4330{ yyval.spec = new object_spec(BOX_OBJECT); }
4331break;
4332case 75:
4333#line 642 "pic.y"
4334{ yyval.spec = new object_spec(CIRCLE_OBJECT); }
4335break;
4336case 76:
4337#line 644 "pic.y"
4338{ yyval.spec = new object_spec(ELLIPSE_OBJECT); }
4339break;
4340case 77:
4341#line 646 "pic.y"
4342{
4343		  yyval.spec = new object_spec(ARC_OBJECT);
4344		  yyval.spec->dir = current_direction;
4345		}
4346break;
4347case 78:
4348#line 651 "pic.y"
4349{
4350		  yyval.spec = new object_spec(LINE_OBJECT);
4351		  lookup_variable("lineht", & yyval.spec->segment_height);
4352		  lookup_variable("linewid", & yyval.spec->segment_width);
4353		  yyval.spec->dir = current_direction;
4354		}
4355break;
4356case 79:
4357#line 658 "pic.y"
4358{
4359		  yyval.spec = new object_spec(ARROW_OBJECT);
4360		  lookup_variable("lineht", & yyval.spec->segment_height);
4361		  lookup_variable("linewid", & yyval.spec->segment_width);
4362		  yyval.spec->dir = current_direction;
4363		}
4364break;
4365case 80:
4366#line 665 "pic.y"
4367{
4368		  yyval.spec = new object_spec(MOVE_OBJECT);
4369		  lookup_variable("moveht", & yyval.spec->segment_height);
4370		  lookup_variable("movewid", & yyval.spec->segment_width);
4371		  yyval.spec->dir = current_direction;
4372		}
4373break;
4374case 81:
4375#line 672 "pic.y"
4376{
4377		  yyval.spec = new object_spec(SPLINE_OBJECT);
4378		  lookup_variable("lineht", & yyval.spec->segment_height);
4379		  lookup_variable("linewid", & yyval.spec->segment_width);
4380		  yyval.spec->dir = current_direction;
4381		}
4382break;
4383case 82:
4384#line 679 "pic.y"
4385{
4386		  yyval.spec = new object_spec(TEXT_OBJECT);
4387		  yyval.spec->text = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
4388		}
4389break;
4390case 83:
4391#line 684 "pic.y"
4392{
4393		  yyval.spec = new object_spec(TEXT_OBJECT);
4394		  yyval.spec->text = new text_item(format_number(0, yyvsp[0].x), 0, -1);
4395		}
4396break;
4397case 84:
4398#line 689 "pic.y"
4399{
4400		  yyval.spec = new object_spec(TEXT_OBJECT);
4401		  yyval.spec->text = new text_item(format_number(yyvsp[0].lstr.str, yyvsp[-1].x),
4402					   yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
4403		  a_delete yyvsp[0].lstr.str;
4404		}
4405break;
4406case 85:
4407#line 696 "pic.y"
4408{
4409		  saved_state *p = new saved_state;
4410		  yyval.pstate = p;
4411		  p->x = current_position.x;
4412		  p->y = current_position.y;
4413		  p->dir = current_direction;
4414		  p->tbl = current_table;
4415		  p->prev = current_saved_state;
4416		  current_position.x = 0.0;
4417		  current_position.y = 0.0;
4418		  current_table = new PTABLE(place);
4419		  current_saved_state = p;
4420		  olist.append(make_mark_object());
4421		}
4422break;
4423case 86:
4424#line 711 "pic.y"
4425{
4426		  current_position.x = yyvsp[-2].pstate->x;
4427		  current_position.y = yyvsp[-2].pstate->y;
4428		  current_direction = yyvsp[-2].pstate->dir;
4429		  yyval.spec = new object_spec(BLOCK_OBJECT);
4430		  olist.wrap_up_block(& yyval.spec->oblist);
4431		  yyval.spec->tbl = current_table;
4432		  current_table = yyvsp[-2].pstate->tbl;
4433		  current_saved_state = yyvsp[-2].pstate->prev;
4434		  delete yyvsp[-2].pstate;
4435		}
4436break;
4437case 87:
4438#line 723 "pic.y"
4439{
4440		  yyval.spec = yyvsp[-2].spec;
4441		  yyval.spec->height = yyvsp[0].x;
4442		  yyval.spec->flags |= HAS_HEIGHT;
4443		}
4444break;
4445case 88:
4446#line 729 "pic.y"
4447{
4448		  yyval.spec = yyvsp[-2].spec;
4449		  yyval.spec->radius = yyvsp[0].x;
4450		  yyval.spec->flags |= HAS_RADIUS;
4451		}
4452break;
4453case 89:
4454#line 735 "pic.y"
4455{
4456		  yyval.spec = yyvsp[-2].spec;
4457		  yyval.spec->width = yyvsp[0].x;
4458		  yyval.spec->flags |= HAS_WIDTH;
4459		}
4460break;
4461case 90:
4462#line 741 "pic.y"
4463{
4464		  yyval.spec = yyvsp[-2].spec;
4465		  yyval.spec->radius = yyvsp[0].x/2.0;
4466		  yyval.spec->flags |= HAS_RADIUS;
4467		}
4468break;
4469case 91:
4470#line 747 "pic.y"
4471{
4472		  yyval.spec = yyvsp[-1].spec;
4473		  yyval.spec->flags |= HAS_SEGMENT;
4474		  switch (yyval.spec->dir) {
4475		  case UP_DIRECTION:
4476		    yyval.spec->segment_pos.y += yyvsp[0].x;
4477		    break;
4478		  case DOWN_DIRECTION:
4479		    yyval.spec->segment_pos.y -= yyvsp[0].x;
4480		    break;
4481		  case RIGHT_DIRECTION:
4482		    yyval.spec->segment_pos.x += yyvsp[0].x;
4483		    break;
4484		  case LEFT_DIRECTION:
4485		    yyval.spec->segment_pos.x -= yyvsp[0].x;
4486		    break;
4487		  }
4488		}
4489break;
4490case 92:
4491#line 766 "pic.y"
4492{
4493		  yyval.spec = yyvsp[-1].spec;
4494		  yyval.spec->dir = UP_DIRECTION;
4495		  yyval.spec->flags |= HAS_SEGMENT;
4496		  yyval.spec->segment_pos.y += yyval.spec->segment_height;
4497		}
4498break;
4499case 93:
4500#line 773 "pic.y"
4501{
4502		  yyval.spec = yyvsp[-2].spec;
4503		  yyval.spec->dir = UP_DIRECTION;
4504		  yyval.spec->flags |= HAS_SEGMENT;
4505		  yyval.spec->segment_pos.y += yyvsp[0].x;
4506		}
4507break;
4508case 94:
4509#line 780 "pic.y"
4510{
4511		  yyval.spec = yyvsp[-1].spec;
4512		  yyval.spec->dir = DOWN_DIRECTION;
4513		  yyval.spec->flags |= HAS_SEGMENT;
4514		  yyval.spec->segment_pos.y -= yyval.spec->segment_height;
4515		}
4516break;
4517case 95:
4518#line 787 "pic.y"
4519{
4520		  yyval.spec = yyvsp[-2].spec;
4521		  yyval.spec->dir = DOWN_DIRECTION;
4522		  yyval.spec->flags |= HAS_SEGMENT;
4523		  yyval.spec->segment_pos.y -= yyvsp[0].x;
4524		}
4525break;
4526case 96:
4527#line 794 "pic.y"
4528{
4529		  yyval.spec = yyvsp[-1].spec;
4530		  yyval.spec->dir = RIGHT_DIRECTION;
4531		  yyval.spec->flags |= HAS_SEGMENT;
4532		  yyval.spec->segment_pos.x += yyval.spec->segment_width;
4533		}
4534break;
4535case 97:
4536#line 801 "pic.y"
4537{
4538		  yyval.spec = yyvsp[-2].spec;
4539		  yyval.spec->dir = RIGHT_DIRECTION;
4540		  yyval.spec->flags |= HAS_SEGMENT;
4541		  yyval.spec->segment_pos.x += yyvsp[0].x;
4542		}
4543break;
4544case 98:
4545#line 808 "pic.y"
4546{
4547		  yyval.spec = yyvsp[-1].spec;
4548		  yyval.spec->dir = LEFT_DIRECTION;
4549		  yyval.spec->flags |= HAS_SEGMENT;
4550		  yyval.spec->segment_pos.x -= yyval.spec->segment_width;
4551		}
4552break;
4553case 99:
4554#line 815 "pic.y"
4555{
4556		  yyval.spec = yyvsp[-2].spec;
4557		  yyval.spec->dir = LEFT_DIRECTION;
4558		  yyval.spec->flags |= HAS_SEGMENT;
4559		  yyval.spec->segment_pos.x -= yyvsp[0].x;
4560		}
4561break;
4562case 100:
4563#line 822 "pic.y"
4564{
4565		  yyval.spec = yyvsp[-2].spec;
4566		  yyval.spec->flags |= HAS_FROM;
4567		  yyval.spec->from.x = yyvsp[0].pair.x;
4568		  yyval.spec->from.y = yyvsp[0].pair.y;
4569		}
4570break;
4571case 101:
4572#line 829 "pic.y"
4573{
4574		  yyval.spec = yyvsp[-2].spec;
4575		  if (yyval.spec->flags & HAS_SEGMENT)
4576		    yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
4577						   yyval.spec->segment_is_absolute,
4578						   yyval.spec->segment_list);
4579		  yyval.spec->flags |= HAS_SEGMENT;
4580		  yyval.spec->segment_pos.x = yyvsp[0].pair.x;
4581		  yyval.spec->segment_pos.y = yyvsp[0].pair.y;
4582		  yyval.spec->segment_is_absolute = 1;
4583		  yyval.spec->flags |= HAS_TO;
4584		  yyval.spec->to.x = yyvsp[0].pair.x;
4585		  yyval.spec->to.y = yyvsp[0].pair.y;
4586		}
4587break;
4588case 102:
4589#line 844 "pic.y"
4590{
4591		  yyval.spec = yyvsp[-2].spec;
4592		  yyval.spec->flags |= HAS_AT;
4593		  yyval.spec->at.x = yyvsp[0].pair.x;
4594		  yyval.spec->at.y = yyvsp[0].pair.y;
4595		  if (yyval.spec->type != ARC_OBJECT) {
4596		    yyval.spec->flags |= HAS_FROM;
4597		    yyval.spec->from.x = yyvsp[0].pair.x;
4598		    yyval.spec->from.y = yyvsp[0].pair.y;
4599		  }
4600		}
4601break;
4602case 103:
4603#line 856 "pic.y"
4604{
4605		  yyval.spec = yyvsp[-2].spec;
4606		  yyval.spec->flags |= HAS_WITH;
4607		  yyval.spec->with = yyvsp[0].pth;
4608		}
4609break;
4610case 104:
4611#line 862 "pic.y"
4612{
4613		  yyval.spec = yyvsp[-2].spec;
4614		  yyval.spec->flags |= HAS_WITH;
4615		  position pos;
4616		  pos.x = yyvsp[0].pair.x;
4617		  pos.y = yyvsp[0].pair.y;
4618		  yyval.spec->with = new path(pos);
4619		}
4620break;
4621case 105:
4622#line 871 "pic.y"
4623{
4624		  yyval.spec = yyvsp[-2].spec;
4625		  yyval.spec->flags |= HAS_SEGMENT;
4626		  yyval.spec->segment_pos.x += yyvsp[0].pair.x;
4627		  yyval.spec->segment_pos.y += yyvsp[0].pair.y;
4628		}
4629break;
4630case 106:
4631#line 878 "pic.y"
4632{
4633		  yyval.spec = yyvsp[-1].spec;
4634		  if (yyval.spec->flags & HAS_SEGMENT) {
4635		    yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
4636						   yyval.spec->segment_is_absolute,
4637						   yyval.spec->segment_list);
4638		    yyval.spec->flags &= ~HAS_SEGMENT;
4639		    yyval.spec->segment_pos.x = yyval.spec->segment_pos.y = 0.0;
4640		    yyval.spec->segment_is_absolute = 0;
4641		  }
4642		}
4643break;
4644case 107:
4645#line 890 "pic.y"
4646{
4647		  yyval.spec = yyvsp[-1].spec;	/* nothing*/
4648		}
4649break;
4650case 108:
4651#line 894 "pic.y"
4652{
4653		  yyval.spec = yyvsp[-1].spec;
4654		  yyval.spec->flags |= IS_DOTTED;
4655		  lookup_variable("dashwid", & yyval.spec->dash_width);
4656		}
4657break;
4658case 109:
4659#line 900 "pic.y"
4660{
4661		  yyval.spec = yyvsp[-2].spec;
4662		  yyval.spec->flags |= IS_DOTTED;
4663		  yyval.spec->dash_width = yyvsp[0].x;
4664		}
4665break;
4666case 110:
4667#line 906 "pic.y"
4668{
4669		  yyval.spec = yyvsp[-1].spec;
4670		  yyval.spec->flags |= IS_DASHED;
4671		  lookup_variable("dashwid", & yyval.spec->dash_width);
4672		}
4673break;
4674case 111:
4675#line 912 "pic.y"
4676{
4677		  yyval.spec = yyvsp[-2].spec;
4678		  yyval.spec->flags |= IS_DASHED;
4679		  yyval.spec->dash_width = yyvsp[0].x;
4680		}
4681break;
4682case 112:
4683#line 918 "pic.y"
4684{
4685		  yyval.spec = yyvsp[-1].spec;
4686		  yyval.spec->flags |= IS_DEFAULT_FILLED;
4687		}
4688break;
4689case 113:
4690#line 923 "pic.y"
4691{
4692		  yyval.spec = yyvsp[-2].spec;
4693		  yyval.spec->flags |= IS_FILLED;
4694		  yyval.spec->fill = yyvsp[0].x;
4695		}
4696break;
4697case 114:
4698#line 929 "pic.y"
4699{
4700		  yyval.spec = yyvsp[-2].spec;
4701		  yyval.spec->flags |= (IS_SHADED | IS_FILLED);
4702		  yyval.spec->shaded = new char[strlen(yyvsp[0].lstr.str)+1];
4703		  strcpy(yyval.spec->shaded, yyvsp[0].lstr.str);
4704		}
4705break;
4706case 115:
4707#line 936 "pic.y"
4708{
4709		  yyval.spec = yyvsp[-2].spec;
4710		  yyval.spec->flags |= (IS_SHADED | IS_OUTLINED | IS_FILLED);
4711		  yyval.spec->shaded = new char[strlen(yyvsp[0].lstr.str)+1];
4712		  strcpy(yyval.spec->shaded, yyvsp[0].lstr.str);
4713		  yyval.spec->outlined = new char[strlen(yyvsp[0].lstr.str)+1];
4714		  strcpy(yyval.spec->outlined, yyvsp[0].lstr.str);
4715		}
4716break;
4717case 116:
4718#line 945 "pic.y"
4719{
4720		  yyval.spec = yyvsp[-2].spec;
4721		  yyval.spec->flags |= IS_OUTLINED;
4722		  yyval.spec->outlined = new char[strlen(yyvsp[0].lstr.str)+1];
4723		  strcpy(yyval.spec->outlined, yyvsp[0].lstr.str);
4724		}
4725break;
4726case 117:
4727#line 952 "pic.y"
4728{
4729		  yyval.spec = yyvsp[-1].spec;
4730		  /* line chop chop means line chop 0 chop 0*/
4731		  if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
4732		    yyval.spec->flags |= IS_CHOPPED;
4733		    yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
4734		    yyval.spec->start_chop = yyval.spec->end_chop = 0.0;
4735		  }
4736		  else if (yyval.spec->flags & IS_CHOPPED) {
4737		    yyval.spec->end_chop = 0.0;
4738		  }
4739		  else {
4740		    yyval.spec->flags |= IS_DEFAULT_CHOPPED;
4741		  }
4742		}
4743break;
4744case 118:
4745#line 968 "pic.y"
4746{
4747		  yyval.spec = yyvsp[-2].spec;
4748		  if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
4749		    yyval.spec->flags |= IS_CHOPPED;
4750		    yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
4751		    yyval.spec->start_chop = 0.0;
4752		    yyval.spec->end_chop = yyvsp[0].x;
4753		  }
4754		  else if (yyval.spec->flags & IS_CHOPPED) {
4755		    yyval.spec->end_chop = yyvsp[0].x;
4756		  }
4757		  else {
4758		    yyval.spec->start_chop = yyval.spec->end_chop = yyvsp[0].x;
4759		    yyval.spec->flags |= IS_CHOPPED;
4760		  }
4761		}
4762break;
4763case 119:
4764#line 985 "pic.y"
4765{
4766		  yyval.spec = yyvsp[-1].spec;
4767		  yyval.spec->flags |= IS_SAME;
4768		}
4769break;
4770case 120:
4771#line 990 "pic.y"
4772{
4773		  yyval.spec = yyvsp[-1].spec;
4774		  yyval.spec->flags |= IS_INVISIBLE;
4775		}
4776break;
4777case 121:
4778#line 995 "pic.y"
4779{
4780		  yyval.spec = yyvsp[-1].spec;
4781		  yyval.spec->flags |= HAS_LEFT_ARROW_HEAD;
4782		}
4783break;
4784case 122:
4785#line 1000 "pic.y"
4786{
4787		  yyval.spec = yyvsp[-1].spec;
4788		  yyval.spec->flags |= HAS_RIGHT_ARROW_HEAD;
4789		}
4790break;
4791case 123:
4792#line 1005 "pic.y"
4793{
4794		  yyval.spec = yyvsp[-1].spec;
4795		  yyval.spec->flags |= (HAS_LEFT_ARROW_HEAD|HAS_RIGHT_ARROW_HEAD);
4796		}
4797break;
4798case 124:
4799#line 1010 "pic.y"
4800{
4801		  yyval.spec = yyvsp[-1].spec;
4802		  yyval.spec->flags |= IS_CLOCKWISE;
4803		}
4804break;
4805case 125:
4806#line 1015 "pic.y"
4807{
4808		  yyval.spec = yyvsp[-1].spec;
4809		  yyval.spec->flags &= ~IS_CLOCKWISE;
4810		}
4811break;
4812case 126:
4813#line 1020 "pic.y"
4814{
4815		  yyval.spec = yyvsp[-1].spec;
4816		  text_item **p;
4817		  for (p = & yyval.spec->text; *p; p = &(*p)->next)
4818		    ;
4819		  *p = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
4820		}
4821break;
4822case 127:
4823#line 1028 "pic.y"
4824{
4825		  yyval.spec = yyvsp[-1].spec;
4826		  if (yyval.spec->text) {
4827		    text_item *p;
4828		    for (p = yyval.spec->text; p->next; p = p->next)
4829		      ;
4830		    p->adj.h = LEFT_ADJUST;
4831		  }
4832		}
4833break;
4834case 128:
4835#line 1038 "pic.y"
4836{
4837		  yyval.spec = yyvsp[-1].spec;
4838		  if (yyval.spec->text) {
4839		    text_item *p;
4840		    for (p = yyval.spec->text; p->next; p = p->next)
4841		      ;
4842		    p->adj.h = RIGHT_ADJUST;
4843		  }
4844		}
4845break;
4846case 129:
4847#line 1048 "pic.y"
4848{
4849		  yyval.spec = yyvsp[-1].spec;
4850		  if (yyval.spec->text) {
4851		    text_item *p;
4852		    for (p = yyval.spec->text; p->next; p = p->next)
4853		      ;
4854		    p->adj.v = ABOVE_ADJUST;
4855		  }
4856		}
4857break;
4858case 130:
4859#line 1058 "pic.y"
4860{
4861		  yyval.spec = yyvsp[-1].spec;
4862		  if (yyval.spec->text) {
4863		    text_item *p;
4864		    for (p = yyval.spec->text; p->next; p = p->next)
4865		      ;
4866		    p->adj.v = BELOW_ADJUST;
4867		  }
4868		}
4869break;
4870case 131:
4871#line 1068 "pic.y"
4872{
4873		  yyval.spec = yyvsp[-2].spec;
4874		  yyval.spec->flags |= HAS_THICKNESS;
4875		  yyval.spec->thickness = yyvsp[0].x;
4876		}
4877break;
4878case 132:
4879#line 1074 "pic.y"
4880{
4881		  yyval.spec = yyvsp[-1].spec;
4882		  yyval.spec->flags |= IS_ALIGNED;
4883		}
4884break;
4885case 133:
4886#line 1082 "pic.y"
4887{ yyval.lstr = yyvsp[0].lstr; }
4888break;
4889case 134:
4890#line 1084 "pic.y"
4891{
4892		  yyval.lstr.filename = yyvsp[-2].lstr.filename;
4893		  yyval.lstr.lineno = yyvsp[-2].lstr.lineno;
4894		  yyval.lstr.str = do_sprintf(yyvsp[-2].lstr.str, yyvsp[-1].dv.v, yyvsp[-1].dv.nv);
4895		  a_delete yyvsp[-1].dv.v;
4896		  a_delete yyvsp[-2].lstr.str;
4897		}
4898break;
4899case 135:
4900#line 1095 "pic.y"
4901{
4902		  yyval.dv.v = 0;
4903		  yyval.dv.nv = 0;
4904		  yyval.dv.maxv = 0;
4905		}
4906break;
4907case 136:
4908#line 1101 "pic.y"
4909{
4910		  yyval.dv = yyvsp[-2].dv;
4911		  if (yyval.dv.nv >= yyval.dv.maxv) {
4912		    if (yyval.dv.nv == 0) {
4913		      yyval.dv.v = new double[4];
4914		      yyval.dv.maxv = 4;
4915		    }
4916		    else {
4917		      double *oldv = yyval.dv.v;
4918		      yyval.dv.maxv *= 2;
4919#if 0
4920		      yyval.dv.v = new double[yyval.dv.maxv];
4921		      memcpy(yyval.dv.v, oldv, yyval.dv.nv*sizeof(double));
4922#else
4923		      /* workaround for bug in Compaq C++ V6.5-033*/
4924		      /* for Compaq Tru64 UNIX V5.1A (Rev. 1885)*/
4925		      double *foo = new double[yyval.dv.maxv];
4926		      memcpy(foo, oldv, yyval.dv.nv*sizeof(double));
4927		      yyval.dv.v = foo;
4928#endif
4929		      a_delete oldv;
4930		    }
4931		  }
4932		  yyval.dv.v[yyval.dv.nv] = yyvsp[0].x;
4933		  yyval.dv.nv += 1;
4934		}
4935break;
4936case 137:
4937#line 1131 "pic.y"
4938{ yyval.pair = yyvsp[0].pair; }
4939break;
4940case 138:
4941#line 1133 "pic.y"
4942{
4943		  position pos = yyvsp[0].pl;
4944		  yyval.pair.x = pos.x;
4945		  yyval.pair.y = pos.y;
4946		}
4947break;
4948case 139:
4949#line 1139 "pic.y"
4950{
4951		  position pos = yyvsp[-1].pl;
4952		  yyval.pair.x = pos.x;
4953		  yyval.pair.y = pos.y;
4954		}
4955break;
4956case 140:
4957#line 1148 "pic.y"
4958{ yyval.pair = yyvsp[0].pair; }
4959break;
4960case 141:
4961#line 1150 "pic.y"
4962{
4963		  yyval.pair.x = yyvsp[-2].pair.x + yyvsp[0].pair.x;
4964		  yyval.pair.y = yyvsp[-2].pair.y + yyvsp[0].pair.y;
4965		}
4966break;
4967case 142:
4968#line 1155 "pic.y"
4969{
4970		  yyval.pair.x = yyvsp[-3].pair.x + yyvsp[-1].pair.x;
4971		  yyval.pair.y = yyvsp[-3].pair.y + yyvsp[-1].pair.y;
4972		}
4973break;
4974case 143:
4975#line 1160 "pic.y"
4976{
4977		  yyval.pair.x = yyvsp[-2].pair.x - yyvsp[0].pair.x;
4978		  yyval.pair.y = yyvsp[-2].pair.y - yyvsp[0].pair.y;
4979		}
4980break;
4981case 144:
4982#line 1165 "pic.y"
4983{
4984		  yyval.pair.x = yyvsp[-3].pair.x - yyvsp[-1].pair.x;
4985		  yyval.pair.y = yyvsp[-3].pair.y - yyvsp[-1].pair.y;
4986		}
4987break;
4988case 145:
4989#line 1170 "pic.y"
4990{
4991		  yyval.pair.x = yyvsp[-3].pair.x;
4992		  yyval.pair.y = yyvsp[-1].pair.y;
4993		}
4994break;
4995case 146:
4996#line 1175 "pic.y"
4997{
4998		  yyval.pair.x = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.x + yyvsp[-4].x*yyvsp[0].pair.x;
4999		  yyval.pair.y = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.y + yyvsp[-4].x*yyvsp[0].pair.y;
5000		}
5001break;
5002case 147:
5003#line 1180 "pic.y"
5004{
5005		  yyval.pair.x = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.x + yyvsp[-5].x*yyvsp[-1].pair.x;
5006		  yyval.pair.y = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.y + yyvsp[-5].x*yyvsp[-1].pair.y;
5007		}
5008break;
5009case 148:
5010#line 1185 "pic.y"
5011{
5012		  yyval.pair.x = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.x + yyvsp[-5].x*yyvsp[-1].pair.x;
5013		  yyval.pair.y = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.y + yyvsp[-5].x*yyvsp[-1].pair.y;
5014		}
5015break;
5016case 149:
5017#line 1190 "pic.y"
5018{
5019		  yyval.pair.x = (1.0 - yyvsp[-6].x)*yyvsp[-4].pair.x + yyvsp[-6].x*yyvsp[-2].pair.x;
5020		  yyval.pair.y = (1.0 - yyvsp[-6].x)*yyvsp[-4].pair.y + yyvsp[-6].x*yyvsp[-2].pair.y;
5021		}
5022break;
5023case 152:
5024#line 1203 "pic.y"
5025{
5026		  yyval.pair.x = yyvsp[-2].x;
5027		  yyval.pair.y = yyvsp[0].x;
5028		}
5029break;
5030case 153:
5031#line 1208 "pic.y"
5032{ yyval.pair = yyvsp[-1].pair; }
5033break;
5034case 154:
5035#line 1214 "pic.y"
5036{ yyval.pl = yyvsp[0].pl; }
5037break;
5038case 155:
5039#line 1216 "pic.y"
5040{
5041		  path pth(yyvsp[0].crn);
5042		  if (!pth.follow(yyvsp[-1].pl, & yyval.pl))
5043		    YYABORT;
5044		}
5045break;
5046case 156:
5047#line 1222 "pic.y"
5048{
5049		  path pth(yyvsp[-1].crn);
5050		  if (!pth.follow(yyvsp[0].pl, & yyval.pl))
5051		    YYABORT;
5052		}
5053break;
5054case 157:
5055#line 1228 "pic.y"
5056{
5057		  path pth(yyvsp[-2].crn);
5058		  if (!pth.follow(yyvsp[0].pl, & yyval.pl))
5059		    YYABORT;
5060		}
5061break;
5062case 158:
5063#line 1234 "pic.y"
5064{
5065		  yyval.pl.x = current_position.x;
5066		  yyval.pl.y = current_position.y;
5067		  yyval.pl.obj = 0;
5068		}
5069break;
5070case 159:
5071#line 1243 "pic.y"
5072{
5073		  place *p = lookup_label(yyvsp[0].str);
5074		  if (!p) {
5075		    lex_error("there is no place `%1'", yyvsp[0].str);
5076		    YYABORT;
5077		  }
5078		  yyval.pl = *p;
5079		  a_delete yyvsp[0].str;
5080		}
5081break;
5082case 160:
5083#line 1253 "pic.y"
5084{ yyval.pl.obj = yyvsp[0].obj; }
5085break;
5086case 161:
5087#line 1255 "pic.y"
5088{
5089		  path pth(yyvsp[0].str);
5090		  if (!pth.follow(yyvsp[-2].pl, & yyval.pl))
5091		    YYABORT;
5092		}
5093break;
5094case 162:
5095#line 1264 "pic.y"
5096{ yyval.n = yyvsp[0].n; }
5097break;
5098case 163:
5099#line 1266 "pic.y"
5100{
5101		  /* XXX Check for overflow (and non-integers?).*/
5102		  yyval.n = (int)yyvsp[-1].x;
5103		}
5104break;
5105case 164:
5106#line 1274 "pic.y"
5107{ yyval.n = 1; }
5108break;
5109case 165:
5110#line 1276 "pic.y"
5111{ yyval.n = yyvsp[-1].n; }
5112break;
5113case 166:
5114#line 1281 "pic.y"
5115{
5116		  int count = 0;
5117		  object *p;
5118		  for (p = olist.head; p != 0; p = p->next)
5119		    if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
5120		      yyval.obj = p;
5121		      break;
5122		    }
5123		  if (p == 0) {
5124		    lex_error("there is no %1%2 %3", yyvsp[-1].n, ordinal_postfix(yyvsp[-1].n),
5125			      object_type_name(yyvsp[0].obtype));
5126		    YYABORT;
5127		  }
5128		}
5129break;
5130case 167:
5131#line 1296 "pic.y"
5132{
5133		  int count = 0;
5134		  object *p;
5135		  for (p = olist.tail; p != 0; p = p->prev)
5136		    if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
5137		      yyval.obj = p;
5138		      break;
5139		    }
5140		  if (p == 0) {
5141		    lex_error("there is no %1%2 last %3", yyvsp[-1].n,
5142			      ordinal_postfix(yyvsp[-1].n), object_type_name(yyvsp[0].obtype));
5143		    YYABORT;
5144		  }
5145		}
5146break;
5147case 168:
5148#line 1314 "pic.y"
5149{ yyval.obtype = BOX_OBJECT; }
5150break;
5151case 169:
5152#line 1316 "pic.y"
5153{ yyval.obtype = CIRCLE_OBJECT; }
5154break;
5155case 170:
5156#line 1318 "pic.y"
5157{ yyval.obtype = ELLIPSE_OBJECT; }
5158break;
5159case 171:
5160#line 1320 "pic.y"
5161{ yyval.obtype = ARC_OBJECT; }
5162break;
5163case 172:
5164#line 1322 "pic.y"
5165{ yyval.obtype = LINE_OBJECT; }
5166break;
5167case 173:
5168#line 1324 "pic.y"
5169{ yyval.obtype = ARROW_OBJECT; }
5170break;
5171case 174:
5172#line 1326 "pic.y"
5173{ yyval.obtype = SPLINE_OBJECT; }
5174break;
5175case 175:
5176#line 1328 "pic.y"
5177{ yyval.obtype = BLOCK_OBJECT; }
5178break;
5179case 176:
5180#line 1330 "pic.y"
5181{ yyval.obtype = TEXT_OBJECT; }
5182break;
5183case 177:
5184#line 1335 "pic.y"
5185{ yyval.pth = new path(yyvsp[0].str); }
5186break;
5187case 178:
5188#line 1337 "pic.y"
5189{
5190		  yyval.pth = yyvsp[-2].pth;
5191		  yyval.pth->append(yyvsp[0].str);
5192		}
5193break;
5194case 179:
5195#line 1345 "pic.y"
5196{ yyval.pth = new path(yyvsp[0].crn); }
5197break;
5198case 180:
5199#line 1349 "pic.y"
5200{ yyval.pth = yyvsp[0].pth; }
5201break;
5202case 181:
5203#line 1351 "pic.y"
5204{
5205		  yyval.pth = yyvsp[-1].pth;
5206		  yyval.pth->append(yyvsp[0].crn);
5207		}
5208break;
5209case 182:
5210#line 1359 "pic.y"
5211{ yyval.pth = yyvsp[0].pth; }
5212break;
5213case 183:
5214#line 1361 "pic.y"
5215{
5216		  yyval.pth = yyvsp[-3].pth;
5217		  yyval.pth->set_ypath(yyvsp[-1].pth);
5218		}
5219break;
5220case 184:
5221#line 1367 "pic.y"
5222{
5223		  lex_warning("`%1%2 last %3' in `with' argument ignored",
5224			      yyvsp[-3].n, ordinal_postfix(yyvsp[-3].n), object_type_name(yyvsp[-1].obtype));
5225		  yyval.pth = yyvsp[0].pth;
5226		}
5227break;
5228case 185:
5229#line 1373 "pic.y"
5230{
5231		  lex_warning("`last %1' in `with' argument ignored",
5232			      object_type_name(yyvsp[-1].obtype));
5233		  yyval.pth = yyvsp[0].pth;
5234		}
5235break;
5236case 186:
5237#line 1379 "pic.y"
5238{
5239		  lex_warning("`%1%2 %3' in `with' argument ignored",
5240			      yyvsp[-2].n, ordinal_postfix(yyvsp[-2].n), object_type_name(yyvsp[-1].obtype));
5241		  yyval.pth = yyvsp[0].pth;
5242		}
5243break;
5244case 187:
5245#line 1385 "pic.y"
5246{
5247		  lex_warning("initial `%1' in `with' argument ignored", yyvsp[-1].str);
5248		  a_delete yyvsp[-1].str;
5249		  yyval.pth = yyvsp[0].pth;
5250		}
5251break;
5252case 188:
5253#line 1394 "pic.y"
5254{ yyval.crn = &object::north; }
5255break;
5256case 189:
5257#line 1396 "pic.y"
5258{ yyval.crn = &object::east; }
5259break;
5260case 190:
5261#line 1398 "pic.y"
5262{ yyval.crn = &object::west; }
5263break;
5264case 191:
5265#line 1400 "pic.y"
5266{ yyval.crn = &object::south; }
5267break;
5268case 192:
5269#line 1402 "pic.y"
5270{ yyval.crn = &object::north_east; }
5271break;
5272case 193:
5273#line 1404 "pic.y"
5274{ yyval.crn = &object:: south_east; }
5275break;
5276case 194:
5277#line 1406 "pic.y"
5278{ yyval.crn = &object::north_west; }
5279break;
5280case 195:
5281#line 1408 "pic.y"
5282{ yyval.crn = &object::south_west; }
5283break;
5284case 196:
5285#line 1410 "pic.y"
5286{ yyval.crn = &object::center; }
5287break;
5288case 197:
5289#line 1412 "pic.y"
5290{ yyval.crn = &object::start; }
5291break;
5292case 198:
5293#line 1414 "pic.y"
5294{ yyval.crn = &object::end; }
5295break;
5296case 199:
5297#line 1416 "pic.y"
5298{ yyval.crn = &object::north; }
5299break;
5300case 200:
5301#line 1418 "pic.y"
5302{ yyval.crn = &object::south; }
5303break;
5304case 201:
5305#line 1420 "pic.y"
5306{ yyval.crn = &object::west; }
5307break;
5308case 202:
5309#line 1422 "pic.y"
5310{ yyval.crn = &object::east; }
5311break;
5312case 203:
5313#line 1424 "pic.y"
5314{ yyval.crn = &object::north_west; }
5315break;
5316case 204:
5317#line 1426 "pic.y"
5318{ yyval.crn = &object::south_west; }
5319break;
5320case 205:
5321#line 1428 "pic.y"
5322{ yyval.crn = &object::north_east; }
5323break;
5324case 206:
5325#line 1430 "pic.y"
5326{ yyval.crn = &object::south_east; }
5327break;
5328case 207:
5329#line 1432 "pic.y"
5330{ yyval.crn = &object::west; }
5331break;
5332case 208:
5333#line 1434 "pic.y"
5334{ yyval.crn = &object::east; }
5335break;
5336case 209:
5337#line 1436 "pic.y"
5338{ yyval.crn = &object::north_west; }
5339break;
5340case 210:
5341#line 1438 "pic.y"
5342{ yyval.crn = &object::south_west; }
5343break;
5344case 211:
5345#line 1440 "pic.y"
5346{ yyval.crn = &object::north_east; }
5347break;
5348case 212:
5349#line 1442 "pic.y"
5350{ yyval.crn = &object::south_east; }
5351break;
5352case 213:
5353#line 1444 "pic.y"
5354{ yyval.crn = &object::north; }
5355break;
5356case 214:
5357#line 1446 "pic.y"
5358{ yyval.crn = &object::south; }
5359break;
5360case 215:
5361#line 1448 "pic.y"
5362{ yyval.crn = &object::east; }
5363break;
5364case 216:
5365#line 1450 "pic.y"
5366{ yyval.crn = &object::west; }
5367break;
5368case 217:
5369#line 1452 "pic.y"
5370{ yyval.crn = &object::center; }
5371break;
5372case 218:
5373#line 1454 "pic.y"
5374{ yyval.crn = &object::start; }
5375break;
5376case 219:
5377#line 1456 "pic.y"
5378{ yyval.crn = &object::end; }
5379break;
5380case 220:
5381#line 1461 "pic.y"
5382{
5383		  if (!lookup_variable(yyvsp[0].str, & yyval.x)) {
5384		    lex_error("there is no variable `%1'", yyvsp[0].str);
5385		    YYABORT;
5386		  }
5387		  a_delete yyvsp[0].str;
5388		}
5389break;
5390case 221:
5391#line 1469 "pic.y"
5392{ yyval.x = yyvsp[0].x; }
5393break;
5394case 222:
5395#line 1471 "pic.y"
5396{
5397		  if (yyvsp[-1].pl.obj != 0)
5398		    yyval.x = yyvsp[-1].pl.obj->origin().x;
5399		  else
5400		    yyval.x = yyvsp[-1].pl.x;
5401		}
5402break;
5403case 223:
5404#line 1478 "pic.y"
5405{
5406		  if (yyvsp[-1].pl.obj != 0)
5407		    yyval.x = yyvsp[-1].pl.obj->origin().y;
5408		  else
5409		    yyval.x = yyvsp[-1].pl.y;
5410		}
5411break;
5412case 224:
5413#line 1485 "pic.y"
5414{
5415		  if (yyvsp[-1].pl.obj != 0)
5416		    yyval.x = yyvsp[-1].pl.obj->height();
5417		  else
5418		    yyval.x = 0.0;
5419		}
5420break;
5421case 225:
5422#line 1492 "pic.y"
5423{
5424		  if (yyvsp[-1].pl.obj != 0)
5425		    yyval.x = yyvsp[-1].pl.obj->width();
5426		  else
5427		    yyval.x = 0.0;
5428		}
5429break;
5430case 226:
5431#line 1499 "pic.y"
5432{
5433		  if (yyvsp[-1].pl.obj != 0)
5434		    yyval.x = yyvsp[-1].pl.obj->radius();
5435		  else
5436		    yyval.x = 0.0;
5437		}
5438break;
5439case 227:
5440#line 1506 "pic.y"
5441{ yyval.x = yyvsp[-2].x + yyvsp[0].x; }
5442break;
5443case 228:
5444#line 1508 "pic.y"
5445{ yyval.x = yyvsp[-2].x - yyvsp[0].x; }
5446break;
5447case 229:
5448#line 1510 "pic.y"
5449{ yyval.x = yyvsp[-2].x * yyvsp[0].x; }
5450break;
5451case 230:
5452#line 1512 "pic.y"
5453{
5454		  if (yyvsp[0].x == 0.0) {
5455		    lex_error("division by zero");
5456		    YYABORT;
5457		  }
5458		  yyval.x = yyvsp[-2].x/yyvsp[0].x;
5459		}
5460break;
5461case 231:
5462#line 1520 "pic.y"
5463{
5464		  if (yyvsp[0].x == 0.0) {
5465		    lex_error("modulus by zero");
5466		    YYABORT;
5467		  }
5468		  yyval.x = fmod(yyvsp[-2].x, yyvsp[0].x);
5469		}
5470break;
5471case 232:
5472#line 1528 "pic.y"
5473{
5474		  errno = 0;
5475		  yyval.x = pow(yyvsp[-2].x, yyvsp[0].x);
5476		  if (errno == EDOM) {
5477		    lex_error("arguments to `^' operator out of domain");
5478		    YYABORT;
5479		  }
5480		  if (errno == ERANGE) {
5481		    lex_error("result of `^' operator out of range");
5482		    YYABORT;
5483		  }
5484		}
5485break;
5486case 233:
5487#line 1541 "pic.y"
5488{ yyval.x = -yyvsp[0].x; }
5489break;
5490case 234:
5491#line 1543 "pic.y"
5492{ yyval.x = yyvsp[-1].x; }
5493break;
5494case 235:
5495#line 1545 "pic.y"
5496{
5497		  errno = 0;
5498		  yyval.x = sin(yyvsp[-1].x);
5499		  if (errno == ERANGE) {
5500		    lex_error("sin result out of range");
5501		    YYABORT;
5502		  }
5503		}
5504break;
5505case 236:
5506#line 1554 "pic.y"
5507{
5508		  errno = 0;
5509		  yyval.x = cos(yyvsp[-1].x);
5510		  if (errno == ERANGE) {
5511		    lex_error("cos result out of range");
5512		    YYABORT;
5513		  }
5514		}
5515break;
5516case 237:
5517#line 1563 "pic.y"
5518{
5519		  errno = 0;
5520		  yyval.x = atan2(yyvsp[-3].x, yyvsp[-1].x);
5521		  if (errno == EDOM) {
5522		    lex_error("atan2 argument out of domain");
5523		    YYABORT;
5524		  }
5525		  if (errno == ERANGE) {
5526		    lex_error("atan2 result out of range");
5527		    YYABORT;
5528		  }
5529		}
5530break;
5531case 238:
5532#line 1576 "pic.y"
5533{
5534		  errno = 0;
5535		  yyval.x = log10(yyvsp[-1].x);
5536		  if (errno == ERANGE) {
5537		    lex_error("log result out of range");
5538		    YYABORT;
5539		  }
5540		}
5541break;
5542case 239:
5543#line 1585 "pic.y"
5544{
5545		  errno = 0;
5546		  yyval.x = pow(10.0, yyvsp[-1].x);
5547		  if (errno == ERANGE) {
5548		    lex_error("exp result out of range");
5549		    YYABORT;
5550		  }
5551		}
5552break;
5553case 240:
5554#line 1594 "pic.y"
5555{
5556		  errno = 0;
5557		  yyval.x = sqrt(yyvsp[-1].x);
5558		  if (errno == EDOM) {
5559		    lex_error("sqrt argument out of domain");
5560		    YYABORT;
5561		  }
5562		}
5563break;
5564case 241:
5565#line 1603 "pic.y"
5566{ yyval.x = yyvsp[-3].x > yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
5567break;
5568case 242:
5569#line 1605 "pic.y"
5570{ yyval.x = yyvsp[-3].x < yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
5571break;
5572case 243:
5573#line 1607 "pic.y"
5574{ yyval.x = floor(yyvsp[-1].x); }
5575break;
5576case 244:
5577#line 1609 "pic.y"
5578{ yyval.x = 1.0 + floor(((rand()&0x7fff)/double(0x7fff))*yyvsp[-1].x); }
5579break;
5580case 245:
5581#line 1611 "pic.y"
5582{
5583		  /* return a random number in the range [0,1) */
5584		  /* portable, but not very random */
5585		  yyval.x = (rand() & 0x7fff) / double(0x8000);
5586		}
5587break;
5588case 246:
5589#line 1617 "pic.y"
5590{
5591		  yyval.x = 0;
5592		  srand((unsigned int)yyvsp[-1].x);
5593		}
5594break;
5595case 247:
5596#line 1622 "pic.y"
5597{ yyval.x = (yyvsp[-2].x < yyvsp[0].x); }
5598break;
5599case 248:
5600#line 1624 "pic.y"
5601{ yyval.x = (yyvsp[-2].x <= yyvsp[0].x); }
5602break;
5603case 249:
5604#line 1626 "pic.y"
5605{ yyval.x = (yyvsp[-2].x > yyvsp[0].x); }
5606break;
5607case 250:
5608#line 1628 "pic.y"
5609{ yyval.x = (yyvsp[-2].x >= yyvsp[0].x); }
5610break;
5611case 251:
5612#line 1630 "pic.y"
5613{ yyval.x = (yyvsp[-2].x == yyvsp[0].x); }
5614break;
5615case 252:
5616#line 1632 "pic.y"
5617{ yyval.x = (yyvsp[-2].x != yyvsp[0].x); }
5618break;
5619case 253:
5620#line 1634 "pic.y"
5621{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
5622break;
5623case 254:
5624#line 1636 "pic.y"
5625{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
5626break;
5627case 255:
5628#line 1638 "pic.y"
5629{ yyval.x = (yyvsp[0].x == 0.0); }
5630break;
5631#line 5632 "y.tab.c"
5632    }
5633    yyssp -= yym;
5634    yystate = *yyssp;
5635    yyvsp -= yym;
5636    yym = yylhs[yyn];
5637    if (yystate == 0 && yym == 0)
5638    {
5639#if YYDEBUG
5640        if (yydebug)
5641            printf("%sdebug: after reduction, shifting from state 0 to\
5642 state %d\n", YYPREFIX, YYFINAL);
5643#endif
5644        yystate = YYFINAL;
5645        *++yyssp = YYFINAL;
5646        *++yyvsp = yyval;
5647        if (yychar < 0)
5648        {
5649            if ((yychar = yylex()) < 0) yychar = 0;
5650#if YYDEBUG
5651            if (yydebug)
5652            {
5653                yys = 0;
5654                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
5655                if (!yys) yys = "illegal-symbol";
5656                printf("%sdebug: state %d, reading %d (%s)\n",
5657                        YYPREFIX, YYFINAL, yychar, yys);
5658            }
5659#endif
5660        }
5661        if (yychar == 0) goto yyaccept;
5662        goto yyloop;
5663    }
5664    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
5665            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
5666        yystate = yytable[yyn];
5667    else
5668        yystate = yydgoto[yym];
5669#if YYDEBUG
5670    if (yydebug)
5671        printf("%sdebug: after reduction, shifting from state %d \
5672to state %d\n", YYPREFIX, *yyssp, yystate);
5673#endif
5674    if (yyssp >= yyss + yystacksize - 1)
5675    {
5676        goto yyoverflow;
5677    }
5678    *++yyssp = yystate;
5679    *++yyvsp = yyval;
5680    goto yyloop;
5681yyoverflow:
5682    yyerror("yacc stack overflow");
5683yyabort:
5684    return (1);
5685yyaccept:
5686    return (0);
5687}
5688