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