1 /* A lexical scanner generated by flex */
2 
3 /* Scanner skeleton version:
4  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
5  */
6 
7 #define FLEX_SCANNER
8 #define YY_FLEX_MAJOR_VERSION 2
9 #define YY_FLEX_MINOR_VERSION 5
10 
11 #include <stdio.h>
12 #include <unistd.h>
13 
14 
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
16 #ifdef c_plusplus
17 #ifndef __cplusplus
18 #define __cplusplus
19 #endif
20 #endif
21 
22 
23 #ifdef __cplusplus
24 
25 #include <stdlib.h>
26 
27 /* Use prototypes in function declarations. */
28 #define YY_USE_PROTOS
29 
30 /* The "const" storage-class-modifier is valid. */
31 #define YY_USE_CONST
32 
33 #else	/* ! __cplusplus */
34 
35 #if __STDC__
36 
37 #define YY_USE_PROTOS
38 #define YY_USE_CONST
39 
40 #endif	/* __STDC__ */
41 #endif	/* ! __cplusplus */
42 
43 #ifdef __TURBOC__
44  #pragma warn -rch
45  #pragma warn -use
46 #include <io.h>
47 #include <stdlib.h>
48 #define YY_USE_CONST
49 #define YY_USE_PROTOS
50 #endif
51 
52 #ifdef YY_USE_CONST
53 #define yyconst const
54 #else
55 #define yyconst
56 #endif
57 
58 
59 #ifdef YY_USE_PROTOS
60 #define YY_PROTO(proto) proto
61 #else
62 #define YY_PROTO(proto) ()
63 #endif
64 
65 /* Returned upon end-of-file. */
66 #define YY_NULL 0
67 
68 /* Promotes a possibly negative, possibly signed char to an unsigned
69  * integer for use as an array index.  If the signed char is negative,
70  * we want to instead treat it as an 8-bit unsigned char, hence the
71  * double cast.
72  */
73 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
74 
75 /* Enter a start condition.  This macro really ought to take a parameter,
76  * but we do it the disgusting crufty way forced on us by the ()-less
77  * definition of BEGIN.
78  */
79 #define BEGIN yy_start = 1 + 2 *
80 
81 /* Translate the current start state into a value that can be later handed
82  * to BEGIN to return to the state.  The YYSTATE alias is for lex
83  * compatibility.
84  */
85 #define YY_START ((yy_start - 1) / 2)
86 #define YYSTATE YY_START
87 
88 /* Action number for EOF rule of a given start state. */
89 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
90 
91 /* Special action meaning "start processing a new file". */
92 #define YY_NEW_FILE yyrestart( yyin )
93 
94 #define YY_END_OF_BUFFER_CHAR 0
95 
96 /* Size of default input buffer. */
97 #define YY_BUF_SIZE 16384
98 
99 typedef struct yy_buffer_state *YY_BUFFER_STATE;
100 
101 extern int yyleng;
102 extern FILE *yyin, *yyout;
103 
104 #define EOB_ACT_CONTINUE_SCAN 0
105 #define EOB_ACT_END_OF_FILE 1
106 #define EOB_ACT_LAST_MATCH 2
107 
108 /* The funky do-while in the following #define is used to turn the definition
109  * int a single C statement (which needs a semi-colon terminator).  This
110  * avoids problems with code like:
111  *
112  * 	if ( condition_holds )
113  *		yyless( 5 );
114  *	else
115  *		do_something_else();
116  *
117  * Prior to using the do-while the compiler would get upset at the
118  * "else" because it interpreted the "if" statement as being all
119  * done when it reached the ';' after the yyless() call.
120  */
121 
122 /* Return all but the first 'n' matched characters back to the input stream. */
123 
124 #define yyless(n) \
125 	do \
126 		{ \
127 		/* Undo effects of setting up yytext. */ \
128 		*yy_cp = yy_hold_char; \
129 		YY_RESTORE_YY_MORE_OFFSET \
130 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
131 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
132 		} \
133 	while ( 0 )
134 
135 #define unput(c) yyunput( c, yytext_ptr )
136 
137 /* The following is because we cannot portably get our hands on size_t
138  * (without autoconf's help, which isn't available because we want
139  * flex-generated scanners to compile on their own).
140  */
141 typedef unsigned int yy_size_t;
142 
143 
144 struct yy_buffer_state
145 	{
146 	FILE *yy_input_file;
147 
148 	char *yy_ch_buf;		/* input buffer */
149 	char *yy_buf_pos;		/* current position in input buffer */
150 
151 	/* Size of input buffer in bytes, not including room for EOB
152 	 * characters.
153 	 */
154 	yy_size_t yy_buf_size;
155 
156 	/* Number of characters read into yy_ch_buf, not including EOB
157 	 * characters.
158 	 */
159 	int yy_n_chars;
160 
161 	/* Whether we "own" the buffer - i.e., we know we created it,
162 	 * and can realloc() it to grow it, and should free() it to
163 	 * delete it.
164 	 */
165 	int yy_is_our_buffer;
166 
167 	/* Whether this is an "interactive" input source; if so, and
168 	 * if we're using stdio for input, then we want to use getc()
169 	 * instead of fread(), to make sure we stop fetching input after
170 	 * each newline.
171 	 */
172 	int yy_is_interactive;
173 
174 	/* Whether we're considered to be at the beginning of a line.
175 	 * If so, '^' rules will be active on the next match, otherwise
176 	 * not.
177 	 */
178 	int yy_at_bol;
179 
180 	/* Whether to try to fill the input buffer when we reach the
181 	 * end of it.
182 	 */
183 	int yy_fill_buffer;
184 
185 	int yy_buffer_status;
186 #define YY_BUFFER_NEW 0
187 #define YY_BUFFER_NORMAL 1
188 	/* When an EOF's been seen but there's still some text to process
189 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
190 	 * shouldn't try reading from the input source any more.  We might
191 	 * still have a bunch of tokens to match, though, because of
192 	 * possible backing-up.
193 	 *
194 	 * When we actually see the EOF, we change the status to "new"
195 	 * (via yyrestart()), so that the user can continue scanning by
196 	 * just pointing yyin at a new input file.
197 	 */
198 #define YY_BUFFER_EOF_PENDING 2
199 	};
200 
201 static YY_BUFFER_STATE yy_current_buffer = 0;
202 
203 /* We provide macros for accessing buffer states in case in the
204  * future we want to put the buffer states in a more general
205  * "scanner state".
206  */
207 #define YY_CURRENT_BUFFER yy_current_buffer
208 
209 
210 /* yy_hold_char holds the character lost when yytext is formed. */
211 static char yy_hold_char;
212 
213 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
214 
215 
216 int yyleng;
217 
218 /* Points to current character in buffer. */
219 static char *yy_c_buf_p = (char *) 0;
220 static int yy_init = 1;		/* whether we need to initialize */
221 static int yy_start = 0;	/* start state number */
222 
223 /* Flag which is used to allow yywrap()'s to do buffer switches
224  * instead of setting up a fresh yyin.  A bit of a hack ...
225  */
226 static int yy_did_buffer_switch_on_eof;
227 
228 void yyrestart YY_PROTO(( FILE *input_file ));
229 
230 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
231 void yy_load_buffer_state YY_PROTO(( void ));
232 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
233 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
234 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
235 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
236 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
237 
238 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
239 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
240 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
241 
242 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
243 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
244 static void yy_flex_free YY_PROTO(( void * ));
245 
246 #define yy_new_buffer yy_create_buffer
247 
248 #define yy_set_interactive(is_interactive) \
249 	{ \
250 	if ( ! yy_current_buffer ) \
251 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
252 	yy_current_buffer->yy_is_interactive = is_interactive; \
253 	}
254 
255 #define yy_set_bol(at_bol) \
256 	{ \
257 	if ( ! yy_current_buffer ) \
258 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
259 	yy_current_buffer->yy_at_bol = at_bol; \
260 	}
261 
262 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
263 
264 typedef unsigned char YY_CHAR;
265 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
266 typedef yyconst struct yy_trans_info *yy_state_type;
267 extern char *yytext;
268 #define yytext_ptr yytext
269 
270 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
271 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
272 static int yy_get_next_buffer YY_PROTO(( void ));
273 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
274 
275 /* Done after the current pattern has been matched and before the
276  * corresponding action - sets up yytext.
277  */
278 #define YY_DO_BEFORE_ACTION \
279 	yytext_ptr = yy_bp; \
280 	yyleng = (int) (yy_cp - yy_bp); \
281 	yy_hold_char = *yy_cp; \
282 	*yy_cp = '\0'; \
283 	yy_c_buf_p = yy_cp;
284 
285 #define YY_NUM_RULES 61
286 #define YY_END_OF_BUFFER 62
287 struct yy_trans_info
288 	{
289 	short yy_verify;
290 	short yy_nxt;
291 	};
292 static yyconst struct yy_trans_info yy_transition[7001] =
293     {
294  {   0,   0 }, {   0,6745 }, {   0,   0 }, {   0,6743 }, {   1,1548 },
295  {   2,1548 }, {   3,1548 }, {   4,1548 }, {   5,1548 }, {   6,1548 },
296  {   7,1548 }, {   8,1548 }, {   9,1550 }, {  10,1552 }, {  11,1548 },
297  {  12,1550 }, {  13,1548 }, {  14,1548 }, {  15,1548 }, {  16,1548 },
298  {  17,1548 }, {  18,1548 }, {  19,1548 }, {  20,1548 }, {  21,1548 },
299  {  22,1548 }, {  23,1548 }, {  24,1548 }, {  25,1548 }, {  26,1548 },
300  {  27,1548 }, {  28,1548 }, {  29,1548 }, {  30,1548 }, {  31,1548 },
301  {  32,1550 }, {  33,1548 }, {  34,1548 }, {  35,1554 }, {  36,1565 },
302  {  37,1556 }, {  38,1567 }, {  39,1689 }, {  40,1947 }, {  41,1949 },
303  {  42,1951 }, {  43,1953 }, {  44,1955 }, {  45,1957 }, {  46,1959 },
304 
305  {  47,1961 }, {  48,1975 }, {  49,2034 }, {  50,2034 }, {  51,2034 },
306  {  52,2034 }, {  53,2034 }, {  54,2034 }, {  55,2034 }, {  56,2034 },
307  {  57,2034 }, {  58,1977 }, {  59,1979 }, {  60,1988 }, {  61,1991 },
308  {  62,1995 }, {  63,1548 }, {  64,1997 }, {  65,1565 }, {  66,1565 },
309  {  67,1565 }, {  68,1565 }, {  69,1565 }, {  70,1565 }, {  71,1565 },
310  {  72,1565 }, {  73,1565 }, {  74,1565 }, {  75,1565 }, {  76,1565 },
311  {  77,1565 }, {  78,1565 }, {  79,1565 }, {  80,1565 }, {  81,1565 },
312  {  82,1565 }, {  83,1565 }, {  84,1565 }, {  85,2093 }, {  86,1565 },
313  {  87,1565 }, {  88,1565 }, {  89,1565 }, {  90,1565 }, {  91,1999 },
314  {  92,1548 }, {  93,2002 }, {  94,2004 }, {  95,1565 }, {  96,1548 },
315 
316  {  97,1565 }, {  98,1565 }, {  99,1565 }, { 100,1565 }, { 101,1565 },
317  { 102,1565 }, { 103,1565 }, { 104,1565 }, { 105,1565 }, { 106,1565 },
318  { 107,1565 }, { 108,1565 }, { 109,1565 }, { 110,1565 }, { 111,1565 },
319  { 112,1565 }, { 113,1565 }, { 114,1565 }, { 115,1565 }, { 116,1565 },
320  { 117,2093 }, { 118,1565 }, { 119,1565 }, { 120,1565 }, { 121,1565 },
321  { 122,1565 }, { 123,2016 }, { 124,2020 }, { 125,1548 }, { 126,2036 },
322  { 127,1548 }, { 128,1548 }, { 129,1548 }, { 130,1548 }, { 131,1548 },
323  { 132,1548 }, { 133,1548 }, { 134,1548 }, { 135,1548 }, { 136,1548 },
324  { 137,1548 }, { 138,1548 }, { 139,1548 }, { 140,1548 }, { 141,1548 },
325  { 142,1548 }, { 143,1548 }, { 144,1548 }, { 145,1548 }, { 146,1548 },
326 
327  { 147,1548 }, { 148,1548 }, { 149,1548 }, { 150,1548 }, { 151,1548 },
328  { 152,1548 }, { 153,1548 }, { 154,1548 }, { 155,1548 }, { 156,1548 },
329  { 157,1548 }, { 158,1548 }, { 159,1548 }, { 160,1548 }, { 161,1548 },
330  { 162,1548 }, { 163,1548 }, { 164,1548 }, { 165,1548 }, { 166,1548 },
331  { 167,1548 }, { 168,1548 }, { 169,1548 }, { 170,1548 }, { 171,1548 },
332  { 172,1548 }, { 173,1548 }, { 174,1548 }, { 175,1548 }, { 176,1548 },
333  { 177,1548 }, { 178,1548 }, { 179,1548 }, { 180,1548 }, { 181,1548 },
334  { 182,1548 }, { 183,1548 }, { 184,1548 }, { 185,1548 }, { 186,1548 },
335  { 187,1548 }, { 188,1548 }, { 189,1548 }, { 190,1548 }, { 191,1548 },
336  { 192,1548 }, { 193,1548 }, { 194,1548 }, { 195,1548 }, { 196,1548 },
337 
338  { 197,1548 }, { 198,1548 }, { 199,1548 }, { 200,1548 }, { 201,1548 },
339  { 202,1548 }, { 203,1548 }, { 204,1548 }, { 205,1548 }, { 206,1548 },
340  { 207,1548 }, { 208,1548 }, { 209,1548 }, { 210,1548 }, { 211,1548 },
341  { 212,1548 }, { 213,1548 }, { 214,1548 }, { 215,1548 }, { 216,1548 },
342  { 217,1548 }, { 218,1548 }, { 219,1548 }, { 220,1548 }, { 221,1548 },
343  { 222,1548 }, { 223,1548 }, { 224,1548 }, { 225,1548 }, { 226,1548 },
344  { 227,1548 }, { 228,1548 }, { 229,1548 }, { 230,1548 }, { 231,1548 },
345  { 232,1548 }, { 233,1548 }, { 234,1548 }, { 235,1548 }, { 236,1548 },
346  { 237,1548 }, { 238,1548 }, { 239,1548 }, { 240,1548 }, { 241,1548 },
347  { 242,1548 }, { 243,1548 }, { 244,1548 }, { 245,1548 }, { 246,1548 },
348 
349  { 247,1548 }, { 248,1548 }, { 249,1548 }, { 250,1548 }, { 251,1548 },
350  { 252,1548 }, { 253,1548 }, { 254,1548 }, { 255,1548 }, { 256,1548 },
351  {   0,   0 }, {   0,6485 }, {   1,1290 }, {   2,1290 }, {   3,1290 },
352  {   4,1290 }, {   5,1290 }, {   6,1290 }, {   7,1290 }, {   8,1290 },
353  {   9,1292 }, {  10,1294 }, {  11,1290 }, {  12,1292 }, {  13,1290 },
354  {  14,1290 }, {  15,1290 }, {  16,1290 }, {  17,1290 }, {  18,1290 },
355  {  19,1290 }, {  20,1290 }, {  21,1290 }, {  22,1290 }, {  23,1290 },
356  {  24,1290 }, {  25,1290 }, {  26,1290 }, {  27,1290 }, {  28,1290 },
357  {  29,1290 }, {  30,1290 }, {  31,1290 }, {  32,1292 }, {  33,1290 },
358  {  34,1290 }, {  35,1296 }, {  36,1307 }, {  37,1298 }, {  38,1309 },
359 
360  {  39,1431 }, {  40,1689 }, {  41,1691 }, {  42,1693 }, {  43,1695 },
361  {  44,1697 }, {  45,1699 }, {  46,1701 }, {  47,1703 }, {  48,1717 },
362  {  49,1776 }, {  50,1776 }, {  51,1776 }, {  52,1776 }, {  53,1776 },
363  {  54,1776 }, {  55,1776 }, {  56,1776 }, {  57,1776 }, {  58,1719 },
364  {  59,1721 }, {  60,1730 }, {  61,1733 }, {  62,1737 }, {  63,1290 },
365  {  64,1739 }, {  65,1307 }, {  66,1307 }, {  67,1307 }, {  68,1307 },
366  {  69,1307 }, {  70,1307 }, {  71,1307 }, {  72,1307 }, {  73,1307 },
367  {  74,1307 }, {  75,1307 }, {  76,1307 }, {  77,1307 }, {  78,1307 },
368  {  79,1307 }, {  80,1307 }, {  81,1307 }, {  82,1307 }, {  83,1307 },
369  {  84,1307 }, {  85,1835 }, {  86,1307 }, {  87,1307 }, {  88,1307 },
370 
371  {  89,1307 }, {  90,1307 }, {  91,1741 }, {  92,1290 }, {  93,1744 },
372  {  94,1746 }, {  95,1307 }, {  96,1290 }, {  97,1307 }, {  98,1307 },
373  {  99,1307 }, { 100,1307 }, { 101,1307 }, { 102,1307 }, { 103,1307 },
374  { 104,1307 }, { 105,1307 }, { 106,1307 }, { 107,1307 }, { 108,1307 },
375  { 109,1307 }, { 110,1307 }, { 111,1307 }, { 112,1307 }, { 113,1307 },
376  { 114,1307 }, { 115,1307 }, { 116,1307 }, { 117,1835 }, { 118,1307 },
377  { 119,1307 }, { 120,1307 }, { 121,1307 }, { 122,1307 }, { 123,1758 },
378  { 124,1762 }, { 125,1290 }, { 126,1778 }, { 127,1290 }, { 128,1290 },
379  { 129,1290 }, { 130,1290 }, { 131,1290 }, { 132,1290 }, { 133,1290 },
380  { 134,1290 }, { 135,1290 }, { 136,1290 }, { 137,1290 }, { 138,1290 },
381 
382  { 139,1290 }, { 140,1290 }, { 141,1290 }, { 142,1290 }, { 143,1290 },
383  { 144,1290 }, { 145,1290 }, { 146,1290 }, { 147,1290 }, { 148,1290 },
384  { 149,1290 }, { 150,1290 }, { 151,1290 }, { 152,1290 }, { 153,1290 },
385  { 154,1290 }, { 155,1290 }, { 156,1290 }, { 157,1290 }, { 158,1290 },
386  { 159,1290 }, { 160,1290 }, { 161,1290 }, { 162,1290 }, { 163,1290 },
387  { 164,1290 }, { 165,1290 }, { 166,1290 }, { 167,1290 }, { 168,1290 },
388  { 169,1290 }, { 170,1290 }, { 171,1290 }, { 172,1290 }, { 173,1290 },
389  { 174,1290 }, { 175,1290 }, { 176,1290 }, { 177,1290 }, { 178,1290 },
390  { 179,1290 }, { 180,1290 }, { 181,1290 }, { 182,1290 }, { 183,1290 },
391  { 184,1290 }, { 185,1290 }, { 186,1290 }, { 187,1290 }, { 188,1290 },
392 
393  { 189,1290 }, { 190,1290 }, { 191,1290 }, { 192,1290 }, { 193,1290 },
394  { 194,1290 }, { 195,1290 }, { 196,1290 }, { 197,1290 }, { 198,1290 },
395  { 199,1290 }, { 200,1290 }, { 201,1290 }, { 202,1290 }, { 203,1290 },
396  { 204,1290 }, { 205,1290 }, { 206,1290 }, { 207,1290 }, { 208,1290 },
397  { 209,1290 }, { 210,1290 }, { 211,1290 }, { 212,1290 }, { 213,1290 },
398  { 214,1290 }, { 215,1290 }, { 216,1290 }, { 217,1290 }, { 218,1290 },
399  { 219,1290 }, { 220,1290 }, { 221,1290 }, { 222,1290 }, { 223,1290 },
400  { 224,1290 }, { 225,1290 }, { 226,1290 }, { 227,1290 }, { 228,1290 },
401  { 229,1290 }, { 230,1290 }, { 231,1290 }, { 232,1290 }, { 233,1290 },
402  { 234,1290 }, { 235,1290 }, { 236,1290 }, { 237,1290 }, { 238,1290 },
403 
404  { 239,1290 }, { 240,1290 }, { 241,1290 }, { 242,1290 }, { 243,1290 },
405  { 244,1290 }, { 245,1290 }, { 246,1290 }, { 247,1290 }, { 248,1290 },
406  { 249,1290 }, { 250,1290 }, { 251,1290 }, { 252,1290 }, { 253,1290 },
407  { 254,1290 }, { 255,1290 }, { 256,1290 }, {   0,   9 }, {   0,6227 },
408  {   1,1701 }, {   2,1701 }, {   3,1701 }, {   4,1701 }, {   5,1701 },
409  {   6,1701 }, {   7,1701 }, {   8,1701 }, {   9,1959 }, {  10,1582 },
410  {  11,1701 }, {  12,1701 }, {  13,1701 }, {  14,1701 }, {  15,1701 },
411  {  16,1701 }, {  17,1701 }, {  18,1701 }, {  19,1701 }, {  20,1701 },
412  {  21,1701 }, {  22,1701 }, {  23,1701 }, {  24,1701 }, {  25,1701 },
413  {  26,1701 }, {  27,1701 }, {  28,1701 }, {  29,1701 }, {  30,1701 },
414 
415  {  31,1701 }, {  32,1959 }, {  33,1701 }, {  34,1701 }, {  35,1701 },
416  {  36,1701 }, {  37,1701 }, {  38,1701 }, {  39,1701 }, {  40,1701 },
417  {  41,1701 }, {  42,1701 }, {  43,1701 }, {  44,1701 }, {  45,1701 },
418  {  46,1701 }, {  47,1701 }, {  48,1701 }, {  49,1701 }, {  50,1701 },
419  {  51,1701 }, {  52,1701 }, {  53,1701 }, {  54,1701 }, {  55,1701 },
420  {  56,1701 }, {  57,1701 }, {  58,1701 }, {  59,1594 }, {  60,1701 },
421  {  61,1701 }, {  62,1701 }, {  63,1701 }, {  64,1701 }, {  65,1701 },
422  {  66,1701 }, {  67,1701 }, {  68,1701 }, {  69,1701 }, {  70,1701 },
423  {  71,1701 }, {  72,1701 }, {  73,1701 }, {  74,1701 }, {  75,1701 },
424  {  76,1701 }, {  77,1701 }, {  78,1701 }, {  79,1701 }, {  80,1701 },
425 
426  {  81,1701 }, {  82,1701 }, {  83,1701 }, {  84,1701 }, {  85,1701 },
427  {  86,1701 }, {  87,1701 }, {  88,1701 }, {  89,1701 }, {  90,1701 },
428  {  91,1701 }, {  92,1701 }, {  93,1701 }, {  94,1701 }, {  95,1701 },
429  {  96,1701 }, {  97,1701 }, {  98,1701 }, {  99,1701 }, { 100,1701 },
430  { 101,1701 }, { 102,1701 }, { 103,1701 }, { 104,1701 }, { 105,1701 },
431  { 106,1701 }, { 107,1701 }, { 108,1701 }, { 109,1701 }, { 110,1701 },
432  { 111,1701 }, { 112,1701 }, { 113,1701 }, { 114,1701 }, { 115,1701 },
433  { 116,1701 }, { 117,1701 }, { 118,1701 }, { 119,1701 }, { 120,1701 },
434  { 121,1701 }, { 122,1701 }, { 123,1701 }, { 124,1701 }, { 125,1701 },
435  { 126,1701 }, { 127,1701 }, { 128,1701 }, { 129,1701 }, { 130,1701 },
436 
437  { 131,1701 }, { 132,1701 }, { 133,1701 }, { 134,1701 }, { 135,1701 },
438  { 136,1701 }, { 137,1701 }, { 138,1701 }, { 139,1701 }, { 140,1701 },
439  { 141,1701 }, { 142,1701 }, { 143,1701 }, { 144,1701 }, { 145,1701 },
440  { 146,1701 }, { 147,1701 }, { 148,1701 }, { 149,1701 }, { 150,1701 },
441  { 151,1701 }, { 152,1701 }, { 153,1701 }, { 154,1701 }, { 155,1701 },
442  { 156,1701 }, { 157,1701 }, { 158,1701 }, { 159,1701 }, { 160,1701 },
443  { 161,1701 }, { 162,1701 }, { 163,1701 }, { 164,1701 }, { 165,1701 },
444  { 166,1701 }, { 167,1701 }, { 168,1701 }, { 169,1701 }, { 170,1701 },
445  { 171,1701 }, { 172,1701 }, { 173,1701 }, { 174,1701 }, { 175,1701 },
446  { 176,1701 }, { 177,1701 }, { 178,1701 }, { 179,1701 }, { 180,1701 },
447 
448  { 181,1701 }, { 182,1701 }, { 183,1701 }, { 184,1701 }, { 185,1701 },
449  { 186,1701 }, { 187,1701 }, { 188,1701 }, { 189,1701 }, { 190,1701 },
450  { 191,1701 }, { 192,1701 }, { 193,1701 }, { 194,1701 }, { 195,1701 },
451  { 196,1701 }, { 197,1701 }, { 198,1701 }, { 199,1701 }, { 200,1701 },
452  { 201,1701 }, { 202,1701 }, { 203,1701 }, { 204,1701 }, { 205,1701 },
453  { 206,1701 }, { 207,1701 }, { 208,1701 }, { 209,1701 }, { 210,1701 },
454  { 211,1701 }, { 212,1701 }, { 213,1701 }, { 214,1701 }, { 215,1701 },
455  { 216,1701 }, { 217,1701 }, { 218,1701 }, { 219,1701 }, { 220,1701 },
456  { 221,1701 }, { 222,1701 }, { 223,1701 }, { 224,1701 }, { 225,1701 },
457  { 226,1701 }, { 227,1701 }, { 228,1701 }, { 229,1701 }, { 230,1701 },
458 
459  { 231,1701 }, { 232,1701 }, { 233,1701 }, { 234,1701 }, { 235,1701 },
460  { 236,1701 }, { 237,1701 }, { 238,1701 }, { 239,1701 }, { 240,1701 },
461  { 241,1701 }, { 242,1701 }, { 243,1701 }, { 244,1701 }, { 245,1701 },
462  { 246,1701 }, { 247,1701 }, { 248,1701 }, { 249,1701 }, { 250,1701 },
463  { 251,1701 }, { 252,1701 }, { 253,1701 }, { 254,1701 }, { 255,1701 },
464  { 256,1701 }, {   0,   9 }, {   0,5969 }, {   1,1443 }, {   2,1443 },
465  {   3,1443 }, {   4,1443 }, {   5,1443 }, {   6,1443 }, {   7,1443 },
466  {   8,1443 }, {   9,1701 }, {  10,1324 }, {  11,1443 }, {  12,1443 },
467  {  13,1443 }, {  14,1443 }, {  15,1443 }, {  16,1443 }, {  17,1443 },
468  {  18,1443 }, {  19,1443 }, {  20,1443 }, {  21,1443 }, {  22,1443 },
469 
470  {  23,1443 }, {  24,1443 }, {  25,1443 }, {  26,1443 }, {  27,1443 },
471  {  28,1443 }, {  29,1443 }, {  30,1443 }, {  31,1443 }, {  32,1701 },
472  {  33,1443 }, {  34,1443 }, {  35,1443 }, {  36,1443 }, {  37,1443 },
473  {  38,1443 }, {  39,1443 }, {  40,1443 }, {  41,1443 }, {  42,1443 },
474  {  43,1443 }, {  44,1443 }, {  45,1443 }, {  46,1443 }, {  47,1443 },
475  {  48,1443 }, {  49,1443 }, {  50,1443 }, {  51,1443 }, {  52,1443 },
476  {  53,1443 }, {  54,1443 }, {  55,1443 }, {  56,1443 }, {  57,1443 },
477  {  58,1443 }, {  59,1336 }, {  60,1443 }, {  61,1443 }, {  62,1443 },
478  {  63,1443 }, {  64,1443 }, {  65,1443 }, {  66,1443 }, {  67,1443 },
479  {  68,1443 }, {  69,1443 }, {  70,1443 }, {  71,1443 }, {  72,1443 },
480 
481  {  73,1443 }, {  74,1443 }, {  75,1443 }, {  76,1443 }, {  77,1443 },
482  {  78,1443 }, {  79,1443 }, {  80,1443 }, {  81,1443 }, {  82,1443 },
483  {  83,1443 }, {  84,1443 }, {  85,1443 }, {  86,1443 }, {  87,1443 },
484  {  88,1443 }, {  89,1443 }, {  90,1443 }, {  91,1443 }, {  92,1443 },
485  {  93,1443 }, {  94,1443 }, {  95,1443 }, {  96,1443 }, {  97,1443 },
486  {  98,1443 }, {  99,1443 }, { 100,1443 }, { 101,1443 }, { 102,1443 },
487  { 103,1443 }, { 104,1443 }, { 105,1443 }, { 106,1443 }, { 107,1443 },
488  { 108,1443 }, { 109,1443 }, { 110,1443 }, { 111,1443 }, { 112,1443 },
489  { 113,1443 }, { 114,1443 }, { 115,1443 }, { 116,1443 }, { 117,1443 },
490  { 118,1443 }, { 119,1443 }, { 120,1443 }, { 121,1443 }, { 122,1443 },
491 
492  { 123,1443 }, { 124,1443 }, { 125,1443 }, { 126,1443 }, { 127,1443 },
493  { 128,1443 }, { 129,1443 }, { 130,1443 }, { 131,1443 }, { 132,1443 },
494  { 133,1443 }, { 134,1443 }, { 135,1443 }, { 136,1443 }, { 137,1443 },
495  { 138,1443 }, { 139,1443 }, { 140,1443 }, { 141,1443 }, { 142,1443 },
496  { 143,1443 }, { 144,1443 }, { 145,1443 }, { 146,1443 }, { 147,1443 },
497  { 148,1443 }, { 149,1443 }, { 150,1443 }, { 151,1443 }, { 152,1443 },
498  { 153,1443 }, { 154,1443 }, { 155,1443 }, { 156,1443 }, { 157,1443 },
499  { 158,1443 }, { 159,1443 }, { 160,1443 }, { 161,1443 }, { 162,1443 },
500  { 163,1443 }, { 164,1443 }, { 165,1443 }, { 166,1443 }, { 167,1443 },
501  { 168,1443 }, { 169,1443 }, { 170,1443 }, { 171,1443 }, { 172,1443 },
502 
503  { 173,1443 }, { 174,1443 }, { 175,1443 }, { 176,1443 }, { 177,1443 },
504  { 178,1443 }, { 179,1443 }, { 180,1443 }, { 181,1443 }, { 182,1443 },
505  { 183,1443 }, { 184,1443 }, { 185,1443 }, { 186,1443 }, { 187,1443 },
506  { 188,1443 }, { 189,1443 }, { 190,1443 }, { 191,1443 }, { 192,1443 },
507  { 193,1443 }, { 194,1443 }, { 195,1443 }, { 196,1443 }, { 197,1443 },
508  { 198,1443 }, { 199,1443 }, { 200,1443 }, { 201,1443 }, { 202,1443 },
509  { 203,1443 }, { 204,1443 }, { 205,1443 }, { 206,1443 }, { 207,1443 },
510  { 208,1443 }, { 209,1443 }, { 210,1443 }, { 211,1443 }, { 212,1443 },
511  { 213,1443 }, { 214,1443 }, { 215,1443 }, { 216,1443 }, { 217,1443 },
512  { 218,1443 }, { 219,1443 }, { 220,1443 }, { 221,1443 }, { 222,1443 },
513 
514  { 223,1443 }, { 224,1443 }, { 225,1443 }, { 226,1443 }, { 227,1443 },
515  { 228,1443 }, { 229,1443 }, { 230,1443 }, { 231,1443 }, { 232,1443 },
516  { 233,1443 }, { 234,1443 }, { 235,1443 }, { 236,1443 }, { 237,1443 },
517  { 238,1443 }, { 239,1443 }, { 240,1443 }, { 241,1443 }, { 242,1443 },
518  { 243,1443 }, { 244,1443 }, { 245,1443 }, { 246,1443 }, { 247,1443 },
519  { 248,1443 }, { 249,1443 }, { 250,1443 }, { 251,1443 }, { 252,1443 },
520  { 253,1443 }, { 254,1443 }, { 255,1443 }, { 256,1443 }, {   0,   4 },
521  {   0,5711 }, {   1,1080 }, {   2,1080 }, {   3,1080 }, {   4,1080 },
522  {   5,1080 }, {   6,1080 }, {   7,1080 }, {   8,1080 }, {   9,1701 },
523  {  10,1703 }, {  11,1080 }, {  12,1080 }, {  13,1080 }, {  14,1080 },
524 
525  {  15,1080 }, {  16,1080 }, {  17,1080 }, {  18,1080 }, {  19,1080 },
526  {  20,1080 }, {  21,1080 }, {  22,1080 }, {  23,1080 }, {  24,1080 },
527  {  25,1080 }, {  26,1080 }, {  27,1080 }, {  28,1080 }, {  29,1080 },
528  {  30,1080 }, {  31,1080 }, {  32,1701 }, {  33,1080 }, {  34,1080 },
529  {  35,1080 }, {  36,1080 }, {  37,1080 }, {  38,1080 }, {  39,1080 },
530  {  40,1080 }, {  41,1080 }, {  42,1080 }, {  43,1080 }, {  44,1701 },
531  {  45,1080 }, {  46,1080 }, {  47,1080 }, {  48,1705 }, {  49,1705 },
532  {  50,1705 }, {  51,1705 }, {  52,1705 }, {  53,1705 }, {  54,1705 },
533  {  55,1705 }, {  56,1705 }, {  57,1705 }, {  58,1080 }, {  59,1707 },
534  {  60,1080 }, {  61,1080 }, {  62,1080 }, {  63,1080 }, {  64,1080 },
535 
536  {  65,1705 }, {  66,1705 }, {  67,1705 }, {  68,1705 }, {  69,1705 },
537  {  70,1705 }, {  71,1705 }, {  72,1705 }, {  73,1705 }, {  74,1705 },
538  {  75,1705 }, {  76,1705 }, {  77,1705 }, {  78,1705 }, {  79,1705 },
539  {  80,1705 }, {  81,1705 }, {  82,1705 }, {  83,1705 }, {  84,1705 },
540  {  85,1705 }, {  86,1705 }, {  87,1705 }, {  88,1705 }, {  89,1705 },
541  {  90,1705 }, {  91,1080 }, {  92,1080 }, {  93,1080 }, {  94,1080 },
542  {  95,1705 }, {  96,1080 }, {  97,1705 }, {  98,1705 }, {  99,1705 },
543  { 100,1705 }, { 101,1705 }, { 102,1705 }, { 103,1705 }, { 104,1705 },
544  { 105,1705 }, { 106,1705 }, { 107,1705 }, { 108,1705 }, { 109,1705 },
545  { 110,1705 }, { 111,1705 }, { 112,1705 }, { 113,1705 }, { 114,1705 },
546 
547  { 115,1705 }, { 116,1705 }, { 117,1705 }, { 118,1705 }, { 119,1705 },
548  { 120,1705 }, { 121,1705 }, { 122,1705 }, { 123,1829 }, { 124,1080 },
549  { 125,1080 }, { 126,1080 }, { 127,1080 }, { 128,1080 }, { 129,1080 },
550  { 130,1080 }, { 131,1080 }, { 132,1080 }, { 133,1080 }, { 134,1080 },
551  { 135,1080 }, { 136,1080 }, { 137,1080 }, { 138,1080 }, { 139,1080 },
552  { 140,1080 }, { 141,1080 }, { 142,1080 }, { 143,1080 }, { 144,1080 },
553  { 145,1080 }, { 146,1080 }, { 147,1080 }, { 148,1080 }, { 149,1080 },
554  { 150,1080 }, { 151,1080 }, { 152,1080 }, { 153,1080 }, { 154,1080 },
555  { 155,1080 }, { 156,1080 }, { 157,1080 }, { 158,1080 }, { 159,1080 },
556  { 160,1080 }, { 161,1080 }, { 162,1080 }, { 163,1080 }, { 164,1080 },
557 
558  { 165,1080 }, { 166,1080 }, { 167,1080 }, { 168,1080 }, { 169,1080 },
559  { 170,1080 }, { 171,1080 }, { 172,1080 }, { 173,1080 }, { 174,1080 },
560  { 175,1080 }, { 176,1080 }, { 177,1080 }, { 178,1080 }, { 179,1080 },
561  { 180,1080 }, { 181,1080 }, { 182,1080 }, { 183,1080 }, { 184,1080 },
562  { 185,1080 }, { 186,1080 }, { 187,1080 }, { 188,1080 }, { 189,1080 },
563  { 190,1080 }, { 191,1080 }, { 192,1080 }, { 193,1080 }, { 194,1080 },
564  { 195,1080 }, { 196,1080 }, { 197,1080 }, { 198,1080 }, { 199,1080 },
565  { 200,1080 }, { 201,1080 }, { 202,1080 }, { 203,1080 }, { 204,1080 },
566  { 205,1080 }, { 206,1080 }, { 207,1080 }, { 208,1080 }, { 209,1080 },
567  { 210,1080 }, { 211,1080 }, { 212,1080 }, { 213,1080 }, { 214,1080 },
568 
569  { 215,1080 }, { 216,1080 }, { 217,1080 }, { 218,1080 }, { 219,1080 },
570  { 220,1080 }, { 221,1080 }, { 222,1080 }, { 223,1080 }, { 224,1080 },
571  { 225,1080 }, { 226,1080 }, { 227,1080 }, { 228,1080 }, { 229,1080 },
572  { 230,1080 }, { 231,1080 }, { 232,1080 }, { 233,1080 }, { 234,1080 },
573  { 235,1080 }, { 236,1080 }, { 237,1080 }, { 238,1080 }, { 239,1080 },
574  { 240,1080 }, { 241,1080 }, { 242,1080 }, { 243,1080 }, { 244,1080 },
575  { 245,1080 }, { 246,1080 }, { 247,1080 }, { 248,1080 }, { 249,1080 },
576  { 250,1080 }, { 251,1080 }, { 252,1080 }, { 253,1080 }, { 254,1080 },
577  { 255,1080 }, { 256,1080 }, {   0,   4 }, {   0,5453 }, {   1, 822 },
578  {   2, 822 }, {   3, 822 }, {   4, 822 }, {   5, 822 }, {   6, 822 },
579 
580  {   7, 822 }, {   8, 822 }, {   9,1443 }, {  10,1445 }, {  11, 822 },
581  {  12, 822 }, {  13, 822 }, {  14, 822 }, {  15, 822 }, {  16, 822 },
582  {  17, 822 }, {  18, 822 }, {  19, 822 }, {  20, 822 }, {  21, 822 },
583  {  22, 822 }, {  23, 822 }, {  24, 822 }, {  25, 822 }, {  26, 822 },
584  {  27, 822 }, {  28, 822 }, {  29, 822 }, {  30, 822 }, {  31, 822 },
585  {  32,1443 }, {  33, 822 }, {  34, 822 }, {  35, 822 }, {  36, 822 },
586  {  37, 822 }, {  38, 822 }, {  39, 822 }, {  40, 822 }, {  41, 822 },
587  {  42, 822 }, {  43, 822 }, {  44,1443 }, {  45, 822 }, {  46, 822 },
588  {  47, 822 }, {  48,1447 }, {  49,1447 }, {  50,1447 }, {  51,1447 },
589  {  52,1447 }, {  53,1447 }, {  54,1447 }, {  55,1447 }, {  56,1447 },
590 
591  {  57,1447 }, {  58, 822 }, {  59,1449 }, {  60, 822 }, {  61, 822 },
592  {  62, 822 }, {  63, 822 }, {  64, 822 }, {  65,1447 }, {  66,1447 },
593  {  67,1447 }, {  68,1447 }, {  69,1447 }, {  70,1447 }, {  71,1447 },
594  {  72,1447 }, {  73,1447 }, {  74,1447 }, {  75,1447 }, {  76,1447 },
595  {  77,1447 }, {  78,1447 }, {  79,1447 }, {  80,1447 }, {  81,1447 },
596  {  82,1447 }, {  83,1447 }, {  84,1447 }, {  85,1447 }, {  86,1447 },
597  {  87,1447 }, {  88,1447 }, {  89,1447 }, {  90,1447 }, {  91, 822 },
598  {  92, 822 }, {  93, 822 }, {  94, 822 }, {  95,1447 }, {  96, 822 },
599  {  97,1447 }, {  98,1447 }, {  99,1447 }, { 100,1447 }, { 101,1447 },
600  { 102,1447 }, { 103,1447 }, { 104,1447 }, { 105,1447 }, { 106,1447 },
601 
602  { 107,1447 }, { 108,1447 }, { 109,1447 }, { 110,1447 }, { 111,1447 },
603  { 112,1447 }, { 113,1447 }, { 114,1447 }, { 115,1447 }, { 116,1447 },
604  { 117,1447 }, { 118,1447 }, { 119,1447 }, { 120,1447 }, { 121,1447 },
605  { 122,1447 }, { 123,1571 }, { 124, 822 }, { 125, 822 }, { 126, 822 },
606  { 127, 822 }, { 128, 822 }, { 129, 822 }, { 130, 822 }, { 131, 822 },
607  { 132, 822 }, { 133, 822 }, { 134, 822 }, { 135, 822 }, { 136, 822 },
608  { 137, 822 }, { 138, 822 }, { 139, 822 }, { 140, 822 }, { 141, 822 },
609  { 142, 822 }, { 143, 822 }, { 144, 822 }, { 145, 822 }, { 146, 822 },
610  { 147, 822 }, { 148, 822 }, { 149, 822 }, { 150, 822 }, { 151, 822 },
611  { 152, 822 }, { 153, 822 }, { 154, 822 }, { 155, 822 }, { 156, 822 },
612 
613  { 157, 822 }, { 158, 822 }, { 159, 822 }, { 160, 822 }, { 161, 822 },
614  { 162, 822 }, { 163, 822 }, { 164, 822 }, { 165, 822 }, { 166, 822 },
615  { 167, 822 }, { 168, 822 }, { 169, 822 }, { 170, 822 }, { 171, 822 },
616  { 172, 822 }, { 173, 822 }, { 174, 822 }, { 175, 822 }, { 176, 822 },
617  { 177, 822 }, { 178, 822 }, { 179, 822 }, { 180, 822 }, { 181, 822 },
618  { 182, 822 }, { 183, 822 }, { 184, 822 }, { 185, 822 }, { 186, 822 },
619  { 187, 822 }, { 188, 822 }, { 189, 822 }, { 190, 822 }, { 191, 822 },
620  { 192, 822 }, { 193, 822 }, { 194, 822 }, { 195, 822 }, { 196, 822 },
621  { 197, 822 }, { 198, 822 }, { 199, 822 }, { 200, 822 }, { 201, 822 },
622  { 202, 822 }, { 203, 822 }, { 204, 822 }, { 205, 822 }, { 206, 822 },
623 
624  { 207, 822 }, { 208, 822 }, { 209, 822 }, { 210, 822 }, { 211, 822 },
625  { 212, 822 }, { 213, 822 }, { 214, 822 }, { 215, 822 }, { 216, 822 },
626  { 217, 822 }, { 218, 822 }, { 219, 822 }, { 220, 822 }, { 221, 822 },
627  { 222, 822 }, { 223, 822 }, { 224, 822 }, { 225, 822 }, { 226, 822 },
628  { 227, 822 }, { 228, 822 }, { 229, 822 }, { 230, 822 }, { 231, 822 },
629  { 232, 822 }, { 233, 822 }, { 234, 822 }, { 235, 822 }, { 236, 822 },
630  { 237, 822 }, { 238, 822 }, { 239, 822 }, { 240, 822 }, { 241, 822 },
631  { 242, 822 }, { 243, 822 }, { 244, 822 }, { 245, 822 }, { 246, 822 },
632  { 247, 822 }, { 248, 822 }, { 249, 822 }, { 250, 822 }, { 251, 822 },
633  { 252, 822 }, { 253, 822 }, { 254, 822 }, { 255, 822 }, { 256, 822 },
634 
635  {   0,  60 }, {   0,5195 }, {   0,  58 }, {   0,5193 }, {   0,  59 },
636  {   0,5191 }, {   0,  60 }, {   0,5189 }, {   0,  60 }, {   0,5187 },
637  {   0,   0 }, {   0,   0 }, {   9,1191 }, {   0,   0 }, {   0,   0 },
638  {  12,1191 }, {   0,   0 }, {   0,  56 }, {   0,5178 }, {   0,  28 },
639  {   0,5176 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
640  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
641  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
642  {  32,1191 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
643  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  36,1565 }, {   0,   0 },
644  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
645 
646  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  36,1637 },
647  {  48,1588 }, {  49,1588 }, {  50,1588 }, {  51,1588 }, {  52,1588 },
648  {  53,1588 }, {  54,1588 }, {  55,1588 }, {  56,1588 }, {  57,1588 },
649  {   0,   0 }, {  48,1637 }, {  49,1637 }, {  50,1637 }, {  51,1637 },
650  {  52,1637 }, {  53,1637 }, {  54,1637 }, {  55,1637 }, {  56,1637 },
651  {  57,1637 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
652  {  73,1568 }, {  61,1560 }, {  73,1569 }, {  65,1637 }, {  66,1637 },
653  {  67,1637 }, {  68,1637 }, {  69,1637 }, {  70,1637 }, {  71,1637 },
654  {  72,1637 }, {  73,1637 }, {  74,1637 }, {  75,1637 }, {  76,1637 },
655  {  77,1637 }, {  78,1637 }, {  79,1637 }, {  80,1637 }, {  81,1637 },
656 
657  {  82,1637 }, {  83,1637 }, {  84,1637 }, {  85,1637 }, {  86,1637 },
658  {  87,1637 }, {  88,1637 }, {  89,1637 }, {  90,1637 }, {   0,   0 },
659  {   0,   0 }, {   0,   0 }, { 105,1568 }, {  95,1637 }, { 105,1569 },
660  {  97,1637 }, {  98,1637 }, {  99,1637 }, { 100,1637 }, { 101,1637 },
661  { 102,1637 }, { 103,1637 }, { 104,1637 }, { 105,1637 }, { 106,1637 },
662  { 107,1637 }, { 108,1637 }, { 109,1637 }, { 110,1637 }, { 111,1637 },
663  { 112,1637 }, { 113,1637 }, { 114,1637 }, { 115,1637 }, { 116,1637 },
664  { 117,1637 }, { 118,1637 }, { 119,1637 }, { 120,1637 }, { 121,1637 },
665  { 122,1637 }, {   0,  60 }, {   0,5054 }, {   1,1637 }, {   2,1637 },
666  {   3,1637 }, {   4,1637 }, {   5,1637 }, {   6,1637 }, {   7,1637 },
667 
668  {   8,1637 }, {   9,1637 }, {  10,1637 }, {  11,1637 }, {  12,1637 },
669  {  13,1637 }, {  14,1637 }, {  15,1637 }, {  16,1637 }, {  17,1637 },
670  {  18,1637 }, {  19,1637 }, {  20,1637 }, {  21,1637 }, {  22,1637 },
671  {  23,1637 }, {  24,1637 }, {  25,1637 }, {  26,1637 }, {  27,1637 },
672  {  28,1637 }, {  29,1637 }, {  30,1637 }, {  31,1637 }, {  32,1637 },
673  {  33,1637 }, {  34,1637 }, {  35,1637 }, {  36,1637 }, {  37,1637 },
674  {  38,1637 }, {  39,1455 }, {  40,1637 }, {  41,1637 }, {  42,1637 },
675  {  43,1637 }, {  44,1637 }, {  45,1637 }, {  46,1637 }, {  47,1637 },
676  {  48,1637 }, {  49,1637 }, {  50,1637 }, {  51,1637 }, {  52,1637 },
677  {  53,1637 }, {  54,1637 }, {  55,1637 }, {  56,1637 }, {  57,1637 },
678 
679  {  58,1637 }, {  59,1637 }, {  60,1637 }, {  61,1637 }, {  62,1637 },
680  {  63,1637 }, {  64,1637 }, {  65,1637 }, {  66,1637 }, {  67,1637 },
681  {  68,1637 }, {  69,1637 }, {  70,1637 }, {  71,1637 }, {  72,1637 },
682  {  73,1637 }, {  74,1637 }, {  75,1637 }, {  76,1637 }, {  77,1637 },
683  {  78,1637 }, {  79,1637 }, {  80,1637 }, {  81,1637 }, {  82,1637 },
684  {  83,1637 }, {  84,1637 }, {  85,1637 }, {  86,1637 }, {  87,1637 },
685  {  88,1637 }, {  89,1637 }, {  90,1637 }, {  91,1637 }, {  92,1637 },
686  {  93,1637 }, {  94,1637 }, {  95,1637 }, {  96,1637 }, {  97,1637 },
687  {  98,1637 }, {  99,1637 }, { 100,1637 }, { 101,1637 }, { 102,1637 },
688  { 103,1637 }, { 104,1637 }, { 105,1637 }, { 106,1637 }, { 107,1637 },
689 
690  { 108,1637 }, { 109,1637 }, { 110,1637 }, { 111,1637 }, { 112,1637 },
691  { 113,1637 }, { 114,1637 }, { 115,1637 }, { 116,1637 }, { 117,1637 },
692  { 118,1637 }, { 119,1637 }, { 120,1637 }, { 121,1637 }, { 122,1637 },
693  { 123,1637 }, { 124,1637 }, { 125,1637 }, { 126,1637 }, { 127,1637 },
694  { 128,1637 }, { 129,1637 }, { 130,1637 }, { 131,1637 }, { 132,1637 },
695  { 133,1637 }, { 134,1637 }, { 135,1637 }, { 136,1637 }, { 137,1637 },
696  { 138,1637 }, { 139,1637 }, { 140,1637 }, { 141,1637 }, { 142,1637 },
697  { 143,1637 }, { 144,1637 }, { 145,1637 }, { 146,1637 }, { 147,1637 },
698  { 148,1637 }, { 149,1637 }, { 150,1637 }, { 151,1637 }, { 152,1637 },
699  { 153,1637 }, { 154,1637 }, { 155,1637 }, { 156,1637 }, { 157,1637 },
700 
701  { 158,1637 }, { 159,1637 }, { 160,1637 }, { 161,1637 }, { 162,1637 },
702  { 163,1637 }, { 164,1637 }, { 165,1637 }, { 166,1637 }, { 167,1637 },
703  { 168,1637 }, { 169,1637 }, { 170,1637 }, { 171,1637 }, { 172,1637 },
704  { 173,1637 }, { 174,1637 }, { 175,1637 }, { 176,1637 }, { 177,1637 },
705  { 178,1637 }, { 179,1637 }, { 180,1637 }, { 181,1637 }, { 182,1637 },
706  { 183,1637 }, { 184,1637 }, { 185,1637 }, { 186,1637 }, { 187,1637 },
707  { 188,1637 }, { 189,1637 }, { 190,1637 }, { 191,1637 }, { 192,1637 },
708  { 193,1637 }, { 194,1637 }, { 195,1637 }, { 196,1637 }, { 197,1637 },
709  { 198,1637 }, { 199,1637 }, { 200,1637 }, { 201,1637 }, { 202,1637 },
710  { 203,1637 }, { 204,1637 }, { 205,1637 }, { 206,1637 }, { 207,1637 },
711 
712  { 208,1637 }, { 209,1637 }, { 210,1637 }, { 211,1637 }, { 212,1637 },
713  { 213,1637 }, { 214,1637 }, { 215,1637 }, { 216,1637 }, { 217,1637 },
714  { 218,1637 }, { 219,1637 }, { 220,1637 }, { 221,1637 }, { 222,1637 },
715  { 223,1637 }, { 224,1637 }, { 225,1637 }, { 226,1637 }, { 227,1637 },
716  { 228,1637 }, { 229,1637 }, { 230,1637 }, { 231,1637 }, { 232,1637 },
717  { 233,1637 }, { 234,1637 }, { 235,1637 }, { 236,1637 }, { 237,1637 },
718  { 238,1637 }, { 239,1637 }, { 240,1637 }, { 241,1637 }, { 242,1637 },
719  { 243,1637 }, { 244,1637 }, { 245,1637 }, { 246,1637 }, { 247,1637 },
720  { 248,1637 }, { 249,1637 }, { 250,1637 }, { 251,1637 }, { 252,1637 },
721  { 253,1637 }, { 254,1637 }, { 255,1637 }, { 256,1637 }, {   0,  17 },
722 
723  {   0,4796 }, {   0,  18 }, {   0,4794 }, {   0,  23 }, {   0,4792 },
724  {   0,  24 }, {   0,4790 }, {   0,  39 }, {   0,4788 }, {   0,  25 },
725  {   0,4786 }, {   0,  40 }, {   0,4784 }, {   0,  42 }, {   0,4782 },
726  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
727  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
728  {   0,   0 }, {   0,   0 }, {   0,  55 }, {   0,4768 }, {   0,  46 },
729  {   0,4766 }, {   0,  47 }, {   0,4764 }, {   0,   0 }, {   0,   0 },
730  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
731  {   0,  50 }, {   0,4755 }, {  42,1199 }, {   0,  52 }, {   0,4752 },
732  {   0,   0 }, {  46,1201 }, {   0,  51 }, {   0,4748 }, {   0,  43 },
733 
734  {   0,4746 }, {   0,  21 }, {   0,4744 }, {  41,1197 }, {   0,  22 },
735  {   0,4741 }, {   0,  44 }, {   0,4739 }, {  46,1199 }, {   0,   0 },
736  {   0,   0 }, {  47,1199 }, {   0,   0 }, {  35,1609 }, {   0,   0 },
737  {  61,1199 }, {   0,   0 }, {  61,1199 }, {   0,  16 }, {   0,4727 },
738  {   0,   0 }, {  61,1197 }, {   0,  29 }, {   0,4723 }, {  46,1632 },
739  {  61,1201 }, {  48,1668 }, {  49,1668 }, {  50,1668 }, {  51,1668 },
740  {  52,1668 }, {  53,1668 }, {  54,1668 }, {  55,1668 }, {  56,1668 },
741  {  57,1668 }, {   0,  55 }, {   0,4709 }, {   0,  38 }, {   0,4707 },
742  {   0,   0 }, {  61,1189 }, {   0,   0 }, {  65,1727 }, {  66,1786 },
743  {  67,1727 }, {  68,1727 }, {  69,1846 }, {  70,1727 }, {   0,   0 },
744 
745  {  72,1189 }, {  60,1217 }, {  61,1219 }, {  62,1221 }, {   0,   0 },
746  {  36,1582 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  61,1216 },
747  {  62,1239 }, {  42,1584 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
748  {   0,   0 }, {  88,1871 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
749  {   0,   0 }, {   0,   0 }, {  35,1550 }, {   0,   0 }, {   0,   0 },
750  {  97,1727 }, {  98,1786 }, {  99,1727 }, { 100,1727 }, { 101,1846 },
751  { 102,1727 }, {   0,   0 }, { 104,1189 }, {  46,1573 }, {  61,1582 },
752  {  48,1609 }, {  49,1609 }, {  50,1609 }, {  51,1609 }, {  52,1609 },
753  {  53,1609 }, {  54,1609 }, {  55,1609 }, {  56,1609 }, {  57,1609 },
754  {   0,  56 }, {   0,4650 }, {   0,   0 }, { 120,1871 }, {   0,   0 },
755 
756  {   0,   9 }, {   0,4645 }, {  65,1668 }, {  66,1727 }, {  67,1668 },
757  {  68,1668 }, {  69,1787 }, {  70,1668 }, {   0,   0 }, {  72,1130 },
758  {   9,1514 }, {  10,1514 }, {   0,  11 }, {   0,4633 }, {   0,   8 },
759  {   0,4631 }, {   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,   0 }, {   0,   0 },
762  {   0,   0 }, {   0,   0 }, {  36,1109 }, {  32,1514 }, {  97,1668 },
763  {  98,1727 }, {  99,1668 }, { 100,1668 }, { 101,1787 }, { 102,1668 },
764  {   0,   0 }, { 104,1130 }, {   0,   0 }, {   0,   0 }, {  48,1109 },
765  {  49,1109 }, {  50,1109 }, {  51,1109 }, {  52,1109 }, {  53,1109 },
766 
767  {  54,1109 }, {  55,1109 }, {  56,1109 }, {  57,1109 }, {   0,   0 },
768  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
769  {   0,   0 }, {  65,1109 }, {  66,1109 }, {  67,1109 }, {  68,1109 },
770  {  69,1109 }, {  70,1109 }, {  71,1109 }, {  72,1109 }, {  73,1109 },
771  {  74,1109 }, {  75,1109 }, {  76,1109 }, {  77,1109 }, {  78,1109 },
772  {  79,1109 }, {  80,1109 }, {  81,1109 }, {  82,1109 }, {  83,1812 },
773  {  84,1109 }, {  85,1109 }, {  86,1109 }, {  87,1109 }, {  88,1109 },
774  {  89,1109 }, {  90,1109 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
775  {   0,   0 }, {  95,1109 }, {   0,   0 }, {  97,1109 }, {  98,1109 },
776  {  99,1109 }, { 100,1109 }, { 101,1109 }, { 102,1109 }, { 103,1109 },
777 
778  { 104,1109 }, { 105,1109 }, { 106,1109 }, { 107,1109 }, { 108,1109 },
779  { 109,1109 }, { 110,1109 }, { 111,1109 }, { 112,1109 }, { 113,1109 },
780  { 114,1109 }, { 115,1812 }, { 116,1109 }, { 117,1109 }, { 118,1109 },
781  { 119,1109 }, { 120,1109 }, { 121,1109 }, { 122,1109 }, {   0,  10 },
782  {   0,4526 }, {   1,1812 }, {   2,1812 }, {   3,1812 }, {   4,1812 },
783  {   5,1812 }, {   6,1812 }, {   7,1812 }, {   8,1812 }, {   9,1812 },
784  {   0,   0 }, {  11,1812 }, {  12,1812 }, {  13,1812 }, {  14,1812 },
785  {  15,1812 }, {  16,1812 }, {  17,1812 }, {  18,1812 }, {  19,1812 },
786  {  20,1812 }, {  21,1812 }, {  22,1812 }, {  23,1812 }, {  24,1812 },
787  {  25,1812 }, {  26,1812 }, {  27,1812 }, {  28,1812 }, {  29,1812 },
788 
789  {  30,1812 }, {  31,1812 }, {  32,1812 }, {  33,1812 }, {  34,1812 },
790  {  35,1812 }, {  36,1812 }, {  37,1812 }, {  38,1812 }, {  39,1812 },
791  {  40,1812 }, {  41,1812 }, {  42,1812 }, {  43,1812 }, {  44,1812 },
792  {  45,1812 }, {  46,1812 }, {  47,1812 }, {  48,1812 }, {  49,1812 },
793  {  50,1812 }, {  51,1812 }, {  52,1812 }, {  53,1812 }, {  54,1812 },
794  {  55,1812 }, {  56,1812 }, {  57,1812 }, {  58,1812 }, {  59,1392 },
795  {  60,1812 }, {  61,1812 }, {  62,1812 }, {  63,1812 }, {  64,1812 },
796  {  65,1812 }, {  66,1812 }, {  67,1812 }, {  68,1812 }, {  69,1812 },
797  {  70,1812 }, {  71,1812 }, {  72,1812 }, {  73,1812 }, {  74,1812 },
798  {  75,1812 }, {  76,1812 }, {  77,1812 }, {  78,1812 }, {  79,1812 },
799 
800  {  80,1812 }, {  81,1812 }, {  82,1812 }, {  83,1812 }, {  84,1812 },
801  {  85,1812 }, {  86,1812 }, {  87,1812 }, {  88,1812 }, {  89,1812 },
802  {  90,1812 }, {  91,1812 }, {  92,1812 }, {  93,1812 }, {  94,1812 },
803  {  95,1812 }, {  96,1812 }, {  97,1812 }, {  98,1812 }, {  99,1812 },
804  { 100,1812 }, { 101,1812 }, { 102,1812 }, { 103,1812 }, { 104,1812 },
805  { 105,1812 }, { 106,1812 }, { 107,1812 }, { 108,1812 }, { 109,1812 },
806  { 110,1812 }, { 111,1812 }, { 112,1812 }, { 113,1812 }, { 114,1812 },
807  { 115,1812 }, { 116,1812 }, { 117,1812 }, { 118,1812 }, { 119,1812 },
808  { 120,1812 }, { 121,1812 }, { 122,1812 }, { 123,1812 }, { 124,1812 },
809  { 125,1812 }, { 126,1812 }, { 127,1812 }, { 128,1812 }, { 129,1812 },
810 
811  { 130,1812 }, { 131,1812 }, { 132,1812 }, { 133,1812 }, { 134,1812 },
812  { 135,1812 }, { 136,1812 }, { 137,1812 }, { 138,1812 }, { 139,1812 },
813  { 140,1812 }, { 141,1812 }, { 142,1812 }, { 143,1812 }, { 144,1812 },
814  { 145,1812 }, { 146,1812 }, { 147,1812 }, { 148,1812 }, { 149,1812 },
815  { 150,1812 }, { 151,1812 }, { 152,1812 }, { 153,1812 }, { 154,1812 },
816  { 155,1812 }, { 156,1812 }, { 157,1812 }, { 158,1812 }, { 159,1812 },
817  { 160,1812 }, { 161,1812 }, { 162,1812 }, { 163,1812 }, { 164,1812 },
818  { 165,1812 }, { 166,1812 }, { 167,1812 }, { 168,1812 }, { 169,1812 },
819  { 170,1812 }, { 171,1812 }, { 172,1812 }, { 173,1812 }, { 174,1812 },
820  { 175,1812 }, { 176,1812 }, { 177,1812 }, { 178,1812 }, { 179,1812 },
821 
822  { 180,1812 }, { 181,1812 }, { 182,1812 }, { 183,1812 }, { 184,1812 },
823  { 185,1812 }, { 186,1812 }, { 187,1812 }, { 188,1812 }, { 189,1812 },
824  { 190,1812 }, { 191,1812 }, { 192,1812 }, { 193,1812 }, { 194,1812 },
825  { 195,1812 }, { 196,1812 }, { 197,1812 }, { 198,1812 }, { 199,1812 },
826  { 200,1812 }, { 201,1812 }, { 202,1812 }, { 203,1812 }, { 204,1812 },
827  { 205,1812 }, { 206,1812 }, { 207,1812 }, { 208,1812 }, { 209,1812 },
828  { 210,1812 }, { 211,1812 }, { 212,1812 }, { 213,1812 }, { 214,1812 },
829  { 215,1812 }, { 216,1812 }, { 217,1812 }, { 218,1812 }, { 219,1812 },
830  { 220,1812 }, { 221,1812 }, { 222,1812 }, { 223,1812 }, { 224,1812 },
831  { 225,1812 }, { 226,1812 }, { 227,1812 }, { 228,1812 }, { 229,1812 },
832 
833  { 230,1812 }, { 231,1812 }, { 232,1812 }, { 233,1812 }, { 234,1812 },
834  { 235,1812 }, { 236,1812 }, { 237,1812 }, { 238,1812 }, { 239,1812 },
835  { 240,1812 }, { 241,1812 }, { 242,1812 }, { 243,1812 }, { 244,1812 },
836  { 245,1812 }, { 246,1812 }, { 247,1812 }, { 248,1812 }, { 249,1812 },
837  { 250,1812 }, { 251,1812 }, { 252,1812 }, { 253,1812 }, { 254,1812 },
838  { 255,1812 }, { 256,1812 }, {   0,   9 }, {   0,4268 }, {   1,1554 },
839  {   2,1554 }, {   3,1554 }, {   4,1554 }, {   5,1554 }, {   6,1554 },
840  {   7,1554 }, {   8,1554 }, {   9,1812 }, {  10,1137 }, {  11,1554 },
841  {  12,1554 }, {  13,1554 }, {  14,1554 }, {  15,1554 }, {  16,1554 },
842  {  17,1554 }, {  18,1554 }, {  19,1554 }, {  20,1554 }, {  21,1554 },
843 
844  {  22,1554 }, {  23,1554 }, {  24,1554 }, {  25,1554 }, {  26,1554 },
845  {  27,1554 }, {  28,1554 }, {  29,1554 }, {  30,1554 }, {  31,1554 },
846  {  32,1812 }, {  33,1554 }, {  34,1554 }, {  35,1554 }, {  36,1554 },
847  {  37,1554 }, {  38,1554 }, {  39,1554 }, {  40,1554 }, {  41,1554 },
848  {  42,1554 }, {  43,1554 }, {  44,1554 }, {  45,1554 }, {  46,1554 },
849  {  47,1554 }, {  48,1554 }, {  49,1554 }, {  50,1554 }, {  51,1554 },
850  {  52,1554 }, {  53,1554 }, {  54,1554 }, {  55,1554 }, {  56,1554 },
851  {  57,1554 }, {  58,1554 }, {  59,1134 }, {  60,1554 }, {  61,1554 },
852  {  62,1554 }, {  63,1554 }, {  64,1554 }, {  65,1554 }, {  66,1554 },
853  {  67,1554 }, {  68,1554 }, {  69,1554 }, {  70,1554 }, {  71,1554 },
854 
855  {  72,1554 }, {  73,1554 }, {  74,1554 }, {  75,1554 }, {  76,1554 },
856  {  77,1554 }, {  78,1554 }, {  79,1554 }, {  80,1554 }, {  81,1554 },
857  {  82,1554 }, {  83,1554 }, {  84,1554 }, {  85,1554 }, {  86,1554 },
858  {  87,1554 }, {  88,1554 }, {  89,1554 }, {  90,1554 }, {  91,1554 },
859  {  92,1554 }, {  93,1554 }, {  94,1554 }, {  95,1554 }, {  96,1554 },
860  {  97,1554 }, {  98,1554 }, {  99,1554 }, { 100,1554 }, { 101,1554 },
861  { 102,1554 }, { 103,1554 }, { 104,1554 }, { 105,1554 }, { 106,1554 },
862  { 107,1554 }, { 108,1554 }, { 109,1554 }, { 110,1554 }, { 111,1554 },
863  { 112,1554 }, { 113,1554 }, { 114,1554 }, { 115,1554 }, { 116,1554 },
864  { 117,1554 }, { 118,1554 }, { 119,1554 }, { 120,1554 }, { 121,1554 },
865 
866  { 122,1554 }, { 123,1554 }, { 124,1554 }, { 125,1554 }, { 126,1554 },
867  { 127,1554 }, { 128,1554 }, { 129,1554 }, { 130,1554 }, { 131,1554 },
868  { 132,1554 }, { 133,1554 }, { 134,1554 }, { 135,1554 }, { 136,1554 },
869  { 137,1554 }, { 138,1554 }, { 139,1554 }, { 140,1554 }, { 141,1554 },
870  { 142,1554 }, { 143,1554 }, { 144,1554 }, { 145,1554 }, { 146,1554 },
871  { 147,1554 }, { 148,1554 }, { 149,1554 }, { 150,1554 }, { 151,1554 },
872  { 152,1554 }, { 153,1554 }, { 154,1554 }, { 155,1554 }, { 156,1554 },
873  { 157,1554 }, { 158,1554 }, { 159,1554 }, { 160,1554 }, { 161,1554 },
874  { 162,1554 }, { 163,1554 }, { 164,1554 }, { 165,1554 }, { 166,1554 },
875  { 167,1554 }, { 168,1554 }, { 169,1554 }, { 170,1554 }, { 171,1554 },
876 
877  { 172,1554 }, { 173,1554 }, { 174,1554 }, { 175,1554 }, { 176,1554 },
878  { 177,1554 }, { 178,1554 }, { 179,1554 }, { 180,1554 }, { 181,1554 },
879  { 182,1554 }, { 183,1554 }, { 184,1554 }, { 185,1554 }, { 186,1554 },
880  { 187,1554 }, { 188,1554 }, { 189,1554 }, { 190,1554 }, { 191,1554 },
881  { 192,1554 }, { 193,1554 }, { 194,1554 }, { 195,1554 }, { 196,1554 },
882  { 197,1554 }, { 198,1554 }, { 199,1554 }, { 200,1554 }, { 201,1554 },
883  { 202,1554 }, { 203,1554 }, { 204,1554 }, { 205,1554 }, { 206,1554 },
884  { 207,1554 }, { 208,1554 }, { 209,1554 }, { 210,1554 }, { 211,1554 },
885  { 212,1554 }, { 213,1554 }, { 214,1554 }, { 215,1554 }, { 216,1554 },
886  { 217,1554 }, { 218,1554 }, { 219,1554 }, { 220,1554 }, { 221,1554 },
887 
888  { 222,1554 }, { 223,1554 }, { 224,1554 }, { 225,1554 }, { 226,1554 },
889  { 227,1554 }, { 228,1554 }, { 229,1554 }, { 230,1554 }, { 231,1554 },
890  { 232,1554 }, { 233,1554 }, { 234,1554 }, { 235,1554 }, { 236,1554 },
891  { 237,1554 }, { 238,1554 }, { 239,1554 }, { 240,1554 }, { 241,1554 },
892  { 242,1554 }, { 243,1554 }, { 244,1554 }, { 245,1554 }, { 246,1554 },
893  { 247,1554 }, { 248,1554 }, { 249,1554 }, { 250,1554 }, { 251,1554 },
894  { 252,1554 }, { 253,1554 }, { 254,1554 }, { 255,1554 }, { 256,1554 },
895  {   0,   4 }, {   0,4010 }, {   0,   4 }, {   0,4008 }, {   0,   6 },
896  {   0,4006 }, {   0,   7 }, {   0,4004 }, {   0,  58 }, {   0,4002 },
897  {   9,1812 }, {  10,1812 }, {   9,1810 }, {  10,1810 }, {   0,   0 },
898 
899  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   9,   0 }, {   0,   0 },
900  {   0,   0 }, {  12,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
901  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
902  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  32,1812 }, {   0,   0 },
903  {  32,1810 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
904  {   0,   0 }, {  32,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
905  {  44,1812 }, {   0,   0 }, {  44,1810 }, {   0,   0 }, {   0,   0 },
906  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  48,1810 }, {  49,1810 },
907  {  50,1810 }, {  51,1810 }, {  52,1810 }, {  53,1810 }, {  54,1810 },
908  {  55,1810 }, {  56,1810 }, {  57,1810 }, {   0,   0 }, {   0,   0 },
909 
910  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
911  {  65,1810 }, {  66,1810 }, {  67,1810 }, {  68,1810 }, {  69,1810 },
912  {  70,1810 }, {  71,1810 }, {  72,1810 }, {  73,1810 }, {  74,1810 },
913  {  75,1810 }, {  76,1810 }, {  77,1810 }, {  78,1810 }, {  79,1810 },
914  {  80,1810 }, {  81,1810 }, {  82,1810 }, {  83,1810 }, {  84,1810 },
915  {  85,1810 }, {  86,1810 }, {  87,1810 }, {  88,1810 }, {  89,1810 },
916  {  90,1810 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
917  {  95,1810 }, {   0,   0 }, {  97,1810 }, {  98,1810 }, {  99,1810 },
918  { 100,1810 }, { 101,1810 }, { 102,1810 }, { 103,1810 }, { 104,1810 },
919  { 105,1810 }, { 106,1810 }, { 107,1810 }, { 108,1810 }, { 109,1810 },
920 
921  { 110,1810 }, { 111,1810 }, { 112,1810 }, { 113,1810 }, { 114,1810 },
922  { 115,1810 }, { 116,1810 }, { 117,1810 }, { 118,1810 }, { 119,1810 },
923  { 120,1810 }, { 121,1810 }, { 122,1810 }, {   0,   8 }, {   0,3882 },
924  {   1,1810 }, {   2,1810 }, {   3,1810 }, {   4,1810 }, {   5,1810 },
925  {   6,1810 }, {   7,1810 }, {   8,1810 }, {   9,1810 }, {  10,1810 },
926  {  11,1810 }, {  12,1810 }, {  13,1810 }, {  14,1810 }, {  15,1810 },
927  {  16,1810 }, {  17,1810 }, {  18,1810 }, {  19,1810 }, {  20,1810 },
928  {  21,1810 }, {  22,1810 }, {  23,1810 }, {  24,1810 }, {  25,1810 },
929  {  26,1810 }, {  27,1810 }, {  28,1810 }, {  29,1810 }, {  30,1810 },
930  {  31,1810 }, {  32,1810 }, {  33,1810 }, {  34,1810 }, {  35,1810 },
931 
932  {  36,1810 }, {  37,1810 }, {  38,1810 }, {  39,1810 }, {  40,1810 },
933  {  41,1810 }, {  42,1810 }, {  43,1810 }, {  44,1810 }, {  45,1810 },
934  {  46,1810 }, {  47,1810 }, {  48,1810 }, {  49,1810 }, {  50,1810 },
935  {  51,1810 }, {  52,1810 }, {  53,1810 }, {  54,1810 }, {  55,1810 },
936  {  56,1810 }, {  57,1810 }, {  58,1810 }, {  59,1810 }, {  60,1810 },
937  {  61,1810 }, {  62,1810 }, {  63,1810 }, {  64,1810 }, {  65,1810 },
938  {  66,1810 }, {  67,1810 }, {  68,1810 }, {  69,1810 }, {  70,1810 },
939  {  71,1810 }, {  72,1810 }, {  73,1810 }, {  74,1810 }, {  75,1810 },
940  {  76,1810 }, {  77,1810 }, {  78,1810 }, {  79,1810 }, {  80,1810 },
941  {  81,1810 }, {  82,1810 }, {  83,1810 }, {  84,1810 }, {  85,1810 },
942 
943  {  86,1810 }, {  87,1810 }, {  88,1810 }, {  89,1810 }, {  90,1810 },
944  {  91,1810 }, {  92,1810 }, {  93,1810 }, {  94,1810 }, {  95,1810 },
945  {  96,1810 }, {  97,1810 }, {  98,1810 }, {  99,1810 }, { 100,1810 },
946  { 101,1810 }, { 102,1810 }, { 103,1810 }, { 104,1810 }, { 105,1810 },
947  { 106,1810 }, { 107,1810 }, { 108,1810 }, { 109,1810 }, { 110,1810 },
948  { 111,1810 }, { 112,1810 }, { 113,1810 }, { 114,1810 }, { 115,1810 },
949  { 116,1810 }, { 117,1810 }, { 118,1810 }, { 119,1810 }, { 120,1810 },
950  { 121,1810 }, { 122,1810 }, { 123,1810 }, { 124,1810 }, { 125,1688 },
951  { 126,1810 }, { 127,1810 }, { 128,1810 }, { 129,1810 }, { 130,1810 },
952  { 131,1810 }, { 132,1810 }, { 133,1810 }, { 134,1810 }, { 135,1810 },
953 
954  { 136,1810 }, { 137,1810 }, { 138,1810 }, { 139,1810 }, { 140,1810 },
955  { 141,1810 }, { 142,1810 }, { 143,1810 }, { 144,1810 }, { 145,1810 },
956  { 146,1810 }, { 147,1810 }, { 148,1810 }, { 149,1810 }, { 150,1810 },
957  { 151,1810 }, { 152,1810 }, { 153,1810 }, { 154,1810 }, { 155,1810 },
958  { 156,1810 }, { 157,1810 }, { 158,1810 }, { 159,1810 }, { 160,1810 },
959  { 161,1810 }, { 162,1810 }, { 163,1810 }, { 164,1810 }, { 165,1810 },
960  { 166,1810 }, { 167,1810 }, { 168,1810 }, { 169,1810 }, { 170,1810 },
961  { 171,1810 }, { 172,1810 }, { 173,1810 }, { 174,1810 }, { 175,1810 },
962  { 176,1810 }, { 177,1810 }, { 178,1810 }, { 179,1810 }, { 180,1810 },
963  { 181,1810 }, { 182,1810 }, { 183,1810 }, { 184,1810 }, { 185,1810 },
964 
965  { 186,1810 }, { 187,1810 }, { 188,1810 }, { 189,1810 }, { 190,1810 },
966  { 191,1810 }, { 192,1810 }, { 193,1810 }, { 194,1810 }, { 195,1810 },
967  { 196,1810 }, { 197,1810 }, { 198,1810 }, { 199,1810 }, { 200,1810 },
968  { 201,1810 }, { 202,1810 }, { 203,1810 }, { 204,1810 }, { 205,1810 },
969  { 206,1810 }, { 207,1810 }, { 208,1810 }, { 209,1810 }, { 210,1810 },
970  { 211,1810 }, { 212,1810 }, { 213,1810 }, { 214,1810 }, { 215,1810 },
971  { 216,1810 }, { 217,1810 }, { 218,1810 }, { 219,1810 }, { 220,1810 },
972  { 221,1810 }, { 222,1810 }, { 223,1810 }, { 224,1810 }, { 225,1810 },
973  { 226,1810 }, { 227,1810 }, { 228,1810 }, { 229,1810 }, { 230,1810 },
974  { 231,1810 }, { 232,1810 }, { 233,1810 }, { 234,1810 }, { 235,1810 },
975 
976  { 236,1810 }, { 237,1810 }, { 238,1810 }, { 239,1810 }, { 240,1810 },
977  { 241,1810 }, { 242,1810 }, { 243,1810 }, { 244,1810 }, { 245,1810 },
978  { 246,1810 }, { 247,1810 }, { 248,1810 }, { 249,1810 }, { 250,1810 },
979  { 251,1810 }, { 252,1810 }, { 253,1810 }, { 254,1810 }, { 255,1810 },
980  { 256,1810 }, {   0,   0 }, {   0,3624 }, {   0,   0 }, {   0,   0 },
981  {   0,3621 }, {   0,   0 }, {   0,   0 }, {   0,3618 }, {   0,  35 },
982  {   0,3616 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
983  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
984  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,  57 },
985  {   0,3601 }, {   0,  57 }, {   0,3599 }, {   0,  14 }, {   0,3597 },
986 
987  {   0,  19 }, {   0,3595 }, {   0,  30 }, {   0,3593 }, {   0,  31 },
988  {   0,3591 }, {   0,  32 }, {   0,3589 }, {   0,  20 }, {   0,3587 },
989  {   0,  41 }, {   0,3585 }, {   0,  13 }, {   0,3583 }, {   0,  37 },
990  {   0,3581 }, {   0,  55 }, {   0,3579 }, {   0,  45 }, {   0,3577 },
991  {  48,1810 }, {  49,1810 }, {  50,1810 }, {  51,1810 }, {  52,1810 },
992  {  53,1810 }, {  54,1810 }, {  55,1810 }, {  56,1810 }, {  57,1810 },
993  {  35,1810 }, {   0,   0 }, {  35,1808 }, {   0,   0 }, {  39,1891 },
994  {   0,   0 }, {  39,2250 }, {  65,1810 }, {  66,1810 }, {  67,1810 },
995  {  68,1810 }, {  69,1810 }, {  70,1810 }, {  48,   0 }, {  49,   0 },
996  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
997 
998  {  55,   0 }, {  56,   0 }, {  57,   0 }, {  78,2169 }, {   0,  56 },
999  {   0,3541 }, {  78,2168 }, {   0,  27 }, {   0,3538 }, {   0,  48 },
1000  {   0,3536 }, {   0,  53 }, {   0,3534 }, {   0,  49 }, {   0,3532 },
1001  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  97,1810 },
1002  {  98,1810 }, {  99,1810 }, { 100,1810 }, { 101,1810 }, { 102,1810 },
1003  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1004  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1005  { 110,2169 }, {   0,  26 }, {   0,3509 }, { 110,2168 }, {   0,   0 },
1006  {   0,   0 }, {  36,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1007  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1008 
1009  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 },
1010  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
1011  {  55,   0 }, {  56,   0 }, {  57,   0 }, {   0,   0 }, {   0,   0 },
1012  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  61,2090 },
1013  {  65,   0 }, {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 },
1014  {  70,   0 }, {  71,   0 }, {  72,   0 }, {  73,   0 }, {  74,   0 },
1015  {  75,   0 }, {  76,   0 }, {  77,   0 }, {  78,   0 }, {  79,   0 },
1016  {  80,   0 }, {  81,   0 }, {  82,   0 }, {  83,   0 }, {  84,   0 },
1017  {  85,   0 }, {  86,   0 }, {  87,   0 }, {  88,   0 }, {  89,   0 },
1018  {  90,   0 }, {   0,   0 }, {   0,   0 }, {  61,2063 }, {   0,   0 },
1019 
1020  {  95,   0 }, {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 },
1021  { 100,   0 }, { 101,   0 }, { 102,   0 }, { 103,   0 }, { 104,   0 },
1022  { 105,   0 }, { 106,   0 }, { 107,   0 }, { 108,   0 }, { 109,   0 },
1023  { 110,   0 }, { 111,   0 }, { 112,   0 }, { 113,   0 }, { 114,   0 },
1024  { 115,   0 }, { 116,   0 }, { 117,   0 }, { 118,   0 }, { 119,   0 },
1025  { 120,   0 }, { 121,   0 }, { 122,   0 }, {   0,   0 }, {   0,3417 },
1026  {   1,   0 }, {   2,   0 }, {   3,   0 }, {   4,   0 }, {   5,   0 },
1027  {   6,   0 }, {   7,   0 }, {   8,   0 }, {   9,   0 }, {  10,   0 },
1028  {  11,   0 }, {  12,   0 }, {  13,   0 }, {  14,   0 }, {  15,   0 },
1029  {  16,   0 }, {  17,   0 }, {  18,   0 }, {  19,   0 }, {  20,   0 },
1030 
1031  {  21,   0 }, {  22,   0 }, {  23,   0 }, {  24,   0 }, {  25,   0 },
1032  {  26,   0 }, {  27,   0 }, {  28,   0 }, {  29,   0 }, {  30,   0 },
1033  {  31,   0 }, {  32,   0 }, {  33,   0 }, {  34,   0 }, {  35,   0 },
1034  {  36,   0 }, {  37,   0 }, {  38,   0 }, {  39,-182 }, {  40,   0 },
1035  {  41,   0 }, {  42,   0 }, {  43,   0 }, {  44,   0 }, {  45,   0 },
1036  {  46,   0 }, {  47,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 },
1037  {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 },
1038  {  56,   0 }, {  57,   0 }, {  58,   0 }, {  59,   0 }, {  60,   0 },
1039  {  61,   0 }, {  62,   0 }, {  63,   0 }, {  64,   0 }, {  65,   0 },
1040  {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 }, {  70,   0 },
1041 
1042  {  71,   0 }, {  72,   0 }, {  73,   0 }, {  74,   0 }, {  75,   0 },
1043  {  76,   0 }, {  77,   0 }, {  78,   0 }, {  79,   0 }, {  80,   0 },
1044  {  81,   0 }, {  82,   0 }, {  83,   0 }, {  84,   0 }, {  85,   0 },
1045  {  86,   0 }, {  87,   0 }, {  88,   0 }, {  89,   0 }, {  90,   0 },
1046  {  91,   0 }, {  92,   0 }, {  93,   0 }, {  94,   0 }, {  95,   0 },
1047  {  96,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 }, { 100,   0 },
1048  { 101,   0 }, { 102,   0 }, { 103,   0 }, { 104,   0 }, { 105,   0 },
1049  { 106,   0 }, { 107,   0 }, { 108,   0 }, { 109,   0 }, { 110,   0 },
1050  { 111,   0 }, { 112,   0 }, { 113,   0 }, { 114,   0 }, { 115,   0 },
1051  { 116,   0 }, { 117,   0 }, { 118,   0 }, { 119,   0 }, { 120,   0 },
1052 
1053  { 121,   0 }, { 122,   0 }, { 123,   0 }, { 124,   0 }, { 125,   0 },
1054  { 126,   0 }, { 127,   0 }, { 128,   0 }, { 129,   0 }, { 130,   0 },
1055  { 131,   0 }, { 132,   0 }, { 133,   0 }, { 134,   0 }, { 135,   0 },
1056  { 136,   0 }, { 137,   0 }, { 138,   0 }, { 139,   0 }, { 140,   0 },
1057  { 141,   0 }, { 142,   0 }, { 143,   0 }, { 144,   0 }, { 145,   0 },
1058  { 146,   0 }, { 147,   0 }, { 148,   0 }, { 149,   0 }, { 150,   0 },
1059  { 151,   0 }, { 152,   0 }, { 153,   0 }, { 154,   0 }, { 155,   0 },
1060  { 156,   0 }, { 157,   0 }, { 158,   0 }, { 159,   0 }, { 160,   0 },
1061  { 161,   0 }, { 162,   0 }, { 163,   0 }, { 164,   0 }, { 165,   0 },
1062  { 166,   0 }, { 167,   0 }, { 168,   0 }, { 169,   0 }, { 170,   0 },
1063 
1064  { 171,   0 }, { 172,   0 }, { 173,   0 }, { 174,   0 }, { 175,   0 },
1065  { 176,   0 }, { 177,   0 }, { 178,   0 }, { 179,   0 }, { 180,   0 },
1066  { 181,   0 }, { 182,   0 }, { 183,   0 }, { 184,   0 }, { 185,   0 },
1067  { 186,   0 }, { 187,   0 }, { 188,   0 }, { 189,   0 }, { 190,   0 },
1068  { 191,   0 }, { 192,   0 }, { 193,   0 }, { 194,   0 }, { 195,   0 },
1069  { 196,   0 }, { 197,   0 }, { 198,   0 }, { 199,   0 }, { 200,   0 },
1070  { 201,   0 }, { 202,   0 }, { 203,   0 }, { 204,   0 }, { 205,   0 },
1071  { 206,   0 }, { 207,   0 }, { 208,   0 }, { 209,   0 }, { 210,   0 },
1072  { 211,   0 }, { 212,   0 }, { 213,   0 }, { 214,   0 }, { 215,   0 },
1073  { 216,   0 }, { 217,   0 }, { 218,   0 }, { 219,   0 }, { 220,   0 },
1074 
1075  { 221,   0 }, { 222,   0 }, { 223,   0 }, { 224,   0 }, { 225,   0 },
1076  { 226,   0 }, { 227,   0 }, { 228,   0 }, { 229,   0 }, { 230,   0 },
1077  { 231,   0 }, { 232,   0 }, { 233,   0 }, { 234,   0 }, { 235,   0 },
1078  { 236,   0 }, { 237,   0 }, { 238,   0 }, { 239,   0 }, { 240,   0 },
1079  { 241,   0 }, { 242,   0 }, { 243,   0 }, { 244,   0 }, { 245,   0 },
1080  { 246,   0 }, { 247,   0 }, { 248,   0 }, { 249,   0 }, { 250,   0 },
1081  { 251,   0 }, { 252,   0 }, { 253,   0 }, { 254,   0 }, { 255,   0 },
1082  { 256,   0 }, {   0,   0 }, {   0,3159 }, {   0,   0 }, {   0,   0 },
1083  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1084  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1085 
1086  {   0,   0 }, {   0,3145 }, {   0,  15 }, {   0,3143 }, {   0,  36 },
1087  {   0,3141 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1088  {   0,3136 }, {   0,  10 }, {   0,3134 }, {   0,   0 }, {   0,   9 },
1089  {   0,3131 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1090  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   9,   0 },
1091  {  10,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1092  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1093  {  48,2068 }, {  49,2068 }, {  50,2068 }, {  51,2068 }, {  52,2068 },
1094  {  53,2068 }, {  54,2068 }, {  55,2068 }, {  56,2068 }, {  57,2068 },
1095  {   0,  55 }, {   0,3100 }, {  32,   0 }, {   0,   0 }, {   0,   0 },
1096 
1097  {   0,   0 }, {   0,   0 }, {  65,2068 }, {  66,2068 }, {  67,2068 },
1098  {  68,2068 }, {  69,2068 }, {  70,2068 }, {  48,2068 }, {  49,2068 },
1099  {  50,2068 }, {  51,2068 }, {  52,2068 }, {  53,2068 }, {  54,2068 },
1100  {  55,2068 }, {  56,2068 }, {  57,2068 }, {   0,   0 }, {   0,   0 },
1101  {   0,   0 }, {  59,   0 }, {   0,   0 }, {   0,   0 }, {  73,2381 },
1102  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1103  {   0,   0 }, {  35, -59 }, {   0,   0 }, {   0,   0 }, {  97,2068 },
1104  {  98,2068 }, {  99,2068 }, { 100,2068 }, { 101,2068 }, { 102,2068 },
1105  {   0,   0 }, {   0,   0 }, {  46, -36 }, {   0,   0 }, {  48,2069 },
1106  {  49,2069 }, {  50,2069 }, {  51,2069 }, {  52,2069 }, {  53,2069 },
1107 
1108  {  54,2069 }, {  55,2069 }, {  56,2069 }, {  57,2069 }, {   0,   0 },
1109  {   0,3041 }, { 105,2381 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1110  {   0,   0 }, {  65,  59 }, {  66, 118 }, {  67,  59 }, {  68,  59 },
1111  {  69, 178 }, {  70,  59 }, {   0,   0 }, {  72,-479 }, {   0,   0 },
1112  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1113  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1114  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1115  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1116  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  97,  59 }, {  98, 118 },
1117  {  99,  59 }, { 100,  59 }, { 101, 178 }, { 102,  59 }, {   0,   0 },
1118 
1119  { 104,-479 }, {   0,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 },
1120  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
1121  {  55,   0 }, {  56,   0 }, {  57,   0 }, {   0,  55 }, {   0,2982 },
1122  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1123  {  65,   0 }, {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 },
1124  {  70,   0 }, {   0,   0 }, {  72,-538 }, {   0,   0 }, {   0,   0 },
1125  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1126  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1127  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1128  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1129 
1130  {   0,   0 }, {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 },
1131  { 100,   0 }, { 101,   0 }, { 102,   0 }, {   0,   0 }, { 104,-538 },
1132  {   0,   0 }, {   0,   0 }, {  48, -59 }, {  49, -59 }, {  50, -59 },
1133  {  51, -59 }, {  52, -59 }, {  53, -59 }, {  54, -59 }, {  55, -59 },
1134  {  56, -59 }, {  57, -59 }, {   0,   0 }, {   0,   0 }, {   0,2922 },
1135  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65, -59 },
1136  {  66, -59 }, {  67, -59 }, {  68, -59 }, {  69, -59 }, {  70, -59 },
1137  {   0,   0 }, {  72,-597 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1138  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1139  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,2897 },
1140 
1141  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1142  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1143  {   0,   0 }, {  97, -59 }, {  98, -59 }, {  99, -59 }, { 100, -59 },
1144  { 101, -59 }, { 102, -59 }, {  43,1916 }, { 104,-597 }, {  45,1916 },
1145  {   0,   0 }, {   0,   0 }, {  48,1950 }, {  49,1950 }, {  50,1950 },
1146  {  51,1950 }, {  52,1950 }, {  53,1950 }, {  54,1950 }, {  55,1950 },
1147  {  56,1950 }, {  57,1950 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1148  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65,-119 },
1149  {  66,-119 }, {  67,-119 }, {  68,-119 }, {  69,-119 }, {  70,-119 },
1150  {   0,   0 }, {  72,-657 }, {  48,1950 }, {  49,1950 }, {  50,1950 },
1151 
1152  {  51,1950 }, {  52,1950 }, {  53,1950 }, {  54,1950 }, {  55,1950 },
1153  {  56,1950 }, {  57,1950 }, {   0,  56 }, {   0,2838 }, {   0,   0 },
1154  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65,1950 },
1155  {  66,1950 }, {  67,1950 }, {  68,1950 }, {  69,1950 }, {  70,1950 },
1156  {   0,   0 }, {  97,-119 }, {  98,-119 }, {  99,-119 }, { 100,-119 },
1157  { 101,-119 }, { 102,-119 }, {   0,   0 }, { 104,-657 }, {   0,   0 },
1158  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1159  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1160  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  36,-703 },
1161  {   0,   0 }, {  97,1950 }, {  98,1950 }, {  99,1950 }, { 100,1950 },
1162 
1163  { 101,1950 }, { 102,1950 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1164  {   0,   0 }, {  48,-703 }, {  49,-703 }, {  50,-703 }, {  51,-703 },
1165  {  52,-703 }, {  53,-703 }, {  54,-703 }, {  55,-703 }, {  56,-703 },
1166  {  57,-703 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1167  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65,-703 }, {  66,-703 },
1168  {  67,-703 }, {  68,-703 }, {  69,1950 }, {  70,-703 }, {  71,-703 },
1169  {  72,-703 }, {  73,-703 }, {  74,-703 }, {  75,-703 }, {  76,-703 },
1170  {  77,-703 }, {  78,-703 }, {  79,-703 }, {  80,-703 }, {  81,-703 },
1171  {  82,-703 }, {  83,-703 }, {  84,-703 }, {  85,-703 }, {  86,-703 },
1172  {  87,-703 }, {  88,-703 }, {  89,-703 }, {  90,-703 }, {   0,   0 },
1173 
1174  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  95,-703 }, {   0,   0 },
1175  {  97,-703 }, {  98,-703 }, {  99,-703 }, { 100,-703 }, { 101,1950 },
1176  { 102,-703 }, { 103,-703 }, { 104,-703 }, { 105,-703 }, { 106,-703 },
1177  { 107,-703 }, { 108,-703 }, { 109,-703 }, { 110,-703 }, { 111,-703 },
1178  { 112,-703 }, { 113,-703 }, { 114,-703 }, { 115,-703 }, { 116,-703 },
1179  { 117,-703 }, { 118,-703 }, { 119,-703 }, { 120,-703 }, { 121,-703 },
1180  { 122,-703 }, {   0,  10 }, {   0,2714 }, {   1,   0 }, {   2,   0 },
1181  {   3,   0 }, {   4,   0 }, {   5,   0 }, {   6,   0 }, {   7,   0 },
1182  {   8,   0 }, {   9,   0 }, {   0,   0 }, {  11,   0 }, {  12,   0 },
1183  {  13,   0 }, {  14,   0 }, {  15,   0 }, {  16,   0 }, {  17,   0 },
1184 
1185  {  18,   0 }, {  19,   0 }, {  20,   0 }, {  21,   0 }, {  22,   0 },
1186  {  23,   0 }, {  24,   0 }, {  25,   0 }, {  26,   0 }, {  27,   0 },
1187  {  28,   0 }, {  29,   0 }, {  30,   0 }, {  31,   0 }, {  32,   0 },
1188  {  33,   0 }, {  34,   0 }, {  35,   0 }, {  36,   0 }, {  37,   0 },
1189  {  38,   0 }, {  39,   0 }, {  40,   0 }, {  41,   0 }, {  42,   0 },
1190  {  43,   0 }, {  44,   0 }, {  45,   0 }, {  46,   0 }, {  47,   0 },
1191  {  48,   0 }, {  49,   0 }, {  50,   0 }, {  51,   0 }, {  52,   0 },
1192  {  53,   0 }, {  54,   0 }, {  55,   0 }, {  56,   0 }, {  57,   0 },
1193  {  58,   0 }, {  59,-420 }, {  60,   0 }, {  61,   0 }, {  62,   0 },
1194  {  63,   0 }, {  64,   0 }, {  65,   0 }, {  66,   0 }, {  67,   0 },
1195 
1196  {  68,   0 }, {  69,   0 }, {  70,   0 }, {  71,   0 }, {  72,   0 },
1197  {  73,   0 }, {  74,   0 }, {  75,   0 }, {  76,   0 }, {  77,   0 },
1198  {  78,   0 }, {  79,   0 }, {  80,   0 }, {  81,   0 }, {  82,   0 },
1199  {  83,   0 }, {  84,   0 }, {  85,   0 }, {  86,   0 }, {  87,   0 },
1200  {  88,   0 }, {  89,   0 }, {  90,   0 }, {  91,   0 }, {  92,   0 },
1201  {  93,   0 }, {  94,   0 }, {  95,   0 }, {  96,   0 }, {  97,   0 },
1202  {  98,   0 }, {  99,   0 }, { 100,   0 }, { 101,   0 }, { 102,   0 },
1203  { 103,   0 }, { 104,   0 }, { 105,   0 }, { 106,   0 }, { 107,   0 },
1204  { 108,   0 }, { 109,   0 }, { 110,   0 }, { 111,   0 }, { 112,   0 },
1205  { 113,   0 }, { 114,   0 }, { 115,   0 }, { 116,   0 }, { 117,   0 },
1206 
1207  { 118,   0 }, { 119,   0 }, { 120,   0 }, { 121,   0 }, { 122,   0 },
1208  { 123,   0 }, { 124,   0 }, { 125,   0 }, { 126,   0 }, { 127,   0 },
1209  { 128,   0 }, { 129,   0 }, { 130,   0 }, { 131,   0 }, { 132,   0 },
1210  { 133,   0 }, { 134,   0 }, { 135,   0 }, { 136,   0 }, { 137,   0 },
1211  { 138,   0 }, { 139,   0 }, { 140,   0 }, { 141,   0 }, { 142,   0 },
1212  { 143,   0 }, { 144,   0 }, { 145,   0 }, { 146,   0 }, { 147,   0 },
1213  { 148,   0 }, { 149,   0 }, { 150,   0 }, { 151,   0 }, { 152,   0 },
1214  { 153,   0 }, { 154,   0 }, { 155,   0 }, { 156,   0 }, { 157,   0 },
1215  { 158,   0 }, { 159,   0 }, { 160,   0 }, { 161,   0 }, { 162,   0 },
1216  { 163,   0 }, { 164,   0 }, { 165,   0 }, { 166,   0 }, { 167,   0 },
1217 
1218  { 168,   0 }, { 169,   0 }, { 170,   0 }, { 171,   0 }, { 172,   0 },
1219  { 173,   0 }, { 174,   0 }, { 175,   0 }, { 176,   0 }, { 177,   0 },
1220  { 178,   0 }, { 179,   0 }, { 180,   0 }, { 181,   0 }, { 182,   0 },
1221  { 183,   0 }, { 184,   0 }, { 185,   0 }, { 186,   0 }, { 187,   0 },
1222  { 188,   0 }, { 189,   0 }, { 190,   0 }, { 191,   0 }, { 192,   0 },
1223  { 193,   0 }, { 194,   0 }, { 195,   0 }, { 196,   0 }, { 197,   0 },
1224  { 198,   0 }, { 199,   0 }, { 200,   0 }, { 201,   0 }, { 202,   0 },
1225  { 203,   0 }, { 204,   0 }, { 205,   0 }, { 206,   0 }, { 207,   0 },
1226  { 208,   0 }, { 209,   0 }, { 210,   0 }, { 211,   0 }, { 212,   0 },
1227  { 213,   0 }, { 214,   0 }, { 215,   0 }, { 216,   0 }, { 217,   0 },
1228 
1229  { 218,   0 }, { 219,   0 }, { 220,   0 }, { 221,   0 }, { 222,   0 },
1230  { 223,   0 }, { 224,   0 }, { 225,   0 }, { 226,   0 }, { 227,   0 },
1231  { 228,   0 }, { 229,   0 }, { 230,   0 }, { 231,   0 }, { 232,   0 },
1232  { 233,   0 }, { 234,   0 }, { 235,   0 }, { 236,   0 }, { 237,   0 },
1233  { 238,   0 }, { 239,   0 }, { 240,   0 }, { 241,   0 }, { 242,   0 },
1234  { 243,   0 }, { 244,   0 }, { 245,   0 }, { 246,   0 }, { 247,   0 },
1235  { 248,   0 }, { 249,   0 }, { 250,   0 }, { 251,   0 }, { 252,   0 },
1236  { 253,   0 }, { 254,   0 }, { 255,   0 }, { 256,   0 }, {   0,   9 },
1237  {   0,2456 }, {   1,-258 }, {   2,-258 }, {   3,-258 }, {   4,-258 },
1238  {   5,-258 }, {   6,-258 }, {   7,-258 }, {   8,-258 }, {   9,   0 },
1239 
1240  {  10,-675 }, {  11,-258 }, {  12,-258 }, {  13,-258 }, {  14,-258 },
1241  {  15,-258 }, {  16,-258 }, {  17,-258 }, {  18,-258 }, {  19,-258 },
1242  {  20,-258 }, {  21,-258 }, {  22,-258 }, {  23,-258 }, {  24,-258 },
1243  {  25,-258 }, {  26,-258 }, {  27,-258 }, {  28,-258 }, {  29,-258 },
1244  {  30,-258 }, {  31,-258 }, {  32,   0 }, {  33,-258 }, {  34,-258 },
1245  {  35,-258 }, {  36,-258 }, {  37,-258 }, {  38,-258 }, {  39,-258 },
1246  {  40,-258 }, {  41,-258 }, {  42,-258 }, {  43,-258 }, {  44,-258 },
1247  {  45,-258 }, {  46,-258 }, {  47,-258 }, {  48,-258 }, {  49,-258 },
1248  {  50,-258 }, {  51,-258 }, {  52,-258 }, {  53,-258 }, {  54,-258 },
1249  {  55,-258 }, {  56,-258 }, {  57,-258 }, {  58,-258 }, {  59,-678 },
1250 
1251  {  60,-258 }, {  61,-258 }, {  62,-258 }, {  63,-258 }, {  64,-258 },
1252  {  65,-258 }, {  66,-258 }, {  67,-258 }, {  68,-258 }, {  69,-258 },
1253  {  70,-258 }, {  71,-258 }, {  72,-258 }, {  73,-258 }, {  74,-258 },
1254  {  75,-258 }, {  76,-258 }, {  77,-258 }, {  78,-258 }, {  79,-258 },
1255  {  80,-258 }, {  81,-258 }, {  82,-258 }, {  83,-258 }, {  84,-258 },
1256  {  85,-258 }, {  86,-258 }, {  87,-258 }, {  88,-258 }, {  89,-258 },
1257  {  90,-258 }, {  91,-258 }, {  92,-258 }, {  93,-258 }, {  94,-258 },
1258  {  95,-258 }, {  96,-258 }, {  97,-258 }, {  98,-258 }, {  99,-258 },
1259  { 100,-258 }, { 101,-258 }, { 102,-258 }, { 103,-258 }, { 104,-258 },
1260  { 105,-258 }, { 106,-258 }, { 107,-258 }, { 108,-258 }, { 109,-258 },
1261 
1262  { 110,-258 }, { 111,-258 }, { 112,-258 }, { 113,-258 }, { 114,-258 },
1263  { 115,-258 }, { 116,-258 }, { 117,-258 }, { 118,-258 }, { 119,-258 },
1264  { 120,-258 }, { 121,-258 }, { 122,-258 }, { 123,-258 }, { 124,-258 },
1265  { 125,-258 }, { 126,-258 }, { 127,-258 }, { 128,-258 }, { 129,-258 },
1266  { 130,-258 }, { 131,-258 }, { 132,-258 }, { 133,-258 }, { 134,-258 },
1267  { 135,-258 }, { 136,-258 }, { 137,-258 }, { 138,-258 }, { 139,-258 },
1268  { 140,-258 }, { 141,-258 }, { 142,-258 }, { 143,-258 }, { 144,-258 },
1269  { 145,-258 }, { 146,-258 }, { 147,-258 }, { 148,-258 }, { 149,-258 },
1270  { 150,-258 }, { 151,-258 }, { 152,-258 }, { 153,-258 }, { 154,-258 },
1271  { 155,-258 }, { 156,-258 }, { 157,-258 }, { 158,-258 }, { 159,-258 },
1272 
1273  { 160,-258 }, { 161,-258 }, { 162,-258 }, { 163,-258 }, { 164,-258 },
1274  { 165,-258 }, { 166,-258 }, { 167,-258 }, { 168,-258 }, { 169,-258 },
1275  { 170,-258 }, { 171,-258 }, { 172,-258 }, { 173,-258 }, { 174,-258 },
1276  { 175,-258 }, { 176,-258 }, { 177,-258 }, { 178,-258 }, { 179,-258 },
1277  { 180,-258 }, { 181,-258 }, { 182,-258 }, { 183,-258 }, { 184,-258 },
1278  { 185,-258 }, { 186,-258 }, { 187,-258 }, { 188,-258 }, { 189,-258 },
1279  { 190,-258 }, { 191,-258 }, { 192,-258 }, { 193,-258 }, { 194,-258 },
1280  { 195,-258 }, { 196,-258 }, { 197,-258 }, { 198,-258 }, { 199,-258 },
1281  { 200,-258 }, { 201,-258 }, { 202,-258 }, { 203,-258 }, { 204,-258 },
1282  { 205,-258 }, { 206,-258 }, { 207,-258 }, { 208,-258 }, { 209,-258 },
1283 
1284  { 210,-258 }, { 211,-258 }, { 212,-258 }, { 213,-258 }, { 214,-258 },
1285  { 215,-258 }, { 216,-258 }, { 217,-258 }, { 218,-258 }, { 219,-258 },
1286  { 220,-258 }, { 221,-258 }, { 222,-258 }, { 223,-258 }, { 224,-258 },
1287  { 225,-258 }, { 226,-258 }, { 227,-258 }, { 228,-258 }, { 229,-258 },
1288  { 230,-258 }, { 231,-258 }, { 232,-258 }, { 233,-258 }, { 234,-258 },
1289  { 235,-258 }, { 236,-258 }, { 237,-258 }, { 238,-258 }, { 239,-258 },
1290  { 240,-258 }, { 241,-258 }, { 242,-258 }, { 243,-258 }, { 244,-258 },
1291  { 245,-258 }, { 246,-258 }, { 247,-258 }, { 248,-258 }, { 249,-258 },
1292  { 250,-258 }, { 251,-258 }, { 252,-258 }, { 253,-258 }, { 254,-258 },
1293  { 255,-258 }, { 256,-258 }, {   0,   4 }, {   0,2198 }, {   0,   6 },
1294 
1295  {   0,2196 }, {   0,   5 }, {   0,2194 }, {   0,   0 }, {   0,   0 },
1296  {   0,   0 }, {   0,   0 }, {   9,   0 }, {  10,   0 }, {   0,   0 },
1297  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1298  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1299  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1300  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1301  {  32,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1302  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1303  {   0,   0 }, {   0,   0 }, {  44,   0 }, {   0,   0 }, {   0,   0 },
1304  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 },
1305 
1306  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
1307  {  55,   0 }, {  56,   0 }, {  57,   0 }, {   0,   0 }, {   0,   0 },
1308  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1309  {  65,   0 }, {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 },
1310  {  70,   0 }, {  71,   0 }, {  72,   0 }, {  73,   0 }, {  74,   0 },
1311  {  75,   0 }, {  76,   0 }, {  77,   0 }, {  78,   0 }, {  79,   0 },
1312  {  80,   0 }, {  81,   0 }, {  82,   0 }, {  83,   0 }, {  84,   0 },
1313  {  85,   0 }, {  86,   0 }, {  87,   0 }, {  88,   0 }, {  89,   0 },
1314  {  90,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1315  {  95,   0 }, {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 },
1316 
1317  { 100,   0 }, { 101,   0 }, { 102,   0 }, { 103,   0 }, { 104,   0 },
1318  { 105,   0 }, { 106,   0 }, { 107,   0 }, { 108,   0 }, { 109,   0 },
1319  { 110,   0 }, { 111,   0 }, { 112,   0 }, { 113,   0 }, { 114,   0 },
1320  { 115,   0 }, { 116,   0 }, { 117,   0 }, { 118,   0 }, { 119,   0 },
1321  { 120,   0 }, { 121,   0 }, { 122,   0 }, {   0,   0 }, {   0,2072 },
1322  {   1,   0 }, {   2,   0 }, {   3,   0 }, {   4,   0 }, {   5,   0 },
1323  {   6,   0 }, {   7,   0 }, {   8,   0 }, {   9,   0 }, {  10,   0 },
1324  {  11,   0 }, {  12,   0 }, {  13,   0 }, {  14,   0 }, {  15,   0 },
1325  {  16,   0 }, {  17,   0 }, {  18,   0 }, {  19,   0 }, {  20,   0 },
1326  {  21,   0 }, {  22,   0 }, {  23,   0 }, {  24,   0 }, {  25,   0 },
1327 
1328  {  26,   0 }, {  27,   0 }, {  28,   0 }, {  29,   0 }, {  30,   0 },
1329  {  31,   0 }, {  32,   0 }, {  33,   0 }, {  34,   0 }, {  35,   0 },
1330  {  36,   0 }, {  37,   0 }, {  38,   0 }, {  39,   0 }, {  40,   0 },
1331  {  41,   0 }, {  42,   0 }, {  43,   0 }, {  44,   0 }, {  45,   0 },
1332  {  46,   0 }, {  47,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 },
1333  {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 },
1334  {  56,   0 }, {  57,   0 }, {  58,   0 }, {  59,   0 }, {  60,   0 },
1335  {  61,   0 }, {  62,   0 }, {  63,   0 }, {  64,   0 }, {  65,   0 },
1336  {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 }, {  70,   0 },
1337  {  71,   0 }, {  72,   0 }, {  73,   0 }, {  74,   0 }, {  75,   0 },
1338 
1339  {  76,   0 }, {  77,   0 }, {  78,   0 }, {  79,   0 }, {  80,   0 },
1340  {  81,   0 }, {  82,   0 }, {  83,   0 }, {  84,   0 }, {  85,   0 },
1341  {  86,   0 }, {  87,   0 }, {  88,   0 }, {  89,   0 }, {  90,   0 },
1342  {  91,   0 }, {  92,   0 }, {  93,   0 }, {  94,   0 }, {  95,   0 },
1343  {  96,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 }, { 100,   0 },
1344  { 101,   0 }, { 102,   0 }, { 103,   0 }, { 104,   0 }, { 105,   0 },
1345  { 106,   0 }, { 107,   0 }, { 108,   0 }, { 109,   0 }, { 110,   0 },
1346  { 111,   0 }, { 112,   0 }, { 113,   0 }, { 114,   0 }, { 115,   0 },
1347  { 116,   0 }, { 117,   0 }, { 118,   0 }, { 119,   0 }, { 120,   0 },
1348  { 121,   0 }, { 122,   0 }, { 123,   0 }, { 124,   0 }, { 125,-122 },
1349 
1350  { 126,   0 }, { 127,   0 }, { 128,   0 }, { 129,   0 }, { 130,   0 },
1351  { 131,   0 }, { 132,   0 }, { 133,   0 }, { 134,   0 }, { 135,   0 },
1352  { 136,   0 }, { 137,   0 }, { 138,   0 }, { 139,   0 }, { 140,   0 },
1353  { 141,   0 }, { 142,   0 }, { 143,   0 }, { 144,   0 }, { 145,   0 },
1354  { 146,   0 }, { 147,   0 }, { 148,   0 }, { 149,   0 }, { 150,   0 },
1355  { 151,   0 }, { 152,   0 }, { 153,   0 }, { 154,   0 }, { 155,   0 },
1356  { 156,   0 }, { 157,   0 }, { 158,   0 }, { 159,   0 }, { 160,   0 },
1357  { 161,   0 }, { 162,   0 }, { 163,   0 }, { 164,   0 }, { 165,   0 },
1358  { 166,   0 }, { 167,   0 }, { 168,   0 }, { 169,   0 }, { 170,   0 },
1359  { 171,   0 }, { 172,   0 }, { 173,   0 }, { 174,   0 }, { 175,   0 },
1360 
1361  { 176,   0 }, { 177,   0 }, { 178,   0 }, { 179,   0 }, { 180,   0 },
1362  { 181,   0 }, { 182,   0 }, { 183,   0 }, { 184,   0 }, { 185,   0 },
1363  { 186,   0 }, { 187,   0 }, { 188,   0 }, { 189,   0 }, { 190,   0 },
1364  { 191,   0 }, { 192,   0 }, { 193,   0 }, { 194,   0 }, { 195,   0 },
1365  { 196,   0 }, { 197,   0 }, { 198,   0 }, { 199,   0 }, { 200,   0 },
1366  { 201,   0 }, { 202,   0 }, { 203,   0 }, { 204,   0 }, { 205,   0 },
1367  { 206,   0 }, { 207,   0 }, { 208,   0 }, { 209,   0 }, { 210,   0 },
1368  { 211,   0 }, { 212,   0 }, { 213,   0 }, { 214,   0 }, { 215,   0 },
1369  { 216,   0 }, { 217,   0 }, { 218,   0 }, { 219,   0 }, { 220,   0 },
1370  { 221,   0 }, { 222,   0 }, { 223,   0 }, { 224,   0 }, { 225,   0 },
1371 
1372  { 226,   0 }, { 227,   0 }, { 228,   0 }, { 229,   0 }, { 230,   0 },
1373  { 231,   0 }, { 232,   0 }, { 233,   0 }, { 234,   0 }, { 235,   0 },
1374  { 236,   0 }, { 237,   0 }, { 238,   0 }, { 239,   0 }, { 240,   0 },
1375  { 241,   0 }, { 242,   0 }, { 243,   0 }, { 244,   0 }, { 245,   0 },
1376  { 246,   0 }, { 247,   0 }, { 248,   0 }, { 249,   0 }, { 250,   0 },
1377  { 251,   0 }, { 252,   0 }, { 253,   0 }, { 254,   0 }, { 255,   0 },
1378  { 256,   0 }, {   0,  57 }, {   0,1814 }, {   0,   0 }, {   0,   0 },
1379  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1380  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1381  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1382 
1383  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1384  {   0,1791 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1385  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1386  {   0,   0 }, {   0,   0 }, {  35,  23 }, {   0,   0 }, {   0,   0 },
1387  {   0,   0 }, {  39, 104 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1388  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1389  {  48,   0 }, {  49,   0 }, {  50,   0 }, {  51,   0 }, {  52,   0 },
1390  {  53,   0 }, {  54,   0 }, {  55,   0 }, {  56,   0 }, {  57,   0 },
1391  {   0,   0 }, {  36,-1833 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1392  {   0,   0 }, {   0,   0 }, {  65,   0 }, {  66,   0 }, {  67,   0 },
1393 
1394  {  68,   0 }, {  69,   0 }, {  70,   0 }, {  48,-1810 }, {  49,-1810 },
1395  {  50,-1810 }, {  51,-1810 }, {  52,-1810 }, {  53,-1810 }, {  54,-1810 },
1396  {  55,-1810 }, {  56,-1810 }, {  57,-1810 }, {   0,   0 }, {   0,   0 },
1397  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1398  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1399  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  97,   0 },
1400  {  98,   0 }, {  99,   0 }, { 100,   0 }, { 101,   0 }, { 102,   0 },
1401  {   0,   0 }, {   0,1710 }, {   1,-1707 }, {   2,-1707 }, {   3,-1707 },
1402  {   4,-1707 }, {   5,-1707 }, {   6,-1707 }, {   7,-1707 }, {   8,-1707 },
1403  {   9,-1707 }, {  10,-1707 }, {  11,-1707 }, {  12,-1707 }, {  13,-1707 },
1404 
1405  {  14,-1707 }, {  15,-1707 }, {  16,-1707 }, {  17,-1707 }, {  18,-1707 },
1406  {  19,-1707 }, {  20,-1707 }, {  21,-1707 }, {  22,-1707 }, {  23,-1707 },
1407  {  24,-1707 }, {  25,-1707 }, {  26,-1707 }, {  27,-1707 }, {  28,-1707 },
1408  {  29,-1707 }, {  30,-1707 }, {  31,-1707 }, {  32,-1707 }, {  33,-1707 },
1409  {  34,-1707 }, {  35,-1707 }, {  36,-1707 }, {  37,-1707 }, {  38,-1707 },
1410  {  39,-1889 }, {  40,-1707 }, {  41,-1707 }, {  42,-1707 }, {  43,-1707 },
1411  {  44,-1707 }, {  45,-1707 }, {  46,-1707 }, {  47,-1707 }, {  48,-1707 },
1412  {  49,-1707 }, {  50,-1707 }, {  51,-1707 }, {  52,-1707 }, {  53,-1707 },
1413  {  54,-1707 }, {  55,-1707 }, {  56,-1707 }, {  57,-1707 }, {  58,-1707 },
1414  {  59,-1707 }, {  60,-1707 }, {  61,-1707 }, {  62,-1707 }, {  63,-1707 },
1415 
1416  {  64,-1707 }, {  65,-1707 }, {  66,-1707 }, {  67,-1707 }, {  68,-1707 },
1417  {  69,-1707 }, {  70,-1707 }, {  71,-1707 }, {  72,-1707 }, {  73,-1707 },
1418  {  74,-1707 }, {  75,-1707 }, {  76,-1707 }, {  77,-1707 }, {  78,-1707 },
1419  {  79,-1707 }, {  80,-1707 }, {  81,-1707 }, {  82,-1707 }, {  83,-1707 },
1420  {  84,-1707 }, {  85,-1707 }, {  86,-1707 }, {  87,-1707 }, {  88,-1707 },
1421  {  89,-1707 }, {  90,-1707 }, {  91,-1707 }, {  92,-1707 }, {  93,-1707 },
1422  {  94,-1707 }, {  95,-1707 }, {  96,-1707 }, {  97,-1707 }, {  98,-1707 },
1423  {  99,-1707 }, { 100,-1707 }, { 101,-1707 }, { 102,-1707 }, { 103,-1707 },
1424  { 104,-1707 }, { 105,-1707 }, { 106,-1707 }, { 107,-1707 }, { 108,-1707 },
1425  { 109,-1707 }, { 110,-1707 }, { 111,-1707 }, { 112,-1707 }, { 113,-1707 },
1426 
1427  { 114,-1707 }, { 115,-1707 }, { 116,-1707 }, { 117,-1707 }, { 118,-1707 },
1428  { 119,-1707 }, { 120,-1707 }, { 121,-1707 }, { 122,-1707 }, { 123,-1707 },
1429  { 124,-1707 }, { 125,-1707 }, { 126,-1707 }, { 127,-1707 }, { 128,-1707 },
1430  { 129,-1707 }, { 130,-1707 }, { 131,-1707 }, { 132,-1707 }, { 133,-1707 },
1431  { 134,-1707 }, { 135,-1707 }, { 136,-1707 }, { 137,-1707 }, { 138,-1707 },
1432  { 139,-1707 }, { 140,-1707 }, { 141,-1707 }, { 142,-1707 }, { 143,-1707 },
1433  { 144,-1707 }, { 145,-1707 }, { 146,-1707 }, { 147,-1707 }, { 148,-1707 },
1434  { 149,-1707 }, { 150,-1707 }, { 151,-1707 }, { 152,-1707 }, { 153,-1707 },
1435  { 154,-1707 }, { 155,-1707 }, { 156,-1707 }, { 157,-1707 }, { 158,-1707 },
1436  { 159,-1707 }, { 160,-1707 }, { 161,-1707 }, { 162,-1707 }, { 163,-1707 },
1437 
1438  { 164,-1707 }, { 165,-1707 }, { 166,-1707 }, { 167,-1707 }, { 168,-1707 },
1439  { 169,-1707 }, { 170,-1707 }, { 171,-1707 }, { 172,-1707 }, { 173,-1707 },
1440  { 174,-1707 }, { 175,-1707 }, { 176,-1707 }, { 177,-1707 }, { 178,-1707 },
1441  { 179,-1707 }, { 180,-1707 }, { 181,-1707 }, { 182,-1707 }, { 183,-1707 },
1442  { 184,-1707 }, { 185,-1707 }, { 186,-1707 }, { 187,-1707 }, { 188,-1707 },
1443  { 189,-1707 }, { 190,-1707 }, { 191,-1707 }, { 192,-1707 }, { 193,-1707 },
1444  { 194,-1707 }, { 195,-1707 }, { 196,-1707 }, { 197,-1707 }, { 198,-1707 },
1445  { 199,-1707 }, { 200,-1707 }, { 201,-1707 }, { 202,-1707 }, { 203,-1707 },
1446  { 204,-1707 }, { 205,-1707 }, { 206,-1707 }, { 207,-1707 }, { 208,-1707 },
1447  { 209,-1707 }, { 210,-1707 }, { 211,-1707 }, { 212,-1707 }, { 213,-1707 },
1448 
1449  { 214,-1707 }, { 215,-1707 }, { 216,-1707 }, { 217,-1707 }, { 218,-1707 },
1450  { 219,-1707 }, { 220,-1707 }, { 221,-1707 }, { 222,-1707 }, { 223,-1707 },
1451  { 224,-1707 }, { 225,-1707 }, { 226,-1707 }, { 227,-1707 }, { 228,-1707 },
1452  { 229,-1707 }, { 230,-1707 }, { 231,-1707 }, { 232,-1707 }, { 233,-1707 },
1453  { 234,-1707 }, { 235,-1707 }, { 236,-1707 }, { 237,-1707 }, { 238,-1707 },
1454  { 239,-1707 }, { 240,-1707 }, { 241,-1707 }, { 242,-1707 }, { 243,-1707 },
1455  { 244,-1707 }, { 245,-1707 }, { 246,-1707 }, { 247,-1707 }, { 248,-1707 },
1456  { 249,-1707 }, { 250,-1707 }, { 251,-1707 }, { 252,-1707 }, { 253,-1707 },
1457  { 254,-1707 }, { 255,-1707 }, { 256,-1707 }, {   0,   0 }, {   0,1452 },
1458  {   0,   0 }, {   0,1450 }, {   0,  34 }, {   0,1448 }, {   0,  33 },
1459 
1460  {   0,1446 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1461  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1462  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1463  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1464  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1465  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1466  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1467  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1468  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1469  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1470 
1471  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1472  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1473  {   0,   0 }, {  67, 373 }, {   0,   0 }, {  67, 373 }, {   0,   0 },
1474  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1475  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1476  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1477  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1478  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1479  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  99, 373 }, {   0,   0 },
1480  {  99, 373 }, {   0,   0 }, {   0,1349 }, {   1,-2068 }, {   2,-2068 },
1481 
1482  {   3,-2068 }, {   4,-2068 }, {   5,-2068 }, {   6,-2068 }, {   7,-2068 },
1483  {   8,-2068 }, {   9,-2068 }, {  10,-2068 }, {  11,-2068 }, {  12,-2068 },
1484  {  13,-2068 }, {  14,-2068 }, {  15,-2068 }, {  16,-2068 }, {  17,-2068 },
1485  {  18,-2068 }, {  19,-2068 }, {  20,-2068 }, {  21,-2068 }, {  22,-2068 },
1486  {  23,-2068 }, {  24,-2068 }, {  25,-2068 }, {  26,-2068 }, {  27,-2068 },
1487  {  28,-2068 }, {  29,-2068 }, {  30,-2068 }, {  31,-2068 }, {  32,-2068 },
1488  {  33,-2068 }, {  34,-2068 }, {  35,-2068 }, {  36,-2068 }, {  37,-2068 },
1489  {  38,-2068 }, {  39,-2250 }, {  40,-2068 }, {  41,-2068 }, {  42,-2068 },
1490  {  43,-2068 }, {  44,-2068 }, {  45,-2068 }, {  46,-2068 }, {  47,-2068 },
1491  {  48,-2068 }, {  49,-2068 }, {  50,-2068 }, {  51,-2068 }, {  52,-2068 },
1492 
1493  {  53,-2068 }, {  54,-2068 }, {  55,-2068 }, {  56,-2068 }, {  57,-2068 },
1494  {  58,-2068 }, {  59,-2068 }, {  60,-2068 }, {  61,-2068 }, {  62,-2068 },
1495  {  63,-2068 }, {  64,-2068 }, {  65,-2068 }, {  66,-2068 }, {  67,-2068 },
1496  {  68,-2068 }, {  69,-2068 }, {  70,-2068 }, {  71,-2068 }, {  72,-2068 },
1497  {  73,-2068 }, {  74,-2068 }, {  75,-2068 }, {  76,-2068 }, {  77,-2068 },
1498  {  78,-2068 }, {  79,-2068 }, {  80,-2068 }, {  81,-2068 }, {  82,-2068 },
1499  {  83,-2068 }, {  84,-2068 }, {  85,-2068 }, {  86,-2068 }, {  87,-2068 },
1500  {  88,-2068 }, {  89,-2068 }, {  90,-2068 }, {  91,-2068 }, {  92,-2068 },
1501  {  93,-2068 }, {  94,-2068 }, {  95,-2068 }, {  96,-2068 }, {  97,-2068 },
1502  {  98,-2068 }, {  99,-2068 }, { 100,-2068 }, { 101,-2068 }, { 102,-2068 },
1503 
1504  { 103,-2068 }, { 104,-2068 }, { 105,-2068 }, { 106,-2068 }, { 107,-2068 },
1505  { 108,-2068 }, { 109,-2068 }, { 110,-2068 }, { 111,-2068 }, { 112,-2068 },
1506  { 113,-2068 }, { 114,-2068 }, { 115,-2068 }, { 116,-2068 }, { 117,-2068 },
1507  { 118,-2068 }, { 119,-2068 }, { 120,-2068 }, { 121,-2068 }, { 122,-2068 },
1508  { 123,-2068 }, { 124,-2068 }, { 125,-2068 }, { 126,-2068 }, { 127,-2068 },
1509  { 128,-2068 }, { 129,-2068 }, { 130,-2068 }, { 131,-2068 }, { 132,-2068 },
1510  { 133,-2068 }, { 134,-2068 }, { 135,-2068 }, { 136,-2068 }, { 137,-2068 },
1511  { 138,-2068 }, { 139,-2068 }, { 140,-2068 }, { 141,-2068 }, { 142,-2068 },
1512  { 143,-2068 }, { 144,-2068 }, { 145,-2068 }, { 146,-2068 }, { 147,-2068 },
1513  { 148,-2068 }, { 149,-2068 }, { 150,-2068 }, { 151,-2068 }, { 152,-2068 },
1514 
1515  { 153,-2068 }, { 154,-2068 }, { 155,-2068 }, { 156,-2068 }, { 157,-2068 },
1516  { 158,-2068 }, { 159,-2068 }, { 160,-2068 }, { 161,-2068 }, { 162,-2068 },
1517  { 163,-2068 }, { 164,-2068 }, { 165,-2068 }, { 166,-2068 }, { 167,-2068 },
1518  { 168,-2068 }, { 169,-2068 }, { 170,-2068 }, { 171,-2068 }, { 172,-2068 },
1519  { 173,-2068 }, { 174,-2068 }, { 175,-2068 }, { 176,-2068 }, { 177,-2068 },
1520  { 178,-2068 }, { 179,-2068 }, { 180,-2068 }, { 181,-2068 }, { 182,-2068 },
1521  { 183,-2068 }, { 184,-2068 }, { 185,-2068 }, { 186,-2068 }, { 187,-2068 },
1522  { 188,-2068 }, { 189,-2068 }, { 190,-2068 }, { 191,-2068 }, { 192,-2068 },
1523  { 193,-2068 }, { 194,-2068 }, { 195,-2068 }, { 196,-2068 }, { 197,-2068 },
1524  { 198,-2068 }, { 199,-2068 }, { 200,-2068 }, { 201,-2068 }, { 202,-2068 },
1525 
1526  { 203,-2068 }, { 204,-2068 }, { 205,-2068 }, { 206,-2068 }, { 207,-2068 },
1527  { 208,-2068 }, { 209,-2068 }, { 210,-2068 }, { 211,-2068 }, { 212,-2068 },
1528  { 213,-2068 }, { 214,-2068 }, { 215,-2068 }, { 216,-2068 }, { 217,-2068 },
1529  { 218,-2068 }, { 219,-2068 }, { 220,-2068 }, { 221,-2068 }, { 222,-2068 },
1530  { 223,-2068 }, { 224,-2068 }, { 225,-2068 }, { 226,-2068 }, { 227,-2068 },
1531  { 228,-2068 }, { 229,-2068 }, { 230,-2068 }, { 231,-2068 }, { 232,-2068 },
1532  { 233,-2068 }, { 234,-2068 }, { 235,-2068 }, { 236,-2068 }, { 237,-2068 },
1533  { 238,-2068 }, { 239,-2068 }, { 240,-2068 }, { 241,-2068 }, { 242,-2068 },
1534  { 243,-2068 }, { 244,-2068 }, { 245,-2068 }, { 246,-2068 }, { 247,-2068 },
1535  { 248,-2068 }, { 249,-2068 }, { 250,-2068 }, { 251,-2068 }, { 252,-2068 },
1536 
1537  { 253,-2068 }, { 254,-2068 }, { 255,-2068 }, { 256,-2068 }, {   0,  55 },
1538  {   0,1091 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1539  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1540  {   0,   0 }, {   0,   0 }, {   0,1079 }, {   0,   0 }, {   0,1077 },
1541  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1542  {   0,   0 }, {   0,   0 }, {   0,  54 }, {   0,1068 }, {   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,1055 }, {   0,   0 }, {   0,1053 }, {   0,   0 },
1546  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1547 
1548  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 },
1549  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
1550  {  55,   0 }, {  56,   0 }, {  57,   0 }, {   0,   0 }, {   0,  55 },
1551  {   0,1031 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1552  {  65,   0 }, {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 },
1553  {  70,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 }, {  51,   0 },
1554  {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 }, {  56,   0 },
1555  {  57,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1556  {   0,1006 }, {   0,   0 }, {   0,   0 }, {  76,  24 }, {   0,   0 },
1557  {  76,  24 }, {   0,   0 }, {  69, 396 }, {   0,   0 }, {   0,   0 },
1558 
1559  {   0,   0 }, {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 },
1560  { 100,   0 }, { 101,   0 }, { 102,   0 }, {   0,   0 }, {   0,   0 },
1561  {   0,   0 }, {  46,-2105 }, {   0,   0 }, {  48,   0 }, {  49,   0 },
1562  {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 },
1563  {  55,   0 }, {  56,   0 }, {  57,   0 }, {   0,  54 }, {   0, 972 },
1564  { 108,  24 }, {  85, 192 }, { 108,  24 }, {  85, 224 }, { 101, 396 },
1565  {  65,-2010 }, {  66,-1951 }, {  67,-2010 }, {  68,-2010 }, {  69,-1891 },
1566  {  70,-2010 }, {   0,   0 }, {  72,-2548 }, {  48, 366 }, {  49, 366 },
1567  {  50, 366 }, {  51, 366 }, {  52, 366 }, {  53, 366 }, {  54, 366 },
1568  {  55, 366 }, {  56, 366 }, {  57, 366 }, {   0,  55 }, {   0, 947 },
1569 
1570  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1571  {   0,   0 }, {   0,   0 }, {   0,   0 }, { 117, 192 }, {   0,   0 },
1572  { 117, 224 }, {   0,   0 }, {  97,-2010 }, {  98,-1951 }, {  99,-2010 },
1573  { 100,-2010 }, { 101,-1891 }, { 102,-2010 }, {   0,   0 }, { 104,-2548 },
1574  {   0,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 },
1575  {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 },
1576  {  56,   0 }, {  57,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1577  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65,-2069 },
1578  {  66,-2069 }, {  67,-2069 }, {  68,-2069 }, {  69,-2069 }, {  70,-2069 },
1579  {   0,   0 }, {  72,-2607 }, {  48,   0 }, {  49,   0 }, {  50,   0 },
1580 
1581  {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 },
1582  {  56,   0 }, {  57,   0 }, {   0,  56 }, {   0, 888 }, {   0,   0 },
1583  {   0,   0 }, {   0, 885 }, {   0,  12 }, {   0, 883 }, {  65,   0 },
1584  {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 }, {  70,   0 },
1585  {   9,   0 }, {  97,-2069 }, {  98,-2069 }, {  99,-2069 }, { 100,-2069 },
1586  { 101,-2069 }, { 102,-2069 }, {   0,   0 }, { 104,-2607 }, {   0,   0 },
1587  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0, 863 }, {   0,   0 },
1588  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1589  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  32,   0 }, {  36,-2653 },
1590  {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 }, { 100,   0 },
1591 
1592  { 101,   0 }, { 102,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1593  {   0,   0 }, {  48,-2653 }, {  49,-2653 }, {  50,-2653 }, {  51,-2653 },
1594  {  52,-2653 }, {  53,-2653 }, {  54,-2653 }, {  55,-2653 }, {  56,-2653 },
1595  {  57,-2653 }, {   0,   0 }, {   0, 829 }, {   0,   0 }, {   0, 827 },
1596  {   0,   0 }, {   0, 825 }, {   0,   0 }, {  65,-2653 }, {  66,-2653 },
1597  {  67,-2653 }, {  68,-2653 }, {  69,-2653 }, {  70,-2653 }, {  71,-2653 },
1598  {  72,-2653 }, {  73,-2653 }, {  74,-2653 }, {  75,-2653 }, {  76,-2653 },
1599  {  77,-2653 }, {  78,-2653 }, {  79,-2653 }, {  80,-2653 }, {  81,-2653 },
1600  {  82,-2653 }, {  83, 258 }, {  84,-2653 }, {  85,-2653 }, {  86,-2653 },
1601  {  87,-2653 }, {  88,-2653 }, {  89,-2653 }, {  90,-2653 }, {   0,   2 },
1602 
1603  {   0, 796 }, {  68,  36 }, {   0,   0 }, {  95,-2653 }, {   0,   0 },
1604  {  97,-2653 }, {  98,-2653 }, {  99,-2653 }, { 100,-2653 }, { 101,-2653 },
1605  { 102,-2653 }, { 103,-2653 }, { 104,-2653 }, { 105,-2653 }, { 106,-2653 },
1606  { 107,-2653 }, { 108,-2653 }, { 109,-2653 }, { 110,-2653 }, { 111,-2653 },
1607  { 112,-2653 }, { 113,-2653 }, { 114,-2653 }, { 115, 258 }, { 116,-2653 },
1608  { 117,-2653 }, { 118,-2653 }, { 119,-2653 }, { 120,-2653 }, { 121,-2653 },
1609  { 122,-2653 }, {   0,   0 }, {   0, 764 }, { 100,  36 }, {   0,   0 },
1610  {  68,   4 }, { 125,   2 }, {   0,   0 }, {  69,  31 }, {   0,   0 },
1611  {  69,  72 }, {   9, 258 }, {   0,   1 }, {   0, 753 }, {   0,   0 },
1612  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1613 
1614  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1615  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1616  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  32, 258 },
1617  {   0,   0 }, {   0,   0 }, { 100,   4 }, {   0,   0 }, {   0,   0 },
1618  { 101,  31 }, {   0,   0 }, { 101,  72 }, {   0,   0 }, {   0,   0 },
1619  {   0,   0 }, {   0,   0 }, {   0,   0 }, {  46, 382 }, {   0,   0 },
1620  {  48, 382 }, {  49, 382 }, {  50, 382 }, {  51, 382 }, {  52, 382 },
1621  {  53, 382 }, {  54, 382 }, {  55, 382 }, {  56, 382 }, {  57, 382 },
1622  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1623  {   0,   0 }, {   0,   0 }, {  65, 382 }, {  66, 382 }, {  67, 382 },
1624 
1625  {  68, 382 }, {  69, 382 }, {  70, 382 }, {  71, 382 }, {  72, 382 },
1626  {  73, 382 }, {  74, 382 }, {  75, 382 }, {  76, 382 }, {  77, 382 },
1627  {  78, 382 }, {  79, 382 }, {  80, 382 }, {  81, 382 }, {  82, 382 },
1628  {  83, 382 }, {  84, 382 }, {  85, 382 }, {  86, 382 }, {  87, 382 },
1629  {  88, 382 }, {  89, 382 }, {  90, 382 }, {   0,   0 }, {   0, 672 },
1630  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  97, 382 },
1631  {  98, 382 }, {  99, 382 }, { 100, 382 }, { 101, 382 }, { 102, 382 },
1632  { 103, 382 }, { 104, 382 }, { 105, 382 }, { 106, 382 }, { 107, 382 },
1633  { 108, 382 }, { 109, 382 }, { 110, 382 }, { 111, 382 }, { 112, 382 },
1634  { 113, 382 }, { 114, 382 }, { 115, 382 }, { 116, 382 }, { 117, 382 },
1635 
1636  { 118, 382 }, { 119, 382 }, { 120, 382 }, { 121, 382 }, { 122, 382 },
1637  {   0,  54 }, {   0, 640 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1638  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1639  {   0,   3 }, {   0, 630 }, {  43, 382 }, {   0,   0 }, {  45, 382 },
1640  {   0,   0 }, {   0,   0 }, {  48, 414 }, {  49, 414 }, {  50, 414 },
1641  {  51, 414 }, {  52, 414 }, {  53, 414 }, {  54, 414 }, {  55, 414 },
1642  {  56, 414 }, {  57, 414 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1643  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1644  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1645  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1646 
1647  {   0,   0 }, {   0,   0 }, {  36,-2911 }, {   0,   0 }, {  48,   0 },
1648  {  49,   0 }, {  50,   0 }, {  51,   0 }, {  52,   0 }, {  53,   0 },
1649  {  54,   0 }, {  55,   0 }, {  56,   0 }, {  57,   0 }, {  48,-2911 },
1650  {  49,-2911 }, {  50,-2911 }, {  51,-2911 }, {  52,-2911 }, {  53,-2911 },
1651  {  54,-2911 }, {  55,-2911 }, {  56,-2911 }, {  57,-2911 }, {   0,   0 },
1652  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1653  {   0,   0 }, {  65,-2911 }, {  66,-2911 }, {  67,-2911 }, {  68,-2911 },
1654  {  69,-2911 }, {  70,-2911 }, {  71,-2911 }, {  72,-2911 }, {  73,-2911 },
1655  {  74,-2911 }, {  75,-2911 }, {  76,-2911 }, {  77,-2911 }, {  78,-2911 },
1656  {  79,-2911 }, {  80,-2911 }, {  81,-2911 }, {  82,-2911 }, {  83,-2911 },
1657 
1658  {  84,-2911 }, {  85,-2911 }, {  86,-2911 }, {  87,-2911 }, {  88,-2911 },
1659  {  89,-2911 }, {  90,-2911 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1660  {   0,   0 }, {  95,-2911 }, {   0,   0 }, {  97,-2911 }, {  98,-2911 },
1661  {  99,-2911 }, { 100,-2911 }, { 101,-2911 }, { 102,-2911 }, { 103,-2911 },
1662  { 104,-2911 }, { 105,-2911 }, { 106,-2911 }, { 107,-2911 }, { 108,-2911 },
1663  { 109,-2911 }, { 110,-2911 }, { 111,-2911 }, { 112,-2911 }, { 113,-2911 },
1664  { 114,-2911 }, { 115,-2911 }, { 116,-2911 }, { 117,-2911 }, { 118,-2911 },
1665  { 119,-2911 }, { 120,-2911 }, { 121,-2911 }, { 122,-2911 }, {   0,   0 },
1666  {   0, 506 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1667  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   9,   0 },
1668 
1669  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1670  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1671  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1672  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1673  {   0,   0 }, {   0,   0 }, {  32,   0 }, {   0,   0 }, {   0,   0 },
1674  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1675  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1676  {   0,   0 }, {  46, 124 }, {   0,   0 }, {  48, 124 }, {  49, 124 },
1677  {  50, 124 }, {  51, 124 }, {  52, 124 }, {  53, 124 }, {  54, 124 },
1678  {  55, 124 }, {  56, 124 }, {  57, 124 }, {   0,   0 }, {   0,   0 },
1679 
1680  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1681  {  65, 124 }, {  66, 124 }, {  67, 124 }, {  68, 124 }, {  69, 124 },
1682  {  70, 124 }, {  71, 124 }, {  72, 124 }, {  73, 124 }, {  74, 124 },
1683  {  75, 124 }, {  76, 124 }, {  77, 124 }, {  78, 124 }, {  79, 124 },
1684  {  80, 124 }, {  81, 124 }, {  82, 124 }, {  83, 124 }, {  84, 124 },
1685  {  85, 124 }, {  86, 124 }, {  87, 124 }, {  88, 124 }, {  89, 124 },
1686  {  90, 124 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1687  {   0,   0 }, {   0,   0 }, {  97, 124 }, {  98, 124 }, {  99, 124 },
1688  { 100, 124 }, { 101, 124 }, { 102, 124 }, { 103, 124 }, { 104, 124 },
1689  { 105, 124 }, { 106, 124 }, { 107, 124 }, { 108, 124 }, { 109, 124 },
1690 
1691  { 110, 124 }, { 111, 124 }, { 112, 124 }, { 113, 124 }, { 114, 124 },
1692  { 115, 124 }, { 116, 124 }, { 117, 124 }, { 118, 124 }, { 119, 124 },
1693  { 120, 124 }, { 121, 124 }, { 122, 124 }, {   0,   0 }, {   0, 382 },
1694  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1695  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   9,-503 }, {   0,   0 },
1696  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1697  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1698  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1699  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1700  {   0,   0 }, {  32,-503 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1701 
1702  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1703  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1704  {  46,   0 }, {   0,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 },
1705  {  51,   0 }, {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 },
1706  {  56,   0 }, {  57,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1707  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  65,   0 },
1708  {  66,   0 }, {  67,   0 }, {  68,   0 }, {  69,   0 }, {  70,   0 },
1709  {  71,   0 }, {  72,   0 }, {  73,   0 }, {  74,   0 }, {  75,   0 },
1710  {  76,   0 }, {  77,   0 }, {  78,   0 }, {  79,   0 }, {  80,   0 },
1711  {  81,   0 }, {  82,   0 }, {  83,   0 }, {  84,   0 }, {  85,   0 },
1712 
1713  {  86,   0 }, {  87,   0 }, {  88,   0 }, {  89,   0 }, {  90,   0 },
1714  {   0,   0 }, {   0, 290 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1715  {   0,   0 }, {  97,   0 }, {  98,   0 }, {  99,   0 }, { 100,   0 },
1716  { 101,   0 }, { 102,   0 }, { 103,   0 }, { 104,   0 }, { 105,   0 },
1717  { 106,   0 }, { 107,   0 }, { 108,   0 }, { 109,   0 }, { 110,   0 },
1718  { 111,   0 }, { 112,   0 }, { 113,   0 }, { 114,   0 }, { 115,   0 },
1719  { 116,   0 }, { 117,   0 }, { 118,   0 }, { 119,   0 }, { 120,   0 },
1720  { 121,   0 }, { 122,   0 }, {   0,  54 }, {   0, 258 }, { 125,-501 },
1721  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1722  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1723 
1724  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {  48,  32 },
1725  {  49,  32 }, {  50,  32 }, {  51,  32 }, {  52,  32 }, {  53,  32 },
1726  {  54,  32 }, {  55,  32 }, {  56,  32 }, {  57,  32 }, {   0,   0 },
1727  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1728  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1729  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1730  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1731  {   0,   0 }, {  48,   0 }, {  49,   0 }, {  50,   0 }, {  51,   0 },
1732  {  52,   0 }, {  53,   0 }, {  54,   0 }, {  55,   0 }, {  56,   0 },
1733  {  57,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1734 
1735  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1736  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1737  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1738  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1739  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1740  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1741  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1742  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1743  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1744  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1745 
1746  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1747  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1748  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1749  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1750  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1751  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1752  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1753  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1754  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1755  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1756 
1757  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1758  {   0,   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,   0 },
1762  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1763  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1764  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1765  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1766  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1767 
1768  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1769  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1770  {   0,   0 }, {   0,   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 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1776  {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 }, {   0,   0 },
1777  { 257,  62 }, {   1,   0 },    };
1778 
1779 static yyconst struct yy_trans_info *yy_start_state_list[7] =
1780     {
1781     &yy_transition[1],
1782     &yy_transition[3],
1783     &yy_transition[261],
1784     &yy_transition[519],
1785     &yy_transition[777],
1786     &yy_transition[1035],
1787     &yy_transition[1293],
1788 
1789 
1790     } ;
1791 
1792 static yy_state_type yy_last_accepting_state;
1793 static char *yy_last_accepting_cpos;
1794 
1795 /* The intent behind this definition is that it'll catch
1796  * any uses of REJECT which flex missed.
1797  */
1798 #define REJECT reject_used_but_not_detected
1799 #define yymore() yymore_used_but_not_detected
1800 #define YY_MORE_ADJ 0
1801 #define YY_RESTORE_YY_MORE_OFFSET
1802 char *yytext;
1803 #line 1 "lex.l"
1804 #define INITIAL 0
1805 #line 2 "lex.l"
1806 
1807 #include "token.h"
1808 #include "util.h"
1809 
1810 #ifdef _WIN32
1811 #include <io.h>
1812 #define FILE_SEP "\\"
1813 #else
1814 #include <unistd.h>
1815 #define FILE_SEP "/"
1816 #endif
1817 
1818 #define yywrap() 1
1819 #define YY_SKIP_YYWRAP 1
1820 
1821 #define YY_NO_UNPUT 1
1822 
1823 // Some static data definition
1824 
1825 static char *file_name;
1826 static int line, pos;    // Token position
1827 extern char *i_path;
1828 
1829 struct scan_state {
1830     int             pos;
1831     int             line;
1832     char*           file_name;
1833     char*           search_path;
1834     FILE*           input;
1835     YY_BUFFER_STATE buffer;
1836 };
1837 
1838 #define MAX_INCLUDE_DEPTH 256   // Include stack depth
1839 #define MAX_ID_LENGTH     256
1840 
1841 class scan_ctx {
1842   protected:
1843     scan_state      stack[ MAX_INCLUDE_DEPTH ];
1844     int             sp;
1845 
1846   public:
1847     void push();
1848     void attach(char* name, FILE* in);
1849     void pop();
empty()1850     bool empty() { return sp == 0; }
1851     bool find(char* name) ;
scan_ctx()1852     scan_ctx() { sp = 0; }
1853 };
1854 
1855 static scan_ctx scanner;
1856 static int type_or_var_context;
1857 
1858 
scanner_input(char * file)1859 void scanner_input(char *file)
1860 {
1861     FILE* f = fopen (file, "r");
1862 
1863     if (f == NULL) {
1864 	error("can't open input source file: %s", file);
1865     }
1866     scanner.attach(file, f);
1867 }
1868 
1869 
1870 // Hints for macro functionality (inherited from rtl2c)
1871 static nm_entry *nm = NULL;	       // Token name
1872 static char *text   = NULL;            // Token text if != NULL
1873 
1874 static int include_level;
1875 
1876 class use_ctx {
1877   public:
1878     char* fname;
1879     use_ctx* next;
1880 
use_ctx(char * name,use_ctx * chain)1881     use_ctx(char* name, use_ctx* chain) {
1882 	fname = name;
1883 	next = chain;
1884     }
1885 };
1886 
1887 static use_ctx* use_chain;
1888 
1889 #undef  ECHO
1890 #define ECHO
1891 
1892 // Token generator function
1893 
tkn(int tag)1894 int tkn (int tag) {
1895    curr_token = new token(text ? text : strdup(yytext),
1896 			  tag, line, pos, nm);
1897    nm = NULL; text = NULL;
1898    for (char *c = yytext; *c != 0; c++) {
1899        if (*c == '\n') { line++; pos = 0; }
1900        else if (*c == '\t') { pos += TAB_WIDTH - (pos % TAB_WIDTH); }
1901        else pos++;
1902    }
1903    curr_token->fname = file_name;
1904    if (include_level > 0) {
1905        curr_token->attr |= token::from_include_file;
1906    }
1907    return 1;
1908 }
1909 
1910 
1911 
1912 // Include file name processing
1913 
include_name(char * src)1914 static char *include_name (char *src) {
1915     char *t;
1916     char *name = new char[strlen(src)+8];
1917     char *dst = name;
1918     if (strchr(src, '\n') != NULL) {
1919         line += 1;
1920         pos = 0;
1921     }
1922     while (*src == '\'' || isspace(*src)) src++;        // Skip leading '[ ]
1923     if ((t = strchr (src, '[')) != NULL) {
1924 #if 0
1925         int gid, uid, n;
1926         if (sscanf(t, "[%d,%d]%n", &gid, &uid, &n) == 2) {
1927             dst += sprintf(dst, "../%03d%03d/", gid, uid);
1928 	    src = t + n;
1929         }
1930 	else
1931 #endif
1932 	{
1933 	    if ((t = strrchr(src, ']')) != NULL) {
1934 	        src = t+1;
1935             }
1936         }
1937     }
1938     bool suffix = FALSE;
1939     while(*src && !isspace(*src) && *src != ';' && *src != '\''
1940           && *src!='\n' && *src != '}')
1941     {
1942         if (*src == '.') suffix = TRUE;
1943 	*dst++ = tolower(*(unsigned char*)src++);
1944     }
1945     *dst = 0;
1946     if (!suffix) strcpy(dst, ".pas");
1947 
1948     if (scanner.find(name)) {
1949 	error(line, pos, file_name, "file %s already included !\n", name);
1950     }
1951     return name;
1952 }
1953 
1954 static int yyinput(void);
1955 
yyinput_file()1956 inline int yyinput_file() {
1957     int ch = yyinput();
1958     if (ch == '\n') { line++; pos = 0; }
1959     else if (ch == '\t') { pos += TAB_WIDTH - (pos % TAB_WIDTH); }
1960     else pos++;
1961     return ch;
1962 }
1963 
process_end_of_line_comment()1964 static int process_end_of_line_comment() {
1965     char cmt_buf[1024];
1966     char* p = cmt_buf;
1967     int c;
1968     *p++ = '\\';
1969     *p++ = '\\';
1970     while((c = yyinput_file()) != EOF) {
1971         if (c == '\n') {
1972            *p = '\0';
1973            curr_token = new token(NULL, TKN_CMNT, line, pos);
1974            curr_token->in_text = curr_token->out_text = strdup(cmt_buf);
1975            return 1;
1976         } else {
1977            *p++ = (char)c;
1978         }
1979     }
1980     error(line, pos, file_name, "EOF in comment !\n");
1981     return -1;
1982 }
1983 
process_comments()1984 static int process_comments() {
1985     static int cmt_buf_len = 256;
1986     static char* cmt_buf = new char[cmt_buf_len];
1987     int c, pc = 0;
1988     char *p = cmt_buf;
1989     char cmt_start = *yytext;
1990     *p++ = '/';
1991     *p++ = '*';
1992 
1993     curr_token = new token(NULL, TKN_CMNT, line, pos);
1994 
1995     pos += strlen(yytext);
1996 
1997     if (nested_comments) {
1998 	while((c = yyinput_file()) != EOF) {
1999 	    if (c == '/' && pc == '*') c = ' ';
2000 	    if (p == cmt_buf + cmt_buf_len) {
2001 		cmt_buf = (char*)realloc(cmt_buf, 2*cmt_buf_len);
2002 		p = cmt_buf + cmt_buf_len;
2003 		cmt_buf_len *= 2;
2004 	    }
2005 	    if ((cmt_start == '{' && c == '}') ||
2006 		(cmt_start == '(' && c == ')' && pc == '*'))
2007             {
2008 		size_t len = p - cmt_buf;
2009 		char* cmt_text = new char[len + 3];
2010 		memcpy(cmt_text, cmt_buf, len);
2011 		if (pc != '*') cmt_text[len++] = '*';
2012 		cmt_text[len++] = '/';
2013 		cmt_text[len] = '\0';
2014                 if (turbo_pascal && cmt_text[2] == '$') {
2015                    *p = '\0';
2016                    if (strincmp(cmt_text+3, "IFDEF", 5) == 0) {
2017                       sprintf(cmt_text, "#ifdef %s", cmt_buf+9);
2018                    } else if (strincmp(cmt_text+3, "ELSE", 4) == 0) {
2019                       sprintf(cmt_text, "#else");
2020                    } else if (strincmp(cmt_text+3, "ENDIF", 5) == 0) {
2021                       sprintf(cmt_text, "#endif");
2022                    } else if (strincmp(cmt_text+3, "IFNDEF", 6) == 0) {
2023                       sprintf(cmt_text, "#ifndef %s", cmt_buf+10);
2024                    } else if (strincmp(cmt_text+3, "DEFINE", 6) == 0) {
2025                       sprintf(cmt_text, "#define %s", cmt_buf+10);
2026                    } else if (strincmp(cmt_text+3, "IFOPT", 5) == 0) {
2027 		      int value = 1;
2028                       char* p = strchr(cmt_text+8, '+');
2029 		      if (p != NULL) *p = '\0';
2030 		      else if ((p = strchr(cmt_text+8, '-')) != NULL) {
2031 			value = 0;
2032 			*p = '\0';
2033 		      }
2034 		      for (p = cmt_buf+8; *p == ' '; p++);
2035                       sprintf(cmt_text, "#if OPTION_%s == %d",
2036 			      p, value);
2037                    }
2038                 }
2039 		curr_token->in_text = curr_token->out_text = cmt_text;
2040 		return 1;
2041 	    }
2042 	    *p++ = pc = c;
2043 	}
2044     } else {
2045 	while((c = yyinput_file()) != EOF) {
2046 	    if (c == '/' && pc == '*') c = ' ';
2047 	    if (p == cmt_buf + cmt_buf_len) {
2048 		cmt_buf = (char*)realloc(cmt_buf, 2*cmt_buf_len);
2049 		p = cmt_buf + cmt_buf_len;
2050 		cmt_buf_len *= 2;
2051 	    }
2052 	    if (c == '}' || (c == ')' && pc == '*')) {
2053 		size_t len = p - cmt_buf;
2054 		char* cmt_text = new char[len + 3];
2055 		memcpy(cmt_text, cmt_buf, len);
2056 		if (pc != '*') cmt_text[len++] = '*';
2057 		cmt_text[len++] = '/';
2058 		cmt_text[len] = '\0';
2059 		curr_token->in_text = curr_token->out_text = cmt_text;
2060 		return 1;
2061 	    }
2062 	    *p++ = pc = c;
2063 	}
2064     }
2065     error(line, pos, file_name, "EOF in comment !\n");
2066     return -1;
2067 }
2068 
2069 /* the "incl" state is used for picking up the name
2070  * of an include file
2071  */
2072 #define incl 1
2073 
2074 #define use 2
2075 
2076 #line 2077 "lex.yy.c"
2077 
2078 /* Macros after this point can all be overridden by user definitions in
2079  * section 1.
2080  */
2081 
2082 #ifndef YY_SKIP_YYWRAP
2083 #ifdef __cplusplus
2084 extern "C" int yywrap YY_PROTO(( void ));
2085 #else
2086 extern int yywrap YY_PROTO(( void ));
2087 #endif
2088 #endif
2089 
2090 #ifndef YY_NO_UNPUT
2091 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
2092 #endif
2093 
2094 #ifndef yytext_ptr
2095 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
2096 #endif
2097 
2098 #ifdef YY_NEED_STRLEN
2099 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
2100 #endif
2101 
2102 #ifndef YY_NO_INPUT
2103 #ifdef __cplusplus
2104 static int yyinput YY_PROTO(( void ));
2105 #else
2106 static int input YY_PROTO(( void ));
2107 #endif
2108 #endif
2109 
2110 #if YY_STACK_USED
2111 static int yy_start_stack_ptr = 0;
2112 static int yy_start_stack_depth = 0;
2113 static int *yy_start_stack = 0;
2114 #ifndef YY_NO_PUSH_STATE
2115 static void yy_push_state YY_PROTO(( int new_state ));
2116 #endif
2117 #ifndef YY_NO_POP_STATE
2118 static void yy_pop_state YY_PROTO(( void ));
2119 #endif
2120 #ifndef YY_NO_TOP_STATE
2121 static int yy_top_state YY_PROTO(( void ));
2122 #endif
2123 
2124 #else
2125 #define YY_NO_PUSH_STATE 1
2126 #define YY_NO_POP_STATE 1
2127 #define YY_NO_TOP_STATE 1
2128 #endif
2129 
2130 #ifdef YY_MALLOC_DECL
2131 YY_MALLOC_DECL
2132 #else
2133 #if __STDC__
2134 #ifndef __cplusplus
2135 #include <stdlib.h>
2136 #endif
2137 #else
2138 /* Just try to get by without declaring the routines.  This will fail
2139  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
2140  * or sizeof(void*) != sizeof(int).
2141  */
2142 #endif
2143 #endif
2144 
2145 /* Amount of stuff to slurp up with each read. */
2146 #ifndef YY_READ_BUF_SIZE
2147 #define YY_READ_BUF_SIZE 8192
2148 #endif
2149 
2150 /* Copy whatever the last rule matched to the standard output. */
2151 
2152 #ifndef ECHO
2153 /* This used to be an fputs(), but since the string might contain NUL's,
2154  * we now use fwrite().
2155  */
2156 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
2157 #endif
2158 
2159 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2160  * is returned in "result".
2161  */
2162 #ifndef YY_INPUT
2163 #define YY_INPUT(buf,result,max_size) \
2164 	if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
2165 		YY_FATAL_ERROR( "input in flex scanner failed" );
2166 #endif
2167 
2168 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2169  * we don't want an extra ';' after the "return" because that will cause
2170  * some compilers to complain about unreachable statements.
2171  */
2172 #ifndef yyterminate
2173 #define yyterminate() return YY_NULL
2174 #endif
2175 
2176 /* Number of entries by which start-condition stack grows. */
2177 #ifndef YY_START_STACK_INCR
2178 #define YY_START_STACK_INCR 25
2179 #endif
2180 
2181 /* Report a fatal error. */
2182 #ifndef YY_FATAL_ERROR
2183 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2184 #endif
2185 
2186 /* Default declaration of generated scanner - a define so the user can
2187  * easily add parameters.
2188  */
2189 #ifndef YY_DECL
2190 #define YY_DECL int yylex YY_PROTO(( void ))
2191 #endif
2192 
2193 /* Code executed at the beginning of each rule, after yytext and yyleng
2194  * have been set up.
2195  */
2196 #ifndef YY_USER_ACTION
2197 #define YY_USER_ACTION
2198 #endif
2199 
2200 /* Code executed at the end of each rule. */
2201 #ifndef YY_BREAK
2202 #define YY_BREAK break;
2203 #endif
2204 
2205 #define YY_RULE_SETUP \
2206 	YY_USER_ACTION
2207 
2208 YY_DECL
2209 	{
2210 	register yy_state_type yy_current_state;
2211 	register char *yy_cp = NULL, *yy_bp = NULL;
2212 	register int yy_act;
2213 
2214 #line 289 "lex.l"
2215 
2216 
2217 #line 2218 "lex.yy.c"
2218 
2219 	if ( yy_init )
2220 		{
2221 		yy_init = 0;
2222 
2223 #ifdef YY_USER_INIT
2224 		YY_USER_INIT;
2225 #endif
2226 
2227 		if ( ! yy_start )
2228 			yy_start = 1;	/* first start state */
2229 
2230 		if ( ! yyin )
2231 			yyin = stdin;
2232 
2233 		if ( ! yyout )
2234 			yyout = stdout;
2235 
2236 		if ( ! yy_current_buffer )
2237 			yy_current_buffer =
2238 				yy_create_buffer( yyin, YY_BUF_SIZE );
2239 
2240 		yy_load_buffer_state();
2241 		}
2242 
2243 	while ( 1 )		/* loops until end-of-file is reached */
2244 		{
2245 		yy_cp = yy_c_buf_p;
2246 
2247 		/* Support of yytext. */
2248 		*yy_cp = yy_hold_char;
2249 
2250 		/* yy_bp points to the position in yy_ch_buf of the start of
2251 		 * the current run.
2252 		 */
2253 		yy_bp = yy_cp;
2254 
2255 		yy_current_state = yy_start_state_list[yy_start];
2256 yy_match:
2257 		{
2258 		register yyconst struct yy_trans_info *yy_trans_info;
2259 
2260 		register YY_CHAR yy_c;
2261 
2262 		for ( yy_c = YY_SC_TO_UI(*yy_cp);
2263 		      (yy_trans_info = &yy_current_state[(unsigned int) yy_c])->
2264 		yy_verify == yy_c;
2265 		      yy_c = YY_SC_TO_UI(*++yy_cp) )
2266 			{
2267 			yy_current_state += yy_trans_info->yy_nxt;
2268 
2269 			if ( yy_current_state[-1].yy_nxt )
2270 				{
2271 				yy_last_accepting_state = yy_current_state;
2272 				yy_last_accepting_cpos = yy_cp;
2273 				}
2274 			}
2275 		}
2276 
2277 yy_find_action:
2278 		yy_act = yy_current_state[-1].yy_nxt;
2279 
2280 		YY_DO_BEFORE_ACTION;
2281 
2282 
2283 do_action:	/* This label is used only to access EOF actions. */
2284 
2285 
2286 		switch ( yy_act )
2287 	{ /* beginning of action switch */
2288 			case 0: /* must back up */
2289 			/* undo the effects of YY_DO_BEFORE_ACTION */
2290 			*yy_cp = yy_hold_char;
2291 			yy_cp = yy_last_accepting_cpos + 1;
2292 			yy_current_state = yy_last_accepting_state;
2293 			goto yy_find_action;
2294 
2295 case 1:
2296 YY_RULE_SETUP
2297 #line 291 "lex.l"
2298 BEGIN(incl);
2299 	YY_BREAK
2300 case 2:
2301 YY_RULE_SETUP
2302 #line 292 "lex.l"
2303 BEGIN(incl);
2304 	YY_BREAK
2305 case 3:
2306 YY_RULE_SETUP
2307 #line 293 "lex.l"
2308 BEGIN(use); /* Turbo Pascal */
2309 	YY_BREAK
2310 case 4:
2311 YY_RULE_SETUP
2312 #line 295 "lex.l"
2313 {  /* skip whitespaces */
2314     char* p = yytext;
2315     while(*p != '\0') {
2316 	if (*p++ == '\n') line += 1;
2317     }
2318 }
2319 	YY_BREAK
2320 case 5:
2321 YY_RULE_SETUP
2322 #line 302 "lex.l"
2323 { /* skip comments */
2324     char* p = yytext;
2325     while(*p != '\0') {
2326 	if (*p++ == '\n') line += 1;
2327     }
2328 }
2329 	YY_BREAK
2330 case 6:
2331 YY_RULE_SETUP
2332 #line 309 "lex.l"
2333 {
2334                   /* got the include file name */
2335     char *fname = dprintf("%s.pas", yytext);
2336     for (char* p = fname; *p != '\0'; p++) *p = tolower(*p);
2337 
2338     use_ctx* up;
2339     for (up = use_chain;
2340 	 up != NULL && strcmp(fname, up->fname) != 0;
2341 	 up = up->next);
2342 
2343     if (up == NULL) {
2344         char *xname;
2345         FILE *in = NULL;
2346         char *try_dir, *next_dir;
2347         int dir_length;
2348 
2349 	for (try_dir = i_path; try_dir != NULL; try_dir = next_dir) {
2350 	    if ((next_dir = strchr (try_dir, path_sep)) != NULL ) {
2351 		dir_length = next_dir - try_dir;
2352 		next_dir++;
2353 	    } else {
2354 		dir_length = strlen (try_dir);
2355 	    }
2356 	    xname = dprintf ("%.*s" FILE_SEP "%s", dir_length, try_dir, fname);
2357 	    if ((in = fopen(xname, "r")) != NULL) {
2358 		use_chain = new use_ctx(fname, use_chain);
2359 		curr_token = new token(xname, TKN_PUSH_UNIT);
2360 		curr_token->out_text = fname;
2361 		include_level += 1;
2362 		BEGIN(INITIAL);     // To leave include state
2363 		scanner.push();
2364 		scanner.attach(xname, in);
2365 		return 1;
2366 	    }
2367 	}
2368 	warning(line, pos, file_name, "can't include file %s", fname);
2369         curr_token = new token(dprintf("/*#include \"%s.h\"*/\n", yytext),
2370 	                       TKN_CMNT, line, pos);
2371     } else {
2372         curr_token = new token(dprintf("#include \"%s.h\"\n", yytext),
2373 	                       TKN_CMNT, line, pos);
2374     }
2375     return 1;
2376 }
2377 	YY_BREAK
2378 case 7:
2379 YY_RULE_SETUP
2380 #line 353 "lex.l"
2381 {
2382     BEGIN(INITIAL);     // To leave include state
2383 }
2384 	YY_BREAK
2385 case 8:
2386 YY_RULE_SETUP
2387 #line 358 "lex.l"
2388 {
2389     error(line, pos, file_name, "unrecognized token: %s\n",
2390 		yytext);
2391 }
2392 	YY_BREAK
2393 case 9:
2394 YY_RULE_SETUP
2395 #line 366 "lex.l"
2396 {  /* eat the whitespace */
2397     char* p = yytext;
2398     while(*p != '\0') {
2399 	if (*p++ == '\n') line += 1;
2400     }
2401 }
2402 	YY_BREAK
2403 case 10:
2404 YY_RULE_SETUP
2405 #line 372 "lex.l"
2406 {
2407                   /* got the include file name */
2408     BEGIN(INITIAL);     // To leave include state
2409 
2410     char *fname = include_name (yytext);
2411     char *xname;
2412     FILE *in = NULL;
2413     char *try_dir, *next_dir;
2414     int dir_length;
2415 
2416     for (try_dir = i_path; try_dir != NULL; try_dir = next_dir) {
2417 	if ((next_dir = strchr (try_dir, path_sep)) != NULL ) {
2418 	    dir_length = next_dir - try_dir;
2419 	    next_dir++;
2420 	} else {
2421 	    dir_length = strlen (try_dir);
2422 	}
2423 	xname = dprintf ("%.*s" FILE_SEP "%s", dir_length, try_dir, fname);
2424 	if ((in = fopen(xname, "r")) != NULL) {
2425 	    include_level += 1;
2426 	    scanner.push();
2427 	    scanner.attach(xname, in);
2428 	    curr_token = new token(xname, TKN_PUSH_FILE);
2429 	    curr_token->out_text = fname;
2430 	    return 1;
2431 	}
2432     }
2433     warning(line, pos, file_name, "can't include file %s", fname);
2434     curr_token = new token(dprintf("/*#include \"%s\"*/", fname),
2435 	                   TKN_CMNT, line, pos);
2436     return 1;
2437 }
2438 	YY_BREAK
2439 case 11:
2440 YY_RULE_SETUP
2441 #line 405 "lex.l"
2442 {
2443     error(line, pos, file_name, "unrecognized token: %s\n",
2444 		yytext);
2445 }
2446 	YY_BREAK
2447 case 12:
2448 YY_RULE_SETUP
2449 #line 410 "lex.l"
2450 {
2451     char *fname = include_name (yytext+3);
2452     char *xname;
2453     FILE *in = NULL;
2454     char *try_dir, *next_dir;
2455     int dir_length;
2456 
2457     for (try_dir = i_path; try_dir != NULL; try_dir = next_dir) {
2458 	if ((next_dir = strchr (try_dir, path_sep)) != NULL ) {
2459 	    dir_length = next_dir - try_dir;
2460 	    next_dir++;
2461 	} else {
2462 	    dir_length = strlen (try_dir);
2463 	}
2464 	xname = dprintf ("%.*s" FILE_SEP "%s", dir_length, try_dir, fname);
2465 	if ((in = fopen(xname, "r")) != NULL) {
2466 	    include_level += 1;
2467 	    scanner.push();
2468 	    scanner.attach(xname, in);
2469 	    curr_token = new token(xname, TKN_PUSH_FILE);
2470 	    curr_token->out_text = fname;
2471 	    return 1;
2472 	}
2473     }
2474     warning(line, pos, file_name, "can't include file %s", fname);
2475     curr_token = new token(dprintf("/*#include \"%s\"*/", fname),
2476 	                   TKN_CMNT, line, pos);
2477     return 1;
2478 }
2479 	YY_BREAK
2480 case YY_STATE_EOF(INITIAL):
2481 case YY_STATE_EOF(incl):
2482 case YY_STATE_EOF(use):
2483 #line 440 "lex.l"
2484 {
2485     if (scanner.empty()) {
2486 	return -1;  // MAGIC ! (< 0 means end of files)
2487     } else {
2488 	scanner.pop();
2489 	include_level -= 1;
2490 	curr_token =  new token((char*)NULL, TKN_POP_FILE);
2491 	return 1;
2492     }
2493 }
2494 	YY_BREAK
2495 case 13:
2496 YY_RULE_SETUP
2497 #line 451 "lex.l"
2498 { return process_end_of_line_comment(); }
2499 	YY_BREAK
2500 case 14:
2501 YY_RULE_SETUP
2502 #line 452 "lex.l"
2503 { return process_comments(); }
2504 	YY_BREAK
2505 case 15:
2506 YY_RULE_SETUP
2507 #line 453 "lex.l"
2508 { return process_comments(); }
2509 	YY_BREAK
2510 case 16:
2511 YY_RULE_SETUP
2512 #line 454 "lex.l"
2513 { return process_comments(); }
2514 	YY_BREAK
2515 case 17:
2516 YY_RULE_SETUP
2517 #line 456 "lex.l"
2518 { return tkn(TKN_LPAR); }
2519 	YY_BREAK
2520 case 18:
2521 YY_RULE_SETUP
2522 #line 457 "lex.l"
2523 { return tkn(TKN_RPAR); }
2524 	YY_BREAK
2525 case 19:
2526 YY_RULE_SETUP
2527 #line 458 "lex.l"
2528 { text = "["; return tkn(TKN_LBR);  }
2529 	YY_BREAK
2530 case 20:
2531 YY_RULE_SETUP
2532 #line 459 "lex.l"
2533 { text = "]"; return tkn(TKN_RBR);  }
2534 	YY_BREAK
2535 case 21:
2536 YY_RULE_SETUP
2537 #line 460 "lex.l"
2538 { return tkn(TKN_LBR);  }
2539 	YY_BREAK
2540 case 22:
2541 YY_RULE_SETUP
2542 #line 461 "lex.l"
2543 { return tkn(TKN_RBR);  }
2544 	YY_BREAK
2545 case 23:
2546 YY_RULE_SETUP
2547 #line 462 "lex.l"
2548 { return tkn(TKN_MUL);  }
2549 	YY_BREAK
2550 case 24:
2551 YY_RULE_SETUP
2552 #line 463 "lex.l"
2553 { return tkn(TKN_PLUS); }
2554 	YY_BREAK
2555 case 25:
2556 YY_RULE_SETUP
2557 #line 464 "lex.l"
2558 { return tkn(TKN_MINUS);}
2559 	YY_BREAK
2560 case 26:
2561 YY_RULE_SETUP
2562 #line 465 "lex.l"
2563 { return tkn(TKN_C_SHR); }
2564 	YY_BREAK
2565 case 27:
2566 YY_RULE_SETUP
2567 #line 466 "lex.l"
2568 { return tkn(TKN_C_SHL);}
2569 	YY_BREAK
2570 case 28:
2571 YY_RULE_SETUP
2572 #line 467 "lex.l"
2573 { return tkn(TKN_C_AND);}
2574 	YY_BREAK
2575 case 29:
2576 YY_RULE_SETUP
2577 #line 468 "lex.l"
2578 { return tkn(TKN_C_OR);}
2579 	YY_BREAK
2580 case 30:
2581 YY_RULE_SETUP
2582 #line 469 "lex.l"
2583 { return tkn(TKN_LETMUL);  }
2584 	YY_BREAK
2585 case 31:
2586 YY_RULE_SETUP
2587 #line 470 "lex.l"
2588 { return tkn(TKN_LETADD); }
2589 	YY_BREAK
2590 case 32:
2591 YY_RULE_SETUP
2592 #line 471 "lex.l"
2593 { return tkn(TKN_LETSUB);}
2594 	YY_BREAK
2595 case 33:
2596 YY_RULE_SETUP
2597 #line 472 "lex.l"
2598 { return tkn(TKN_LETSHR); }
2599 	YY_BREAK
2600 case 34:
2601 YY_RULE_SETUP
2602 #line 473 "lex.l"
2603 { return tkn(TKN_LETSHL);}
2604 	YY_BREAK
2605 case 35:
2606 YY_RULE_SETUP
2607 #line 474 "lex.l"
2608 { return tkn(TKN_LETAND);}
2609 	YY_BREAK
2610 case 36:
2611 YY_RULE_SETUP
2612 #line 475 "lex.l"
2613 { return tkn(TKN_LETOR);}
2614 	YY_BREAK
2615 case 37:
2616 YY_RULE_SETUP
2617 #line 476 "lex.l"
2618 { return tkn(TKN_LETDIV);}
2619 	YY_BREAK
2620 case 38:
2621 YY_RULE_SETUP
2622 #line 477 "lex.l"
2623 { return tkn(TKN_C_NOT);}
2624 	YY_BREAK
2625 case 39:
2626 YY_RULE_SETUP
2627 #line 478 "lex.l"
2628 { return tkn(TKN_COMMA);}
2629 	YY_BREAK
2630 case 40:
2631 YY_RULE_SETUP
2632 #line 479 "lex.l"
2633 { return tkn(TKN_DOT);  }
2634 	YY_BREAK
2635 case 41:
2636 YY_RULE_SETUP
2637 #line 480 "lex.l"
2638 { return tkn(TKN_DOTS); }
2639 	YY_BREAK
2640 case 42:
2641 YY_RULE_SETUP
2642 #line 481 "lex.l"
2643 { return tkn(TKN_DIVR);  }
2644 	YY_BREAK
2645 case 43:
2646 YY_RULE_SETUP
2647 #line 482 "lex.l"
2648 { return turbo_pascal ? tkn(TKN_ADDR) : tkn(TKN_HEAP); }
2649 	YY_BREAK
2650 case 44:
2651 YY_RULE_SETUP
2652 #line 483 "lex.l"
2653 { if (turbo_pascal && !type_or_var_context
2654 		  && curr_token->tag != TKN_HEAP
2655                   && curr_token->tag != TKN_RBR && curr_token->tag != TKN_RPAR
2656 		  && curr_token->tag != TKN_REF
2657 		  && curr_token->tag != TKN_IDENT
2658 		  && curr_token->cat != CAT_ID)
2659                {
2660 		   text = dprintf("#%d", yyinput() & 31);
2661 		   return tkn(TKN_SCONST);
2662               }
2663 	      return tkn(TKN_HEAP);
2664             }
2665 	YY_BREAK
2666 case 45:
2667 YY_RULE_SETUP
2668 #line 495 "lex.l"
2669 { return tkn(TKN_LET);  }
2670 	YY_BREAK
2671 case 46:
2672 YY_RULE_SETUP
2673 #line 496 "lex.l"
2674 { return tkn(TKN_COLON);}
2675 	YY_BREAK
2676 case 47:
2677 YY_RULE_SETUP
2678 #line 497 "lex.l"
2679 { return tkn(TKN_SEMICOLON); }
2680 	YY_BREAK
2681 case 48:
2682 YY_RULE_SETUP
2683 #line 498 "lex.l"
2684 { return tkn(TKN_LE);  }
2685 	YY_BREAK
2686 case 49:
2687 YY_RULE_SETUP
2688 #line 499 "lex.l"
2689 { return tkn(TKN_GE);  }
2690 	YY_BREAK
2691 case 50:
2692 YY_RULE_SETUP
2693 #line 500 "lex.l"
2694 { return tkn(TKN_LT);  }
2695 	YY_BREAK
2696 case 51:
2697 YY_RULE_SETUP
2698 #line 501 "lex.l"
2699 { return tkn(TKN_GT);  }
2700 	YY_BREAK
2701 case 52:
2702 YY_RULE_SETUP
2703 #line 502 "lex.l"
2704 { return tkn(TKN_EQ);  }
2705 	YY_BREAK
2706 case 53:
2707 YY_RULE_SETUP
2708 #line 503 "lex.l"
2709 { return tkn(TKN_NE);  }
2710 	YY_BREAK
2711 case 54:
2712 YY_RULE_SETUP
2713 #line 506 "lex.l"
2714 { return tkn(TKN_RCONST); }
2715 	YY_BREAK
2716 case 55:
2717 YY_RULE_SETUP
2718 #line 507 "lex.l"
2719 { return tkn(TKN_ICONST);  }
2720 	YY_BREAK
2721 case 56:
2722 YY_RULE_SETUP
2723 #line 509 "lex.l"
2724 {
2725                char lc_buf[MAX_ID_LENGTH];
2726 	       char *src = yytext, *dst = lc_buf;
2727 	       if (*yytext == '$') {
2728                    if (turbo_pascal) { /* hexademical number */
2729   	               return tkn(TKN_ICONST);
2730                    } else if (ignore_preprocessor_directives) {
2731                        int c;
2732                        char cmt_buffer[1024];
2733                        int i = sprintf(cmt_buffer, "/*%s", yytext);
2734                        curr_token = new token(NULL, TKN_CMNT, line, pos);
2735                        pos += strlen(yytext);
2736  	               while((c = yyinput_file()) != EOF && c != '\n') {
2737                              if (i == (int)sizeof(cmt_buffer)-4) {
2738                                  error(line, pos, file_name, "Preprocessor directive too long\n");
2739                              } else {
2740                                  cmt_buffer[i++] = (char)c;
2741                              }
2742                         }
2743                         cmt_buffer[i++] = '*';
2744                         cmt_buffer[i++] = '/';
2745                         cmt_buffer[i++] = '\n';
2746                         cmt_buffer[i++] = '\0';
2747                		char* cmt_text = new char[i];
2748 		        memcpy(cmt_text, cmt_buffer, i);
2749                         curr_token->in_text = curr_token->out_text = cmt_text;
2750                         return 1;
2751                    }
2752  	       }
2753 	       do {
2754 	           *dst++ = tolower(*(unsigned char*)src);
2755 	       } while (*src++);
2756 	       nm = nm_entry::add(lc_buf, TKN_IDENT);
2757 	       int tag = nm->tag;
2758 
2759 	       if (turbo_pascal) {
2760 	           if (tag == TKN_TYPE || tag == TKN_VAR) {
2761 		       type_or_var_context = TRUE;
2762 	           } else if (tag == TKN_BEGIN || tag == TKN_CONST) {
2763 		       type_or_var_context = FALSE;
2764 		   } else if (tag == TKN_IMPLEMENTATION) {
2765 		       if (include_level > 0)  {
2766 		           scanner.pop();
2767 		           include_level -= 1;
2768 			   BEGIN(use);
2769 			   curr_token = new token((char*)NULL, TKN_UNIT_END);
2770                            return 1;
2771                        } else {
2772 		           return tkn(TKN_IMPLEMENTATION);
2773                        }
2774 		   } else if (tag == TKN_INTERFACE) {
2775                        if (use_chain == NULL) {
2776                            use_chain = new use_ctx(file_name, NULL);
2777                        }
2778 		       tkn(TKN_INTERFACE);
2779 		       return 1;
2780 		   }
2781                }
2782 	       if (tag == TKN_RESERVED) {
2783 	           text = dprintf("%s_", lc_buf);
2784 	           nm = nm_entry::add(text, TKN_IDENT);
2785 	           tag = TKN_IDENT;
2786 	       } else if (!preserve_case || tag != TKN_IDENT) {
2787 	           text = strdup(lc_buf);
2788 	       }
2789 	       return tkn(tag);
2790              }
2791 	YY_BREAK
2792 case 57:
2793 YY_RULE_SETUP
2794 #line 578 "lex.l"
2795 { return tkn(TKN_SCONST); }
2796 	YY_BREAK
2797 case 58:
2798 YY_RULE_SETUP
2799 #line 580 "lex.l"
2800 { return tkn(TKN_SPACE); }
2801 	YY_BREAK
2802 case 59:
2803 YY_RULE_SETUP
2804 #line 582 "lex.l"
2805 { return tkn(TKN_LN); }
2806 	YY_BREAK
2807 case 60:
2808 YY_RULE_SETUP
2809 #line 584 "lex.l"
2810 {
2811                 error(line, pos, file_name, "unrecognized token: %s\n",
2812 		      yytext);
2813              }
2814 	YY_BREAK
2815 case 61:
2816 YY_RULE_SETUP
2817 #line 589 "lex.l"
2818 ECHO;
2819 	YY_BREAK
2820 #line 2821 "lex.yy.c"
2821 
2822 	case YY_END_OF_BUFFER:
2823 		{
2824 		/* Amount of text matched not including the EOB char. */
2825 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2826 
2827 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2828 		*yy_cp = yy_hold_char;
2829 		YY_RESTORE_YY_MORE_OFFSET
2830 
2831 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2832 			{
2833 			/* We're scanning a new file or input source.  It's
2834 			 * possible that this happened because the user
2835 			 * just pointed yyin at a new source and called
2836 			 * yylex().  If so, then we have to assure
2837 			 * consistency between yy_current_buffer and our
2838 			 * globals.  Here is the right place to do so, because
2839 			 * this is the first action (other than possibly a
2840 			 * back-up) that will match for the new input source.
2841 			 */
2842 			yy_n_chars = yy_current_buffer->yy_n_chars;
2843 			yy_current_buffer->yy_input_file = yyin;
2844 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2845 			}
2846 
2847 		/* Note that here we test for yy_c_buf_p "<=" to the position
2848 		 * of the first EOB in the buffer, since yy_c_buf_p will
2849 		 * already have been incremented past the NUL character
2850 		 * (since all states make transitions on EOB to the
2851 		 * end-of-buffer state).  Contrast this with the test
2852 		 * in input().
2853 		 */
2854 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2855 			{ /* This was really a NUL. */
2856 			yy_state_type yy_next_state;
2857 
2858 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2859 
2860 			yy_current_state = yy_get_previous_state();
2861 
2862 			/* Okay, we're now positioned to make the NUL
2863 			 * transition.  We couldn't have
2864 			 * yy_get_previous_state() go ahead and do it
2865 			 * for us because it doesn't know how to deal
2866 			 * with the possibility of jamming (and we don't
2867 			 * want to build jamming into it because then it
2868 			 * will run more slowly).
2869 			 */
2870 
2871 			yy_next_state = yy_try_NUL_trans( yy_current_state );
2872 
2873 			yy_bp = yytext_ptr + YY_MORE_ADJ;
2874 
2875 			if ( yy_next_state )
2876 				{
2877 				/* Consume the NUL. */
2878 				yy_cp = ++yy_c_buf_p;
2879 				yy_current_state = yy_next_state;
2880 				goto yy_match;
2881 				}
2882 
2883 			else
2884 				{
2885 				yy_cp = yy_c_buf_p;
2886 				goto yy_find_action;
2887 				}
2888 			}
2889 
2890 		else switch ( yy_get_next_buffer() )
2891 			{
2892 			case EOB_ACT_END_OF_FILE:
2893 				{
2894 				yy_did_buffer_switch_on_eof = 0;
2895 
2896 				if ( yywrap() )
2897 					{
2898 					/* Note: because we've taken care in
2899 					 * yy_get_next_buffer() to have set up
2900 					 * yytext, we can now set up
2901 					 * yy_c_buf_p so that if some total
2902 					 * hoser (like flex itself) wants to
2903 					 * call the scanner after we return the
2904 					 * YY_NULL, it'll still work - another
2905 					 * YY_NULL will get returned.
2906 					 */
2907 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2908 
2909 					yy_act = YY_STATE_EOF(YY_START);
2910 					goto do_action;
2911 					}
2912 
2913 				else
2914 					{
2915 					if ( ! yy_did_buffer_switch_on_eof )
2916 						YY_NEW_FILE;
2917 					}
2918 				break;
2919 				}
2920 
2921 			case EOB_ACT_CONTINUE_SCAN:
2922 				yy_c_buf_p =
2923 					yytext_ptr + yy_amount_of_matched_text;
2924 
2925 				yy_current_state = yy_get_previous_state();
2926 
2927 				yy_cp = yy_c_buf_p;
2928 				yy_bp = yytext_ptr + YY_MORE_ADJ;
2929 				goto yy_match;
2930 
2931 			case EOB_ACT_LAST_MATCH:
2932 				yy_c_buf_p =
2933 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
2934 
2935 				yy_current_state = yy_get_previous_state();
2936 
2937 				yy_cp = yy_c_buf_p;
2938 				yy_bp = yytext_ptr + YY_MORE_ADJ;
2939 				goto yy_find_action;
2940 			}
2941 		break;
2942 		}
2943 
2944 	default:
2945 		YY_FATAL_ERROR(
2946 			"fatal flex scanner internal error--no action found" );
2947 	} /* end of action switch */
2948 		} /* end of scanning one token */
2949 	} /* end of yylex */
2950 
2951 
2952 /* yy_get_next_buffer - try to read in a new buffer
2953  *
2954  * Returns a code representing an action:
2955  *	EOB_ACT_LAST_MATCH -
2956  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2957  *	EOB_ACT_END_OF_FILE - end of file
2958  */
2959 
2960 static int yy_get_next_buffer()
2961 	{
2962 	register char *dest = yy_current_buffer->yy_ch_buf;
2963 	register char *source = yytext_ptr;
2964 	register int number_to_move, i;
2965 	int ret_val;
2966 
2967 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2968 		YY_FATAL_ERROR(
2969 		"fatal flex scanner internal error--end of buffer missed" );
2970 
2971 	if ( yy_current_buffer->yy_fill_buffer == 0 )
2972 		{ /* Don't try to fill the buffer, so this is an EOF. */
2973 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2974 			{
2975 			/* We matched a single character, the EOB, so
2976 			 * treat this as a final EOF.
2977 			 */
2978 			return EOB_ACT_END_OF_FILE;
2979 			}
2980 
2981 		else
2982 			{
2983 			/* We matched some text prior to the EOB, first
2984 			 * process it.
2985 			 */
2986 			return EOB_ACT_LAST_MATCH;
2987 			}
2988 		}
2989 
2990 	/* Try to read more data. */
2991 
2992 	/* First move last chars to start of buffer. */
2993 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2994 
2995 	for ( i = 0; i < number_to_move; ++i )
2996 		*(dest++) = *(source++);
2997 
2998 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2999 		/* don't do the read, it's not guaranteed to return an EOF,
3000 		 * just force an EOF
3001 		 */
3002 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
3003 
3004 	else
3005 		{
3006 		int num_to_read =
3007 			yy_current_buffer->yy_buf_size - number_to_move - 1;
3008 
3009 		while ( num_to_read <= 0 )
3010 			{ /* Not enough room in the buffer - grow it. */
3011 #ifdef YY_USES_REJECT
3012 			YY_FATAL_ERROR(
3013 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3014 #else
3015 
3016 			/* just a shorter name for the current buffer */
3017 			YY_BUFFER_STATE b = yy_current_buffer;
3018 
3019 			int yy_c_buf_p_offset =
3020 				(int) (yy_c_buf_p - b->yy_ch_buf);
3021 
3022 			if ( b->yy_is_our_buffer )
3023 				{
3024 				int new_size = b->yy_buf_size * 2;
3025 
3026 				if ( new_size <= 0 )
3027 					b->yy_buf_size += b->yy_buf_size / 8;
3028 				else
3029 					b->yy_buf_size *= 2;
3030 
3031 				b->yy_ch_buf = (char *)
3032 					/* Include room in for 2 EOB chars. */
3033 					yy_flex_realloc( (void *) b->yy_ch_buf,
3034 							 b->yy_buf_size + 2 );
3035 				}
3036 			else
3037 				/* Can't grow it, we don't own it. */
3038 				b->yy_ch_buf = 0;
3039 
3040 			if ( ! b->yy_ch_buf )
3041 				YY_FATAL_ERROR(
3042 				"fatal error - scanner input buffer overflow" );
3043 
3044 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3045 
3046 			num_to_read = yy_current_buffer->yy_buf_size -
3047 						number_to_move - 1;
3048 #endif
3049 			}
3050 
3051 		if ( num_to_read > YY_READ_BUF_SIZE )
3052 			num_to_read = YY_READ_BUF_SIZE;
3053 
3054 		/* Read in more data. */
3055 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
3056 			yy_n_chars, num_to_read );
3057 
3058 		yy_current_buffer->yy_n_chars = yy_n_chars;
3059 		}
3060 
3061 	if ( yy_n_chars == 0 )
3062 		{
3063 		if ( number_to_move == YY_MORE_ADJ )
3064 			{
3065 			ret_val = EOB_ACT_END_OF_FILE;
3066 			yyrestart( yyin );
3067 			}
3068 
3069 		else
3070 			{
3071 			ret_val = EOB_ACT_LAST_MATCH;
3072 			yy_current_buffer->yy_buffer_status =
3073 				YY_BUFFER_EOF_PENDING;
3074 			}
3075 		}
3076 
3077 	else
3078 		ret_val = EOB_ACT_CONTINUE_SCAN;
3079 
3080 	yy_n_chars += number_to_move;
3081 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3082 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3083 
3084 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3085 
3086 	return ret_val;
3087 	}
3088 
3089 
3090 /* yy_get_previous_state - get the state just before the EOB char was reached */
3091 
yy_get_previous_state()3092 static yy_state_type yy_get_previous_state()
3093 	{
3094 	register yy_state_type yy_current_state;
3095 	register char *yy_cp;
3096 
3097 	yy_current_state = yy_start_state_list[yy_start];
3098 
3099 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3100 		{
3101 		yy_current_state += yy_current_state[(*yy_cp ? YY_SC_TO_UI(*yy_cp) : 256)].yy_nxt;
3102 		if ( yy_current_state[-1].yy_nxt )
3103 			{
3104 			yy_last_accepting_state = yy_current_state;
3105 			yy_last_accepting_cpos = yy_cp;
3106 			}
3107 		}
3108 
3109 	return yy_current_state;
3110 	}
3111 
3112 
3113 /* yy_try_NUL_trans - try to make a transition on the NUL character
3114  *
3115  * synopsis
3116  *	next_state = yy_try_NUL_trans( current_state );
3117  */
3118 
3119 #ifdef YY_USE_PROTOS
yy_try_NUL_trans(yy_state_type yy_current_state)3120 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3121 #else
3122 static yy_state_type yy_try_NUL_trans( yy_current_state )
3123 yy_state_type yy_current_state;
3124 #endif
3125 	{
3126 	register int yy_is_jam;
3127 	register char *yy_cp = yy_c_buf_p;
3128 
3129 	register int yy_c = 256;
3130 	register yyconst struct yy_trans_info *yy_trans_info;
3131 
3132 	yy_trans_info = &yy_current_state[(unsigned int) yy_c];
3133 	yy_current_state += yy_trans_info->yy_nxt;
3134 	yy_is_jam = (yy_trans_info->yy_verify != yy_c);
3135 
3136 	if ( ! yy_is_jam )
3137 		{
3138 		if ( yy_current_state[-1].yy_nxt )
3139 			{
3140 			yy_last_accepting_state = yy_current_state;
3141 			yy_last_accepting_cpos = yy_cp;
3142 			}
3143 		}
3144 
3145 	return yy_is_jam ? 0 : yy_current_state;
3146 	}
3147 
3148 
3149 #ifndef YY_NO_UNPUT
3150 #ifdef YY_USE_PROTOS
yyunput(int c,register char * yy_bp)3151 static void yyunput( int c, register char *yy_bp )
3152 #else
3153 static void yyunput( c, yy_bp )
3154 int c;
3155 register char *yy_bp;
3156 #endif
3157 	{
3158 	register char *yy_cp = yy_c_buf_p;
3159 
3160 	/* undo effects of setting up yytext */
3161 	*yy_cp = yy_hold_char;
3162 
3163 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3164 		{ /* need to shift things up to make room */
3165 		/* +2 for EOB chars. */
3166 		register int number_to_move = yy_n_chars + 2;
3167 		register char *dest = &yy_current_buffer->yy_ch_buf[
3168 					yy_current_buffer->yy_buf_size + 2];
3169 		register char *source =
3170 				&yy_current_buffer->yy_ch_buf[number_to_move];
3171 
3172 		while ( source > yy_current_buffer->yy_ch_buf )
3173 			*--dest = *--source;
3174 
3175 		yy_cp += (int) (dest - source);
3176 		yy_bp += (int) (dest - source);
3177 		yy_current_buffer->yy_n_chars =
3178 			yy_n_chars = yy_current_buffer->yy_buf_size;
3179 
3180 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3181 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
3182 		}
3183 
3184 	*--yy_cp = (char) c;
3185 
3186 
3187 	yytext_ptr = yy_bp;
3188 	yy_hold_char = *yy_cp;
3189 	yy_c_buf_p = yy_cp;
3190 	}
3191 #endif	/* ifndef YY_NO_UNPUT */
3192 
3193 
3194 #ifdef __cplusplus
yyinput()3195 static int yyinput()
3196 #else
3197 static int input()
3198 #endif
3199 	{
3200 	int c;
3201 
3202 	*yy_c_buf_p = yy_hold_char;
3203 
3204 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3205 		{
3206 		/* yy_c_buf_p now points to the character we want to return.
3207 		 * If this occurs *before* the EOB characters, then it's a
3208 		 * valid NUL; if not, then we've hit the end of the buffer.
3209 		 */
3210 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3211 			/* This was really a NUL. */
3212 			*yy_c_buf_p = '\0';
3213 
3214 		else
3215 			{ /* need more input */
3216 			int offset = yy_c_buf_p - yytext_ptr;
3217 			++yy_c_buf_p;
3218 
3219 			switch ( yy_get_next_buffer() )
3220 				{
3221 				case EOB_ACT_LAST_MATCH:
3222 					/* This happens because yy_g_n_b()
3223 					 * sees that we've accumulated a
3224 					 * token and flags that we need to
3225 					 * try matching the token before
3226 					 * proceeding.  But for input(),
3227 					 * there's no matching to consider.
3228 					 * So convert the EOB_ACT_LAST_MATCH
3229 					 * to EOB_ACT_END_OF_FILE.
3230 					 */
3231 
3232 					/* Reset buffer status. */
3233 					yyrestart( yyin );
3234 
3235 					/* fall through */
3236 
3237 				case EOB_ACT_END_OF_FILE:
3238 					{
3239 					if ( yywrap() )
3240 						return EOF;
3241 
3242 					if ( ! yy_did_buffer_switch_on_eof )
3243 						YY_NEW_FILE;
3244 #ifdef __cplusplus
3245 					return yyinput();
3246 #else
3247 					return input();
3248 #endif
3249 					}
3250 
3251 				case EOB_ACT_CONTINUE_SCAN:
3252 					yy_c_buf_p = yytext_ptr + offset;
3253 					break;
3254 				}
3255 			}
3256 		}
3257 
3258 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
3259 	*yy_c_buf_p = '\0';	/* preserve yytext */
3260 	yy_hold_char = *++yy_c_buf_p;
3261 
3262 
3263 	return c;
3264 	}
3265 
3266 
3267 #ifdef YY_USE_PROTOS
yyrestart(FILE * input_file)3268 void yyrestart( FILE *input_file )
3269 #else
3270 void yyrestart( input_file )
3271 FILE *input_file;
3272 #endif
3273 	{
3274 	if ( ! yy_current_buffer )
3275 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3276 
3277 	yy_init_buffer( yy_current_buffer, input_file );
3278 	yy_load_buffer_state();
3279 	}
3280 
3281 
3282 #ifdef YY_USE_PROTOS
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)3283 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3284 #else
3285 void yy_switch_to_buffer( new_buffer )
3286 YY_BUFFER_STATE new_buffer;
3287 #endif
3288 	{
3289 	if ( yy_current_buffer == new_buffer )
3290 		return;
3291 
3292 	if ( yy_current_buffer )
3293 		{
3294 		/* Flush out information for old buffer. */
3295 		*yy_c_buf_p = yy_hold_char;
3296 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3297 		yy_current_buffer->yy_n_chars = yy_n_chars;
3298 		}
3299 
3300 	yy_current_buffer = new_buffer;
3301 	yy_load_buffer_state();
3302 
3303 	/* We don't actually know whether we did this switch during
3304 	 * EOF (yywrap()) processing, but the only time this flag
3305 	 * is looked at is after yywrap() is called, so it's safe
3306 	 * to go ahead and always set it.
3307 	 */
3308 	yy_did_buffer_switch_on_eof = 1;
3309 	}
3310 
3311 
3312 #ifdef YY_USE_PROTOS
yy_load_buffer_state(void)3313 void yy_load_buffer_state( void )
3314 #else
3315 void yy_load_buffer_state()
3316 #endif
3317 	{
3318 	yy_n_chars = yy_current_buffer->yy_n_chars;
3319 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3320 	yyin = yy_current_buffer->yy_input_file;
3321 	yy_hold_char = *yy_c_buf_p;
3322 	}
3323 
3324 
3325 #ifdef YY_USE_PROTOS
yy_create_buffer(FILE * file,int size)3326 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3327 #else
3328 YY_BUFFER_STATE yy_create_buffer( file, size )
3329 FILE *file;
3330 int size;
3331 #endif
3332 	{
3333 	YY_BUFFER_STATE b;
3334 
3335 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3336 	if ( ! b )
3337 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3338 
3339 	b->yy_buf_size = size;
3340 
3341 	/* yy_ch_buf has to be 2 characters longer than the size given because
3342 	 * we need to put in 2 end-of-buffer characters.
3343 	 */
3344 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3345 	if ( ! b->yy_ch_buf )
3346 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3347 
3348 	b->yy_is_our_buffer = 1;
3349 
3350 	yy_init_buffer( b, file );
3351 
3352 	return b;
3353 	}
3354 
3355 
3356 #ifdef YY_USE_PROTOS
yy_delete_buffer(YY_BUFFER_STATE b)3357 void yy_delete_buffer( YY_BUFFER_STATE b )
3358 #else
3359 void yy_delete_buffer( b )
3360 YY_BUFFER_STATE b;
3361 #endif
3362 	{
3363 	if ( ! b )
3364 		return;
3365 
3366 	if ( b == yy_current_buffer )
3367 		yy_current_buffer = (YY_BUFFER_STATE) 0;
3368 
3369 	if ( b->yy_is_our_buffer )
3370 		yy_flex_free( (void *) b->yy_ch_buf );
3371 
3372 	yy_flex_free( (void *) b );
3373 	}
3374 
3375 
3376 
3377 #ifdef YY_USE_PROTOS
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)3378 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3379 #else
3380 void yy_init_buffer( b, file )
3381 YY_BUFFER_STATE b;
3382 FILE *file;
3383 #endif
3384 
3385 
3386 	{
3387 	yy_flush_buffer( b );
3388 
3389 	b->yy_input_file = file;
3390 	b->yy_fill_buffer = 1;
3391 
3392 #if YY_ALWAYS_INTERACTIVE
3393 	b->yy_is_interactive = 1;
3394 #else
3395 #if YY_NEVER_INTERACTIVE
3396 	b->yy_is_interactive = 0;
3397 #else
3398 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3399 #endif
3400 #endif
3401 	}
3402 
3403 
3404 #ifdef YY_USE_PROTOS
yy_flush_buffer(YY_BUFFER_STATE b)3405 void yy_flush_buffer( YY_BUFFER_STATE b )
3406 #else
3407 void yy_flush_buffer( b )
3408 YY_BUFFER_STATE b;
3409 #endif
3410 
3411 	{
3412 	if ( ! b )
3413 		return;
3414 
3415 	b->yy_n_chars = 0;
3416 
3417 	/* We always need two end-of-buffer characters.  The first causes
3418 	 * a transition to the end-of-buffer state.  The second causes
3419 	 * a jam in that state.
3420 	 */
3421 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3422 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3423 
3424 	b->yy_buf_pos = &b->yy_ch_buf[0];
3425 
3426 	b->yy_at_bol = 1;
3427 	b->yy_buffer_status = YY_BUFFER_NEW;
3428 
3429 	if ( b == yy_current_buffer )
3430 		yy_load_buffer_state();
3431 	}
3432 
3433 
3434 #ifndef YY_NO_SCAN_BUFFER
3435 #ifdef YY_USE_PROTOS
yy_scan_buffer(char * base,yy_size_t size)3436 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3437 #else
3438 YY_BUFFER_STATE yy_scan_buffer( base, size )
3439 char *base;
3440 yy_size_t size;
3441 #endif
3442 	{
3443 	YY_BUFFER_STATE b;
3444 
3445 	if ( size < 2 ||
3446 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3447 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3448 		/* They forgot to leave room for the EOB's. */
3449 		return 0;
3450 
3451 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3452 	if ( ! b )
3453 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3454 
3455 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
3456 	b->yy_buf_pos = b->yy_ch_buf = base;
3457 	b->yy_is_our_buffer = 0;
3458 	b->yy_input_file = 0;
3459 	b->yy_n_chars = b->yy_buf_size;
3460 	b->yy_is_interactive = 0;
3461 	b->yy_at_bol = 1;
3462 	b->yy_fill_buffer = 0;
3463 	b->yy_buffer_status = YY_BUFFER_NEW;
3464 
3465 	yy_switch_to_buffer( b );
3466 
3467 	return b;
3468 	}
3469 #endif
3470 
3471 
3472 #ifndef YY_NO_SCAN_STRING
3473 #ifdef YY_USE_PROTOS
yy_scan_string(yyconst char * yy_str)3474 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3475 #else
3476 YY_BUFFER_STATE yy_scan_string( yy_str )
3477 yyconst char *yy_str;
3478 #endif
3479 	{
3480 	int len;
3481 	for ( len = 0; yy_str[len]; ++len )
3482 		;
3483 
3484 	return yy_scan_bytes( yy_str, len );
3485 	}
3486 #endif
3487 
3488 
3489 #ifndef YY_NO_SCAN_BYTES
3490 #ifdef YY_USE_PROTOS
yy_scan_bytes(yyconst char * bytes,int len)3491 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3492 #else
3493 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3494 yyconst char *bytes;
3495 int len;
3496 #endif
3497 	{
3498 	YY_BUFFER_STATE b;
3499 	char *buf;
3500 	yy_size_t n;
3501 	int i;
3502 
3503 	/* Get memory for full buffer, including space for trailing EOB's. */
3504 	n = len + 2;
3505 	buf = (char *) yy_flex_alloc( n );
3506 	if ( ! buf )
3507 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3508 
3509 	for ( i = 0; i < len; ++i )
3510 		buf[i] = bytes[i];
3511 
3512 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3513 
3514 	b = yy_scan_buffer( buf, n );
3515 	if ( ! b )
3516 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3517 
3518 	/* It's okay to grow etc. this buffer, and we should throw it
3519 	 * away when we're done.
3520 	 */
3521 	b->yy_is_our_buffer = 1;
3522 
3523 	return b;
3524 	}
3525 #endif
3526 
3527 
3528 #ifndef YY_NO_PUSH_STATE
3529 #ifdef YY_USE_PROTOS
yy_push_state(int new_state)3530 static void yy_push_state( int new_state )
3531 #else
3532 static void yy_push_state( new_state )
3533 int new_state;
3534 #endif
3535 	{
3536 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
3537 		{
3538 		yy_size_t new_size;
3539 
3540 		yy_start_stack_depth += YY_START_STACK_INCR;
3541 		new_size = yy_start_stack_depth * sizeof( int );
3542 
3543 		if ( ! yy_start_stack )
3544 			yy_start_stack = (int *) yy_flex_alloc( new_size );
3545 
3546 		else
3547 			yy_start_stack = (int *) yy_flex_realloc(
3548 					(void *) yy_start_stack, new_size );
3549 
3550 		if ( ! yy_start_stack )
3551 			YY_FATAL_ERROR(
3552 			"out of memory expanding start-condition stack" );
3553 		}
3554 
3555 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
3556 
3557 	BEGIN(new_state);
3558 	}
3559 #endif
3560 
3561 
3562 #ifndef YY_NO_POP_STATE
yy_pop_state()3563 static void yy_pop_state()
3564 	{
3565 	if ( --yy_start_stack_ptr < 0 )
3566 		YY_FATAL_ERROR( "start-condition stack underflow" );
3567 
3568 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
3569 	}
3570 #endif
3571 
3572 
3573 #ifndef YY_NO_TOP_STATE
yy_top_state()3574 static int yy_top_state()
3575 	{
3576 	return yy_start_stack[yy_start_stack_ptr - 1];
3577 	}
3578 #endif
3579 
3580 #ifndef YY_EXIT_FAILURE
3581 #define YY_EXIT_FAILURE 2
3582 #endif
3583 
3584 #ifdef YY_USE_PROTOS
yy_fatal_error(yyconst char msg[])3585 static void yy_fatal_error( yyconst char msg[] )
3586 #else
3587 static void yy_fatal_error( msg )
3588 char msg[];
3589 #endif
3590 	{
3591 	(void) fprintf( stderr, "%s\n", msg );
3592 	exit( YY_EXIT_FAILURE );
3593 	}
3594 
3595 
3596 
3597 /* Redefine yyless() so it works in section 3 code. */
3598 
3599 #undef yyless
3600 #define yyless(n) \
3601 	do \
3602 		{ \
3603 		/* Undo effects of setting up yytext. */ \
3604 		yytext[yyleng] = yy_hold_char; \
3605 		yy_c_buf_p = yytext + n; \
3606 		yy_hold_char = *yy_c_buf_p; \
3607 		*yy_c_buf_p = '\0'; \
3608 		yyleng = n; \
3609 		} \
3610 	while ( 0 )
3611 
3612 
3613 /* Internal utility routines. */
3614 
3615 #ifndef yytext_ptr
3616 #ifdef YY_USE_PROTOS
yy_flex_strncpy(char * s1,yyconst char * s2,int n)3617 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3618 #else
3619 static void yy_flex_strncpy( s1, s2, n )
3620 char *s1;
3621 yyconst char *s2;
3622 int n;
3623 #endif
3624 	{
3625 	register int i;
3626 	for ( i = 0; i < n; ++i )
3627 		s1[i] = s2[i];
3628 	}
3629 #endif
3630 
3631 #ifdef YY_NEED_STRLEN
3632 #ifdef YY_USE_PROTOS
yy_flex_strlen(yyconst char * s)3633 static int yy_flex_strlen( yyconst char *s )
3634 #else
3635 static int yy_flex_strlen( s )
3636 yyconst char *s;
3637 #endif
3638 	{
3639 	register int n;
3640 	for ( n = 0; s[n]; ++n )
3641 		;
3642 
3643 	return n;
3644 	}
3645 #endif
3646 
3647 
3648 #ifdef YY_USE_PROTOS
yy_flex_alloc(yy_size_t size)3649 static void *yy_flex_alloc( yy_size_t size )
3650 #else
3651 static void *yy_flex_alloc( size )
3652 yy_size_t size;
3653 #endif
3654 	{
3655 	return (void *) malloc( size );
3656 	}
3657 
3658 #ifdef YY_USE_PROTOS
yy_flex_realloc(void * ptr,yy_size_t size)3659 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3660 #else
3661 static void *yy_flex_realloc( ptr, size )
3662 void *ptr;
3663 yy_size_t size;
3664 #endif
3665 	{
3666 	/* The cast to (char *) in the following accommodates both
3667 	 * implementations that use char* generic pointers, and those
3668 	 * that use void* generic pointers.  It works with the latter
3669 	 * because both ANSI C and C++ allow castless assignment from
3670 	 * any pointer type to void*, and deal with argument conversions
3671 	 * as though doing an assignment.
3672 	 */
3673 	return (void *) realloc( (char *) ptr, size );
3674 	}
3675 
3676 #ifdef YY_USE_PROTOS
yy_flex_free(void * ptr)3677 static void yy_flex_free( void *ptr )
3678 #else
3679 static void yy_flex_free( ptr )
3680 void *ptr;
3681 #endif
3682 	{
3683 	free( ptr );
3684 	}
3685 
3686 #if YY_MAIN
main()3687 int main()
3688 	{
3689 	yylex();
3690 	return 0;
3691 	}
3692 #endif
3693 #line 589 "lex.l"
3694 
3695 
push()3696 void scan_ctx::push() {
3697     assert(sp < MAX_INCLUDE_DEPTH);
3698     stack[sp].file_name = file_name;
3699     stack[sp].buffer = YY_CURRENT_BUFFER;
3700     stack[sp].search_path = i_path;
3701     stack[sp].pos = pos;
3702     stack[sp].line = line;
3703     stack[sp].input = yyin;
3704     sp += 1;
3705 }
3706 
3707 
attach(char * name,FILE * in)3708 void scan_ctx::attach(char* name, FILE* in) {
3709     pos = 0;
3710     line = 1;
3711     file_name = name;
3712     yyin = in;
3713     char* base_name = strrchr(name, PATH_SEP);
3714     if (base_name != NULL) {
3715 	i_path = dprintf("%.*s%c%s", base_name-name, name, path_sep, i_path);
3716     }
3717     yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
3718 }
3719 
pop()3720 void scan_ctx::pop() {
3721     assert(sp > 0);
3722     sp -= 1;
3723     pos = stack[sp].pos;
3724     line = stack[sp].line;
3725     file_name = stack[sp].file_name;
3726     fclose(yyin);
3727     yyin = stack[sp].input;
3728     i_path = stack[sp].search_path;
3729     yy_switch_to_buffer(stack[sp].buffer);
3730 }
3731 
find(char * name)3732 bool scan_ctx::find(char* name) {
3733     for (int i = 0; i < sp; i ++ ) {
3734 	if (strcmp(stack[i].file_name, name) == 0) {
3735 	    return TRUE;
3736 	}
3737     }
3738     return FALSE;
3739 }
3740 
3741