modules/up/src/rpsl/rpsl/rpsl.l.cc
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- YY_PROTO
- YY_PROTO
- YY_SC_TO_UI
- YY_STATE_EOF
- yyless
- unput
- yy_set_interactive
- yy_set_bol
- YY_AT_BOL
- yymore
- YYLESS
- YY_INPUT
- yyterminate
- YY_FATAL_ERROR
- yy_get_next_buffer
- yy_get_previous_state
- yy_try_NUL_trans
- yyunput
- yyinput
- yyrestart
- yy_switch_to_buffer
- yy_load_buffer_state
- yy_create_buffer
- yy_delete_buffer
- yy_init_buffer
- yy_flush_buffer
- yy_scan_buffer
- yy_scan_string
- yy_scan_bytes
- yy_push_state
- yy_pop_state
- yy_top_state
- yy_fatal_error
- yyless
- yy_flex_strncpy
- yy_flex_strlen
- yy_flex_alloc
- yy_flex_realloc
- yy_flex_free
- main
- handle_error
- handle_object_error
- rpslerror
- handle_warning
- yy_scan_object
- changeCurrentAttr
- validIPv6
- validIntForPhone
1 #define yy_create_buffer rpsl_create_buffer
2 #define yy_delete_buffer rpsl_delete_buffer
3 #define yy_scan_buffer rpsl_scan_buffer
4 #define yy_scan_string rpsl_scan_string
5 #define yy_scan_bytes rpsl_scan_bytes
6 #define yy_flex_debug rpsl_flex_debug
7 #define yy_init_buffer rpsl_init_buffer
8 #define yy_flush_buffer rpsl_flush_buffer
9 #define yy_load_buffer_state rpsl_load_buffer_state
10 #define yy_switch_to_buffer rpsl_switch_to_buffer
11 #define yyin rpslin
12 #define yyleng rpslleng
13 #define yylex rpsllex
14 #define yyout rpslout
15 #define yyrestart rpslrestart
16 #define yytext rpsltext
17 #define yywrap rpslwrap
18
19 /* A lexical scanner generated by flex */
20
21 /* Scanner skeleton version:
22 * $Header: /ncc/cvsroot/ncc/RIP/modules/up/src/rpsl/rpsl/rpsl.l.cc,v 1.5 2001/07/25 15:01:37 engin Exp $
23 */
24
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 5
28
29 #include <stdio.h>
30
31
32 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
33 #ifdef c_plusplus
34 #ifndef __cplusplus
35 #define __cplusplus
36 #endif
37 #endif
38
39
40 #ifdef __cplusplus
41
42 #include <stdlib.h>
43 #include <unistd.h>
44
45 /* Use prototypes in function declarations. */
46 #define YY_USE_PROTOS
47
48 /* The "const" storage-class-modifier is valid. */
49 #define YY_USE_CONST
50
51 #else /* ! __cplusplus */
52
53 #if __STDC__
54
55 #define YY_USE_PROTOS
56 #define YY_USE_CONST
57
58 #endif /* __STDC__ */
59 #endif /* ! __cplusplus */
60
61 #ifdef __TURBOC__
62 #pragma warn -rch
63 #pragma warn -use
64 #include <io.h>
65 #include <stdlib.h>
66 #define YY_USE_CONST
67 #define YY_USE_PROTOS
68 #endif
69
70 #ifdef YY_USE_CONST
71 #define yyconst const
72 #else
73 #define yyconst
74 #endif
75
76
77 #ifdef YY_USE_PROTOS
78 #define YY_PROTO(proto) proto
/* [<][>][^][v][top][bottom][index][help] */
79 #else
80 #define YY_PROTO(proto) ()
/* [<][>][^][v][top][bottom][index][help] */
81 #endif
82
83 /* Returned upon end-of-file. */
84 #define YY_NULL 0
85
86 /* Promotes a possibly negative, possibly signed char to an unsigned
87 * integer for use as an array index. If the signed char is negative,
88 * we want to instead treat it as an 8-bit unsigned char, hence the
89 * double cast.
90 */
91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* [<][>][^][v][top][bottom][index][help] */
92
93 /* Enter a start condition. This macro really ought to take a parameter,
94 * but we do it the disgusting crufty way forced on us by the ()-less
95 * definition of BEGIN.
96 */
97 #define BEGIN yy_start = 1 + 2 *
98
99 /* Translate the current start state into a value that can be later handed
100 * to BEGIN to return to the state. The YYSTATE alias is for lex
101 * compatibility.
102 */
103 #define YY_START ((yy_start - 1) / 2)
104 #define YYSTATE YY_START
105
106 /* Action number for EOF rule of a given start state. */
107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* [<][>][^][v][top][bottom][index][help] */
108
109 /* Special action meaning "start processing a new file". */
110 #define YY_NEW_FILE yyrestart( yyin )
111
112 #define YY_END_OF_BUFFER_CHAR 0
113
114 /* Size of default input buffer. */
115 #define YY_BUF_SIZE 16384
116
117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
118
119 extern int yyleng;
120 extern FILE *yyin, *yyout;
121
122 #define EOB_ACT_CONTINUE_SCAN 0
123 #define EOB_ACT_END_OF_FILE 1
124 #define EOB_ACT_LAST_MATCH 2
125
126 /* The funky do-while in the following #define is used to turn the definition
127 * int a single C statement (which needs a semi-colon terminator). This
128 * avoids problems with code like:
129 *
130 * if ( condition_holds )
131 * yyless( 5 );
132 * else
133 * do_something_else();
134 *
135 * Prior to using the do-while the compiler would get upset at the
136 * "else" because it interpreted the "if" statement as being all
137 * done when it reached the ';' after the yyless() call.
138 */
139
140 /* Return all but the first 'n' matched characters back to the input stream. */
141
142 #define yyless(n) \
/* [<][>][^][v][top][bottom][index][help] */
143 do \
144 { \
145 /* Undo effects of setting up yytext. */ \
146 *yy_cp = yy_hold_char; \
147 YY_RESTORE_YY_MORE_OFFSET \
148 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
149 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
150 } \
151 while ( 0 )
152
153 #define unput(c) yyunput( c, yytext_ptr )
/* [<][>][^][v][top][bottom][index][help] */
154
155 /* The following is because we cannot portably get our hands on size_t
156 * (without autoconf's help, which isn't available because we want
157 * flex-generated scanners to compile on their own).
158 */
159 typedef unsigned int yy_size_t;
160
161
162 struct yy_buffer_state
163 {
164 FILE *yy_input_file;
165
166 char *yy_ch_buf; /* input buffer */
167 char *yy_buf_pos; /* current position in input buffer */
168
169 /* Size of input buffer in bytes, not including room for EOB
170 * characters.
171 */
172 yy_size_t yy_buf_size;
173
174 /* Number of characters read into yy_ch_buf, not including EOB
175 * characters.
176 */
177 int yy_n_chars;
178
179 /* Whether we "own" the buffer - i.e., we know we created it,
180 * and can realloc() it to grow it, and should free() it to
181 * delete it.
182 */
183 int yy_is_our_buffer;
184
185 /* Whether this is an "interactive" input source; if so, and
186 * if we're using stdio for input, then we want to use getc()
187 * instead of fread(), to make sure we stop fetching input after
188 * each newline.
189 */
190 int yy_is_interactive;
191
192 /* Whether we're considered to be at the beginning of a line.
193 * If so, '^' rules will be active on the next match, otherwise
194 * not.
195 */
196 int yy_at_bol;
197
198 /* Whether to try to fill the input buffer when we reach the
199 * end of it.
200 */
201 int yy_fill_buffer;
202
203 int yy_buffer_status;
204 #define YY_BUFFER_NEW 0
205 #define YY_BUFFER_NORMAL 1
206 /* When an EOF's been seen but there's still some text to process
207 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
208 * shouldn't try reading from the input source any more. We might
209 * still have a bunch of tokens to match, though, because of
210 * possible backing-up.
211 *
212 * When we actually see the EOF, we change the status to "new"
213 * (via yyrestart()), so that the user can continue scanning by
214 * just pointing yyin at a new input file.
215 */
216 #define YY_BUFFER_EOF_PENDING 2
217 };
218
219 static YY_BUFFER_STATE yy_current_buffer = 0;
220
221 /* We provide macros for accessing buffer states in case in the
222 * future we want to put the buffer states in a more general
223 * "scanner state".
224 */
225 #define YY_CURRENT_BUFFER yy_current_buffer
226
227
228 /* yy_hold_char holds the character lost when yytext is formed. */
229 static char yy_hold_char;
230
231 static int yy_n_chars; /* number of characters read into yy_ch_buf */
232
233
234 int yyleng;
235
236 /* Points to current character in buffer. */
237 static char *yy_c_buf_p = (char *) 0;
238 static int yy_init = 1; /* whether we need to initialize */
239 static int yy_start = 0; /* start state number */
240
241 /* Flag which is used to allow yywrap()'s to do buffer switches
242 * instead of setting up a fresh yyin. A bit of a hack ...
243 */
244 static int yy_did_buffer_switch_on_eof;
245
246 void yyrestart YY_PROTO(( FILE *input_file ));
247
248 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
249 void yy_load_buffer_state YY_PROTO(( void ));
250 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
251 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
252 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
253 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
254 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
255
256 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
257 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
258 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
259
260 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
261 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
262 static void yy_flex_free YY_PROTO(( void * ));
263
264 #define yy_new_buffer yy_create_buffer
265
266 #define yy_set_interactive(is_interactive) \
/* [<][>][^][v][top][bottom][index][help] */
267 { \
268 if ( ! yy_current_buffer ) \
269 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
270 yy_current_buffer->yy_is_interactive = is_interactive; \
271 }
272
273 #define yy_set_bol(at_bol) \
/* [<][>][^][v][top][bottom][index][help] */
274 { \
275 if ( ! yy_current_buffer ) \
276 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
277 yy_current_buffer->yy_at_bol = at_bol; \
278 }
279
280 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
/* [<][>][^][v][top][bottom][index][help] */
281
282
283 #define YY_USES_REJECT
284 typedef unsigned char YY_CHAR;
285 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
286 typedef int yy_state_type;
287 extern char *yytext;
288 #define yytext_ptr yytext
289
290 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
291 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
292 static int yy_get_next_buffer YY_PROTO(( void ));
293 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
294
295 /* Done after the current pattern has been matched and before the
296 * corresponding action - sets up yytext.
297 */
298 #define YY_DO_BEFORE_ACTION \
299 yytext_ptr = yy_bp; \
300 yyleng = (int) (yy_cp - yy_bp); \
301 yy_hold_char = *yy_cp; \
302 *yy_cp = '\0'; \
303 yy_c_buf_p = yy_cp;
304
305 #define YY_NUM_RULES 60
306 #define YY_END_OF_BUFFER 61
307 static yyconst short int yy_acclist[826] =
308 { 0,
309 61, 4, 60, 60, 3, 4, 60, 4, 60, 2,
310 60, 4, 60, 58, 59, 60, 49, 60, 48, 59,
311 60, 59, 60, 47, 60, 11, 47, 60, 10, 60,
312 47, 60, 12, 47, 60, 47, 60, 46, 47, 60,
313 46, 47, 60, 46, 47, 60, 47, 60, 13, 60,
314 11, 13, 60, 12, 13, 60, 14, 60, 11, 60,
315 12, 14, 60, 40, 60, 11, 40, 60, 10, 60,
316 20, 40, 60, 12, 40, 60, 40, 60, 40, 60,
317 40, 60, 40, 60, 40, 60, 17, 40, 60, 40,
318 60, 36, 40, 60, 36, 40, 60, 40, 60, 36,
319
320 40, 60, 36, 40, 60, 36, 40, 60, 36, 40,
321 60, 36, 40, 60, 7, 60, 6, 60, 7, 60,
322 5, 6, 60, 40, 60, 17, 40, 60, 40, 60,
323 3, 2, 1, 58, 57, 50, 51, 57, 51, 57,
324 55, 57, 56, 57, 52, 57, 54, 57, 53, 57,
325 11, 9, 9, 8, 46, 12, 13, 11, 13, 12,
326 13, 14, 12, 14, 9, 8, 12, 12, 12, 17,
327 17, 19, 17, 36, 26, 36, 26, 36, 36, 26,
328 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
329 36, 26, 36, 26, 36, 26, 36, 26, 36, 7,
330
331 7, 5, 17, 42, 41, 43, 50, 51, 51, 10,
332 12, 12, 12, 12, 19, 38, 19, 38, 19, 19,
333 38, 38, 17, 18, 36, 37, 38, 36, 36, 26,
334 36, 26, 36, 26, 36, 26, 36, 26, 27, 36,
335 26, 36, 26, 36, 26, 36, 26, 36, 26, 36,
336 26, 36, 26, 36, 26, 36, 45, 17, 50, 51,
337 12, 12, 12, 12, 38, 19, 19, 19, 38, 38,
338 38, 17, 18, 23, 23, 38, 37, 38, 37, 38,
339 36, 36, 26, 36, 26, 36, 26, 36, 26, 36,
340 26, 36, 26, 36, 26, 36, 28, 36, 26, 28,
341
342 36, 26, 27, 36, 26, 36, 26, 36, 26, 36,
343 26, 36, 26, 36, 26, 36, 29, 36, 26, 29,
344 36, 26, 36, 26, 33, 36, 17, 44, 39, 39,
345 12, 39, 12, 39, 19, 38, 19, 38, 19, 19,
346 19, 38, 38, 19, 38, 38, 19, 38, 17, 18,
347 23, 23, 23, 37, 38, 37, 38, 37, 38, 37,
348 38, 36, 26, 36, 26, 36, 26, 36, 26, 36,
349 26, 28, 36, 26, 27, 36, 34, 36, 36, 36,
350 26, 29, 36, 17, 12, 19, 19, 38, 38, 19,
351 38, 38, 19, 38, 17, 18, 37, 38, 37, 38,
352
353 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
354 28, 36, 26, 27, 36, 26, 36, 32, 36, 26,
355 32, 36, 36, 36, 31, 36, 26, 31, 36, 26,
356 29, 36, 30, 36, 26, 30, 36, 17, 39, 39,
357 39, 12, 39, 19, 19, 21, 38, 38, 38, 19,
358 38, 38, 19, 38, 17, 18, 37, 38, 37, 38,
359 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
360 28, 36, 26, 27, 36, 36, 26, 32, 36, 26,
361 31, 36, 26, 29, 36, 26, 30, 36, 17, 12,
362 19, 19, 21, 38, 38, 38, 19, 38, 38, 19,
363
364 38, 17, 37, 38, 37, 38, 36, 26, 36, 26,
365 36, 26, 36, 26, 36, 28, 26, 28, 36, 26,
366 27, 36, 28, 29, 26, 36, 26, 32, 36, 36,
367 26, 31, 36, 29, 26, 29, 36, 26, 30, 36,
368 17, 39, 39, 12, 39, 19, 19, 38, 24, 24,
369 24, 21, 38, 38, 19, 38, 38, 19, 38, 17,
370 37, 38, 37, 38, 36, 26, 36, 26, 36, 26,
371 36, 28, 26, 28, 36, 27, 36, 26, 36, 26,
372 32, 36, 36, 26, 31, 36, 29, 26, 29, 36,
373 26, 30, 36, 19, 19, 38, 24, 24, 24, 21,
374
375 38, 38, 19, 38, 38, 19, 38, 17, 37, 38,
376 37, 38, 36, 26, 36, 26, 36, 26, 28, 36,
377 27, 36, 32, 31, 30, 26, 36, 32, 26, 32,
378 36, 36, 31, 26, 31, 36, 26, 29, 36, 30,
379 26, 30, 36, 39, 19, 19, 38, 25, 25, 24,
380 24, 24, 21, 38, 38, 19, 38, 38, 19, 38,
381 17, 37, 38, 37, 38, 36, 26, 36, 28, 26,
382 28, 36, 27, 36, 26, 32, 36, 36, 26, 31,
383 36, 29, 26, 29, 36, 26, 30, 36, 19, 19,
384 38, 24, 24, 24, 21, 38, 38, 19, 38, 38,
385
386 19, 38, 17, 37, 38, 37, 38, 36, 26, 36,
387 26, 28, 36, 27, 36, 26, 32, 36, 36, 26,
388 31, 36, 26, 29, 36, 26, 30, 36, 16, 16,
389 19, 16, 16, 19, 16, 16, 16, 16, 38, 16,
390 25, 16, 24, 16, 24, 16, 24, 16, 16, 21,
391 38, 16, 16, 38, 16, 16, 19, 38, 16, 38,
392 16, 19, 38, 16, 16, 17, 16, 16, 37, 38,
393 16, 37, 38, 16, 16, 36, 16, 27, 36, 32,
394 32, 26, 32, 36, 36, 31, 31, 26, 31, 36,
395 30, 30, 26, 30, 36, 19, 24, 24, 24, 21,
396
397 38, 38, 19, 38, 17, 27, 36, 26, 32, 36,
398 36, 26, 31, 36, 26, 30, 36, 35, 36, 22,
399 22, 22, 22, 22, 15
400 } ;
401
402 static yyconst short int yy_accept[864] =
403 { 0,
404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 1, 1, 1, 1, 1, 1, 1, 2, 4, 5,
406 8, 10, 12, 14, 17, 19, 22, 24, 26, 29,
407 31, 33, 36, 38, 41, 44, 47, 49, 51, 54,
408 57, 59, 61, 64, 66, 69, 71, 74, 77, 79,
409 81, 83, 85, 87, 90, 92, 95, 98, 100, 103,
410 106, 109, 112, 115, 117, 119, 121, 124, 126, 129,
411 131, 132, 132, 133, 133, 133, 134, 135, 136, 139,
412 141, 143, 145, 147, 149, 151, 152, 153, 154, 155,
413 156, 157, 157, 157, 158, 160, 162, 163, 165, 165,
414
415 165, 165, 166, 167, 167, 168, 169, 170, 170, 171,
416 171, 171, 172, 172, 173, 173, 173, 173, 174, 174,
417 174, 174, 174, 174, 174, 175, 175, 177, 179, 180,
418 180, 182, 184, 186, 188, 190, 192, 194, 196, 198,
419 200, 201, 202, 203, 203, 204, 205, 206, 207, 209,
420 210, 210, 211, 211, 211, 211, 211, 211, 212, 213,
421 214, 215, 216, 217, 219, 219, 219, 220, 220, 220,
422 220, 220, 222, 223, 223, 224, 224, 224, 225, 225,
423 225, 225, 225, 226, 228, 228, 229, 230, 230, 232,
424 234, 236, 238, 238, 241, 243, 245, 247, 249, 251,
425
426 253, 253, 255, 257, 258, 259, 259, 261, 261, 261,
427 261, 261, 261, 262, 263, 264, 265, 265, 266, 266,
428 266, 267, 267, 267, 267, 268, 268, 268, 268, 268,
429 270, 271, 272, 272, 272, 273, 273, 273, 274, 274,
430 274, 275, 276, 276, 276, 276, 277, 279, 281, 281,
431 282, 283, 285, 287, 289, 291, 293, 295, 297, 297,
432 299, 302, 305, 305, 307, 309, 311, 313, 315, 317,
433 317, 319, 322, 324, 327, 328, 329, 330, 331, 331,
434 331, 333, 335, 335, 336, 337, 339, 339, 340, 341,
435 341, 342, 342, 342, 342, 343, 344, 344, 346, 347,
436
437 347, 349, 349, 350, 350, 351, 351, 351, 352, 353,
438 354, 354, 354, 356, 358, 360, 362, 362, 363, 365,
439 367, 369, 371, 371, 374, 377, 377, 377, 377, 377,
440 377, 379, 379, 380, 381, 381, 381, 384, 384, 385,
441 385, 385, 385, 386, 386, 387, 387, 388, 388, 388,
442 388, 388, 389, 390, 390, 390, 392, 393, 395, 395,
443 396, 396, 396, 397, 397, 397, 397, 397, 397, 397,
444 399, 401, 401, 402, 404, 406, 408, 410, 410, 410,
445 413, 416, 416, 416, 416, 416, 416, 416, 418, 418,
446 420, 423, 424, 425, 425, 427, 430, 430, 430, 430,
447
448 433, 433, 435, 438, 439, 440, 441, 442, 444, 444,
449 445, 445, 446, 446, 446, 446, 448, 449, 449, 450,
450 450, 450, 452, 453, 455, 455, 456, 456, 457, 457,
451 457, 457, 457, 459, 461, 461, 462, 464, 466, 468,
452 470, 470, 470, 473, 476, 476, 476, 476, 476, 476,
453 476, 476, 477, 477, 480, 480, 480, 483, 483, 483,
454 483, 486, 486, 489, 490, 490, 490, 491, 491, 492,
455 492, 493, 493, 493, 493, 493, 493, 495, 496, 496,
456 497, 497, 499, 500, 502, 502, 503, 503, 503, 503,
457 503, 503, 503, 503, 505, 507, 507, 508, 510, 512,
458
459 514, 516, 516, 517, 517, 520, 523, 523, 524, 524,
460 524, 524, 524, 525, 525, 527, 527, 527, 527, 530,
461 531, 531, 531, 534, 535, 535, 535, 538, 538, 538,
462 538, 541, 542, 543, 544, 546, 546, 547, 547, 548,
463 548, 548, 548, 549, 550, 551, 552, 552, 552, 554,
464 554, 555, 555, 557, 558, 560, 560, 560, 561, 561,
465 561, 561, 561, 561, 563, 565, 565, 566, 568, 570,
466 572, 572, 573, 573, 576, 578, 578, 578, 578, 578,
467 580, 580, 580, 580, 583, 584, 584, 584, 584, 587,
468 587, 587, 588, 591, 591, 591, 591, 594, 594, 594,
469
470 595, 595, 596, 596, 596, 596, 596, 597, 597, 598,
471 599, 600, 600, 602, 602, 603, 603, 605, 606, 608,
472 608, 608, 609, 609, 609, 609, 609, 609, 609, 609,
473 611, 613, 613, 614, 616, 618, 618, 621, 623, 623,
474 624, 624, 624, 625, 625, 626, 628, 629, 629, 629,
475 632, 633, 634, 634, 634, 637, 637, 640, 641, 641,
476 641, 644, 645, 645, 646, 646, 647, 647, 647, 647,
477 648, 648, 649, 650, 651, 652, 653, 653, 655, 655,
478 656, 656, 658, 659, 661, 661, 661, 662, 662, 662,
479 662, 662, 662, 664, 666, 666, 667, 669, 670, 673,
480
481 675, 675, 675, 678, 679, 679, 679, 682, 683, 686,
482 686, 686, 689, 689, 690, 690, 691, 691, 691, 691,
483 691, 692, 692, 693, 694, 695, 695, 697, 697, 698,
484 698, 700, 701, 703, 703, 703, 704, 704, 704, 704,
485 704, 704, 704, 704, 706, 708, 708, 709, 711, 714,
486 716, 716, 716, 719, 720, 720, 720, 723, 726, 726,
487 726, 729, 730, 732, 733, 735, 736, 737, 738, 740,
488 741, 742, 744, 746, 748, 749, 752, 753, 755, 756,
489 759, 761, 764, 764, 765, 767, 768, 768, 768, 768,
490 768, 771, 774, 775, 777, 780, 780, 781, 782, 785,
491
492 786, 787, 787, 788, 791, 792, 792, 793, 796, 797,
493 798, 799, 800, 800, 802, 802, 803, 803, 805, 805,
494 805, 806, 806, 806, 806, 806, 806, 806, 808, 811,
495 812, 815, 818, 818, 818, 818, 818, 818, 820, 820,
496 820, 820, 820, 820, 820, 820, 821, 822, 822, 822,
497 822, 823, 824, 825, 825, 825, 825, 825, 825, 825,
498 825, 826, 826
499 } ;
500
501 static yyconst int yy_ec[256] =
502 { 0,
503 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
504 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506 1, 2, 5, 6, 7, 1, 1, 1, 1, 8,
507 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
508 19, 20, 20, 20, 20, 21, 22, 23, 12, 24,
509 25, 26, 1, 27, 36, 37, 38, 38, 39, 40,
510 41, 42, 42, 42, 43, 44, 42, 45, 46, 47,
511 42, 48, 49, 50, 51, 42, 42, 42, 52, 42,
512 30, 31, 32, 33, 34, 35, 36, 37, 38, 38,
513
514 39, 40, 41, 42, 42, 42, 43, 44, 42, 45,
515 46, 47, 42, 48, 49, 50, 51, 42, 42, 42,
516 52, 42, 1, 1, 1, 1, 1, 1, 1, 1,
517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
518 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
520 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
521 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
522 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
524
525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
528 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
529 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
530 1, 1, 1, 1, 1
531 } ;
532
533 static yyconst int yy_meta[53] =
534 { 0,
535 1, 2, 3, 4, 1, 5, 1, 6, 6, 1,
536 7, 6, 8, 9, 10, 11, 11, 11, 11, 11,
537 11, 11, 12, 6, 1, 6, 13, 14, 15, 6,
538 5, 6, 1, 16, 1, 14, 14, 14, 17, 14,
539 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
540 15, 15
541 } ;
542
543 static yyconst short int yy_base[1050] =
544 { 0,
545 0, 6, 8, 9, 57, 86, 14, 20, 26, 34,
546 116, 0, 2247, 2, 155, 175, 2246,13957,13957, 0,
547 71,13957, 72, 0,13957,13957, 193,13957, 74, 176,
548 2219, 0, 2234, 1, 2207, 6, 2197, 0, 75, 0,
549 0, 82, 100, 78, 105, 215, 0, 242,13957, 261,
550 288, 182, 340, 375, 2205, 427, 464, 491, 64, 146,
551 177, 135, 2178, 0,13957, 203,13957, 500, 241, 512,
552 0, 232,13957, 263, 277,13957, 0,13957, 339, 477,
553 13957,13957,13957,13957,13957, 177, 316,13957,13957,13957,
554 0, 2199, 2187, 0, 219, 0, 0, 235, 213, 2165,
555
556 534, 257, 335, 2185, 585, 616, 648, 685, 0, 0,
557 712, 0, 0, 763, 802, 837, 872, 924, 961, 988,
558 996, 2175, 1036, 1071, 1123, 584, 1175, 1212, 1237, 615,
559 1265, 2136, 2140, 2133, 2133, 2122, 2123, 2153, 2116, 2111,
560 0, 366,13957, 2139, 752, 350, 352, 1275, 770, 777,
561 403,13957, 357, 1297, 1336, 2138, 2110, 1357, 1389, 1428,
562 2122, 804, 1437, 817, 0, 342, 1458, 1496, 1518, 1553,
563 1588, 1623, 1674, 818, 1713, 1752, 1760, 1785, 974, 2121,
564 1009, 205, 1825, 1860, 1882, 1934, 1971, 2011, 2051, 2073,
565 2110, 2138, 2160, 2197, 2088, 2056, 2056, 2055, 2056, 2056,
566
567 2220, 2036, 2043, 0, 1036, 2259, 1225, 2268, 2067, 2290,
568 2325, 1250, 2347, 2065, 2369, 1356, 2420, 2441, 0, 283,
569 2462, 2500, 707, 1447, 850, 2522, 2557, 2592, 2627, 2678,
570 2704, 2725, 2063, 864, 2747, 2786, 2052, 2794, 2043, 1465,
571 1472, 1517, 209, 0, 2834, 2886, 2921, 2956, 2978, 3030,
572 3065, 3100, 3140, 1552, 1587, 3148, 1663, 2042, 3171, 3206,
573 3206, 3243, 1463, 2030, 2003, 2028, 2001, 1996, 2007, 3266,
574 3301, 3301, 2006, 0, 1681, 3340, 3367, 3402, 2003, 3424,
575 3446, 3485, 3494, 3508, 3535, 0, 0, 1688, 3586, 3624,
576 856, 3646, 3681, 3716, 3751, 3790, 2001, 3811, 3849, 1984,
577
578 1062, 1063, 3871, 3910, 3918, 1773, 1974,13957, 1798, 1825,
579 232, 416, 3958, 3993, 4028, 4063, 4085, 4137, 4172, 4224,
580 1860, 1881, 33, 4276, 4313, 1947, 1951, 324, 203, 4336,
581 4388, 4423, 1917, 1913, 4475, 510, 4527, 4579, 1984, 4631,
582 0, 2123, 4683, 0, 4734, 4772, 1544, 4794, 4829, 4864,
583 4899, 4938, 4947, 1950, 1946, 4968, 5006, 1579, 1545, 5028,
584 2290, 5067, 1935, 1923, 1920, 1919, 436, 575, 0, 5090,
585 5125, 5147, 5199, 5199, 5251, 2451, 2469, 1891, 1899, 5303,
586 5340, 1923, 1867, 1873, 1864, 1895, 1844, 5363, 5380, 492,
587 5419, 5471, 85, 5506, 5541, 5541, 1841, 1850, 1839, 5593,
588
589 5645, 5680, 5680, 2476, 5732, 1872, 5771, 5793, 0, 5844,
590 5882, 1851, 5904, 5939, 5974, 6009, 6047, 5, 6056, 1870,
591 1869, 6077, 6115, 1902, 1615, 6137, 6176, 2521, 1849, 1846,
592 598, 693, 6199, 6234, 6256, 6308, 6343, 6395, 2556, 2591,
593 1838, 1810, 6447, 6484, 236, 1808, 1781, 1719, 1704, 423,
594 1690, 6480, 674, 6532, 6584, 67, 6636, 2667, 1698, 1712,
595 6688, 688, 6740, 2685, 6779, 6788, 6797, 0, 6818, 6856,
596 1903, 6878, 6913, 6948, 6983, 2692, 7018, 7070, 474, 7092,
597 1703, 7113, 7151, 2316, 1852, 7173, 7224, 1692, 1689, 1666,
598 802, 811, 0, 7247, 7282, 7304, 7356, 7356, 7408, 2807,
599
600 2886, 530, 1654, 1605, 7443, 7480, 610, 842, 1636, 1610,
601 1622, 811, 861, 1605, 7476, 1567, 1567, 1561, 7528, 7580,
602 1545, 488, 7632, 1559, 1528, 815, 7684, 1493, 1491, 1474,
603 7736, 310, 7788, 7827, 7849, 0, 7900, 7938, 2320, 7960,
604 7995, 8030, 8065, 581, 8087, 756, 8120, 1487, 8142, 476,
605 8151, 1488, 8172, 8210, 2442, 397, 2300, 8232, 8271, 1449,
606 1447, 818, 881, 8294, 8329, 8337, 8389, 8389, 8441, 2921,
607 846, 1025, 1425, 8476, 8516, 868, 1403, 920, 1008, 8512,
608 2956, 1393, 1347, 8564, 8616, 2977, 1343, 1334, 8668, 1315,
609 1010, 1267, 8720, 3030, 1289, 1275, 8772, 3065, 0, 8823,
610
611 8861, 2501, 8883, 8918, 8953, 8988, 9023, 9048, 1272, 9060,
612 970, 2432, 9079, 551, 9088, 1289, 9109, 9147, 2548, 3171,
613 2549, 9169, 9208, 1238, 1178, 1176, 913, 933, 0, 9231,
614 9266, 9288, 9340, 9340, 9392, 1134, 9427, 9467, 1049, 1286,
615 1158, 1067, 1527, 1119, 1562, 9475, 1154, 1106, 1101, 9515,
616 9552, 1108, 1081, 1084, 9592, 1048, 9644, 1071, 1031, 996,
617 9696, 9735, 0, 9756, 9794, 2583, 9816, 9851, 9886, 9921,
618 9956, 787, 9979, 593, 9993, 1217, 2491,10013, 728,10022,
619 1026,10043,10081, 2618, 999, 2619,10103,10142, 997, 962,
620 1045, 1080,10165,10200,10208,10260,10260, 932,10312,10364,
621
622 937, 896,10381,10418, 894, 913,10423, 875,10440, 817,
623 833,10457, 0,10508,10546, 2726,10568,10603,10638,10673,
624 10708,10730, 806,10742, 1246, 2716,10761, 796,10770, 816,
625 10791,10829, 2912, 3206, 2913,10851,10890, 777, 743, 721,
626 1112, 1132, 0,10913,10948,10970,11022, 0,11022,11074,
627 1171, 689,11091,11128, 677, 1293,11133,11150, 596, 1351,
628 11167,13957, 1469, 2947, 3266, 3301,11206, 1583,11228,11263,
629 0, 596,11283, 1765, 2967,11303, 1192,11312, 627,11333,
630 11371, 2999, 3367, 3057,11393,11432, 615, 604, 1164, 1306,
631 11455,11490,11498, 0,11535, 1488, 1814, 573,11523,11560,
632
633 569, 1528, 1834,11565, 537, 1531, 2000,11582, 1575, 790,
634 0, 1790, 3076, 0, 1353, 0, 528, 0, 517, 3575,
635 0, 515, 501, 435, 1347, 1597, 0,11619,11607,11644,
636 11649,11666, 3593, 430, 414, 1632, 372, 0, 3600, 360,
637 3645, 337, 1696, 333, 431, 3680, 3715, 327, 277, 3000,
638 13957, 3800, 2409, 216, 171, 3818, 3825, 147, 3931, 3958,
639 13957,13957,11718,11735,11752,11769,11786,11803,11820,11830,
640 11847,11864,11881,11898,11915,11932,11949,11966,11983,12000,
641 12009,12026,12043,12060,12077,12086,12103,12120,12128,12145,
642 12162,12171,12188,12205,12213,12230,12247,12264,12274,12283,
643
644 12299,12310,12327,12334,12342,12349,12366,12383,12400,12417,
645 12434,12451,12468,12478,12495,12504,12521,12538,12545,12553,
646 12561,12578,12595,12612,12622,12631,12648,12665, 1484,12672,
647 12679,12687,12694,12711,12728, 55,12745,12762,12772,12781,
648 12798,12815,12822,12829,12837,12845,12862,12879, 256,12889,
649 1515,12899,12908,12925,12942,12959,12966,12973,12981,12988,
650 13005,13022,13032, 1620,13042,13052, 1675,13062,13072,13081,
651 13098,13115,13132,13148,13149,13156,13164,13172,13189,13206,
652 13216,13226,13236,13246,13256,13266,13275,13292,13309,13326,
653 13343,13350,13357,13365,13372,13389,13406,13416,13426,13436,
654
655 1710, 1732, 1822,13446,13455,13472,13489,13506,13523,13530,
656 13537,13545,13553,13570,13587,13596,13613,13630,13647,13654,
657 13661,13669,13676,13693,13710,13720,13730,13740,13756,13772,
658 13783,13800,13807,13814,13822,13830,13847,13854,13861,13869,
659 13876,13883,13891,13899,13907,13915,13923,13931,13939
660 } ;
661
662 static yyconst short int yy_def[1050] =
663 { 0,
664 863, 863, 864, 864, 865, 865, 866, 866, 867, 867,
665 862, 11, 868, 868, 11, 11, 862, 862, 862, 869,
666 862, 862, 870, 871, 862, 862, 872, 862, 862, 862,
667 862, 873, 862, 862, 862, 862, 862, 874, 874, 875,
668 876, 862, 877, 878, 862, 878, 879, 880, 862, 878,
669 862, 881, 882, 862, 862, 862, 56, 51, 56, 56,
670 57, 57, 57, 883, 862, 883, 862, 881, 54, 50,
671 869, 862, 862, 870, 870, 862, 871, 862, 862, 862,
672 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
673 873, 862, 862, 874, 874, 875, 876, 877, 878, 884,
674
675 862, 878, 878, 879, 880, 885, 862, 884, 50, 58,
676 862, 51, 886, 886, 887, 888, 862, 862, 862, 118,
677 120, 889, 890, 862, 862, 119, 862, 127, 125, 111,
678 128, 128, 127, 128, 128, 128, 128, 128, 128, 128,
679 891, 891, 862, 886, 118, 878, 878, 50, 862, 862,
680 862, 862, 884, 862, 101, 101, 862, 885, 862, 107,
681 107, 108, 111, 111, 892, 862, 892, 892, 893, 893,
682 894, 862, 172, 172, 862, 175, 176, 862, 178, 173,
683 862, 895, 896, 897, 173, 862, 186, 862, 186, 862,
684 190, 187, 862, 192, 191, 191, 191, 191, 191, 191,
685
686 862, 191, 191, 892, 175, 50, 862, 154, 154, 898,
687 898, 899, 159, 159, 862, 215, 108, 163, 900, 901,
688 900, 900, 901, 862, 222, 902, 902, 903, 862, 229,
689 229, 231, 231, 230, 862, 235, 236, 862, 904, 238,
690 862, 862, 905, 906, 862, 907, 908, 908, 231, 909,
691 909, 862, 251, 253, 253, 253, 256, 253, 910, 910,
692 260, 253, 862, 256, 256, 256, 256, 256, 256, 911,
693 911, 271, 256, 256, 235, 912, 913, 913, 914, 914,
694 862, 281, 915, 915, 862, 285, 916, 862, 916, 916,
695 290, 917, 917, 918, 862, 295, 295, 295, 296, 296,
696
697 299, 298, 862, 303, 862, 305, 919, 862, 862, 862,
698 920, 921, 922, 922, 923, 923, 296, 924, 862, 862,
699 320, 320, 862, 862, 320, 862, 862, 862, 862, 862,
700 924, 862, 331, 331, 862, 862, 862, 862, 303, 862,
701 925, 925, 862, 926, 926, 926, 346, 927, 927, 928,
702 862, 351, 351, 353, 352, 352, 353, 357, 356, 862,
703 862, 360, 929, 862, 930, 931, 862, 932, 933, 934,
704 934, 353, 935, 319, 862, 375, 375, 862, 862, 862,
705 375, 936, 862, 862, 862, 862, 862, 862, 332, 389,
706 389, 935, 392, 937, 937, 395, 862, 862, 862, 862,
707
708 938, 938, 402, 360, 862, 939, 939, 862, 940, 940,
709 940, 411, 941, 941, 942, 862, 416, 416, 417, 417,
710 419, 419, 417, 423, 422, 862, 426, 862, 943, 944,
711 945, 946, 947, 947, 417, 948, 862, 862, 438, 438,
712 949, 862, 862, 438, 950, 951, 862, 862, 862, 952,
713 862, 437, 862, 862, 862, 862, 862, 862, 862, 862,
714 862, 862, 862, 426, 405, 939, 408, 953, 953, 953,
715 470, 954, 954, 955, 956, 473, 862, 956, 477, 478,
716 480, 480, 478, 483, 482, 862, 486, 862, 957, 958,
717 862, 959, 960, 961, 961, 478, 962, 437, 962, 499,
718
719 499, 963, 964, 862, 862, 499, 965, 965, 862, 862,
720 862, 966, 966, 862, 437, 862, 862, 862, 862, 862,
721 862, 862, 862, 967, 862, 968, 862, 862, 862, 862,
722 862, 486, 862, 969, 862, 970, 970, 970, 538, 971,
723 971, 972, 973, 541, 541, 545, 973, 545, 547, 549,
724 547, 551, 551, 551, 554, 974, 553, 862, 558, 975,
725 976, 977, 978, 979, 979, 547, 980, 437, 980, 569,
726 981, 981, 862, 862, 569, 982, 862, 983, 984, 437,
727 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
728 985, 985, 862, 862, 862, 862, 862, 986, 987, 987,
729
730 987, 601, 988, 988, 989, 990, 990, 991, 604, 604,
731 604, 610, 607, 613, 607, 615, 615, 607, 618, 862,
732 617, 862, 622, 862, 992, 993, 862, 994, 995, 996,
733 996, 607, 997, 437, 997, 862, 862, 635, 998, 998,
734 862, 999, 999, 1000, 1000, 585, 1001, 862, 862, 862,
735 646, 1002, 862, 862, 862, 862, 862, 1003, 862, 862,
736 862, 1004, 1005, 1005, 1005, 665, 1006, 1006, 1007, 1008,
737 1008, 1009, 1009, 668, 668, 675, 675, 671, 678, 671,
738 680, 680, 680, 683, 862, 682, 862, 687, 1010, 1011,
739 1012, 1013, 1014, 1014, 671, 1015, 646, 862, 862, 862,
740
741 862, 862, 650, 646, 862, 862, 655, 862, 657, 862,
742 862, 661, 1016, 1016, 1016, 715, 1017, 1017, 1018, 1019,
743 1019, 1009, 718, 718, 718, 724, 721, 727, 721, 729,
744 729, 721, 732, 862, 731, 862, 736, 862, 1020, 1021,
745 862, 1022, 1023, 1024, 1024, 721, 1025, 646, 699, 862,
746 1026, 862, 650, 646, 862, 1027, 655, 709, 862, 1028,
747 661, 862, 1029, 1030, 862, 722, 722, 1031, 1032, 1032,
748 722, 767, 722, 773, 773, 770, 776, 770, 778, 778,
749 778, 781, 862, 780, 862, 785, 1033, 1034, 1035, 1036,
750 1037, 1037, 770, 646, 646, 1026, 1026, 862, 650, 646,
751
752 862, 1027, 1027, 655, 862, 1028, 1028, 761, 1029, 767,
753 773, 773, 773, 776, 776, 778, 778, 780, 862, 770,
754 785, 862, 1038, 1039, 862, 1040, 1041, 646, 650, 646,
755 655, 761, 862, 1042, 1043, 1044, 1045, 646, 862, 862,
756 862, 1046, 862, 1047, 862, 862, 862, 1048, 1049, 862,
757 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
758 862, 0, 862, 862, 862, 862, 862, 862, 862, 862,
759 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
760 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
761 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
762
763 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
764 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
765 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
766 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
767 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
768 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
769 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
770 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
771 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
772 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
773
774 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
775 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
776 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
777 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
778 862, 862, 862, 862, 862, 862, 862, 862, 862
779 } ;
780
781 static yyconst short int yy_nxt[14010] =
782 { 0,
783 862, 862, 19, 66, 67, 66, 20, 21, 22, 21,
784 25, 25, 20, 26, 26, 39, 30, 39, 468, 473,
785 40, 39, 30, 39, 92, 90, 40, 42, 30, 42,
786 90, 93, 43, 23, 23, 42, 30, 42, 27, 27,
787 43, 23, 23, 23, 23, 23, 23, 23, 23, 23,
788 23, 23, 23, 23, 23, 23, 23, 23, 29, 30,
789 29, 31, 446, 32, 33, 446, 31, 31, 378, 31,
790 31, 31, 72, 73, 72, 86, 95, 86, 95, 379,
791 34, 35, 36, 86, 74, 86, 37, 29, 30, 29,
792 31, 100, 32, 33, 76, 31, 31, 455, 31, 31,
793
794 31, 91, 521, 91, 101, 74, 86, 862, 86, 34,
795 35, 36, 131, 522, 132, 37, 44, 45, 46, 45,
796 44, 47, 48, 49, 49, 44, 50, 49, 51, 52,
797 53, 54, 54, 54, 54, 54, 54, 54, 55, 49,
798 44, 49, 44, 56, 57, 49, 49, 49, 44, 58,
799 44, 59, 56, 56, 56, 60, 57, 57, 57, 57,
800 57, 57, 61, 62, 57, 63, 57, 57, 68, 859,
801 69, 69, 69, 69, 69, 69, 69, 87, 86, 87,
802 86, 133, 88, 138, 139, 181, 89, 70, 68, 134,
803 69, 69, 69, 69, 69, 69, 69, 114, 114, 114,
804
805 114, 114, 114, 114, 142, 143, 142, 70, 79, 79,
806 79, 79, 79, 80, 80, 135, 87, 136, 87, 181,
807 95, 102, 95, 181, 137, 103, 100, 244, 100, 81,
808 841, 244, 82, 72, 73, 72, 91, 83, 91, 101,
809 84, 101, 85, 91, 99, 91, 181, 91, 507, 91,
810 91, 386, 387, 91, 244, 106, 145, 145, 145, 145,
811 145, 145, 145, 503, 91, 91, 503, 91, 107, 507,
812 100, 91, 91, 91, 108, 74, 109, 109, 109, 109,
813 109, 109, 109, 101, 223, 862, 223, 101, 99, 74,
814 99, 181, 99, 224, 99, 224, 74, 99, 99, 76,
815
816 110, 111, 99, 112, 112, 112, 112, 112, 112, 112,
817 74, 862, 99, 862, 101, 110, 110, 151, 152, 151,
818 99, 110, 99, 110, 110, 110, 110, 110, 110, 110,
819 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
820 99, 841, 99, 166, 99, 166, 99, 181, 100, 99,
821 99, 841, 99, 115, 149, 149, 149, 149, 149, 150,
822 150, 101, 384, 100, 99, 100, 101, 142, 143, 142,
823 100, 385, 99, 99, 99, 99, 101, 99, 101, 99,
824 220, 99, 824, 154, 99, 99, 181, 110, 117, 116,
825 118, 118, 118, 118, 118, 118, 118, 119, 556, 99,
826
827 556, 101, 120, 121, 151, 152, 151, 99, 110, 99,
828 120, 120, 120, 120, 120, 121, 121, 121, 121, 121,
829 121, 121, 121, 121, 121, 121, 121, 99, 841, 99,
830 181, 99, 850, 99, 850, 512, 99, 99, 369, 123,
831 124, 116, 125, 125, 125, 125, 125, 125, 125, 126,
832 181, 99, 824, 101, 127, 128, 512, 122, 244, 99,
833 123, 99, 127, 127, 127, 127, 127, 128, 128, 128,
834 128, 128, 128, 128, 128, 128, 128, 128, 128, 129,
835 129, 129, 129, 129, 129, 129, 862, 536, 540, 599,
836 604, 128, 150, 150, 150, 150, 150, 150, 150, 128,
837
838 128, 128, 128, 128, 130, 245, 110, 110, 110, 110,
839 110, 110, 110, 144, 453, 114, 114, 114, 114, 114,
840 114, 114, 146, 824, 147, 100, 587, 148, 148, 148,
841 148, 148, 148, 148, 99, 588, 99, 740, 99, 833,
842 99, 862, 571, 99, 99, 397, 155, 100, 99, 156,
843 156, 156, 156, 156, 156, 156, 398, 399, 99, 462,
844 101, 155, 155, 571, 663, 667, 99, 155, 99, 155,
845 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
846 155, 155, 155, 155, 155, 155, 91, 99, 91, 181,
847 91, 456, 91, 91, 603, 453, 91, 369, 106, 179,
848
849 179, 179, 179, 179, 179, 179, 717, 91, 91, 100,
850 91, 107, 181, 608, 91, 91, 91, 91, 153, 91,
851 369, 91, 507, 91, 91, 608, 824, 91, 608, 91,
852 163, 163, 163, 163, 163, 163, 163, 740, 91, 91,
853 862, 91, 159, 507, 805, 91, 91, 91, 105, 91,
854 99, 91, 105, 91, 105, 91, 91, 105, 105, 91,
855 160, 106, 105, 161, 161, 161, 161, 161, 161, 161,
856 91, 91, 105, 91, 107, 160, 160, 91, 91, 91,
857 105, 160, 105, 160, 160, 160, 160, 160, 160, 160,
858 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
859
860 162, 162, 162, 162, 162, 162, 162, 181, 223, 516,
861 223, 154, 153, 517, 153, 493, 153, 224, 153, 224,
862 518, 153, 153, 528, 163, 801, 153, 164, 164, 164,
863 164, 164, 164, 164, 529, 530, 153, 798, 154, 163,
864 163, 713, 718, 122, 153, 163, 153, 163, 163, 163,
865 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
866 163, 163, 163, 163, 166, 740, 166, 205, 205, 205,
867 205, 205, 205, 205, 604, 604, 604, 604, 167, 167,
868 167, 167, 167, 167, 167, 207, 207, 207, 207, 207,
869 150, 150, 150, 150, 150, 150, 150, 150, 150, 626,
870
871 100, 168, 153, 100, 153, 166, 153, 166, 153, 762,
872 766, 153, 153, 154, 153, 165, 181, 100, 166, 862,
873 166, 862, 608, 512, 369, 181, 153, 591, 154, 762,
874 130, 219, 181, 493, 153, 153, 153, 99, 608, 99,
875 493, 99, 217, 99, 512, 760, 99, 99, 591, 99,
876 170, 862, 759, 862, 507, 218, 231, 862, 571, 862,
877 862, 99, 862, 101, 323, 862, 862, 862, 862, 99,
878 99, 99, 153, 512, 153, 507, 153, 287, 153, 571,
879 639, 153, 153, 336, 163, 165, 169, 172, 172, 172,
880 172, 172, 172, 172, 512, 181, 153, 336, 154, 173,
881
882 173, 639, 296, 629, 153, 163, 153, 173, 173, 173,
883 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
884 173, 173, 173, 173, 99, 756, 99, 181, 99, 755,
885 99, 752, 642, 99, 99, 493, 110, 174, 171, 175,
886 175, 175, 175, 175, 175, 175, 119, 181, 99, 751,
887 101, 176, 177, 642, 323, 629, 99, 110, 99, 176,
888 176, 176, 176, 176, 177, 177, 177, 177, 177, 177,
889 177, 177, 177, 177, 177, 177, 178, 178, 178, 178,
890 178, 178, 178, 122, 740, 674, 674, 674, 179, 240,
891 240, 240, 240, 240, 240, 240, 179, 179, 179, 179,
892
893 179, 180, 608, 176, 176, 176, 176, 176, 176, 176,
894 126, 177, 177, 177, 177, 177, 177, 177, 862, 626,
895 644, 734, 591, 177, 241, 242, 241, 241, 241, 241,
896 241, 177, 177, 177, 177, 177, 99, 571, 99, 713,
897 99, 644, 99, 591, 711, 99, 99, 323, 123, 130,
898 99, 275, 275, 275, 275, 275, 275, 275, 571, 181,
899 99, 639, 101, 862, 862, 862, 862, 629, 99, 123,
900 99, 153, 153, 153, 163, 153, 344, 153, 710, 642,
901 153, 153, 639, 163, 165, 169, 173, 173, 173, 173,
902 173, 173, 173, 462, 181, 153, 708, 154, 184, 184,
903
904 642, 353, 743, 153, 163, 153, 184, 184, 184, 184,
905 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
906 184, 184, 184, 99, 706, 99, 181, 99, 705, 99,
907 456, 644, 99, 99, 629, 123, 185, 171, 186, 186,
908 186, 186, 186, 186, 186, 126, 181, 99, 702, 101,
909 186, 187, 644, 701, 743, 99, 123, 99, 186, 186,
910 186, 186, 186, 187, 187, 187, 187, 187, 187, 187,
911 187, 187, 187, 187, 187, 99, 453, 99, 181, 99,
912 263, 99, 698, 796, 99, 99, 743, 188, 185, 171,
913 189, 189, 189, 189, 189, 189, 189, 126, 122, 99,
914
915 626, 101, 190, 191, 796, 862, 153, 99, 123, 99,
916 190, 190, 190, 190, 190, 191, 191, 191, 191, 191,
917 191, 191, 191, 191, 191, 191, 191, 192, 192, 192,
918 192, 192, 192, 192, 862, 718, 718, 718, 718, 191,
919 150, 150, 150, 150, 150, 150, 150, 191, 191, 191,
920 191, 191, 187, 187, 187, 187, 187, 187, 187, 862,
921 490, 772, 772, 772, 187, 280, 280, 280, 280, 280,
922 280, 280, 187, 187, 187, 187, 187, 193, 608, 591,
923 194, 194, 194, 194, 194, 194, 194, 206, 100, 336,
924 148, 148, 148, 148, 148, 148, 148, 153, 639, 153,
925
926 591, 153, 663, 153, 608, 802, 153, 153, 453, 208,
927 100, 153, 209, 209, 209, 209, 209, 209, 209, 639,
928 181, 153, 660, 154, 208, 208, 802, 659, 827, 153,
929 208, 153, 208, 208, 208, 208, 208, 208, 208, 208,
930 208, 208, 208, 208, 208, 208, 208, 208, 208, 210,
931 656, 155, 155, 155, 155, 155, 155, 155, 91, 153,
932 91, 181, 91, 806, 91, 91, 862, 153, 91, 743,
933 106, 282, 282, 282, 282, 282, 282, 282, 654, 91,
934 91, 653, 91, 159, 806, 649, 91, 91, 91, 158,
935 91, 153, 91, 158, 91, 158, 91, 91, 158, 158,
936
937 91, 213, 106, 158, 214, 214, 214, 214, 214, 214,
938 214, 91, 91, 158, 91, 159, 213, 213, 91, 91,
939 91, 158, 213, 158, 213, 213, 213, 213, 213, 213,
940 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
941 213, 215, 648, 160, 160, 160, 160, 160, 160, 160,
942 130, 641, 163, 163, 163, 163, 163, 163, 163, 166,
943 636, 166, 288, 288, 288, 288, 288, 288, 288, 626,
944 166, 490, 166, 221, 221, 221, 221, 221, 221, 221,
945 306, 306, 306, 306, 306, 306, 306, 308, 308, 308,
946 308, 308, 308, 308, 428, 428, 222, 223, 326, 223,
947
948 796, 599, 327, 610, 610, 611, 224, 220, 224, 328,
949 329, 225, 225, 225, 225, 225, 225, 225, 153, 153,
950 153, 796, 153, 596, 153, 446, 446, 153, 153, 595,
951 153, 226, 309, 309, 310, 308, 308, 308, 308, 642,
952 802, 594, 153, 806, 154, 862, 862, 862, 862, 456,
953 153, 153, 153, 153, 862, 153, 862, 153, 409, 153,
954 642, 802, 153, 153, 806, 153, 219, 321, 321, 321,
955 321, 321, 321, 321, 644, 590, 166, 153, 166, 154,
956 862, 336, 862, 417, 462, 153, 153, 153, 99, 153,
957 99, 163, 99, 586, 99, 644, 100, 99, 99, 583,
958
959 99, 226, 322, 322, 322, 322, 322, 322, 322, 101,
960 582, 181, 99, 220, 101, 581, 862, 579, 862, 827,
961 99, 99, 99, 153, 166, 153, 166, 153, 468, 153,
962 503, 503, 153, 153, 578, 163, 229, 227, 230, 230,
963 230, 230, 230, 230, 230, 577, 181, 153, 576, 154,
964 231, 231, 573, 478, 827, 153, 163, 153, 231, 231,
965 231, 232, 231, 231, 231, 231, 231, 231, 231, 231,
966 231, 231, 231, 231, 231, 862, 323, 862, 321, 321,
967 321, 321, 321, 321, 321, 524, 524, 233, 122, 231,
968 231, 231, 231, 231, 231, 231, 339, 339, 339, 339,
969
970 339, 339, 339, 288, 288, 288, 288, 288, 288, 288,
971 181, 490, 231, 99, 366, 99, 536, 99, 827, 99,
972 647, 647, 99, 99, 526, 110, 234, 228, 235, 235,
973 235, 235, 235, 235, 235, 119, 525, 99, 514, 101,
974 236, 237, 652, 652, 511, 99, 110, 99, 236, 236,
975 236, 236, 236, 237, 237, 237, 237, 237, 237, 237,
976 237, 237, 237, 237, 237, 233, 510, 236, 236, 236,
977 236, 236, 236, 236, 126, 237, 237, 237, 237, 237,
978 237, 237, 862, 153, 153, 153, 153, 237, 364, 364,
979 364, 364, 364, 364, 364, 237, 237, 237, 237, 237,
980
981 238, 238, 238, 238, 238, 238, 238, 239, 153, 153,
982 153, 153, 240, 308, 308, 308, 308, 308, 308, 308,
983 240, 240, 240, 240, 240, 99, 796, 99, 509, 99,
984 263, 99, 658, 658, 99, 99, 453, 123, 245, 99,
985 308, 308, 308, 308, 308, 308, 802, 796, 504, 99,
986 502, 101, 862, 862, 862, 862, 456, 99, 123, 99,
987 153, 862, 153, 862, 153, 536, 153, 802, 490, 153,
988 153, 366, 246, 233, 227, 376, 376, 376, 376, 376,
989 376, 376, 468, 468, 153, 341, 154, 460, 459, 458,
990 543, 451, 153, 246, 153, 219, 377, 377, 377, 377,
991
992 377, 377, 377, 862, 862, 862, 862, 450, 449, 248,
993 248, 448, 153, 862, 163, 862, 447, 248, 248, 248,
994 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
995 248, 248, 248, 248, 99, 445, 99, 442, 99, 441,
996 99, 122, 366, 99, 99, 239, 123, 249, 228, 250,
997 250, 250, 250, 250, 250, 250, 126, 239, 99, 409,
998 101, 250, 251, 409, 393, 392, 99, 123, 99, 250,
999 250, 250, 250, 250, 251, 251, 251, 251, 251, 251,
1000 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
1001 251, 251, 251, 862, 383, 382, 366, 344, 251, 404,
1002
1003 404, 404, 404, 404, 404, 404, 251, 251, 251, 251,
1004 251, 99, 806, 99, 344, 99, 341, 99, 338, 335,
1005 99, 99, 462, 123, 130, 99, 183, 183, 183, 183,
1006 183, 183, 183, 806, 334, 99, 333, 101, 183, 183,
1007 332, 331, 330, 99, 123, 99, 252, 252, 252, 252,
1008 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1009 252, 252, 252, 188, 862, 122, 253, 253, 253, 253,
1010 253, 253, 253, 99, 862, 99, 287, 99, 216, 99,
1011 211, 274, 99, 99, 273, 188, 249, 228, 254, 254,
1012 254, 254, 254, 254, 254, 126, 269, 99, 268, 101,
1013
1014 255, 256, 267, 266, 265, 99, 123, 99, 255, 255,
1015 255, 255, 255, 256, 256, 256, 256, 256, 256, 256,
1016 256, 256, 256, 256, 256, 257, 257, 257, 257, 257,
1017 257, 257, 862, 264, 219, 216, 212, 256, 407, 407,
1018 407, 407, 407, 407, 407, 256, 256, 256, 256, 256,
1019 188, 211, 204, 258, 258, 258, 258, 258, 258, 258,
1020 99, 203, 99, 202, 99, 201, 99, 200, 199, 99,
1021 99, 198, 259, 130, 99, 260, 260, 260, 260, 260,
1022 260, 260, 197, 196, 99, 195, 101, 260, 260, 181,
1023 157, 154, 99, 259, 99, 261, 261, 261, 261, 261,
1024
1025 261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
1026 261, 261, 262, 262, 262, 262, 262, 262, 262, 263,
1027 99, 92, 99, 90, 99, 140, 99, 122, 90, 99,
1028 99, 90, 270, 130, 99, 271, 271, 271, 271, 271,
1029 271, 271, 90, 90, 99, 862, 101, 271, 271, 65,
1030 862, 862, 99, 270, 99, 272, 272, 272, 272, 272,
1031 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
1032 272, 272, 100, 862, 276, 276, 276, 276, 276, 276,
1033 276, 210, 862, 208, 208, 208, 208, 208, 208, 208,
1034 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1035
1036 153, 862, 862, 862, 153, 428, 428, 428, 428, 428,
1037 428, 428, 862, 599, 153, 862, 154, 862, 862, 862,
1038 862, 862, 153, 862, 153, 153, 153, 153, 163, 153,
1039 862, 153, 862, 862, 153, 153, 862, 862, 607, 153,
1040 278, 278, 278, 278, 278, 278, 278, 862, 862, 153,
1041 862, 154, 862, 862, 862, 862, 862, 153, 862, 153,
1042 215, 862, 213, 213, 213, 213, 213, 213, 213, 158,
1043 91, 153, 91, 158, 91, 158, 91, 91, 158, 158,
1044 91, 281, 91, 158, 281, 281, 281, 281, 281, 281,
1045 281, 91, 91, 158, 91, 159, 281, 281, 91, 91,
1046
1047 91, 158, 281, 158, 281, 281, 281, 281, 281, 281,
1048 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
1049 281, 223, 862, 223, 851, 851, 851, 851, 851, 851,
1050 283, 862, 283, 100, 862, 284, 284, 284, 284, 284,
1051 284, 284, 223, 862, 223, 862, 862, 862, 675, 675,
1052 676, 283, 153, 285, 163, 862, 286, 286, 286, 286,
1053 286, 286, 286, 166, 153, 166, 439, 439, 439, 439,
1054 439, 439, 439, 862, 862, 862, 862, 289, 289, 289,
1055 289, 289, 289, 289, 440, 440, 440, 440, 440, 440,
1056 440, 464, 464, 464, 464, 464, 464, 464, 862, 862,
1057
1058 290, 223, 862, 223, 862, 862, 862, 724, 724, 725,
1059 224, 862, 224, 862, 862, 291, 291, 291, 291, 291,
1060 291, 291, 153, 153, 153, 862, 153, 862, 153, 862,
1061 862, 153, 153, 862, 153, 287, 428, 428, 428, 428,
1062 428, 428, 428, 862, 862, 862, 153, 862, 154, 862,
1063 862, 862, 862, 862, 153, 153, 153, 153, 153, 153,
1064 163, 153, 663, 153, 862, 862, 153, 153, 862, 153,
1065 293, 500, 500, 500, 500, 500, 500, 500, 862, 862,
1066 862, 153, 862, 154, 862, 862, 862, 670, 862, 153,
1067 153, 153, 99, 862, 99, 862, 99, 862, 99, 862,
1068
1069 862, 99, 99, 862, 99, 293, 501, 501, 501, 501,
1070 501, 501, 501, 862, 862, 862, 99, 862, 101, 862,
1071 862, 862, 862, 862, 99, 99, 99, 153, 153, 153,
1072 163, 153, 713, 153, 862, 862, 153, 153, 862, 163,
1073 287, 292, 295, 295, 295, 295, 295, 295, 295, 862,
1074 862, 153, 862, 154, 296, 296, 862, 721, 862, 153,
1075 163, 153, 296, 296, 296, 296, 296, 296, 296, 296,
1076 296, 296, 296, 296, 296, 296, 296, 296, 296, 166,
1077 862, 166, 524, 524, 524, 524, 524, 524, 524, 862,
1078 862, 297, 862, 298, 298, 298, 298, 298, 298, 298,
1079
1080 532, 532, 532, 532, 532, 532, 532, 544, 545, 545,
1081 546, 544, 544, 544, 862, 862, 299, 300, 862, 296,
1082 296, 296, 296, 296, 296, 296, 223, 862, 223, 862,
1083 862, 862, 773, 773, 774, 283, 862, 285, 862, 862,
1084 301, 301, 301, 301, 301, 301, 301, 99, 153, 99,
1085 862, 99, 862, 99, 862, 862, 99, 99, 862, 110,
1086 302, 294, 303, 303, 303, 303, 303, 303, 303, 119,
1087 862, 99, 862, 101, 304, 304, 862, 862, 862, 99,
1088 110, 99, 304, 304, 304, 304, 304, 304, 304, 304,
1089 304, 304, 304, 304, 304, 304, 304, 304, 304, 300,
1090
1091 862, 304, 304, 304, 304, 304, 304, 304, 126, 305,
1092 305, 305, 305, 305, 305, 305, 239, 862, 862, 862,
1093 862, 306, 569, 569, 569, 569, 569, 569, 569, 306,
1094 306, 306, 306, 306, 153, 862, 153, 862, 153, 862,
1095 153, 862, 862, 153, 153, 862, 163, 862, 153, 163,
1096 163, 163, 163, 163, 163, 163, 862, 862, 153, 862,
1097 154, 313, 313, 862, 862, 862, 153, 163, 153, 313,
1098 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
1099 313, 313, 313, 313, 313, 313, 153, 862, 153, 862,
1100 153, 862, 153, 862, 862, 153, 153, 862, 246, 130,
1101
1102 153, 570, 570, 570, 570, 570, 570, 570, 862, 862,
1103 153, 862, 154, 862, 862, 862, 862, 862, 153, 246,
1104 153, 153, 153, 153, 163, 153, 762, 153, 862, 862,
1105 153, 153, 862, 246, 300, 292, 635, 635, 635, 635,
1106 635, 635, 635, 862, 862, 153, 862, 154, 223, 862,
1107 223, 769, 862, 153, 246, 153, 153, 224, 153, 224,
1108 153, 862, 153, 862, 862, 153, 153, 862, 246, 300,
1109 292, 647, 647, 647, 647, 647, 647, 647, 862, 862,
1110 153, 862, 154, 811, 811, 812, 862, 862, 153, 246,
1111 153, 287, 652, 652, 652, 652, 652, 652, 652, 153,
1112
1113 862, 850, 862, 850, 862, 316, 316, 862, 862, 153,
1114 856, 163, 856, 316, 316, 316, 316, 316, 316, 316,
1115 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
1116 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1117 99, 862, 123, 317, 294, 658, 658, 658, 658, 658,
1118 658, 658, 126, 862, 99, 862, 101, 862, 862, 862,
1119 862, 862, 99, 123, 99, 99, 862, 99, 862, 99,
1120 862, 99, 862, 862, 99, 99, 862, 123, 317, 294,
1121 662, 662, 662, 662, 662, 662, 662, 862, 862, 99,
1122 862, 101, 811, 811, 812, 163, 862, 99, 123, 99,
1123
1124 99, 862, 99, 862, 99, 862, 99, 862, 153, 99,
1125 99, 862, 123, 245, 99, 183, 183, 183, 183, 183,
1126 183, 183, 862, 862, 99, 862, 101, 183, 183, 862,
1127 862, 862, 99, 123, 99, 319, 319, 319, 319, 319,
1128 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
1129 319, 319, 188, 862, 862, 320, 320, 320, 320, 320,
1130 320, 320, 126, 322, 322, 322, 322, 322, 322, 322,
1131 862, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1132 99, 99, 862, 259, 130, 99, 685, 685, 685, 685,
1133 685, 685, 685, 862, 862, 99, 862, 101, 862, 862,
1134
1135 862, 862, 862, 99, 259, 99, 99, 862, 99, 862,
1136 99, 862, 99, 862, 862, 99, 99, 862, 259, 245,
1137 99, 783, 783, 783, 783, 783, 783, 783, 323, 862,
1138 99, 862, 101, 862, 862, 862, 862, 862, 99, 259,
1139 99, 324, 324, 324, 324, 324, 324, 324, 324, 324,
1140 324, 324, 324, 324, 324, 324, 324, 324, 325, 325,
1141 325, 325, 325, 325, 325, 263, 99, 862, 99, 862,
1142 99, 862, 99, 862, 862, 99, 99, 862, 270, 130,
1143 99, 288, 288, 288, 288, 288, 288, 288, 862, 862,
1144 99, 862, 101, 862, 862, 862, 862, 862, 99, 270,
1145
1146 99, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1147 99, 99, 862, 270, 245, 99, 153, 153, 153, 153,
1148 153, 153, 153, 336, 862, 99, 862, 101, 862, 862,
1149 862, 862, 862, 99, 270, 99, 337, 337, 337, 337,
1150 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
1151 337, 337, 337, 100, 862, 276, 276, 276, 276, 276,
1152 276, 276, 862, 862, 862, 862, 101, 153, 862, 153,
1153 862, 153, 862, 153, 862, 862, 153, 153, 862, 862,
1154 210, 153, 819, 819, 819, 819, 819, 819, 819, 862,
1155 862, 153, 862, 154, 862, 862, 862, 862, 862, 153,
1156
1157 862, 153, 153, 862, 153, 862, 153, 862, 153, 862,
1158 862, 153, 153, 862, 862, 340, 153, 278, 278, 278,
1159 278, 278, 278, 278, 862, 862, 153, 862, 154, 862,
1160 862, 862, 862, 862, 153, 862, 153, 342, 862, 280,
1161 280, 280, 280, 280, 280, 280, 158, 91, 153, 91,
1162 158, 91, 158, 91, 91, 158, 158, 91, 281, 215,
1163 158, 281, 281, 281, 281, 281, 281, 281, 91, 91,
1164 158, 91, 159, 281, 281, 91, 91, 91, 158, 281,
1165 158, 281, 281, 281, 281, 281, 281, 281, 281, 281,
1166 281, 281, 281, 281, 281, 281, 281, 281, 343, 862,
1167
1168 282, 282, 282, 282, 282, 282, 282, 100, 862, 284,
1169 284, 284, 284, 284, 284, 284, 862, 862, 862, 862,
1170 154, 100, 862, 284, 284, 284, 284, 284, 284, 284,
1171 862, 862, 862, 862, 154, 153, 862, 153, 862, 153,
1172 862, 153, 862, 862, 153, 153, 862, 163, 130, 153,
1173 286, 286, 286, 286, 286, 286, 286, 862, 862, 153,
1174 862, 154, 163, 163, 862, 862, 862, 153, 163, 153,
1175 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
1176 163, 163, 163, 163, 163, 163, 163, 166, 862, 166,
1177 818, 818, 818, 818, 818, 818, 818, 862, 862, 862,
1178
1179 862, 345, 345, 345, 345, 345, 345, 345, 839, 839,
1180 839, 839, 839, 839, 839, 845, 845, 845, 845, 845,
1181 845, 845, 862, 862, 346, 223, 862, 223, 862, 862,
1182 862, 862, 862, 862, 224, 862, 224, 862, 862, 347,
1183 347, 347, 347, 347, 347, 347, 153, 862, 153, 862,
1184 153, 862, 153, 862, 862, 153, 153, 862, 153, 348,
1185 846, 847, 846, 846, 846, 846, 846, 862, 862, 862,
1186 153, 862, 154, 862, 862, 862, 862, 862, 153, 153,
1187 153, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1188 153, 153, 862, 153, 344, 851, 851, 851, 851, 851,
1189
1190 851, 851, 862, 862, 862, 153, 862, 154, 862, 862,
1191 862, 862, 862, 153, 153, 153, 99, 862, 99, 862,
1192 99, 862, 99, 862, 862, 99, 99, 862, 99, 348,
1193 852, 852, 853, 851, 851, 851, 851, 862, 862, 862,
1194 99, 862, 101, 862, 862, 862, 862, 862, 99, 99,
1195 99, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1196 153, 153, 862, 163, 351, 349, 352, 352, 352, 352,
1197 352, 352, 352, 862, 862, 153, 862, 154, 353, 353,
1198 862, 862, 862, 153, 163, 153, 353, 353, 353, 353,
1199 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
1200
1201 353, 353, 353, 354, 862, 353, 353, 353, 353, 353,
1202 353, 353, 166, 862, 166, 851, 851, 851, 851, 851,
1203 851, 851, 862, 862, 355, 862, 356, 356, 356, 356,
1204 356, 356, 356, 857, 857, 857, 857, 857, 857, 857,
1205 858, 858, 858, 858, 858, 858, 858, 862, 862, 357,
1206 223, 862, 223, 862, 862, 862, 862, 862, 862, 283,
1207 862, 285, 862, 862, 358, 358, 358, 358, 358, 358,
1208 358, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1209 99, 99, 862, 110, 359, 350, 360, 360, 360, 360,
1210 360, 360, 360, 361, 862, 99, 862, 101, 362, 362,
1211
1212 862, 862, 862, 99, 110, 99, 362, 362, 362, 362,
1213 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
1214 362, 362, 362, 354, 862, 362, 362, 362, 362, 362,
1215 362, 362, 862, 363, 363, 363, 363, 363, 363, 363,
1216 239, 862, 862, 862, 862, 364, 860, 860, 860, 860,
1217 860, 860, 860, 364, 364, 364, 364, 364, 153, 862,
1218 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1219 246, 130, 153, 861, 861, 861, 861, 861, 861, 861,
1220 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1221 153, 246, 153, 153, 862, 153, 862, 153, 862, 153,
1222
1223 862, 862, 153, 153, 862, 246, 130, 153, 862, 862,
1224 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1225 862, 862, 862, 862, 862, 153, 246, 153, 153, 862,
1226 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1227 246, 354, 349, 862, 862, 862, 862, 862, 862, 862,
1228 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1229 153, 246, 153, 153, 862, 153, 862, 153, 862, 153,
1230 862, 862, 153, 153, 862, 246, 354, 349, 862, 862,
1231 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1232 862, 862, 862, 862, 862, 153, 246, 153, 344, 862,
1233
1234 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1235 862, 862, 371, 371, 862, 862, 862, 862, 862, 862,
1236 371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
1237 371, 371, 371, 371, 371, 371, 371, 99, 862, 99,
1238 862, 99, 862, 99, 862, 862, 99, 99, 862, 123,
1239 372, 350, 862, 862, 862, 862, 862, 862, 862, 862,
1240 862, 99, 862, 101, 862, 862, 862, 862, 862, 99,
1241 123, 99, 99, 862, 99, 862, 99, 862, 99, 862,
1242 862, 99, 99, 862, 123, 245, 99, 183, 183, 183,
1243 183, 183, 183, 183, 862, 862, 99, 862, 101, 183,
1244
1245 183, 862, 862, 862, 99, 123, 99, 374, 374, 374,
1246 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
1247 374, 374, 374, 374, 99, 862, 99, 862, 99, 862,
1248 99, 862, 862, 99, 99, 862, 188, 372, 350, 375,
1249 375, 375, 375, 375, 375, 375, 862, 862, 99, 862,
1250 101, 373, 373, 862, 862, 862, 99, 123, 99, 373,
1251 373, 373, 373, 373, 373, 373, 373, 373, 373, 373,
1252 373, 373, 373, 373, 373, 373, 99, 862, 99, 862,
1253 99, 862, 99, 862, 862, 99, 99, 862, 259, 245,
1254 99, 260, 260, 260, 260, 260, 260, 260, 323, 862,
1255
1256 99, 862, 101, 260, 260, 862, 862, 862, 99, 259,
1257 99, 380, 380, 380, 380, 380, 380, 380, 380, 380,
1258 380, 380, 380, 380, 380, 380, 380, 380, 381, 381,
1259 381, 381, 381, 381, 381, 263, 99, 862, 99, 862,
1260 99, 862, 99, 862, 862, 99, 99, 862, 123, 130,
1261 99, 388, 388, 388, 388, 388, 388, 388, 862, 862,
1262 99, 862, 101, 183, 183, 862, 862, 862, 99, 123,
1263 99, 252, 252, 252, 252, 252, 252, 252, 252, 252,
1264 252, 252, 252, 252, 252, 252, 252, 252, 99, 862,
1265 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1266
1267 123, 372, 350, 862, 862, 862, 862, 862, 862, 862,
1268 862, 862, 99, 862, 101, 862, 862, 862, 862, 862,
1269 99, 123, 99, 99, 862, 99, 862, 99, 862, 99,
1270 862, 862, 99, 99, 862, 389, 130, 99, 390, 390,
1271 390, 390, 390, 390, 390, 862, 862, 99, 862, 101,
1272 390, 390, 862, 862, 862, 99, 389, 99, 391, 391,
1273 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
1274 391, 391, 391, 391, 391, 99, 862, 99, 862, 99,
1275 862, 99, 862, 862, 99, 99, 862, 394, 130, 99,
1276 395, 395, 395, 395, 395, 395, 395, 862, 862, 99,
1277
1278 862, 101, 395, 395, 862, 862, 862, 99, 394, 99,
1279 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1280 396, 396, 396, 396, 396, 396, 396, 99, 862, 99,
1281 862, 99, 862, 99, 862, 862, 99, 99, 862, 270,
1282 245, 99, 271, 271, 271, 271, 271, 271, 271, 336,
1283 862, 99, 862, 101, 271, 271, 862, 862, 862, 99,
1284 270, 99, 400, 400, 400, 400, 400, 400, 400, 400,
1285 400, 400, 400, 400, 400, 400, 400, 400, 400, 99,
1286 862, 99, 862, 99, 862, 99, 862, 862, 99, 99,
1287 862, 401, 130, 99, 402, 402, 402, 402, 402, 402,
1288
1289 402, 862, 862, 99, 862, 101, 402, 402, 862, 862,
1290 862, 99, 401, 99, 403, 403, 403, 403, 403, 403,
1291 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
1292 403, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1293 153, 153, 862, 277, 862, 153, 405, 405, 405, 405,
1294 405, 405, 405, 862, 862, 153, 862, 154, 277, 277,
1295 862, 862, 862, 153, 277, 153, 277, 277, 277, 277,
1296 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
1297 277, 277, 277, 158, 91, 153, 91, 158, 91, 158,
1298 91, 91, 158, 158, 91, 281, 91, 158, 408, 408,
1299
1300 408, 408, 408, 408, 408, 91, 91, 158, 91, 159,
1301 281, 281, 91, 91, 91, 158, 281, 158, 281, 281,
1302 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
1303 281, 281, 281, 281, 281, 166, 862, 166, 862, 862,
1304 862, 862, 862, 862, 862, 862, 862, 862, 862, 410,
1305 410, 410, 410, 410, 410, 410, 862, 862, 862, 862,
1306 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1307 862, 862, 411, 223, 862, 223, 862, 862, 862, 862,
1308 862, 862, 224, 862, 224, 862, 862, 412, 412, 412,
1309 412, 412, 412, 412, 153, 862, 153, 862, 153, 862,
1310
1311 153, 862, 862, 153, 153, 862, 153, 409, 862, 862,
1312 862, 862, 862, 862, 862, 862, 862, 862, 153, 862,
1313 154, 862, 862, 862, 862, 862, 153, 153, 153, 153,
1314 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1315 862, 153, 414, 862, 862, 862, 862, 862, 862, 862,
1316 862, 862, 862, 153, 862, 154, 862, 862, 862, 862,
1317 862, 153, 153, 153, 99, 862, 99, 862, 99, 862,
1318 99, 862, 862, 99, 99, 862, 99, 414, 862, 862,
1319 862, 862, 862, 862, 862, 862, 862, 862, 99, 862,
1320 101, 862, 862, 862, 862, 862, 99, 99, 99, 153,
1321
1322 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1323 862, 163, 409, 413, 416, 416, 416, 416, 416, 416,
1324 416, 862, 862, 153, 862, 154, 417, 417, 862, 862,
1325 862, 153, 163, 153, 417, 417, 417, 417, 417, 417,
1326 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
1327 417, 418, 862, 419, 419, 419, 419, 419, 419, 419,
1328 420, 862, 417, 417, 417, 417, 417, 417, 417, 166,
1329 862, 166, 862, 862, 862, 862, 862, 862, 862, 862,
1330 862, 421, 862, 422, 422, 422, 422, 422, 422, 422,
1331 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1332
1333 862, 862, 862, 862, 862, 862, 423, 223, 862, 223,
1334 862, 862, 862, 862, 862, 862, 283, 862, 285, 862,
1335 862, 424, 424, 424, 424, 424, 424, 424, 99, 862,
1336 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1337 110, 425, 415, 426, 426, 426, 426, 426, 426, 426,
1338 361, 862, 99, 862, 101, 427, 427, 862, 862, 862,
1339 99, 110, 99, 427, 427, 427, 427, 427, 427, 427,
1340 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
1341 420, 862, 427, 427, 427, 427, 427, 427, 427, 862,
1342 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1343
1344 153, 862, 246, 420, 413, 862, 862, 862, 862, 862,
1345 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
1346 862, 862, 153, 246, 153, 153, 862, 153, 862, 153,
1347 862, 153, 862, 862, 153, 153, 862, 246, 420, 413,
1348 862, 862, 862, 862, 862, 862, 862, 862, 862, 153,
1349 862, 154, 862, 862, 862, 862, 862, 153, 246, 153,
1350 409, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1351 862, 862, 862, 862, 434, 434, 862, 862, 862, 862,
1352 862, 862, 434, 434, 434, 434, 434, 434, 434, 434,
1353 434, 434, 434, 434, 434, 434, 434, 434, 434, 99,
1354
1355 862, 99, 862, 99, 862, 99, 862, 862, 99, 99,
1356 862, 123, 435, 415, 862, 862, 862, 862, 862, 862,
1357 862, 862, 862, 99, 862, 101, 862, 862, 862, 862,
1358 862, 99, 123, 99, 437, 437, 437, 437, 437, 437,
1359 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
1360 437, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1361 99, 99, 862, 188, 435, 415, 438, 438, 438, 438,
1362 438, 438, 438, 862, 862, 99, 862, 101, 436, 436,
1363 862, 862, 862, 99, 123, 99, 436, 436, 436, 436,
1364 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
1365
1366 436, 436, 436, 99, 862, 99, 862, 99, 862, 99,
1367 862, 862, 99, 99, 862, 259, 245, 99, 260, 260,
1368 260, 260, 260, 260, 260, 323, 862, 99, 862, 101,
1369 260, 260, 862, 862, 862, 99, 259, 99, 443, 443,
1370 443, 443, 443, 443, 443, 443, 443, 443, 443, 443,
1371 443, 443, 443, 443, 443, 444, 444, 444, 444, 444,
1372 444, 444, 263, 99, 862, 99, 862, 99, 862, 99,
1373 862, 862, 99, 99, 862, 123, 245, 99, 388, 388,
1374 388, 388, 388, 388, 388, 862, 862, 99, 862, 101,
1375 452, 452, 862, 862, 862, 99, 123, 99, 452, 452,
1376
1377 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
1378 452, 452, 452, 452, 452, 390, 390, 390, 390, 390,
1379 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
1380 390, 390, 245, 862, 862, 862, 862, 862, 862, 862,
1381 862, 453, 862, 862, 862, 862, 862, 862, 862, 862,
1382 862, 862, 862, 862, 454, 454, 454, 454, 454, 454,
1383 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
1384 454, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1385 99, 99, 862, 123, 435, 415, 862, 862, 862, 862,
1386 862, 862, 862, 263, 862, 99, 862, 101, 862, 862,
1387
1388 862, 862, 862, 99, 123, 99, 99, 862, 99, 862,
1389 99, 862, 99, 862, 862, 99, 99, 862, 394, 130,
1390 99, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1391 99, 862, 101, 862, 862, 862, 862, 862, 99, 394,
1392 99, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1393 99, 99, 862, 394, 245, 99, 862, 862, 862, 862,
1394 862, 862, 862, 456, 862, 99, 862, 101, 862, 862,
1395 862, 862, 862, 99, 394, 99, 457, 457, 457, 457,
1396 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
1397 457, 457, 457, 99, 862, 99, 862, 99, 862, 99,
1398
1399 862, 862, 99, 99, 862, 270, 245, 99, 271, 271,
1400 271, 271, 271, 271, 271, 336, 862, 99, 862, 101,
1401 271, 271, 862, 862, 862, 99, 270, 99, 461, 461,
1402 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
1403 461, 461, 461, 461, 461, 99, 862, 99, 862, 99,
1404 862, 99, 862, 862, 99, 99, 862, 401, 130, 99,
1405 862, 862, 862, 862, 862, 862, 862, 862, 862, 99,
1406 862, 101, 862, 862, 862, 862, 862, 99, 401, 99,
1407 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1408 99, 862, 401, 245, 99, 862, 862, 862, 862, 862,
1409
1410 862, 862, 462, 862, 99, 862, 101, 862, 862, 862,
1411 862, 862, 99, 401, 99, 463, 463, 463, 463, 463,
1412 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
1413 463, 463, 153, 862, 153, 862, 153, 862, 153, 862,
1414 862, 153, 153, 862, 277, 465, 153, 405, 405, 405,
1415 405, 405, 405, 405, 862, 862, 153, 862, 154, 277,
1416 277, 862, 862, 862, 153, 277, 153, 277, 277, 277,
1417 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
1418 277, 277, 277, 277, 466, 862, 407, 407, 407, 407,
1419 407, 407, 407, 158, 91, 153, 91, 158, 91, 158,
1420
1421 91, 91, 158, 158, 91, 281, 467, 158, 408, 408,
1422 408, 408, 408, 408, 408, 91, 91, 158, 91, 159,
1423 281, 281, 91, 91, 91, 158, 281, 158, 281, 281,
1424 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
1425 281, 281, 281, 281, 281, 166, 862, 166, 862, 862,
1426 862, 862, 862, 862, 862, 862, 862, 862, 862, 469,
1427 469, 469, 469, 469, 469, 469, 862, 862, 862, 862,
1428 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1429 862, 862, 470, 223, 862, 223, 862, 862, 862, 862,
1430 862, 862, 224, 862, 224, 862, 862, 471, 471, 471,
1431
1432 471, 471, 471, 471, 153, 862, 153, 862, 153, 862,
1433 153, 862, 862, 153, 153, 862, 153, 472, 862, 862,
1434 862, 862, 862, 862, 862, 862, 862, 862, 153, 862,
1435 154, 862, 862, 862, 862, 862, 153, 153, 153, 153,
1436 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1437 862, 153, 468, 862, 862, 862, 862, 862, 862, 862,
1438 862, 862, 862, 153, 862, 154, 862, 862, 862, 862,
1439 862, 153, 153, 153, 99, 862, 99, 862, 99, 862,
1440 99, 862, 862, 99, 99, 862, 99, 472, 862, 862,
1441 862, 862, 862, 862, 862, 862, 862, 862, 99, 862,
1442
1443 101, 862, 862, 862, 862, 862, 99, 99, 99, 153,
1444 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1445 862, 163, 475, 476, 477, 477, 477, 477, 477, 477,
1446 477, 862, 862, 153, 862, 154, 478, 478, 862, 862,
1447 862, 153, 163, 153, 478, 478, 478, 478, 478, 478,
1448 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
1449 478, 473, 478, 478, 478, 478, 478, 478, 478, 479,
1450 862, 480, 480, 480, 480, 480, 480, 480, 166, 862,
1451 166, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1452 481, 862, 482, 482, 482, 482, 482, 482, 482, 862,
1453
1454 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1455 862, 862, 862, 862, 862, 483, 223, 862, 223, 862,
1456 862, 862, 862, 862, 862, 283, 862, 285, 862, 862,
1457 484, 484, 484, 484, 484, 484, 484, 99, 862, 99,
1458 862, 99, 862, 99, 862, 862, 99, 99, 862, 110,
1459 485, 474, 486, 486, 486, 486, 486, 486, 486, 361,
1460 862, 99, 862, 101, 487, 487, 862, 862, 862, 99,
1461 110, 99, 487, 487, 487, 487, 487, 487, 487, 487,
1462 487, 487, 487, 487, 487, 487, 487, 487, 487, 475,
1463 862, 487, 487, 487, 487, 487, 487, 487, 862, 153,
1464
1465 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1466 862, 246, 475, 473, 862, 862, 862, 862, 862, 862,
1467 862, 862, 862, 153, 862, 154, 862, 862, 862, 862,
1468 862, 153, 246, 153, 153, 862, 153, 862, 153, 862,
1469 153, 862, 862, 153, 153, 862, 246, 475, 473, 862,
1470 862, 862, 862, 862, 862, 862, 862, 862, 153, 862,
1471 154, 862, 862, 862, 862, 862, 153, 246, 153, 468,
1472 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1473 862, 862, 862, 495, 495, 862, 862, 862, 862, 862,
1474 862, 495, 495, 495, 495, 495, 495, 495, 495, 495,
1475
1476 495, 495, 495, 495, 495, 495, 495, 495, 99, 862,
1477 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1478 123, 496, 474, 862, 862, 862, 862, 862, 862, 862,
1479 862, 862, 99, 862, 101, 862, 862, 862, 862, 862,
1480 99, 123, 99, 99, 862, 99, 862, 99, 862, 99,
1481 862, 862, 99, 99, 862, 123, 245, 99, 183, 183,
1482 183, 183, 183, 183, 183, 862, 862, 99, 862, 101,
1483 183, 183, 862, 862, 862, 99, 123, 99, 498, 498,
1484 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
1485 498, 498, 498, 498, 498, 99, 862, 99, 862, 99,
1486
1487 862, 99, 862, 862, 99, 99, 862, 188, 496, 474,
1488 499, 499, 499, 499, 499, 499, 499, 862, 862, 99,
1489 862, 101, 497, 497, 862, 862, 862, 99, 123, 99,
1490 497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
1491 497, 497, 497, 497, 497, 497, 497, 99, 862, 99,
1492 862, 99, 862, 99, 862, 862, 99, 99, 862, 259,
1493 245, 99, 260, 260, 260, 260, 260, 260, 260, 323,
1494 862, 99, 862, 101, 260, 260, 862, 862, 862, 99,
1495 259, 99, 505, 505, 505, 505, 505, 505, 505, 505,
1496 505, 505, 505, 505, 505, 505, 505, 505, 505, 506,
1497
1498 506, 506, 506, 506, 506, 506, 263, 515, 515, 862,
1499 862, 862, 862, 862, 862, 515, 515, 515, 515, 515,
1500 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
1501 515, 515, 99, 862, 99, 862, 99, 862, 99, 862,
1502 862, 99, 99, 862, 389, 245, 99, 390, 390, 390,
1503 390, 390, 390, 390, 453, 862, 99, 862, 101, 390,
1504 390, 862, 862, 862, 99, 389, 99, 519, 519, 519,
1505 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
1506 519, 519, 519, 519, 99, 862, 99, 862, 99, 862,
1507 99, 862, 862, 99, 99, 862, 123, 130, 99, 520,
1508
1509 520, 520, 520, 520, 520, 520, 862, 862, 99, 862,
1510 101, 520, 183, 862, 862, 862, 99, 123, 99, 520,
1511 520, 520, 520, 520, 183, 183, 183, 183, 183, 183,
1512 183, 183, 183, 183, 183, 183, 99, 862, 99, 862,
1513 99, 862, 99, 862, 862, 99, 99, 862, 394, 245,
1514 99, 395, 395, 395, 395, 395, 395, 395, 456, 862,
1515 99, 862, 101, 395, 395, 862, 862, 862, 99, 394,
1516 99, 523, 523, 523, 523, 523, 523, 523, 523, 523,
1517 523, 523, 523, 523, 523, 523, 523, 523, 99, 862,
1518 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1519
1520 270, 245, 99, 271, 271, 271, 271, 271, 271, 271,
1521 336, 862, 99, 862, 101, 271, 271, 862, 862, 862,
1522 99, 270, 99, 527, 527, 527, 527, 527, 527, 527,
1523 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
1524 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1525 99, 862, 401, 245, 99, 402, 402, 402, 402, 402,
1526 402, 402, 462, 862, 99, 862, 101, 402, 402, 862,
1527 862, 862, 99, 401, 99, 531, 531, 531, 531, 531,
1528 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
1529 531, 531, 862, 862, 533, 533, 533, 533, 533, 533,
1530
1531 533, 862, 862, 534, 534, 534, 534, 534, 534, 534,
1532 91, 862, 535, 535, 535, 535, 535, 535, 535, 166,
1533 862, 166, 862, 862, 862, 862, 862, 862, 862, 862,
1534 862, 862, 862, 537, 537, 537, 537, 537, 537, 537,
1535 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1536 862, 862, 862, 862, 862, 862, 538, 223, 862, 223,
1537 862, 862, 862, 862, 862, 862, 224, 862, 224, 862,
1538 862, 539, 539, 539, 539, 539, 539, 539, 153, 862,
1539 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1540 153, 536, 862, 862, 862, 862, 862, 862, 862, 862,
1541
1542 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1543 153, 153, 153, 153, 862, 153, 862, 153, 862, 153,
1544 862, 862, 153, 153, 862, 153, 541, 862, 862, 862,
1545 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1546 862, 862, 862, 862, 862, 153, 153, 153, 99, 862,
1547 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1548 99, 541, 862, 862, 862, 862, 862, 862, 862, 862,
1549 862, 862, 99, 862, 101, 862, 862, 862, 862, 862,
1550 99, 99, 99, 153, 862, 153, 862, 153, 862, 153,
1551 862, 862, 153, 153, 862, 163, 536, 540, 862, 862,
1552
1553 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1554 862, 862, 862, 862, 862, 153, 163, 153, 153, 862,
1555 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1556 163, 547, 548, 549, 549, 549, 549, 549, 549, 549,
1557 862, 862, 153, 862, 154, 543, 543, 862, 862, 862,
1558 153, 163, 153, 543, 543, 543, 543, 543, 543, 543,
1559 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
1560 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1561 153, 862, 163, 547, 540, 862, 862, 862, 862, 862,
1562 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
1563
1564 862, 862, 153, 163, 153, 550, 862, 551, 551, 551,
1565 551, 551, 551, 551, 166, 862, 166, 862, 862, 862,
1566 862, 862, 862, 862, 862, 862, 552, 862, 553, 553,
1567 553, 553, 553, 553, 553, 862, 862, 862, 862, 862,
1568 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1569 862, 554, 223, 862, 223, 862, 862, 862, 862, 862,
1570 862, 283, 862, 285, 862, 862, 555, 555, 555, 555,
1571 555, 555, 555, 99, 556, 99, 556, 99, 862, 99,
1572 862, 862, 99, 99, 862, 110, 557, 542, 558, 558,
1573 558, 558, 558, 558, 558, 361, 862, 99, 862, 101,
1574
1575 559, 559, 862, 862, 862, 99, 110, 99, 559, 559,
1576 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
1577 559, 559, 559, 559, 559, 862, 862, 862, 862, 862,
1578 862, 862, 862, 862, 862, 862, 862, 547, 862, 559,
1579 559, 559, 559, 559, 559, 559, 862, 153, 862, 153,
1580 862, 153, 862, 153, 862, 862, 153, 153, 862, 246,
1581 547, 540, 862, 862, 862, 862, 862, 862, 862, 862,
1582 862, 153, 862, 154, 862, 862, 862, 862, 862, 153,
1583 246, 153, 153, 862, 153, 862, 153, 862, 153, 862,
1584 862, 153, 153, 862, 246, 547, 540, 862, 862, 862,
1585
1586 862, 862, 862, 862, 862, 862, 153, 862, 154, 862,
1587 862, 862, 862, 862, 153, 246, 153, 536, 862, 862,
1588 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1589 862, 565, 565, 862, 862, 862, 862, 862, 862, 565,
1590 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
1591 565, 565, 565, 565, 565, 565, 99, 862, 99, 862,
1592 99, 862, 99, 862, 862, 99, 99, 862, 123, 566,
1593 542, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1594 99, 862, 101, 862, 862, 862, 862, 862, 99, 123,
1595 99, 568, 568, 568, 568, 568, 568, 568, 568, 568,
1596
1597 568, 568, 568, 568, 568, 568, 568, 568, 99, 862,
1598 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1599 188, 566, 542, 862, 862, 862, 862, 862, 862, 862,
1600 862, 862, 99, 862, 101, 862, 862, 862, 862, 862,
1601 99, 123, 99, 99, 862, 99, 862, 99, 862, 99,
1602 862, 862, 99, 99, 862, 259, 245, 99, 260, 260,
1603 260, 260, 260, 260, 260, 323, 862, 99, 862, 101,
1604 260, 260, 862, 862, 862, 99, 259, 99, 574, 574,
1605 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
1606 574, 574, 574, 574, 574, 575, 575, 575, 575, 575,
1607
1608 575, 575, 263, 580, 580, 862, 862, 862, 862, 862,
1609 862, 580, 580, 580, 580, 580, 580, 580, 580, 580,
1610 580, 580, 580, 580, 580, 580, 580, 580, 99, 862,
1611 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1612 389, 245, 99, 390, 390, 390, 390, 390, 390, 390,
1613 453, 862, 99, 862, 101, 390, 390, 862, 862, 862,
1614 99, 389, 99, 584, 584, 584, 584, 584, 584, 584,
1615 584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
1616 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1617 99, 862, 123, 245, 99, 585, 585, 585, 585, 585,
1618
1619 585, 585, 862, 862, 99, 862, 101, 585, 183, 862,
1620 862, 862, 99, 123, 99, 585, 585, 585, 585, 585,
1621 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1622 183, 183, 99, 862, 99, 862, 99, 862, 99, 862,
1623 862, 99, 99, 862, 394, 245, 99, 395, 395, 395,
1624 395, 395, 395, 395, 456, 862, 99, 862, 101, 395,
1625 395, 862, 862, 862, 99, 394, 99, 589, 589, 589,
1626 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
1627 589, 589, 589, 589, 99, 862, 99, 862, 99, 862,
1628 99, 862, 862, 99, 99, 862, 270, 245, 99, 271,
1629
1630 271, 271, 271, 271, 271, 271, 336, 862, 99, 862,
1631 101, 271, 271, 862, 862, 862, 99, 270, 99, 593,
1632 593, 593, 593, 593, 593, 593, 593, 593, 593, 593,
1633 593, 593, 593, 593, 593, 593, 99, 862, 99, 862,
1634 99, 862, 99, 862, 862, 99, 99, 862, 401, 245,
1635 99, 402, 402, 402, 402, 402, 402, 402, 462, 862,
1636 99, 862, 101, 402, 402, 862, 862, 862, 99, 401,
1637 99, 597, 597, 597, 597, 597, 597, 597, 597, 597,
1638 597, 597, 597, 597, 597, 597, 597, 597, 153, 862,
1639 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1640
1641 277, 210, 153, 533, 533, 533, 533, 533, 533, 533,
1642 862, 862, 153, 862, 154, 277, 277, 862, 862, 862,
1643 153, 277, 153, 277, 277, 277, 277, 277, 277, 277,
1644 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
1645 598, 862, 534, 534, 534, 534, 534, 534, 534, 158,
1646 91, 153, 91, 158, 91, 158, 91, 91, 158, 158,
1647 91, 281, 215, 158, 535, 535, 535, 535, 535, 535,
1648 535, 91, 91, 158, 91, 159, 281, 281, 91, 91,
1649 91, 158, 281, 158, 281, 281, 281, 281, 281, 281,
1650 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
1651
1652 281, 166, 862, 166, 862, 862, 862, 862, 862, 862,
1653 862, 862, 862, 862, 862, 600, 600, 600, 600, 600,
1654 600, 600, 862, 862, 862, 862, 862, 862, 862, 862,
1655 862, 862, 862, 862, 862, 862, 862, 862, 601, 223,
1656 862, 223, 862, 862, 862, 862, 862, 862, 224, 862,
1657 224, 862, 862, 602, 602, 602, 602, 602, 602, 602,
1658 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1659 153, 862, 153, 603, 862, 862, 862, 862, 862, 862,
1660 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
1661 862, 862, 153, 153, 153, 153, 862, 153, 862, 153,
1662
1663 862, 153, 862, 862, 153, 153, 862, 153, 599, 862,
1664 862, 862, 862, 862, 862, 862, 862, 862, 862, 153,
1665 862, 154, 862, 862, 862, 862, 862, 153, 153, 153,
1666 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1667 99, 862, 99, 603, 862, 862, 862, 862, 862, 862,
1668 862, 862, 862, 862, 99, 862, 101, 862, 862, 862,
1669 862, 862, 99, 99, 99, 153, 862, 153, 862, 153,
1670 862, 153, 862, 862, 153, 153, 862, 163, 606, 604,
1671 862, 862, 862, 862, 862, 862, 862, 862, 862, 153,
1672 862, 154, 862, 862, 862, 862, 862, 153, 163, 153,
1673
1674 603, 862, 609, 609, 609, 609, 609, 609, 609, 862,
1675 862, 862, 862, 862, 862, 862, 862, 862, 862, 608,
1676 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1677 153, 862, 163, 599, 604, 862, 862, 862, 862, 862,
1678 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
1679 862, 862, 153, 163, 153, 606, 612, 613, 613, 613,
1680 613, 613, 613, 613, 614, 862, 615, 615, 615, 615,
1681 615, 615, 615, 166, 862, 166, 862, 862, 862, 862,
1682 862, 862, 862, 862, 862, 616, 862, 617, 617, 617,
1683 617, 617, 617, 617, 862, 862, 862, 862, 862, 862,
1684
1685 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1686 618, 223, 862, 223, 862, 862, 862, 862, 862, 862,
1687 283, 862, 285, 606, 862, 619, 619, 619, 619, 619,
1688 619, 619, 99, 862, 99, 862, 99, 862, 99, 862,
1689 862, 99, 99, 862, 110, 621, 605, 622, 622, 622,
1690 622, 622, 622, 622, 361, 862, 99, 862, 101, 623,
1691 623, 862, 862, 862, 99, 110, 99, 623, 623, 623,
1692 623, 623, 623, 623, 623, 623, 623, 623, 623, 623,
1693 623, 623, 623, 623, 606, 862, 623, 623, 623, 623,
1694 623, 623, 623, 862, 153, 862, 153, 862, 153, 862,
1695
1696 153, 862, 862, 153, 153, 862, 246, 606, 604, 862,
1697 862, 862, 862, 862, 862, 862, 862, 862, 153, 862,
1698 154, 862, 862, 862, 862, 862, 153, 246, 153, 153,
1699 862, 153, 862, 153, 862, 153, 862, 862, 153, 153,
1700 862, 246, 606, 604, 862, 862, 862, 862, 862, 862,
1701 862, 862, 862, 153, 862, 154, 862, 862, 862, 862,
1702 862, 153, 246, 153, 631, 631, 862, 862, 862, 862,
1703 862, 862, 631, 631, 631, 631, 631, 631, 631, 631,
1704 631, 631, 631, 631, 631, 631, 631, 631, 631, 99,
1705 862, 99, 862, 99, 862, 99, 862, 862, 99, 99,
1706
1707 862, 123, 632, 605, 862, 862, 862, 862, 862, 862,
1708 862, 862, 862, 99, 862, 101, 862, 862, 862, 862,
1709 862, 99, 123, 99, 634, 634, 634, 634, 634, 634,
1710 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
1711 634, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1712 99, 99, 862, 188, 632, 605, 862, 862, 862, 862,
1713 862, 862, 862, 862, 862, 99, 862, 101, 862, 862,
1714 862, 862, 862, 99, 123, 99, 99, 862, 99, 862,
1715 99, 862, 99, 862, 862, 99, 99, 862, 259, 245,
1716 99, 260, 260, 260, 260, 260, 260, 260, 323, 862,
1717
1718 99, 862, 101, 260, 260, 862, 862, 862, 99, 259,
1719 99, 637, 637, 637, 637, 637, 637, 637, 637, 637,
1720 637, 637, 637, 637, 637, 637, 637, 637, 123, 862,
1721 862, 638, 638, 638, 638, 638, 638, 638, 263, 646,
1722 646, 862, 862, 862, 862, 862, 862, 646, 646, 646,
1723 646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
1724 646, 646, 646, 646, 99, 862, 99, 862, 99, 862,
1725 99, 862, 862, 99, 99, 862, 389, 245, 99, 390,
1726 390, 390, 390, 390, 390, 390, 453, 862, 99, 862,
1727 101, 390, 390, 862, 862, 862, 99, 389, 99, 650,
1728
1729 650, 650, 650, 650, 650, 650, 650, 650, 650, 650,
1730 650, 650, 650, 650, 650, 650, 99, 862, 99, 862,
1731 99, 862, 99, 862, 862, 99, 99, 862, 123, 245,
1732 99, 651, 651, 651, 651, 651, 651, 651, 862, 862,
1733 99, 862, 101, 651, 183, 862, 862, 862, 99, 123,
1734 99, 651, 651, 651, 651, 651, 183, 183, 183, 183,
1735 183, 183, 183, 183, 183, 183, 183, 183, 99, 862,
1736 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1737 394, 245, 99, 395, 395, 395, 395, 395, 395, 395,
1738 456, 862, 99, 862, 101, 395, 395, 862, 862, 862,
1739
1740 99, 394, 99, 655, 655, 655, 655, 655, 655, 655,
1741 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
1742 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1743 99, 862, 270, 245, 99, 271, 271, 271, 271, 271,
1744 271, 271, 336, 862, 99, 862, 101, 271, 271, 862,
1745 862, 862, 99, 270, 99, 657, 657, 657, 657, 657,
1746 657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
1747 657, 657, 99, 862, 99, 862, 99, 862, 99, 862,
1748 862, 99, 99, 862, 401, 245, 99, 402, 402, 402,
1749 402, 402, 402, 402, 462, 862, 99, 862, 101, 402,
1750
1751 402, 862, 862, 862, 99, 401, 99, 661, 661, 661,
1752 661, 661, 661, 661, 661, 661, 661, 661, 661, 661,
1753 661, 661, 661, 661, 166, 862, 166, 862, 862, 862,
1754 862, 862, 862, 862, 862, 862, 862, 862, 664, 664,
1755 664, 664, 664, 664, 664, 862, 862, 862, 862, 862,
1756 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1757 862, 665, 223, 862, 223, 862, 862, 862, 862, 862,
1758 862, 224, 862, 224, 862, 862, 666, 666, 666, 666,
1759 666, 666, 666, 153, 862, 153, 862, 153, 862, 153,
1760 862, 862, 153, 153, 862, 153, 663, 862, 862, 862,
1761
1762 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1763 862, 862, 862, 862, 862, 153, 153, 153, 153, 862,
1764 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1765 153, 668, 862, 862, 862, 862, 862, 862, 862, 862,
1766 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1767 153, 153, 153, 99, 862, 99, 862, 99, 862, 99,
1768 862, 862, 99, 99, 862, 99, 668, 862, 862, 862,
1769 862, 862, 862, 862, 862, 862, 862, 99, 862, 101,
1770 862, 862, 862, 862, 862, 99, 99, 99, 153, 862,
1771 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1772
1773 163, 663, 667, 862, 862, 862, 862, 862, 862, 862,
1774 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1775 153, 163, 153, 153, 862, 153, 862, 153, 862, 153,
1776 862, 862, 153, 153, 862, 163, 671, 667, 862, 862,
1777 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1778 862, 862, 862, 862, 862, 153, 163, 153, 672, 862,
1779 672, 100, 862, 673, 673, 673, 673, 673, 673, 673,
1780 862, 862, 862, 862, 154, 674, 674, 674, 674, 674,
1781 674, 674, 862, 862, 862, 862, 862, 862, 862, 862,
1782 862, 862, 608, 677, 678, 678, 678, 678, 678, 678,
1783
1784 678, 679, 862, 680, 680, 680, 680, 680, 680, 680,
1785 166, 862, 166, 862, 862, 862, 862, 862, 862, 862,
1786 862, 862, 681, 862, 682, 682, 682, 682, 682, 682,
1787 682, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1788 862, 862, 862, 862, 862, 862, 862, 683, 223, 862,
1789 223, 862, 862, 862, 862, 862, 862, 283, 862, 285,
1790 862, 862, 684, 684, 684, 684, 684, 684, 684, 99,
1791 862, 99, 862, 99, 862, 99, 862, 862, 99, 99,
1792 862, 110, 686, 669, 687, 687, 687, 687, 687, 687,
1793 687, 361, 862, 99, 862, 101, 688, 688, 862, 862,
1794
1795 862, 99, 110, 99, 688, 688, 688, 688, 688, 688,
1796 688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
1797 688, 671, 862, 688, 688, 688, 688, 688, 688, 688,
1798 862, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1799 153, 153, 862, 246, 671, 667, 862, 862, 862, 862,
1800 862, 862, 862, 862, 862, 153, 862, 154, 862, 862,
1801 862, 862, 862, 153, 246, 153, 153, 862, 153, 862,
1802 153, 862, 153, 862, 862, 153, 153, 862, 246, 671,
1803 667, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1804 153, 862, 154, 862, 862, 862, 862, 862, 153, 246,
1805
1806 153, 663, 862, 862, 862, 862, 862, 862, 862, 862,
1807 862, 862, 862, 862, 862, 694, 694, 862, 862, 862,
1808 862, 862, 862, 694, 694, 694, 694, 694, 694, 694,
1809 694, 694, 694, 694, 694, 694, 694, 694, 694, 694,
1810 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1811 99, 862, 123, 695, 669, 862, 862, 862, 862, 862,
1812 862, 862, 862, 862, 99, 862, 101, 862, 862, 862,
1813 862, 862, 99, 123, 99, 697, 697, 697, 697, 697,
1814 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
1815 697, 697, 99, 862, 99, 862, 99, 862, 99, 862,
1816
1817 862, 99, 99, 862, 188, 695, 669, 862, 862, 862,
1818 862, 862, 862, 862, 862, 862, 99, 862, 101, 862,
1819 862, 862, 862, 862, 99, 123, 99, 99, 862, 99,
1820 862, 99, 862, 99, 862, 862, 99, 99, 862, 259,
1821 245, 99, 260, 260, 260, 260, 260, 260, 260, 323,
1822 862, 99, 862, 101, 260, 260, 862, 862, 862, 99,
1823 259, 99, 699, 699, 699, 699, 699, 699, 699, 699,
1824 699, 699, 699, 699, 699, 699, 699, 699, 699, 123,
1825 862, 862, 700, 700, 700, 700, 700, 700, 700, 263,
1826 183, 183, 183, 183, 183, 183, 183, 862, 862, 862,
1827
1828 862, 862, 183, 862, 862, 862, 862, 862, 862, 862,
1829 183, 183, 183, 183, 183, 99, 862, 99, 862, 99,
1830 862, 99, 862, 862, 99, 99, 862, 389, 245, 99,
1831 390, 390, 390, 390, 390, 390, 390, 453, 862, 99,
1832 862, 101, 390, 390, 862, 862, 862, 99, 389, 99,
1833 703, 703, 703, 703, 703, 703, 703, 703, 703, 703,
1834 703, 703, 703, 703, 703, 703, 703, 704, 704, 704,
1835 704, 704, 704, 704, 862, 862, 862, 862, 862, 704,
1836 862, 862, 862, 862, 862, 862, 862, 704, 704, 704,
1837 704, 704, 99, 862, 99, 862, 99, 862, 99, 862,
1838
1839 862, 99, 99, 862, 394, 245, 99, 395, 395, 395,
1840 395, 395, 395, 395, 456, 862, 99, 862, 101, 395,
1841 395, 862, 862, 862, 99, 394, 99, 707, 707, 707,
1842 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
1843 707, 707, 707, 707, 99, 862, 99, 862, 99, 862,
1844 99, 862, 862, 99, 99, 862, 270, 245, 99, 271,
1845 271, 271, 271, 271, 271, 271, 336, 862, 99, 862,
1846 101, 271, 271, 862, 862, 862, 99, 270, 99, 709,
1847 709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
1848 709, 709, 709, 709, 709, 709, 99, 862, 99, 862,
1849
1850 99, 862, 99, 862, 862, 99, 99, 862, 401, 245,
1851 99, 402, 402, 402, 402, 402, 402, 402, 462, 862,
1852 99, 862, 101, 402, 402, 862, 862, 862, 99, 401,
1853 99, 712, 712, 712, 712, 712, 712, 712, 712, 712,
1854 712, 712, 712, 712, 712, 712, 712, 712, 341, 862,
1855 662, 662, 662, 662, 662, 662, 662, 166, 862, 166,
1856 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1857 862, 714, 714, 714, 714, 714, 714, 714, 862, 862,
1858 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1859 862, 862, 862, 862, 715, 223, 862, 223, 862, 862,
1860
1861 862, 862, 862, 862, 224, 862, 224, 862, 862, 716,
1862 716, 716, 716, 716, 716, 716, 153, 862, 153, 862,
1863 153, 862, 153, 862, 862, 153, 153, 862, 153, 717,
1864 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1865 153, 862, 154, 862, 862, 862, 862, 862, 153, 153,
1866 153, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1867 153, 153, 862, 153, 713, 862, 862, 862, 862, 862,
1868 862, 862, 862, 862, 862, 153, 862, 154, 862, 862,
1869 862, 862, 862, 153, 153, 153, 99, 862, 99, 862,
1870 99, 862, 99, 862, 862, 99, 99, 862, 99, 717,
1871
1872 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1873 99, 862, 101, 862, 862, 862, 862, 862, 99, 99,
1874 99, 153, 862, 153, 862, 153, 862, 153, 862, 862,
1875 153, 153, 862, 163, 720, 718, 862, 862, 862, 862,
1876 862, 862, 862, 862, 862, 153, 862, 154, 862, 862,
1877 862, 862, 862, 153, 163, 153, 153, 862, 153, 862,
1878 153, 862, 153, 862, 862, 153, 153, 862, 163, 713,
1879 718, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1880 153, 862, 154, 862, 862, 862, 862, 862, 153, 163,
1881 153, 722, 100, 862, 673, 673, 673, 673, 673, 673,
1882
1883 673, 862, 862, 862, 862, 154, 717, 862, 723, 723,
1884 723, 723, 723, 723, 723, 862, 862, 862, 862, 862,
1885 862, 862, 862, 862, 862, 608, 720, 726, 727, 727,
1886 727, 727, 727, 727, 727, 728, 862, 729, 729, 729,
1887 729, 729, 729, 729, 166, 862, 166, 862, 862, 862,
1888 862, 862, 862, 862, 862, 862, 730, 862, 731, 731,
1889 731, 731, 731, 731, 731, 862, 862, 862, 862, 862,
1890 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1891 862, 732, 223, 862, 223, 862, 862, 862, 862, 862,
1892 862, 283, 862, 285, 720, 862, 733, 733, 733, 733,
1893
1894 733, 733, 733, 99, 862, 99, 862, 99, 862, 99,
1895 862, 862, 99, 99, 862, 110, 735, 719, 736, 736,
1896 736, 736, 736, 736, 736, 361, 862, 99, 862, 101,
1897 737, 737, 862, 862, 862, 99, 110, 99, 737, 737,
1898 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
1899 737, 737, 737, 737, 737, 720, 862, 737, 737, 737,
1900 737, 737, 737, 737, 862, 153, 862, 153, 862, 153,
1901 862, 153, 862, 862, 153, 153, 862, 246, 720, 718,
1902 862, 862, 862, 862, 862, 862, 862, 862, 862, 153,
1903 862, 154, 862, 862, 862, 862, 862, 153, 246, 153,
1904
1905 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
1906 153, 862, 246, 720, 718, 862, 862, 862, 862, 862,
1907 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
1908 862, 862, 153, 246, 153, 745, 745, 862, 862, 862,
1909 862, 862, 862, 745, 745, 745, 745, 745, 745, 745,
1910 745, 745, 745, 745, 745, 745, 745, 745, 745, 745,
1911 99, 862, 99, 862, 99, 862, 99, 862, 862, 99,
1912 99, 862, 123, 746, 719, 862, 862, 862, 862, 862,
1913 862, 862, 862, 862, 99, 862, 101, 862, 862, 862,
1914 862, 862, 99, 123, 99, 748, 748, 748, 748, 748,
1915
1916 748, 748, 748, 748, 748, 748, 748, 748, 748, 748,
1917 748, 748, 99, 862, 99, 862, 99, 862, 99, 862,
1918 862, 99, 99, 862, 259, 245, 99, 260, 260, 260,
1919 260, 260, 260, 260, 323, 862, 99, 862, 101, 260,
1920 260, 862, 862, 862, 99, 259, 99, 749, 749, 749,
1921 749, 749, 749, 749, 749, 749, 749, 749, 749, 749,
1922 749, 749, 749, 749, 99, 862, 99, 862, 99, 862,
1923 99, 862, 862, 99, 99, 862, 123, 746, 719, 750,
1924 750, 750, 750, 750, 750, 750, 263, 862, 99, 862,
1925 101, 747, 747, 862, 862, 862, 99, 123, 99, 747,
1926
1927 747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
1928 747, 747, 747, 747, 747, 747, 753, 753, 753, 753,
1929 753, 753, 753, 753, 753, 753, 753, 753, 753, 753,
1930 753, 753, 753, 754, 754, 754, 754, 754, 754, 754,
1931 862, 862, 862, 862, 862, 754, 862, 862, 862, 862,
1932 862, 862, 862, 754, 754, 754, 754, 754, 757, 757,
1933 757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
1934 757, 757, 757, 757, 757, 758, 758, 758, 758, 758,
1935 758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
1936 758, 758, 761, 761, 761, 761, 761, 761, 761, 761,
1937
1938 761, 761, 761, 761, 761, 761, 761, 761, 761, 166,
1939 862, 166, 862, 862, 862, 862, 862, 862, 862, 862,
1940 862, 862, 862, 763, 763, 763, 763, 763, 763, 763,
1941 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
1942 862, 862, 862, 862, 862, 862, 764, 223, 862, 223,
1943 862, 862, 862, 862, 862, 862, 224, 862, 224, 862,
1944 862, 765, 765, 765, 765, 765, 765, 765, 153, 862,
1945 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1946 153, 762, 862, 862, 862, 862, 862, 862, 862, 862,
1947 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1948
1949 153, 153, 153, 153, 862, 153, 862, 153, 862, 153,
1950 862, 862, 153, 153, 862, 153, 767, 862, 862, 862,
1951 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1952 862, 862, 862, 862, 862, 153, 153, 153, 99, 862,
1953 99, 862, 99, 862, 99, 862, 862, 99, 99, 862,
1954 99, 767, 862, 862, 862, 862, 862, 862, 862, 862,
1955 862, 862, 99, 862, 101, 862, 862, 862, 862, 862,
1956 99, 99, 99, 153, 862, 153, 862, 153, 862, 153,
1957 862, 862, 153, 153, 862, 163, 762, 766, 862, 862,
1958 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1959
1960 862, 862, 862, 862, 862, 153, 163, 153, 153, 862,
1961 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1962 163, 770, 766, 862, 862, 862, 862, 862, 862, 862,
1963 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1964 153, 163, 153, 100, 862, 771, 771, 771, 771, 771,
1965 771, 771, 862, 862, 862, 862, 154, 772, 772, 772,
1966 772, 772, 772, 772, 862, 862, 862, 862, 862, 862,
1967 862, 862, 862, 862, 608, 775, 776, 776, 776, 776,
1968 776, 776, 776, 777, 862, 778, 778, 778, 778, 778,
1969 778, 778, 166, 862, 166, 862, 862, 862, 862, 862,
1970
1971 862, 862, 862, 862, 779, 862, 780, 780, 780, 780,
1972 780, 780, 780, 862, 862, 862, 862, 862, 862, 862,
1973 862, 862, 862, 862, 862, 862, 862, 862, 862, 781,
1974 223, 862, 223, 862, 862, 862, 862, 862, 862, 283,
1975 862, 285, 862, 862, 782, 782, 782, 782, 782, 782,
1976 782, 99, 862, 99, 862, 99, 862, 99, 862, 862,
1977 99, 99, 862, 110, 784, 768, 785, 785, 785, 785,
1978 785, 785, 785, 361, 862, 99, 862, 101, 786, 786,
1979 862, 862, 862, 99, 110, 99, 786, 786, 786, 786,
1980 786, 786, 786, 786, 786, 786, 786, 786, 786, 786,
1981
1982 786, 786, 786, 770, 862, 786, 786, 786, 786, 786,
1983 786, 786, 862, 153, 862, 153, 862, 153, 862, 153,
1984 862, 862, 153, 153, 862, 246, 770, 766, 862, 862,
1985 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
1986 862, 862, 862, 862, 862, 153, 246, 153, 153, 862,
1987 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
1988 246, 770, 766, 862, 862, 862, 862, 862, 862, 862,
1989 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
1990 153, 246, 153, 762, 862, 862, 862, 862, 862, 862,
1991 862, 862, 862, 862, 862, 862, 862, 792, 792, 862,
1992
1993 862, 862, 862, 862, 862, 792, 792, 792, 792, 792,
1994 792, 792, 792, 792, 792, 792, 792, 792, 792, 792,
1995 792, 792, 99, 862, 99, 862, 99, 862, 99, 862,
1996 862, 99, 99, 862, 123, 793, 768, 862, 862, 862,
1997 862, 862, 862, 862, 862, 862, 99, 862, 101, 862,
1998 862, 862, 862, 862, 99, 123, 99, 260, 260, 260,
1999 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
2000 260, 260, 260, 260, 99, 862, 99, 862, 99, 862,
2001 99, 862, 862, 99, 99, 862, 123, 793, 768, 795,
2002 795, 795, 795, 795, 795, 795, 263, 862, 99, 862,
2003
2004 101, 794, 794, 862, 862, 862, 99, 123, 99, 794,
2005 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
2006 794, 794, 794, 794, 794, 794, 799, 799, 799, 799,
2007 799, 799, 799, 799, 799, 799, 799, 799, 799, 799,
2008 799, 799, 799, 800, 800, 800, 800, 800, 800, 800,
2009 862, 862, 862, 862, 862, 800, 862, 862, 862, 862,
2010 862, 862, 862, 800, 800, 800, 800, 800, 804, 804,
2011 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
2012 804, 804, 804, 804, 804, 271, 271, 271, 271, 271,
2013 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
2014
2015 271, 271, 808, 808, 808, 808, 808, 808, 808, 808,
2016 808, 808, 808, 808, 808, 808, 808, 808, 808, 862,
2017 862, 153, 153, 153, 153, 153, 153, 153, 153, 862,
2018 153, 862, 153, 862, 153, 862, 862, 153, 153, 862,
2019 862, 130, 153, 862, 862, 862, 862, 862, 862, 862,
2020 862, 862, 153, 862, 154, 862, 862, 862, 862, 862,
2021 153, 862, 153, 153, 862, 153, 862, 153, 862, 153,
2022 862, 862, 153, 153, 862, 862, 862, 153, 862, 862,
2023 862, 862, 862, 862, 862, 862, 862, 153, 862, 154,
2024 862, 862, 862, 862, 862, 153, 862, 153, 810, 810,
2025
2026 810, 810, 810, 810, 810, 862, 862, 862, 862, 862,
2027 862, 862, 862, 862, 862, 608, 130, 813, 814, 814,
2028 814, 814, 814, 814, 814, 815, 862, 816, 816, 816,
2029 816, 816, 816, 816, 166, 862, 166, 862, 862, 862,
2030 862, 862, 862, 862, 862, 862, 817, 862, 818, 818,
2031 818, 818, 818, 818, 818, 862, 862, 862, 862, 862,
2032 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
2033 862, 218, 223, 862, 223, 862, 862, 862, 862, 862,
2034 862, 283, 862, 285, 130, 862, 286, 286, 286, 286,
2035 286, 286, 286, 99, 862, 99, 862, 99, 862, 99,
2036
2037 862, 862, 99, 99, 862, 110, 820, 99, 821, 821,
2038 821, 821, 821, 821, 821, 361, 862, 99, 862, 101,
2039 110, 110, 862, 862, 862, 99, 110, 99, 110, 110,
2040 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
2041 110, 110, 110, 110, 110, 130, 862, 110, 110, 110,
2042 110, 110, 110, 110, 862, 153, 862, 153, 862, 153,
2043 862, 153, 862, 862, 153, 153, 862, 246, 130, 153,
2044 862, 862, 862, 862, 862, 862, 862, 862, 862, 153,
2045 862, 154, 862, 862, 862, 862, 862, 153, 246, 153,
2046 153, 862, 153, 862, 153, 862, 153, 862, 862, 153,
2047
2048 153, 862, 246, 130, 153, 862, 862, 862, 862, 862,
2049 862, 862, 862, 862, 153, 862, 154, 862, 862, 862,
2050 862, 862, 153, 246, 153, 313, 313, 862, 862, 862,
2051 862, 862, 862, 313, 313, 313, 313, 313, 313, 313,
2052 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
2053 828, 828, 828, 828, 828, 828, 828, 263, 829, 829,
2054 829, 829, 829, 829, 829, 829, 829, 829, 829, 829,
2055 829, 829, 829, 829, 829, 830, 830, 830, 830, 830,
2056 830, 830, 862, 862, 862, 862, 862, 830, 862, 862,
2057 862, 862, 862, 862, 862, 830, 830, 830, 830, 830,
2058
2059 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
2060 831, 831, 831, 831, 831, 831, 831, 832, 832, 832,
2061 832, 832, 832, 832, 832, 832, 832, 832, 832, 832,
2062 832, 832, 832, 832, 828, 828, 828, 828, 828, 828,
2063 828, 263, 390, 390, 390, 390, 390, 390, 390, 390,
2064 390, 390, 390, 390, 390, 390, 390, 390, 390, 838,
2065 838, 838, 838, 838, 838, 838, 862, 862, 862, 862,
2066 862, 838, 862, 862, 862, 862, 862, 862, 862, 838,
2067 838, 838, 838, 838, 395, 395, 395, 395, 395, 395,
2068 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
2069
2070 395, 402, 402, 402, 402, 402, 402, 402, 402, 402,
2071 402, 402, 402, 402, 402, 402, 402, 402, 18, 18,
2072 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
2073 18, 18, 18, 18, 18, 24, 24, 24, 24, 24,
2074 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
2075 24, 24, 28, 28, 28, 28, 28, 28, 28, 28,
2076 28, 28, 28, 28, 28, 28, 28, 28, 28, 38,
2077 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
2078 38, 38, 38, 38, 38, 38, 41, 41, 41, 41,
2079 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
2080
2081 41, 41, 41, 64, 64, 64, 64, 64, 64, 64,
2082 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2083 71, 71, 862, 71, 71, 71, 71, 71, 71, 71,
2084 71, 71, 71, 71, 71, 71, 71, 75, 862, 862,
2085 75, 75, 862, 75, 75, 75, 75, 77, 77, 862,
2086 77, 862, 77, 77, 77, 77, 77, 77, 77, 77,
2087 77, 77, 77, 77, 78, 78, 78, 78, 78, 78,
2088 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
2089 78, 91, 91, 862, 91, 91, 91, 91, 91, 91,
2090 91, 91, 91, 91, 91, 91, 91, 91, 94, 94,
2091
2092 862, 94, 94, 94, 94, 94, 94, 94, 94, 94,
2093 94, 94, 94, 94, 94, 96, 96, 862, 96, 96,
2094 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
2095 96, 96, 97, 862, 862, 862, 97, 97, 97, 97,
2096 97, 97, 97, 97, 97, 97, 97, 97, 97, 98,
2097 98, 862, 98, 98, 98, 98, 98, 98, 98, 98,
2098 98, 98, 98, 98, 98, 98, 99, 862, 99, 862,
2099 862, 862, 99, 99, 99, 99, 99, 862, 99, 99,
2100 99, 99, 99, 104, 104, 862, 862, 862, 104, 104,
2101 104, 104, 104, 104, 104, 862, 104, 104, 104, 104,
2102
2103 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
2104 105, 105, 105, 105, 105, 105, 105, 113, 113, 113,
2105 862, 862, 113, 113, 862, 113, 116, 862, 116, 862,
2106 862, 862, 116, 116, 116, 116, 116, 862, 116, 116,
2107 116, 116, 116, 141, 141, 862, 141, 141, 141, 141,
2108 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
2109 153, 862, 153, 862, 862, 862, 153, 153, 862, 153,
2110 153, 862, 153, 153, 153, 153, 153, 158, 158, 158,
2111 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
2112 158, 158, 158, 158, 165, 165, 165, 862, 862, 165,
2113
2114 165, 862, 165, 169, 862, 169, 862, 862, 862, 169,
2115 169, 169, 169, 169, 862, 169, 169, 169, 169, 169,
2116 171, 862, 171, 862, 862, 862, 171, 171, 171, 171,
2117 171, 862, 171, 171, 171, 171, 171, 182, 182, 862,
2118 862, 182, 862, 862, 182, 183, 862, 183, 862, 862,
2119 862, 183, 183, 183, 183, 183, 862, 183, 183, 183,
2120 183, 183, 141, 141, 862, 141, 141, 141, 141, 141,
2121 141, 141, 141, 141, 141, 141, 141, 141, 141, 219,
2122 219, 219, 862, 862, 219, 219, 862, 219, 227, 862,
2123 227, 862, 862, 862, 227, 227, 227, 227, 227, 862,
2124
2125 227, 227, 227, 227, 227, 228, 862, 228, 862, 862,
2126 862, 228, 228, 228, 228, 228, 862, 228, 228, 228,
2127 228, 228, 243, 243, 243, 862, 243, 862, 862, 243,
2128 183, 862, 183, 862, 862, 862, 183, 183, 183, 183,
2129 183, 862, 183, 183, 183, 183, 183, 247, 862, 247,
2130 862, 862, 862, 247, 247, 247, 247, 247, 862, 247,
2131 247, 247, 247, 247, 277, 862, 277, 862, 862, 862,
2132 277, 277, 862, 277, 277, 862, 277, 277, 277, 277,
2133 277, 279, 862, 862, 279, 862, 862, 279, 279, 279,
2134 279, 287, 287, 287, 862, 862, 287, 287, 862, 287,
2135
2136 288, 862, 288, 862, 862, 288, 288, 862, 862, 288,
2137 292, 862, 292, 862, 862, 862, 292, 292, 292, 292,
2138 292, 862, 292, 292, 292, 292, 292, 294, 862, 294,
2139 862, 862, 862, 294, 294, 294, 294, 294, 862, 294,
2140 294, 294, 294, 294, 307, 307, 862, 307, 862, 862,
2141 307, 311, 311, 311, 862, 311, 862, 862, 311, 312,
2142 862, 862, 312, 862, 862, 312, 314, 862, 314, 862,
2143 862, 862, 314, 314, 314, 314, 314, 862, 314, 314,
2144 314, 314, 314, 315, 862, 315, 862, 862, 862, 315,
2145 315, 315, 315, 315, 862, 315, 315, 315, 315, 315,
2146
2147 318, 862, 318, 862, 862, 862, 318, 318, 318, 318,
2148 318, 318, 318, 318, 318, 318, 318, 260, 862, 260,
2149 862, 862, 862, 260, 260, 260, 260, 260, 862, 260,
2150 260, 260, 260, 260, 271, 862, 271, 862, 862, 862,
2151 271, 271, 271, 271, 271, 862, 271, 271, 271, 271,
2152 271, 99, 862, 99, 862, 862, 862, 99, 99, 99,
2153 99, 99, 862, 99, 99, 99, 99, 99, 277, 862,
2154 277, 862, 862, 862, 277, 277, 277, 277, 277, 862,
2155 277, 277, 277, 277, 277, 279, 279, 862, 279, 862,
2156 862, 279, 279, 279, 279, 153, 862, 153, 862, 862,
2157
2158 862, 153, 153, 153, 153, 153, 862, 153, 153, 153,
2159 153, 153, 344, 344, 344, 862, 862, 344, 344, 862,
2160 344, 349, 862, 349, 862, 862, 862, 349, 349, 349,
2161 349, 349, 862, 349, 349, 349, 349, 349, 350, 862,
2162 350, 862, 862, 862, 350, 350, 350, 350, 350, 862,
2163 350, 350, 350, 350, 350, 365, 365, 862, 365, 862,
2164 862, 365, 367, 367, 367, 862, 367, 862, 862, 367,
2165 368, 368, 368, 862, 368, 862, 862, 368, 314, 862,
2166 314, 862, 862, 862, 314, 314, 314, 314, 314, 862,
2167 314, 314, 314, 314, 314, 370, 862, 370, 862, 862,
2168
2169 862, 370, 370, 370, 370, 370, 862, 370, 370, 370,
2170 370, 370, 373, 862, 373, 862, 862, 862, 373, 373,
2171 373, 373, 373, 862, 373, 373, 373, 373, 373, 406,
2172 862, 862, 406, 862, 862, 406, 406, 406, 406, 409,
2173 409, 409, 862, 862, 409, 409, 862, 409, 413, 862,
2174 413, 862, 862, 862, 413, 413, 413, 413, 413, 862,
2175 413, 413, 413, 413, 413, 415, 862, 415, 862, 862,
2176 862, 415, 415, 415, 415, 415, 862, 415, 415, 415,
2177 415, 415, 429, 429, 862, 429, 862, 862, 429, 430,
2178 430, 862, 430, 862, 862, 430, 431, 431, 431, 862,
2179
2180 431, 862, 862, 431, 432, 862, 862, 432, 862, 862,
2181 432, 433, 862, 433, 862, 862, 862, 433, 433, 433,
2182 433, 433, 862, 433, 433, 433, 433, 433, 436, 862,
2183 436, 862, 862, 862, 436, 436, 436, 436, 436, 862,
2184 436, 436, 436, 436, 436, 395, 862, 395, 862, 862,
2185 862, 395, 395, 395, 395, 395, 862, 395, 395, 395,
2186 395, 395, 402, 862, 402, 862, 862, 862, 402, 402,
2187 402, 402, 402, 862, 402, 402, 402, 402, 402, 406,
2188 406, 862, 406, 862, 862, 406, 406, 406, 406, 468,
2189 468, 468, 862, 862, 468, 468, 862, 468, 473, 862,
2190
2191 473, 862, 862, 862, 473, 473, 473, 473, 473, 862,
2192 473, 473, 473, 473, 473, 474, 862, 474, 862, 862,
2193 862, 474, 474, 474, 474, 474, 862, 474, 474, 474,
2194 474, 474, 488, 488, 862, 488, 862, 862, 488, 489,
2195 489, 862, 489, 862, 862, 489, 491, 491, 491, 862,
2196 491, 862, 862, 491, 492, 492, 492, 862, 492, 862,
2197 862, 492, 494, 862, 494, 862, 862, 862, 494, 494,
2198 494, 494, 494, 862, 494, 494, 494, 494, 494, 497,
2199 862, 497, 862, 862, 862, 497, 497, 497, 497, 497,
2200 862, 497, 497, 497, 497, 497, 508, 862, 862, 508,
2201
2202 862, 862, 508, 508, 508, 508, 513, 862, 862, 513,
2203 862, 862, 513, 513, 513, 513, 536, 536, 536, 862,
2204 862, 536, 536, 862, 536, 540, 862, 540, 862, 862,
2205 862, 540, 540, 540, 540, 540, 862, 540, 540, 540,
2206 540, 540, 542, 862, 542, 862, 862, 862, 542, 542,
2207 542, 542, 542, 862, 542, 542, 542, 542, 542, 543,
2208 862, 543, 862, 862, 862, 543, 543, 543, 543, 543,
2209 862, 543, 543, 543, 543, 543, 560, 560, 862, 560,
2210 862, 862, 560, 561, 561, 862, 561, 862, 862, 561,
2211 562, 562, 562, 862, 562, 862, 862, 562, 563, 862,
2212
2213 862, 563, 862, 862, 563, 564, 862, 564, 862, 862,
2214 862, 564, 564, 564, 564, 564, 862, 564, 564, 564,
2215 564, 564, 567, 862, 567, 862, 862, 862, 567, 567,
2216 567, 567, 567, 862, 567, 567, 567, 567, 567, 572,
2217 862, 862, 572, 862, 862, 572, 572, 572, 572, 508,
2218 862, 862, 508, 862, 862, 508, 508, 508, 508, 513,
2219 862, 862, 513, 862, 862, 513, 513, 513, 513, 592,
2220 862, 862, 592, 862, 862, 592, 592, 592, 592, 406,
2221 406, 862, 406, 862, 862, 406, 406, 406, 406, 599,
2222 599, 599, 862, 862, 599, 599, 862, 599, 604, 862,
2223
2224 604, 862, 862, 862, 604, 604, 604, 604, 604, 862,
2225 604, 604, 604, 604, 604, 605, 862, 605, 862, 862,
2226 862, 605, 605, 605, 605, 605, 862, 605, 605, 605,
2227 605, 605, 607, 862, 607, 862, 862, 862, 607, 607,
2228 607, 607, 607, 862, 607, 607, 607, 607, 607, 620,
2229 862, 620, 862, 862, 862, 862, 862, 862, 620, 624,
2230 624, 862, 624, 862, 862, 624, 625, 625, 862, 625,
2231 862, 862, 625, 627, 627, 627, 862, 627, 862, 862,
2232 627, 628, 628, 628, 862, 628, 862, 862, 628, 630,
2233 862, 630, 862, 862, 862, 630, 630, 630, 630, 630,
2234
2235 862, 630, 630, 630, 630, 630, 633, 862, 633, 862,
2236 862, 862, 633, 633, 633, 633, 633, 862, 633, 633,
2237 633, 633, 633, 572, 862, 862, 572, 862, 862, 572,
2238 572, 572, 572, 640, 862, 862, 640, 862, 862, 640,
2239 640, 640, 640, 643, 862, 862, 643, 862, 862, 643,
2240 643, 643, 643, 645, 862, 862, 645, 862, 862, 645,
2241 645, 645, 645, 592, 862, 862, 592, 862, 862, 592,
2242 592, 592, 592, 406, 862, 862, 406, 862, 862, 406,
2243 406, 406, 406, 663, 663, 663, 862, 862, 663, 663,
2244 862, 663, 667, 862, 667, 862, 862, 862, 667, 667,
2245
2246 667, 667, 667, 862, 667, 667, 667, 667, 667, 669,
2247 862, 669, 862, 862, 862, 669, 669, 669, 669, 669,
2248 862, 669, 669, 669, 669, 669, 670, 862, 670, 862,
2249 862, 862, 670, 670, 670, 670, 670, 862, 670, 670,
2250 670, 670, 670, 153, 862, 153, 862, 862, 862, 153,
2251 153, 153, 153, 153, 862, 153, 153, 153, 153, 153,
2252 689, 689, 862, 689, 862, 862, 689, 690, 690, 862,
2253 690, 862, 862, 690, 691, 691, 691, 862, 691, 862,
2254 862, 691, 692, 862, 862, 692, 862, 862, 692, 693,
2255 862, 693, 862, 862, 862, 693, 693, 693, 693, 693,
2256
2257 862, 693, 693, 693, 693, 693, 696, 862, 696, 862,
2258 862, 862, 696, 696, 696, 696, 696, 862, 696, 696,
2259 696, 696, 696, 640, 862, 862, 640, 862, 862, 640,
2260 640, 640, 640, 643, 862, 862, 643, 862, 862, 643,
2261 643, 643, 643, 645, 862, 862, 645, 862, 862, 645,
2262 645, 645, 645, 406, 406, 862, 406, 862, 862, 406,
2263 406, 406, 406, 713, 713, 713, 862, 862, 713, 713,
2264 862, 713, 718, 862, 718, 862, 862, 862, 718, 718,
2265 718, 718, 718, 862, 718, 718, 718, 718, 718, 719,
2266 862, 719, 862, 862, 862, 719, 719, 719, 719, 719,
2267
2268 862, 719, 719, 719, 719, 719, 721, 862, 721, 862,
2269 862, 862, 721, 721, 721, 721, 721, 862, 721, 721,
2270 721, 721, 721, 153, 862, 153, 862, 862, 862, 153,
2271 153, 153, 153, 153, 862, 153, 153, 153, 153, 153,
2272 738, 738, 862, 738, 862, 862, 738, 739, 739, 862,
2273 739, 862, 862, 739, 741, 741, 741, 862, 741, 862,
2274 862, 741, 742, 742, 742, 862, 742, 862, 862, 742,
2275 744, 862, 744, 862, 862, 862, 744, 744, 744, 744,
2276 744, 862, 744, 744, 744, 744, 744, 747, 862, 747,
2277 862, 862, 862, 747, 747, 747, 747, 747, 862, 747,
2278
2279 747, 747, 747, 747, 762, 762, 762, 862, 862, 762,
2280 762, 862, 762, 766, 862, 766, 862, 862, 862, 766,
2281 766, 766, 766, 766, 862, 766, 766, 766, 766, 766,
2282 768, 862, 768, 862, 862, 862, 768, 768, 768, 768,
2283 768, 862, 768, 768, 768, 768, 768, 769, 862, 769,
2284 862, 862, 862, 769, 769, 769, 769, 769, 862, 769,
2285 769, 769, 769, 769, 787, 787, 862, 787, 862, 862,
2286 787, 788, 788, 862, 788, 862, 862, 788, 789, 789,
2287 789, 862, 789, 862, 862, 789, 790, 862, 862, 790,
2288 862, 862, 790, 791, 862, 791, 862, 862, 862, 791,
2289
2290 791, 791, 791, 791, 862, 791, 791, 791, 791, 791,
2291 794, 862, 794, 862, 862, 862, 794, 794, 794, 794,
2292 794, 862, 794, 794, 794, 794, 794, 797, 862, 862,
2293 797, 862, 862, 797, 797, 797, 797, 803, 862, 862,
2294 803, 862, 862, 803, 803, 803, 803, 807, 862, 862,
2295 807, 862, 862, 807, 807, 807, 807, 809, 862, 809,
2296 862, 862, 862, 862, 862, 862, 809, 862, 862, 862,
2297 862, 862, 809, 288, 862, 288, 862, 862, 288, 288,
2298 862, 862, 288, 99, 862, 99, 862, 862, 862, 99,
2299 99, 99, 99, 99, 862, 99, 99, 99, 99, 99,
2300
2301 163, 862, 163, 862, 862, 862, 163, 163, 163, 163,
2302 163, 862, 163, 163, 163, 163, 163, 822, 822, 862,
2303 822, 862, 862, 822, 823, 823, 862, 823, 862, 862,
2304 823, 825, 825, 825, 862, 825, 862, 862, 825, 826,
2305 826, 826, 862, 826, 862, 862, 826, 314, 862, 314,
2306 862, 862, 862, 314, 314, 314, 314, 314, 862, 314,
2307 314, 314, 314, 314, 834, 834, 862, 834, 862, 862,
2308 834, 835, 835, 862, 835, 862, 862, 835, 836, 836,
2309 836, 862, 836, 862, 862, 836, 837, 862, 862, 837,
2310 862, 862, 837, 840, 840, 862, 840, 862, 862, 840,
2311
2312 842, 842, 862, 862, 842, 862, 862, 842, 843, 843,
2313 843, 862, 843, 862, 862, 843, 844, 844, 862, 862,
2314 844, 862, 862, 844, 848, 848, 862, 862, 848, 862,
2315 862, 848, 849, 849, 862, 862, 849, 862, 862, 849,
2316 854, 854, 862, 862, 854, 862, 862, 854, 855, 855,
2317 862, 862, 855, 862, 862, 855, 17, 862, 862, 862,
2318 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
2319 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
2320 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
2321 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
2322
2323 862, 862, 862, 862, 862, 862, 862, 862, 862
2324 } ;
2325
2326 static yyconst short int yy_chk[14010] =
2327 { 0,
2328 0, 0, 1, 14, 14, 14, 1, 2, 2, 2,
2329 3, 4, 2, 3, 4, 7, 7, 7, 418, 418,
2330 7, 8, 8, 8, 34, 34, 8, 9, 9, 9,
2331 36, 36, 9, 2, 2, 10, 10, 10, 3, 4,
2332 10, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2333 2, 2, 2, 2, 2, 2, 2, 2, 5, 5,
2334 5, 5, 936, 5, 5, 936, 5, 5, 323, 5,
2335 5, 5, 21, 21, 21, 29, 39, 29, 39, 323,
2336 5, 5, 5, 42, 23, 42, 5, 6, 6, 6,
2337 6, 44, 6, 6, 23, 6, 6, 393, 6, 6,
2338
2339 6, 43, 456, 43, 44, 23, 45, 393, 45, 6,
2340 6, 6, 59, 456, 59, 6, 11, 11, 11, 11,
2341 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2342 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2343 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2344 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2345 11, 11, 11, 11, 11, 11, 11, 11, 15, 858,
2346 15, 15, 15, 15, 15, 15, 15, 30, 86, 30,
2347 86, 60, 30, 62, 62, 855, 30, 15, 16, 60,
2348 16, 16, 16, 16, 16, 16, 16, 52, 52, 52,
2349
2350 52, 52, 52, 52, 66, 66, 66, 16, 27, 27,
2351 27, 27, 27, 27, 27, 61, 46, 61, 46, 182,
2352 95, 46, 95, 243, 61, 46, 99, 182, 46, 27,
2353 854, 243, 27, 72, 72, 72, 98, 27, 98, 99,
2354 27, 46, 27, 48, 48, 48, 311, 48, 445, 48,
2355 48, 329, 329, 48, 311, 48, 69, 69, 69, 69,
2356 69, 69, 69, 949, 48, 48, 949, 48, 48, 445,
2357 102, 48, 48, 48, 50, 74, 50, 50, 50, 50,
2358 50, 50, 50, 102, 220, 74, 220, 50, 51, 75,
2359 51, 849, 51, 220, 51, 220, 74, 51, 51, 75,
2360
2361 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2362 75, 532, 51, 532, 51, 51, 51, 87, 87, 87,
2363 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2364 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2365 53, 848, 53, 166, 53, 166, 53, 844, 103, 53,
2366 53, 842, 53, 53, 79, 79, 79, 79, 79, 79,
2367 79, 103, 328, 146, 53, 147, 53, 142, 142, 142,
2368 153, 328, 53, 53, 53, 54, 146, 54, 147, 54,
2369 166, 54, 840, 153, 54, 54, 837, 54, 54, 54,
2370 54, 54, 54, 54, 54, 54, 54, 54, 556, 54,
2371
2372 556, 54, 54, 54, 151, 151, 151, 54, 54, 54,
2373 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
2374 54, 54, 54, 54, 54, 54, 54, 56, 835, 56,
2375 312, 56, 845, 56, 845, 450, 56, 56, 312, 56,
2376 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
2377 367, 56, 834, 56, 56, 56, 450, 824, 367, 56,
2378 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
2379 56, 56, 56, 56, 56, 56, 56, 56, 56, 57,
2380 57, 57, 57, 57, 57, 57, 57, 479, 479, 550,
2381 550, 57, 80, 80, 80, 80, 80, 80, 80, 57,
2382
2383 57, 57, 57, 57, 58, 390, 58, 58, 58, 58,
2384 58, 58, 58, 68, 390, 68, 68, 68, 68, 68,
2385 68, 68, 70, 823, 70, 70, 522, 70, 70, 70,
2386 70, 70, 70, 70, 101, 522, 101, 822, 101, 819,
2387 101, 817, 502, 101, 101, 336, 101, 101, 101, 101,
2388 101, 101, 101, 101, 101, 101, 336, 336, 101, 805,
2389 101, 101, 101, 502, 614, 614, 101, 101, 101, 101,
2390 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
2391 101, 101, 101, 101, 101, 101, 105, 105, 105, 368,
2392 105, 801, 105, 105, 544, 798, 105, 368, 105, 126,
2393
2394 126, 126, 126, 126, 126, 126, 674, 105, 105, 772,
2395 105, 105, 431, 544, 105, 105, 105, 106, 106, 106,
2396 431, 106, 507, 106, 106, 674, 788, 106, 772, 106,
2397 130, 130, 130, 130, 130, 130, 130, 787, 106, 106,
2398 779, 106, 106, 507, 759, 106, 106, 106, 107, 107,
2399 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2400 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2401 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2402 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2403 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2404
2405 108, 108, 108, 108, 108, 108, 108, 432, 223, 453,
2406 223, 108, 111, 453, 111, 432, 111, 223, 111, 223,
2407 453, 111, 111, 462, 111, 755, 111, 111, 111, 111,
2408 111, 111, 111, 111, 462, 462, 111, 752, 111, 111,
2409 111, 679, 679, 740, 111, 111, 111, 111, 111, 111,
2410 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
2411 111, 111, 111, 111, 114, 739, 114, 145, 145, 145,
2412 145, 145, 145, 145, 546, 546, 546, 546, 114, 114,
2413 114, 114, 114, 114, 114, 149, 149, 149, 149, 149,
2414 149, 149, 150, 150, 150, 150, 150, 150, 150, 738,
2415
2416 672, 114, 115, 810, 115, 162, 115, 162, 115, 728,
2417 728, 115, 115, 672, 115, 115, 491, 162, 164, 174,
2418 164, 174, 810, 512, 491, 492, 115, 526, 115, 730,
2419 164, 174, 562, 492, 115, 115, 115, 116, 723, 116,
2420 562, 116, 162, 116, 512, 711, 116, 116, 526, 116,
2421 116, 225, 710, 225, 508, 164, 174, 291, 571, 291,
2422 225, 116, 225, 116, 508, 234, 291, 234, 291, 116,
2423 116, 116, 117, 513, 117, 508, 117, 234, 117, 571,
2424 576, 117, 117, 513, 117, 117, 117, 117, 117, 117,
2425 117, 117, 117, 117, 513, 563, 117, 708, 117, 117,
2426
2427 117, 576, 234, 563, 117, 117, 117, 117, 117, 117,
2428 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
2429 117, 117, 117, 117, 118, 706, 118, 627, 118, 705,
2430 118, 702, 578, 118, 118, 627, 118, 118, 118, 118,
2431 118, 118, 118, 118, 118, 118, 118, 628, 118, 701,
2432 118, 118, 118, 578, 698, 628, 118, 118, 118, 118,
2433 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
2434 118, 118, 118, 118, 118, 118, 119, 119, 119, 119,
2435 119, 119, 119, 119, 690, 611, 611, 611, 119, 179,
2436 179, 179, 179, 179, 179, 179, 119, 119, 119, 119,
2437
2438 119, 120, 611, 120, 120, 120, 120, 120, 120, 120,
2439 120, 121, 121, 121, 121, 121, 121, 121, 121, 689,
2440 579, 685, 591, 121, 181, 181, 181, 181, 181, 181,
2441 181, 121, 121, 121, 121, 121, 123, 572, 123, 681,
2442 123, 579, 123, 591, 660, 123, 123, 572, 123, 123,
2443 123, 205, 205, 205, 205, 205, 205, 205, 572, 691,
2444 123, 639, 123, 301, 302, 301, 302, 691, 123, 123,
2445 123, 124, 301, 124, 301, 124, 302, 124, 659, 642,
2446 124, 124, 639, 124, 124, 124, 124, 124, 124, 124,
2447 124, 124, 124, 658, 692, 124, 656, 124, 124, 124,
2448
2449 642, 302, 692, 124, 124, 124, 124, 124, 124, 124,
2450 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
2451 124, 124, 124, 125, 654, 125, 741, 125, 653, 125,
2452 652, 644, 125, 125, 741, 125, 125, 125, 125, 125,
2453 125, 125, 125, 125, 125, 125, 742, 125, 649, 125,
2454 125, 125, 644, 648, 742, 125, 125, 125, 125, 125,
2455 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
2456 125, 125, 125, 125, 125, 127, 647, 127, 789, 127,
2457 641, 127, 636, 751, 127, 127, 789, 127, 127, 127,
2458 127, 127, 127, 127, 127, 127, 127, 127, 626, 127,
2459
2460 625, 127, 127, 127, 751, 777, 777, 127, 127, 127,
2461 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
2462 127, 127, 127, 127, 127, 127, 127, 128, 128, 128,
2463 128, 128, 128, 128, 128, 676, 676, 676, 676, 128,
2464 207, 207, 207, 207, 207, 207, 207, 128, 128, 128,
2465 128, 128, 129, 129, 129, 129, 129, 129, 129, 129,
2466 624, 725, 725, 725, 129, 212, 212, 212, 212, 212,
2467 212, 212, 129, 129, 129, 129, 129, 131, 725, 592,
2468 131, 131, 131, 131, 131, 131, 131, 148, 148, 592,
2469 148, 148, 148, 148, 148, 148, 148, 154, 640, 154,
2470
2471 592, 154, 616, 154, 609, 756, 154, 154, 640, 154,
2472 154, 154, 154, 154, 154, 154, 154, 154, 154, 640,
2473 790, 154, 596, 154, 154, 154, 756, 595, 790, 154,
2474 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
2475 154, 154, 154, 154, 154, 154, 154, 154, 154, 155,
2476 590, 155, 155, 155, 155, 155, 155, 155, 158, 158,
2477 158, 825, 158, 760, 158, 158, 815, 815, 158, 825,
2478 158, 216, 216, 216, 216, 216, 216, 216, 588, 158,
2479 158, 587, 158, 158, 760, 583, 158, 158, 158, 159,
2480 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2481
2482 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2483 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2484 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2485 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2486 159, 160, 582, 160, 160, 160, 160, 160, 160, 160,
2487 163, 577, 163, 163, 163, 163, 163, 163, 163, 167,
2488 573, 167, 224, 224, 224, 224, 224, 224, 224, 561,
2489 763, 560, 763, 167, 167, 167, 167, 167, 167, 167,
2490 240, 240, 240, 240, 240, 240, 240, 241, 241, 241,
2491 241, 241, 241, 241, 929, 929, 167, 168, 263, 168,
2492
2493 796, 552, 263, 548, 548, 548, 168, 763, 168, 263,
2494 263, 168, 168, 168, 168, 168, 168, 168, 169, 548,
2495 169, 796, 169, 530, 169, 951, 951, 169, 169, 529,
2496 169, 169, 242, 242, 242, 242, 242, 242, 242, 643,
2497 802, 528, 169, 806, 169, 347, 359, 347, 359, 643,
2498 169, 169, 169, 170, 347, 170, 347, 170, 359, 170,
2499 643, 802, 170, 170, 806, 170, 170, 254, 254, 254,
2500 254, 254, 254, 254, 645, 525, 809, 170, 809, 170,
2501 358, 524, 358, 359, 645, 170, 170, 170, 171, 358,
2502 171, 358, 171, 521, 171, 645, 768, 171, 171, 518,
2503
2504 171, 171, 255, 255, 255, 255, 255, 255, 255, 768,
2505 517, 826, 171, 809, 171, 516, 425, 514, 425, 826,
2506 171, 171, 171, 172, 172, 172, 172, 172, 425, 172,
2507 964, 964, 172, 172, 511, 172, 172, 172, 172, 172,
2508 172, 172, 172, 172, 172, 510, 836, 172, 509, 172,
2509 172, 172, 504, 425, 836, 172, 172, 172, 172, 172,
2510 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
2511 172, 172, 172, 172, 172, 173, 503, 173, 257, 257,
2512 257, 257, 257, 257, 257, 967, 967, 173, 490, 173,
2513 173, 173, 173, 173, 173, 173, 275, 275, 275, 275,
2514
2515 275, 275, 275, 288, 288, 288, 288, 288, 288, 288,
2516 843, 489, 173, 175, 488, 175, 481, 175, 843, 175,
2517 1001, 1001, 175, 175, 460, 175, 175, 175, 175, 175,
2518 175, 175, 175, 175, 175, 175, 459, 175, 451, 175,
2519 175, 175, 1002, 1002, 449, 175, 175, 175, 175, 175,
2520 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
2521 175, 175, 175, 175, 175, 176, 448, 176, 176, 176,
2522 176, 176, 176, 176, 176, 177, 177, 177, 177, 177,
2523 177, 177, 177, 774, 774, 774, 774, 177, 306, 306,
2524 306, 306, 306, 306, 306, 177, 177, 177, 177, 177,
2525
2526 178, 178, 178, 178, 178, 178, 178, 178, 812, 812,
2527 812, 812, 178, 309, 309, 309, 309, 309, 309, 309,
2528 178, 178, 178, 178, 178, 183, 797, 183, 447, 183,
2529 446, 183, 1003, 1003, 183, 183, 797, 183, 183, 183,
2530 310, 310, 310, 310, 310, 310, 803, 797, 442, 183,
2531 441, 183, 412, 485, 412, 485, 803, 183, 183, 183,
2532 184, 412, 184, 412, 184, 485, 184, 803, 430, 184,
2533 184, 429, 184, 184, 184, 321, 321, 321, 321, 321,
2534 321, 321, 421, 420, 184, 406, 184, 399, 398, 397,
2535 485, 387, 184, 184, 184, 185, 322, 322, 322, 322,
2536
2537 322, 322, 322, 424, 471, 424, 471, 386, 385, 185,
2538 185, 384, 424, 471, 424, 471, 383, 185, 185, 185,
2539 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
2540 185, 185, 185, 185, 186, 382, 186, 379, 186, 378,
2541 186, 366, 365, 186, 186, 364, 186, 186, 186, 186,
2542 186, 186, 186, 186, 186, 186, 186, 363, 186, 355,
2543 186, 186, 186, 354, 334, 333, 186, 186, 186, 186,
2544 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
2545 186, 186, 186, 186, 186, 186, 187, 187, 187, 187,
2546 187, 187, 187, 187, 327, 326, 307, 300, 187, 339,
2547
2548 339, 339, 339, 339, 339, 339, 187, 187, 187, 187,
2549 187, 188, 807, 188, 297, 188, 279, 188, 273, 269,
2550 188, 188, 807, 188, 188, 188, 188, 188, 188, 188,
2551 188, 188, 188, 807, 268, 188, 267, 188, 188, 188,
2552 266, 265, 264, 188, 188, 188, 188, 188, 188, 188,
2553 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
2554 188, 188, 188, 189, 258, 239, 189, 189, 189, 189,
2555 189, 189, 189, 190, 237, 190, 233, 190, 214, 190,
2556 209, 203, 190, 190, 202, 190, 190, 190, 190, 190,
2557 190, 190, 190, 190, 190, 190, 200, 190, 199, 190,
2558
2559 190, 190, 198, 197, 196, 190, 190, 190, 190, 190,
2560 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
2561 190, 190, 190, 190, 190, 191, 191, 191, 191, 191,
2562 191, 191, 191, 195, 180, 161, 157, 191, 342, 342,
2563 342, 342, 342, 342, 342, 191, 191, 191, 191, 191,
2564 192, 156, 144, 192, 192, 192, 192, 192, 192, 192,
2565 193, 140, 193, 139, 193, 138, 193, 137, 136, 193,
2566 193, 135, 193, 193, 193, 193, 193, 193, 193, 193,
2567 193, 193, 134, 133, 193, 132, 193, 193, 193, 122,
2568 104, 100, 193, 193, 193, 193, 193, 193, 193, 193,
2569
2570 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
2571 193, 193, 194, 194, 194, 194, 194, 194, 194, 194,
2572 201, 93, 201, 92, 201, 63, 201, 55, 37, 201,
2573 201, 35, 201, 201, 201, 201, 201, 201, 201, 201,
2574 201, 201, 33, 31, 201, 17, 201, 201, 201, 13,
2575 0, 0, 201, 201, 201, 201, 201, 201, 201, 201,
2576 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
2577 201, 201, 206, 0, 206, 206, 206, 206, 206, 206,
2578 206, 208, 0, 208, 208, 208, 208, 208, 208, 208,
2579 210, 0, 210, 0, 210, 0, 210, 0, 0, 210,
2580
2581 210, 557, 0, 557, 210, 361, 361, 361, 361, 361,
2582 361, 361, 0, 557, 210, 0, 210, 484, 0, 484,
2583 0, 539, 210, 539, 210, 211, 484, 211, 484, 211,
2584 539, 211, 539, 0, 211, 211, 0, 0, 557, 211,
2585 211, 211, 211, 211, 211, 211, 211, 0, 0, 211,
2586 0, 211, 0, 0, 0, 0, 0, 211, 0, 211,
2587 213, 0, 213, 213, 213, 213, 213, 213, 213, 215,
2588 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
2589 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
2590 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
2591
2592 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
2593 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
2594 215, 217, 0, 217, 853, 853, 853, 853, 853, 853,
2595 217, 0, 217, 217, 0, 217, 217, 217, 217, 217,
2596 217, 217, 218, 555, 218, 555, 0, 0, 612, 612,
2597 612, 218, 555, 218, 555, 0, 218, 218, 218, 218,
2598 218, 218, 218, 221, 612, 221, 376, 376, 376, 376,
2599 376, 376, 376, 0, 0, 0, 0, 221, 221, 221,
2600 221, 221, 221, 221, 377, 377, 377, 377, 377, 377,
2601 377, 404, 404, 404, 404, 404, 404, 404, 0, 0,
2602
2603 221, 222, 602, 222, 602, 0, 0, 677, 677, 677,
2604 222, 602, 222, 602, 0, 222, 222, 222, 222, 222,
2605 222, 222, 226, 677, 226, 0, 226, 0, 226, 0,
2606 0, 226, 226, 0, 226, 226, 428, 428, 428, 428,
2607 428, 428, 428, 0, 0, 0, 226, 0, 226, 619,
2608 621, 619, 621, 0, 226, 226, 226, 227, 619, 227,
2609 619, 227, 621, 227, 0, 0, 227, 227, 0, 227,
2610 227, 439, 439, 439, 439, 439, 439, 439, 0, 0,
2611 0, 227, 0, 227, 666, 0, 666, 621, 0, 227,
2612 227, 227, 228, 666, 228, 666, 228, 0, 228, 0,
2613
2614 0, 228, 228, 0, 228, 228, 440, 440, 440, 440,
2615 440, 440, 440, 0, 0, 0, 228, 0, 228, 684,
2616 686, 684, 686, 0, 228, 228, 228, 229, 684, 229,
2617 684, 229, 686, 229, 0, 0, 229, 229, 0, 229,
2618 229, 229, 229, 229, 229, 229, 229, 229, 229, 0,
2619 0, 229, 0, 229, 229, 229, 0, 686, 0, 229,
2620 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
2621 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
2622 0, 230, 458, 458, 458, 458, 458, 458, 458, 0,
2623 0, 230, 0, 230, 230, 230, 230, 230, 230, 230,
2624
2625 464, 464, 464, 464, 464, 464, 464, 476, 476, 476,
2626 476, 476, 476, 476, 0, 0, 230, 231, 0, 231,
2627 231, 231, 231, 231, 231, 231, 232, 716, 232, 716,
2628 0, 0, 726, 726, 726, 232, 716, 232, 716, 0,
2629 232, 232, 232, 232, 232, 232, 232, 235, 726, 235,
2630 0, 235, 0, 235, 0, 0, 235, 235, 0, 235,
2631 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
2632 0, 235, 0, 235, 235, 235, 0, 0, 0, 235,
2633 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
2634 235, 235, 235, 235, 235, 235, 235, 235, 235, 236,
2635
2636 0, 236, 236, 236, 236, 236, 236, 236, 236, 238,
2637 238, 238, 238, 238, 238, 238, 238, 0, 0, 0,
2638 0, 238, 500, 500, 500, 500, 500, 500, 500, 238,
2639 238, 238, 238, 238, 245, 0, 245, 0, 245, 0,
2640 245, 0, 0, 245, 245, 0, 245, 0, 245, 245,
2641 245, 245, 245, 245, 245, 245, 0, 0, 245, 0,
2642 245, 245, 245, 0, 0, 0, 245, 245, 245, 245,
2643 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
2644 245, 245, 245, 245, 245, 245, 246, 0, 246, 0,
2645 246, 0, 246, 0, 0, 246, 246, 0, 246, 246,
2646
2647 246, 501, 501, 501, 501, 501, 501, 501, 0, 0,
2648 246, 0, 246, 733, 735, 733, 735, 0, 246, 246,
2649 246, 247, 733, 247, 733, 247, 735, 247, 0, 0,
2650 247, 247, 0, 247, 247, 247, 570, 570, 570, 570,
2651 570, 570, 570, 0, 0, 247, 0, 247, 764, 0,
2652 764, 735, 0, 247, 247, 247, 248, 764, 248, 764,
2653 248, 0, 248, 0, 0, 248, 248, 0, 248, 248,
2654 248, 581, 581, 581, 581, 581, 581, 581, 0, 0,
2655 248, 0, 248, 775, 775, 775, 0, 0, 248, 248,
2656 248, 249, 586, 586, 586, 586, 586, 586, 586, 775,
2657
2658 782, 850, 782, 850, 0, 249, 249, 0, 0, 782,
2659 850, 782, 850, 249, 249, 249, 249, 249, 249, 249,
2660 249, 249, 249, 249, 249, 249, 249, 249, 249, 249,
2661 250, 0, 250, 0, 250, 0, 250, 0, 0, 250,
2662 250, 0, 250, 250, 250, 594, 594, 594, 594, 594,
2663 594, 594, 250, 0, 250, 0, 250, 0, 784, 0,
2664 784, 0, 250, 250, 250, 251, 0, 251, 0, 251,
2665 784, 251, 0, 0, 251, 251, 0, 251, 251, 251,
2666 598, 598, 598, 598, 598, 598, 598, 251, 0, 251,
2667 0, 251, 813, 813, 813, 784, 0, 251, 251, 251,
2668
2669 252, 0, 252, 0, 252, 0, 252, 0, 813, 252,
2670 252, 0, 252, 252, 252, 252, 252, 252, 252, 252,
2671 252, 252, 0, 0, 252, 0, 252, 252, 252, 0,
2672 0, 0, 252, 252, 252, 252, 252, 252, 252, 252,
2673 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
2674 252, 252, 253, 0, 0, 253, 253, 253, 253, 253,
2675 253, 253, 253, 256, 256, 256, 256, 256, 256, 256,
2676 256, 259, 0, 259, 0, 259, 0, 259, 0, 0,
2677 259, 259, 0, 259, 259, 259, 620, 620, 620, 620,
2678 620, 620, 620, 0, 0, 259, 0, 259, 0, 0,
2679
2680 0, 0, 0, 259, 259, 259, 260, 0, 260, 0,
2681 260, 0, 260, 0, 0, 260, 260, 0, 260, 260,
2682 260, 734, 734, 734, 734, 734, 734, 734, 260, 0,
2683 260, 0, 260, 0, 0, 0, 0, 0, 260, 260,
2684 260, 261, 261, 261, 261, 261, 261, 261, 261, 261,
2685 261, 261, 261, 261, 261, 261, 261, 261, 262, 262,
2686 262, 262, 262, 262, 262, 262, 270, 0, 270, 0,
2687 270, 0, 270, 0, 0, 270, 270, 0, 270, 270,
2688 270, 765, 765, 765, 765, 765, 765, 765, 0, 0,
2689 270, 0, 270, 0, 0, 0, 0, 0, 270, 270,
2690
2691 270, 271, 0, 271, 0, 271, 0, 271, 0, 0,
2692 271, 271, 0, 271, 271, 271, 766, 766, 766, 766,
2693 766, 766, 766, 271, 0, 271, 0, 271, 0, 0,
2694 0, 0, 0, 271, 271, 271, 272, 272, 272, 272,
2695 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
2696 272, 272, 272, 276, 0, 276, 276, 276, 276, 276,
2697 276, 276, 0, 0, 0, 0, 276, 277, 0, 277,
2698 0, 277, 0, 277, 0, 0, 277, 277, 0, 0,
2699 277, 277, 783, 783, 783, 783, 783, 783, 783, 0,
2700 0, 277, 0, 277, 0, 0, 0, 0, 0, 277,
2701
2702 0, 277, 278, 0, 278, 0, 278, 0, 278, 0,
2703 0, 278, 278, 0, 0, 278, 278, 278, 278, 278,
2704 278, 278, 278, 278, 0, 0, 278, 0, 278, 0,
2705 0, 0, 0, 0, 278, 0, 278, 280, 0, 280,
2706 280, 280, 280, 280, 280, 280, 281, 281, 281, 281,
2707 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
2708 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
2709 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
2710 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
2711 281, 281, 281, 281, 281, 281, 281, 281, 282, 0,
2712
2713 282, 282, 282, 282, 282, 282, 282, 283, 0, 283,
2714 283, 283, 283, 283, 283, 283, 0, 0, 0, 0,
2715 283, 284, 0, 284, 284, 284, 284, 284, 284, 284,
2716 0, 0, 0, 0, 284, 285, 0, 285, 0, 285,
2717 0, 285, 0, 0, 285, 285, 0, 285, 285, 285,
2718 285, 285, 285, 285, 285, 285, 285, 0, 0, 285,
2719 0, 285, 285, 285, 0, 0, 0, 285, 285, 285,
2720 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
2721 285, 285, 285, 285, 285, 285, 285, 289, 0, 289,
2722 820, 820, 820, 820, 820, 820, 820, 0, 0, 0,
2723
2724 0, 289, 289, 289, 289, 289, 289, 289, 833, 833,
2725 833, 833, 833, 833, 833, 839, 839, 839, 839, 839,
2726 839, 839, 0, 0, 289, 290, 0, 290, 0, 0,
2727 0, 0, 0, 0, 290, 0, 290, 0, 0, 290,
2728 290, 290, 290, 290, 290, 290, 292, 0, 292, 0,
2729 292, 0, 292, 0, 0, 292, 292, 0, 292, 292,
2730 841, 841, 841, 841, 841, 841, 841, 0, 0, 0,
2731 292, 0, 292, 0, 0, 0, 0, 0, 292, 292,
2732 292, 293, 0, 293, 0, 293, 0, 293, 0, 0,
2733 293, 293, 0, 293, 293, 846, 846, 846, 846, 846,
2734
2735 846, 846, 0, 0, 0, 293, 0, 293, 0, 0,
2736 0, 0, 0, 293, 293, 293, 294, 0, 294, 0,
2737 294, 0, 294, 0, 0, 294, 294, 0, 294, 294,
2738 847, 847, 847, 847, 847, 847, 847, 0, 0, 0,
2739 294, 0, 294, 0, 0, 0, 0, 0, 294, 294,
2740 294, 295, 0, 295, 0, 295, 0, 295, 0, 0,
2741 295, 295, 0, 295, 295, 295, 295, 295, 295, 295,
2742 295, 295, 295, 0, 0, 295, 0, 295, 295, 295,
2743 0, 0, 0, 295, 295, 295, 295, 295, 295, 295,
2744 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
2745
2746 295, 295, 295, 296, 0, 296, 296, 296, 296, 296,
2747 296, 296, 298, 0, 298, 852, 852, 852, 852, 852,
2748 852, 852, 0, 0, 298, 0, 298, 298, 298, 298,
2749 298, 298, 298, 856, 856, 856, 856, 856, 856, 856,
2750 857, 857, 857, 857, 857, 857, 857, 0, 0, 298,
2751 299, 0, 299, 0, 0, 0, 0, 0, 0, 299,
2752 0, 299, 0, 0, 299, 299, 299, 299, 299, 299,
2753 299, 303, 0, 303, 0, 303, 0, 303, 0, 0,
2754 303, 303, 0, 303, 303, 303, 303, 303, 303, 303,
2755 303, 303, 303, 303, 0, 303, 0, 303, 303, 303,
2756
2757 0, 0, 0, 303, 303, 303, 303, 303, 303, 303,
2758 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
2759 303, 303, 303, 304, 0, 304, 304, 304, 304, 304,
2760 304, 304, 304, 305, 305, 305, 305, 305, 305, 305,
2761 305, 0, 0, 0, 0, 305, 859, 859, 859, 859,
2762 859, 859, 859, 305, 305, 305, 305, 305, 313, 0,
2763 313, 0, 313, 0, 313, 0, 0, 313, 313, 0,
2764 313, 313, 313, 860, 860, 860, 860, 860, 860, 860,
2765 0, 0, 313, 0, 313, 0, 0, 0, 0, 0,
2766 313, 313, 313, 314, 0, 314, 0, 314, 0, 314,
2767
2768 0, 0, 314, 314, 0, 314, 314, 314, 0, 0,
2769 0, 0, 0, 0, 0, 0, 0, 314, 0, 314,
2770 0, 0, 0, 0, 0, 314, 314, 314, 315, 0,
2771 315, 0, 315, 0, 315, 0, 0, 315, 315, 0,
2772 315, 315, 315, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 315, 0, 315, 0, 0, 0, 0, 0,
2774 315, 315, 315, 316, 0, 316, 0, 316, 0, 316,
2775 0, 0, 316, 316, 0, 316, 316, 316, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 316, 0, 316,
2777 0, 0, 0, 0, 0, 316, 316, 316, 317, 0,
2778
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780 0, 0, 317, 317, 0, 0, 0, 0, 0, 0,
2781 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
2782 317, 317, 317, 317, 317, 317, 317, 318, 0, 318,
2783 0, 318, 0, 318, 0, 0, 318, 318, 0, 318,
2784 318, 318, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 318, 0, 318, 0, 0, 0, 0, 0, 318,
2786 318, 318, 319, 0, 319, 0, 319, 0, 319, 0,
2787 0, 319, 319, 0, 319, 319, 319, 319, 319, 319,
2788 319, 319, 319, 319, 0, 0, 319, 0, 319, 319,
2789
2790 319, 0, 0, 0, 319, 319, 319, 319, 319, 319,
2791 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
2792 319, 319, 319, 319, 320, 0, 320, 0, 320, 0,
2793 320, 0, 0, 320, 320, 0, 320, 320, 320, 320,
2794 320, 320, 320, 320, 320, 320, 0, 0, 320, 0,
2795 320, 320, 320, 0, 0, 0, 320, 320, 320, 320,
2796 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,
2797 320, 320, 320, 320, 320, 320, 324, 0, 324, 0,
2798 324, 0, 324, 0, 0, 324, 324, 0, 324, 324,
2799 324, 324, 324, 324, 324, 324, 324, 324, 324, 0,
2800
2801 324, 0, 324, 324, 324, 0, 0, 0, 324, 324,
2802 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
2803 324, 324, 324, 324, 324, 324, 324, 324, 325, 325,
2804 325, 325, 325, 325, 325, 325, 330, 0, 330, 0,
2805 330, 0, 330, 0, 0, 330, 330, 0, 330, 330,
2806 330, 330, 330, 330, 330, 330, 330, 330, 0, 0,
2807 330, 0, 330, 330, 330, 0, 0, 0, 330, 330,
2808 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
2809 330, 330, 330, 330, 330, 330, 330, 330, 331, 0,
2810 331, 0, 331, 0, 331, 0, 0, 331, 331, 0,
2811
2812 331, 331, 331, 0, 0, 0, 0, 0, 0, 0,
2813 0, 0, 331, 0, 331, 0, 0, 0, 0, 0,
2814 331, 331, 331, 332, 0, 332, 0, 332, 0, 332,
2815 0, 0, 332, 332, 0, 332, 332, 332, 332, 332,
2816 332, 332, 332, 332, 332, 0, 0, 332, 0, 332,
2817 332, 332, 0, 0, 0, 332, 332, 332, 332, 332,
2818 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
2819 332, 332, 332, 332, 332, 335, 0, 335, 0, 335,
2820 0, 335, 0, 0, 335, 335, 0, 335, 335, 335,
2821 335, 335, 335, 335, 335, 335, 335, 0, 0, 335,
2822
2823 0, 335, 335, 335, 0, 0, 0, 335, 335, 335,
2824 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
2825 335, 335, 335, 335, 335, 335, 335, 337, 0, 337,
2826 0, 337, 0, 337, 0, 0, 337, 337, 0, 337,
2827 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
2828 0, 337, 0, 337, 337, 337, 0, 0, 0, 337,
2829 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
2830 337, 337, 337, 337, 337, 337, 337, 337, 337, 338,
2831 0, 338, 0, 338, 0, 338, 0, 0, 338, 338,
2832 0, 338, 338, 338, 338, 338, 338, 338, 338, 338,
2833
2834 338, 0, 0, 338, 0, 338, 338, 338, 0, 0,
2835 0, 338, 338, 338, 338, 338, 338, 338, 338, 338,
2836 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
2837 338, 340, 0, 340, 0, 340, 0, 340, 0, 0,
2838 340, 340, 0, 340, 0, 340, 340, 340, 340, 340,
2839 340, 340, 340, 0, 0, 340, 0, 340, 340, 340,
2840 0, 0, 0, 340, 340, 340, 340, 340, 340, 340,
2841 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
2842 340, 340, 340, 343, 343, 343, 343, 343, 343, 343,
2843 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
2844
2845 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
2846 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
2847 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
2848 343, 343, 343, 343, 343, 345, 0, 345, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
2850 345, 345, 345, 345, 345, 345, 0, 0, 0, 0,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 345, 346, 0, 346, 0, 0, 0, 0,
2853 0, 0, 346, 0, 346, 0, 0, 346, 346, 346,
2854 346, 346, 346, 346, 348, 0, 348, 0, 348, 0,
2855
2856 348, 0, 0, 348, 348, 0, 348, 348, 0, 0,
2857 0, 0, 0, 0, 0, 0, 0, 0, 348, 0,
2858 348, 0, 0, 0, 0, 0, 348, 348, 348, 349,
2859 0, 349, 0, 349, 0, 349, 0, 0, 349, 349,
2860 0, 349, 349, 0, 0, 0, 0, 0, 0, 0,
2861 0, 0, 0, 349, 0, 349, 0, 0, 0, 0,
2862 0, 349, 349, 349, 350, 0, 350, 0, 350, 0,
2863 350, 0, 0, 350, 350, 0, 350, 350, 0, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 350, 0,
2865 350, 0, 0, 0, 0, 0, 350, 350, 350, 351,
2866
2867 0, 351, 0, 351, 0, 351, 0, 0, 351, 351,
2868 0, 351, 351, 351, 351, 351, 351, 351, 351, 351,
2869 351, 0, 0, 351, 0, 351, 351, 351, 0, 0,
2870 0, 351, 351, 351, 351, 351, 351, 351, 351, 351,
2871 351, 351, 351, 351, 351, 351, 351, 351, 351, 351,
2872 351, 352, 0, 352, 352, 352, 352, 352, 352, 352,
2873 353, 0, 353, 353, 353, 353, 353, 353, 353, 356,
2874 0, 356, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 356, 0, 356, 356, 356, 356, 356, 356, 356,
2876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877
2878 0, 0, 0, 0, 0, 0, 356, 357, 0, 357,
2879 0, 0, 0, 0, 0, 0, 357, 0, 357, 0,
2880 0, 357, 357, 357, 357, 357, 357, 357, 360, 0,
2881 360, 0, 360, 0, 360, 0, 0, 360, 360, 0,
2882 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
2883 360, 0, 360, 0, 360, 360, 360, 0, 0, 0,
2884 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
2885 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
2886 362, 0, 362, 362, 362, 362, 362, 362, 362, 362,
2887 370, 0, 370, 0, 370, 0, 370, 0, 0, 370,
2888
2889 370, 0, 370, 370, 370, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 370, 0, 370, 0, 0, 0,
2891 0, 0, 370, 370, 370, 371, 0, 371, 0, 371,
2892 0, 371, 0, 0, 371, 371, 0, 371, 371, 371,
2893 0, 0, 0, 0, 0, 0, 0, 0, 0, 371,
2894 0, 371, 0, 0, 0, 0, 0, 371, 371, 371,
2895 372, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 372, 372, 0, 0, 0, 0,
2897 0, 0, 372, 372, 372, 372, 372, 372, 372, 372,
2898 372, 372, 372, 372, 372, 372, 372, 372, 372, 373,
2899
2900 0, 373, 0, 373, 0, 373, 0, 0, 373, 373,
2901 0, 373, 373, 373, 0, 0, 0, 0, 0, 0,
2902 0, 0, 0, 373, 0, 373, 0, 0, 0, 0,
2903 0, 373, 373, 373, 374, 374, 374, 374, 374, 374,
2904 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
2905 374, 375, 0, 375, 0, 375, 0, 375, 0, 0,
2906 375, 375, 0, 375, 375, 375, 375, 375, 375, 375,
2907 375, 375, 375, 0, 0, 375, 0, 375, 375, 375,
2908 0, 0, 0, 375, 375, 375, 375, 375, 375, 375,
2909 375, 375, 375, 375, 375, 375, 375, 375, 375, 375,
2910
2911 375, 375, 375, 380, 0, 380, 0, 380, 0, 380,
2912 0, 0, 380, 380, 0, 380, 380, 380, 380, 380,
2913 380, 380, 380, 380, 380, 380, 0, 380, 0, 380,
2914 380, 380, 0, 0, 0, 380, 380, 380, 380, 380,
2915 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
2916 380, 380, 380, 380, 380, 381, 381, 381, 381, 381,
2917 381, 381, 381, 388, 0, 388, 0, 388, 0, 388,
2918 0, 0, 388, 388, 0, 388, 388, 388, 388, 388,
2919 388, 388, 388, 388, 388, 0, 0, 388, 0, 388,
2920 388, 388, 0, 0, 0, 388, 388, 388, 388, 388,
2921
2922 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
2923 388, 388, 388, 388, 388, 389, 389, 389, 389, 389,
2924 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
2925 389, 389, 391, 0, 0, 0, 0, 0, 0, 0,
2926 0, 391, 0, 0, 0, 0, 0, 0, 0, 0,
2927 0, 0, 0, 0, 391, 391, 391, 391, 391, 391,
2928 391, 391, 391, 391, 391, 391, 391, 391, 391, 391,
2929 391, 392, 0, 392, 0, 392, 0, 392, 0, 0,
2930 392, 392, 0, 392, 392, 392, 0, 0, 0, 0,
2931 0, 0, 0, 392, 0, 392, 0, 392, 0, 0,
2932
2933 0, 0, 0, 392, 392, 392, 394, 0, 394, 0,
2934 394, 0, 394, 0, 0, 394, 394, 0, 394, 394,
2935 394, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2936 394, 0, 394, 0, 0, 0, 0, 0, 394, 394,
2937 394, 395, 0, 395, 0, 395, 0, 395, 0, 0,
2938 395, 395, 0, 395, 395, 395, 0, 0, 0, 0,
2939 0, 0, 0, 395, 0, 395, 0, 395, 0, 0,
2940 0, 0, 0, 395, 395, 395, 396, 396, 396, 396,
2941 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
2942 396, 396, 396, 400, 0, 400, 0, 400, 0, 400,
2943
2944 0, 0, 400, 400, 0, 400, 400, 400, 400, 400,
2945 400, 400, 400, 400, 400, 400, 0, 400, 0, 400,
2946 400, 400, 0, 0, 0, 400, 400, 400, 400, 400,
2947 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
2948 400, 400, 400, 400, 400, 401, 0, 401, 0, 401,
2949 0, 401, 0, 0, 401, 401, 0, 401, 401, 401,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 401,
2951 0, 401, 0, 0, 0, 0, 0, 401, 401, 401,
2952 402, 0, 402, 0, 402, 0, 402, 0, 0, 402,
2953 402, 0, 402, 402, 402, 0, 0, 0, 0, 0,
2954
2955 0, 0, 402, 0, 402, 0, 402, 0, 0, 0,
2956 0, 0, 402, 402, 402, 403, 403, 403, 403, 403,
2957 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
2958 403, 403, 405, 0, 405, 0, 405, 0, 405, 0,
2959 0, 405, 405, 0, 405, 405, 405, 405, 405, 405,
2960 405, 405, 405, 405, 0, 0, 405, 0, 405, 405,
2961 405, 0, 0, 0, 405, 405, 405, 405, 405, 405,
2962 405, 405, 405, 405, 405, 405, 405, 405, 405, 405,
2963 405, 405, 405, 405, 407, 0, 407, 407, 407, 407,
2964 407, 407, 407, 408, 408, 408, 408, 408, 408, 408,
2965
2966 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2967 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2968 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2969 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2970 408, 408, 408, 408, 408, 410, 0, 410, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 0, 410,
2972 410, 410, 410, 410, 410, 410, 0, 0, 0, 0,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 0, 0, 410, 411, 0, 411, 0, 0, 0, 0,
2975 0, 0, 411, 0, 411, 0, 0, 411, 411, 411,
2976
2977 411, 411, 411, 411, 413, 0, 413, 0, 413, 0,
2978 413, 0, 0, 413, 413, 0, 413, 413, 0, 0,
2979 0, 0, 0, 0, 0, 0, 0, 0, 413, 0,
2980 413, 0, 0, 0, 0, 0, 413, 413, 413, 414,
2981 0, 414, 0, 414, 0, 414, 0, 0, 414, 414,
2982 0, 414, 414, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 414, 0, 414, 0, 0, 0, 0,
2984 0, 414, 414, 414, 415, 0, 415, 0, 415, 0,
2985 415, 0, 0, 415, 415, 0, 415, 415, 0, 0,
2986 0, 0, 0, 0, 0, 0, 0, 0, 415, 0,
2987
2988 415, 0, 0, 0, 0, 0, 415, 415, 415, 416,
2989 0, 416, 0, 416, 0, 416, 0, 0, 416, 416,
2990 0, 416, 416, 416, 416, 416, 416, 416, 416, 416,
2991 416, 0, 0, 416, 0, 416, 416, 416, 0, 0,
2992 0, 416, 416, 416, 416, 416, 416, 416, 416, 416,
2993 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,
2994 416, 417, 417, 417, 417, 417, 417, 417, 417, 419,
2995 0, 419, 419, 419, 419, 419, 419, 419, 422, 0,
2996 422, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 422, 0, 422, 422, 422, 422, 422, 422, 422, 0,
2998
2999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000 0, 0, 0, 0, 0, 422, 423, 0, 423, 0,
3001 0, 0, 0, 0, 0, 423, 0, 423, 0, 0,
3002 423, 423, 423, 423, 423, 423, 423, 426, 0, 426,
3003 0, 426, 0, 426, 0, 0, 426, 426, 0, 426,
3004 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
3005 0, 426, 0, 426, 426, 426, 0, 0, 0, 426,
3006 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
3007 426, 426, 426, 426, 426, 426, 426, 426, 426, 427,
3008 0, 427, 427, 427, 427, 427, 427, 427, 427, 433,
3009
3010 0, 433, 0, 433, 0, 433, 0, 0, 433, 433,
3011 0, 433, 433, 433, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 433, 0, 433, 0, 0, 0, 0,
3013 0, 433, 433, 433, 434, 0, 434, 0, 434, 0,
3014 434, 0, 0, 434, 434, 0, 434, 434, 434, 0,
3015 0, 0, 0, 0, 0, 0, 0, 0, 434, 0,
3016 434, 0, 0, 0, 0, 0, 434, 434, 434, 435,
3017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3018 0, 0, 0, 435, 435, 0, 0, 0, 0, 0,
3019 0, 435, 435, 435, 435, 435, 435, 435, 435, 435,
3020
3021 435, 435, 435, 435, 435, 435, 435, 435, 436, 0,
3022 436, 0, 436, 0, 436, 0, 0, 436, 436, 0,
3023 436, 436, 436, 0, 0, 0, 0, 0, 0, 0,
3024 0, 0, 436, 0, 436, 0, 0, 0, 0, 0,
3025 436, 436, 436, 437, 0, 437, 0, 437, 0, 437,
3026 0, 0, 437, 437, 0, 437, 437, 437, 437, 437,
3027 437, 437, 437, 437, 437, 0, 0, 437, 0, 437,
3028 437, 437, 0, 0, 0, 437, 437, 437, 437, 437,
3029 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
3030 437, 437, 437, 437, 437, 438, 0, 438, 0, 438,
3031
3032 0, 438, 0, 0, 438, 438, 0, 438, 438, 438,
3033 438, 438, 438, 438, 438, 438, 438, 0, 0, 438,
3034 0, 438, 438, 438, 0, 0, 0, 438, 438, 438,
3035 438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
3036 438, 438, 438, 438, 438, 438, 438, 443, 0, 443,
3037 0, 443, 0, 443, 0, 0, 443, 443, 0, 443,
3038 443, 443, 443, 443, 443, 443, 443, 443, 443, 443,
3039 0, 443, 0, 443, 443, 443, 0, 0, 0, 443,
3040 443, 443, 443, 443, 443, 443, 443, 443, 443, 443,
3041 443, 443, 443, 443, 443, 443, 443, 443, 443, 444,
3042
3043 444, 444, 444, 444, 444, 444, 444, 452, 452, 0,
3044 0, 0, 0, 0, 0, 452, 452, 452, 452, 452,
3045 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
3046 452, 452, 454, 0, 454, 0, 454, 0, 454, 0,
3047 0, 454, 454, 0, 454, 454, 454, 454, 454, 454,
3048 454, 454, 454, 454, 454, 0, 454, 0, 454, 454,
3049 454, 0, 0, 0, 454, 454, 454, 454, 454, 454,
3050 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
3051 454, 454, 454, 454, 455, 0, 455, 0, 455, 0,
3052 455, 0, 0, 455, 455, 0, 455, 455, 455, 455,
3053
3054 455, 455, 455, 455, 455, 455, 0, 0, 455, 0,
3055 455, 455, 455, 0, 0, 0, 455, 455, 455, 455,
3056 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
3057 455, 455, 455, 455, 455, 455, 457, 0, 457, 0,
3058 457, 0, 457, 0, 0, 457, 457, 0, 457, 457,
3059 457, 457, 457, 457, 457, 457, 457, 457, 457, 0,
3060 457, 0, 457, 457, 457, 0, 0, 0, 457, 457,
3061 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
3062 457, 457, 457, 457, 457, 457, 457, 457, 461, 0,
3063 461, 0, 461, 0, 461, 0, 0, 461, 461, 0,
3064
3065 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
3066 461, 0, 461, 0, 461, 461, 461, 0, 0, 0,
3067 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
3068 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
3069 463, 0, 463, 0, 463, 0, 463, 0, 0, 463,
3070 463, 0, 463, 463, 463, 463, 463, 463, 463, 463,
3071 463, 463, 463, 0, 463, 0, 463, 463, 463, 0,
3072 0, 0, 463, 463, 463, 463, 463, 463, 463, 463,
3073 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
3074 463, 463, 465, 0, 465, 465, 465, 465, 465, 465,
3075
3076 465, 466, 0, 466, 466, 466, 466, 466, 466, 466,
3077 467, 0, 467, 467, 467, 467, 467, 467, 467, 469,
3078 0, 469, 0, 0, 0, 0, 0, 0, 0, 0,
3079 0, 0, 0, 469, 469, 469, 469, 469, 469, 469,
3080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3081 0, 0, 0, 0, 0, 0, 469, 470, 0, 470,
3082 0, 0, 0, 0, 0, 0, 470, 0, 470, 0,
3083 0, 470, 470, 470, 470, 470, 470, 470, 472, 0,
3084 472, 0, 472, 0, 472, 0, 0, 472, 472, 0,
3085 472, 472, 0, 0, 0, 0, 0, 0, 0, 0,
3086
3087 0, 0, 472, 0, 472, 0, 0, 0, 0, 0,
3088 472, 472, 472, 473, 0, 473, 0, 473, 0, 473,
3089 0, 0, 473, 473, 0, 473, 473, 0, 0, 0,
3090 0, 0, 0, 0, 0, 0, 0, 473, 0, 473,
3091 0, 0, 0, 0, 0, 473, 473, 473, 474, 0,
3092 474, 0, 474, 0, 474, 0, 0, 474, 474, 0,
3093 474, 474, 0, 0, 0, 0, 0, 0, 0, 0,
3094 0, 0, 474, 0, 474, 0, 0, 0, 0, 0,
3095 474, 474, 474, 475, 0, 475, 0, 475, 0, 475,
3096 0, 0, 475, 475, 0, 475, 475, 475, 0, 0,
3097
3098 0, 0, 0, 0, 0, 0, 0, 475, 0, 475,
3099 0, 0, 0, 0, 0, 475, 475, 475, 477, 0,
3100 477, 0, 477, 0, 477, 0, 0, 477, 477, 0,
3101 477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
3102 0, 0, 477, 0, 477, 477, 477, 0, 0, 0,
3103 477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
3104 477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
3105 478, 0, 478, 0, 478, 0, 478, 0, 0, 478,
3106 478, 0, 478, 478, 478, 0, 0, 0, 0, 0,
3107 0, 0, 0, 0, 478, 0, 478, 0, 0, 0,
3108
3109 0, 0, 478, 478, 478, 480, 0, 480, 480, 480,
3110 480, 480, 480, 480, 482, 0, 482, 0, 0, 0,
3111 0, 0, 0, 0, 0, 0, 482, 0, 482, 482,
3112 482, 482, 482, 482, 482, 0, 0, 0, 0, 0,
3113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3114 0, 482, 483, 0, 483, 0, 0, 0, 0, 0,
3115 0, 483, 0, 483, 0, 0, 483, 483, 483, 483,
3116 483, 483, 483, 486, 486, 486, 486, 486, 0, 486,
3117 0, 0, 486, 486, 0, 486, 486, 486, 486, 486,
3118 486, 486, 486, 486, 486, 486, 0, 486, 0, 486,
3119
3120 486, 486, 0, 0, 0, 486, 486, 486, 486, 486,
3121 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
3122 486, 486, 486, 486, 486, 487, 0, 487, 0, 0,
3123 0, 0, 0, 0, 0, 0, 0, 487, 0, 487,
3124 487, 487, 487, 487, 487, 487, 487, 494, 0, 494,
3125 0, 494, 0, 494, 0, 0, 494, 494, 0, 494,
3126 494, 494, 0, 0, 0, 0, 0, 0, 0, 0,
3127 0, 494, 0, 494, 0, 0, 0, 0, 0, 494,
3128 494, 494, 495, 0, 495, 0, 495, 0, 495, 0,
3129 0, 495, 495, 0, 495, 495, 495, 0, 0, 0,
3130
3131 0, 0, 0, 0, 0, 0, 495, 0, 495, 0,
3132 0, 0, 0, 0, 495, 495, 495, 496, 0, 0,
3133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 496, 496, 0, 0, 0, 0, 0, 0, 496,
3135 496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
3136 496, 496, 496, 496, 496, 496, 497, 0, 497, 0,
3137 497, 0, 497, 0, 0, 497, 497, 0, 497, 497,
3138 497, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3139 497, 0, 497, 0, 0, 0, 0, 0, 497, 497,
3140 497, 498, 498, 498, 498, 498, 498, 498, 498, 498,
3141
3142 498, 498, 498, 498, 498, 498, 498, 498, 499, 0,
3143 499, 0, 499, 0, 499, 0, 0, 499, 499, 0,
3144 499, 499, 499, 0, 0, 0, 0, 0, 0, 0,
3145 0, 0, 499, 0, 499, 0, 0, 0, 0, 0,
3146 499, 499, 499, 505, 0, 505, 0, 505, 0, 505,
3147 0, 0, 505, 505, 0, 505, 505, 505, 505, 505,
3148 505, 505, 505, 505, 505, 505, 0, 505, 0, 505,
3149 505, 505, 0, 0, 0, 505, 505, 505, 505, 505,
3150 505, 505, 505, 505, 505, 505, 505, 505, 505, 505,
3151 505, 505, 505, 505, 505, 506, 506, 506, 506, 506,
3152
3153 506, 506, 506, 515, 515, 0, 0, 0, 0, 0,
3154 0, 515, 515, 515, 515, 515, 515, 515, 515, 515,
3155 515, 515, 515, 515, 515, 515, 515, 515, 519, 0,
3156 519, 0, 519, 0, 519, 0, 0, 519, 519, 0,
3157 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
3158 519, 0, 519, 0, 519, 519, 519, 0, 0, 0,
3159 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
3160 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
3161 520, 0, 520, 0, 520, 0, 520, 0, 0, 520,
3162 520, 0, 520, 520, 520, 520, 520, 520, 520, 520,
3163
3164 520, 520, 0, 0, 520, 0, 520, 520, 520, 0,
3165 0, 0, 520, 520, 520, 520, 520, 520, 520, 520,
3166 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
3167 520, 520, 523, 0, 523, 0, 523, 0, 523, 0,
3168 0, 523, 523, 0, 523, 523, 523, 523, 523, 523,
3169 523, 523, 523, 523, 523, 0, 523, 0, 523, 523,
3170 523, 0, 0, 0, 523, 523, 523, 523, 523, 523,
3171 523, 523, 523, 523, 523, 523, 523, 523, 523, 523,
3172 523, 523, 523, 523, 527, 0, 527, 0, 527, 0,
3173 527, 0, 0, 527, 527, 0, 527, 527, 527, 527,
3174
3175 527, 527, 527, 527, 527, 527, 527, 0, 527, 0,
3176 527, 527, 527, 0, 0, 0, 527, 527, 527, 527,
3177 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
3178 527, 527, 527, 527, 527, 527, 531, 0, 531, 0,
3179 531, 0, 531, 0, 0, 531, 531, 0, 531, 531,
3180 531, 531, 531, 531, 531, 531, 531, 531, 531, 0,
3181 531, 0, 531, 531, 531, 0, 0, 0, 531, 531,
3182 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
3183 531, 531, 531, 531, 531, 531, 531, 531, 533, 0,
3184 533, 0, 533, 0, 533, 0, 0, 533, 533, 0,
3185
3186 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
3187 0, 0, 533, 0, 533, 533, 533, 0, 0, 0,
3188 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
3189 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
3190 534, 0, 534, 534, 534, 534, 534, 534, 534, 535,
3191 535, 535, 535, 535, 535, 535, 535, 535, 535, 535,
3192 535, 535, 535, 535, 535, 535, 535, 535, 535, 535,
3193 535, 535, 535, 535, 535, 535, 535, 535, 535, 535,
3194 535, 535, 535, 535, 535, 535, 535, 535, 535, 535,
3195 535, 535, 535, 535, 535, 535, 535, 535, 535, 535,
3196
3197 535, 537, 0, 537, 0, 0, 0, 0, 0, 0,
3198 0, 0, 0, 0, 0, 537, 537, 537, 537, 537,
3199 537, 537, 0, 0, 0, 0, 0, 0, 0, 0,
3200 0, 0, 0, 0, 0, 0, 0, 0, 537, 538,
3201 0, 538, 0, 0, 0, 0, 0, 0, 538, 0,
3202 538, 0, 0, 538, 538, 538, 538, 538, 538, 538,
3203 540, 0, 540, 0, 540, 0, 540, 0, 0, 540,
3204 540, 0, 540, 540, 0, 0, 0, 0, 0, 0,
3205 0, 0, 0, 0, 540, 0, 540, 0, 0, 0,
3206 0, 0, 540, 540, 540, 541, 0, 541, 0, 541,
3207
3208 0, 541, 0, 0, 541, 541, 0, 541, 541, 0,
3209 0, 0, 0, 0, 0, 0, 0, 0, 0, 541,
3210 0, 541, 0, 0, 0, 0, 0, 541, 541, 541,
3211 542, 0, 542, 0, 542, 0, 542, 0, 0, 542,
3212 542, 0, 542, 542, 0, 0, 0, 0, 0, 0,
3213 0, 0, 0, 0, 542, 0, 542, 0, 0, 0,
3214 0, 0, 542, 542, 542, 543, 0, 543, 0, 543,
3215 0, 543, 0, 0, 543, 543, 0, 543, 543, 543,
3216 0, 0, 0, 0, 0, 0, 0, 0, 0, 543,
3217 0, 543, 0, 0, 0, 0, 0, 543, 543, 543,
3218
3219 545, 0, 545, 545, 545, 545, 545, 545, 545, 0,
3220 0, 0, 0, 0, 0, 0, 0, 0, 0, 545,
3221 547, 0, 547, 0, 547, 0, 547, 0, 0, 547,
3222 547, 0, 547, 547, 547, 0, 0, 0, 0, 0,
3223 0, 0, 0, 0, 547, 0, 547, 0, 0, 0,
3224 0, 0, 547, 547, 547, 549, 549, 549, 549, 549,
3225 549, 549, 549, 549, 551, 0, 551, 551, 551, 551,
3226 551, 551, 551, 553, 0, 553, 0, 0, 0, 0,
3227 0, 0, 0, 0, 0, 553, 0, 553, 553, 553,
3228 553, 553, 553, 553, 0, 0, 0, 0, 0, 0,
3229
3230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3231 553, 554, 0, 554, 0, 0, 0, 0, 0, 0,
3232 554, 0, 554, 554, 0, 554, 554, 554, 554, 554,
3233 554, 554, 558, 0, 558, 0, 558, 0, 558, 0,
3234 0, 558, 558, 0, 558, 558, 558, 558, 558, 558,
3235 558, 558, 558, 558, 558, 0, 558, 0, 558, 558,
3236 558, 0, 0, 0, 558, 558, 558, 558, 558, 558,
3237 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
3238 558, 558, 558, 558, 559, 0, 559, 559, 559, 559,
3239 559, 559, 559, 559, 564, 0, 564, 0, 564, 0,
3240
3241 564, 0, 0, 564, 564, 0, 564, 564, 564, 0,
3242 0, 0, 0, 0, 0, 0, 0, 0, 564, 0,
3243 564, 0, 0, 0, 0, 0, 564, 564, 564, 565,
3244 0, 565, 0, 565, 0, 565, 0, 0, 565, 565,
3245 0, 565, 565, 565, 0, 0, 0, 0, 0, 0,
3246 0, 0, 0, 565, 0, 565, 0, 0, 0, 0,
3247 0, 565, 565, 565, 566, 566, 0, 0, 0, 0,
3248 0, 0, 566, 566, 566, 566, 566, 566, 566, 566,
3249 566, 566, 566, 566, 566, 566, 566, 566, 566, 567,
3250 0, 567, 0, 567, 0, 567, 0, 0, 567, 567,
3251
3252 0, 567, 567, 567, 0, 0, 0, 0, 0, 0,
3253 0, 0, 0, 567, 0, 567, 0, 0, 0, 0,
3254 0, 567, 567, 567, 568, 568, 568, 568, 568, 568,
3255 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
3256 568, 569, 0, 569, 0, 569, 0, 569, 0, 0,
3257 569, 569, 0, 569, 569, 569, 0, 0, 0, 0,
3258 0, 0, 0, 0, 0, 569, 0, 569, 0, 0,
3259 0, 0, 0, 569, 569, 569, 574, 0, 574, 0,
3260 574, 0, 574, 0, 0, 574, 574, 0, 574, 574,
3261 574, 574, 574, 574, 574, 574, 574, 574, 574, 0,
3262
3263 574, 0, 574, 574, 574, 0, 0, 0, 574, 574,
3264 574, 574, 574, 574, 574, 574, 574, 574, 574, 574,
3265 574, 574, 574, 574, 574, 574, 574, 574, 575, 0,
3266 0, 575, 575, 575, 575, 575, 575, 575, 575, 580,
3267 580, 0, 0, 0, 0, 0, 0, 580, 580, 580,
3268 580, 580, 580, 580, 580, 580, 580, 580, 580, 580,
3269 580, 580, 580, 580, 584, 0, 584, 0, 584, 0,
3270 584, 0, 0, 584, 584, 0, 584, 584, 584, 584,
3271 584, 584, 584, 584, 584, 584, 584, 0, 584, 0,
3272 584, 584, 584, 0, 0, 0, 584, 584, 584, 584,
3273
3274 584, 584, 584, 584, 584, 584, 584, 584, 584, 584,
3275 584, 584, 584, 584, 584, 584, 585, 0, 585, 0,
3276 585, 0, 585, 0, 0, 585, 585, 0, 585, 585,
3277 585, 585, 585, 585, 585, 585, 585, 585, 0, 0,
3278 585, 0, 585, 585, 585, 0, 0, 0, 585, 585,
3279 585, 585, 585, 585, 585, 585, 585, 585, 585, 585,
3280 585, 585, 585, 585, 585, 585, 585, 585, 589, 0,
3281 589, 0, 589, 0, 589, 0, 0, 589, 589, 0,
3282 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
3283 589, 0, 589, 0, 589, 589, 589, 0, 0, 0,
3284
3285 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
3286 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
3287 593, 0, 593, 0, 593, 0, 593, 0, 0, 593,
3288 593, 0, 593, 593, 593, 593, 593, 593, 593, 593,
3289 593, 593, 593, 0, 593, 0, 593, 593, 593, 0,
3290 0, 0, 593, 593, 593, 593, 593, 593, 593, 593,
3291 593, 593, 593, 593, 593, 593, 593, 593, 593, 593,
3292 593, 593, 597, 0, 597, 0, 597, 0, 597, 0,
3293 0, 597, 597, 0, 597, 597, 597, 597, 597, 597,
3294 597, 597, 597, 597, 597, 0, 597, 0, 597, 597,
3295
3296 597, 0, 0, 0, 597, 597, 597, 597, 597, 597,
3297 597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
3298 597, 597, 597, 597, 600, 0, 600, 0, 0, 0,
3299 0, 0, 0, 0, 0, 0, 0, 0, 600, 600,
3300 600, 600, 600, 600, 600, 0, 0, 0, 0, 0,
3301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3302 0, 600, 601, 0, 601, 0, 0, 0, 0, 0,
3303 0, 601, 0, 601, 0, 0, 601, 601, 601, 601,
3304 601, 601, 601, 603, 0, 603, 0, 603, 0, 603,
3305 0, 0, 603, 603, 0, 603, 603, 0, 0, 0,
3306
3307 0, 0, 0, 0, 0, 0, 0, 603, 0, 603,
3308 0, 0, 0, 0, 0, 603, 603, 603, 604, 0,
3309 604, 0, 604, 0, 604, 0, 0, 604, 604, 0,
3310 604, 604, 0, 0, 0, 0, 0, 0, 0, 0,
3311 0, 0, 604, 0, 604, 0, 0, 0, 0, 0,
3312 604, 604, 604, 605, 0, 605, 0, 605, 0, 605,
3313 0, 0, 605, 605, 0, 605, 605, 0, 0, 0,
3314 0, 0, 0, 0, 0, 0, 0, 605, 0, 605,
3315 0, 0, 0, 0, 0, 605, 605, 605, 606, 0,
3316 606, 0, 606, 0, 606, 0, 0, 606, 606, 0,
3317
3318 606, 606, 606, 0, 0, 0, 0, 0, 0, 0,
3319 0, 0, 606, 0, 606, 0, 0, 0, 0, 0,
3320 606, 606, 606, 607, 0, 607, 0, 607, 0, 607,
3321 0, 0, 607, 607, 0, 607, 607, 607, 0, 0,
3322 0, 0, 0, 0, 0, 0, 0, 607, 0, 607,
3323 0, 0, 0, 0, 0, 607, 607, 607, 608, 0,
3324 608, 608, 0, 608, 608, 608, 608, 608, 608, 608,
3325 0, 0, 0, 0, 608, 610, 610, 610, 610, 610,
3326 610, 610, 0, 0, 0, 0, 0, 0, 0, 0,
3327 0, 0, 610, 613, 613, 613, 613, 613, 613, 613,
3328
3329 613, 615, 0, 615, 615, 615, 615, 615, 615, 615,
3330 617, 0, 617, 0, 0, 0, 0, 0, 0, 0,
3331 0, 0, 617, 0, 617, 617, 617, 617, 617, 617,
3332 617, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3333 0, 0, 0, 0, 0, 0, 0, 617, 618, 0,
3334 618, 0, 0, 0, 0, 0, 0, 618, 0, 618,
3335 0, 0, 618, 618, 618, 618, 618, 618, 618, 622,
3336 0, 622, 0, 622, 0, 622, 0, 0, 622, 622,
3337 0, 622, 622, 622, 622, 622, 622, 622, 622, 622,
3338 622, 622, 0, 622, 0, 622, 622, 622, 0, 0,
3339
3340 0, 622, 622, 622, 622, 622, 622, 622, 622, 622,
3341 622, 622, 622, 622, 622, 622, 622, 622, 622, 622,
3342 622, 623, 0, 623, 623, 623, 623, 623, 623, 623,
3343 623, 630, 0, 630, 0, 630, 0, 630, 0, 0,
3344 630, 630, 0, 630, 630, 630, 0, 0, 0, 0,
3345 0, 0, 0, 0, 0, 630, 0, 630, 0, 0,
3346 0, 0, 0, 630, 630, 630, 631, 0, 631, 0,
3347 631, 0, 631, 0, 0, 631, 631, 0, 631, 631,
3348 631, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 631, 0, 631, 0, 0, 0, 0, 0, 631, 631,
3350
3351 631, 632, 0, 0, 0, 0, 0, 0, 0, 0,
3352 0, 0, 0, 0, 0, 632, 632, 0, 0, 0,
3353 0, 0, 0, 632, 632, 632, 632, 632, 632, 632,
3354 632, 632, 632, 632, 632, 632, 632, 632, 632, 632,
3355 633, 0, 633, 0, 633, 0, 633, 0, 0, 633,
3356 633, 0, 633, 633, 633, 0, 0, 0, 0, 0,
3357 0, 0, 0, 0, 633, 0, 633, 0, 0, 0,
3358 0, 0, 633, 633, 633, 634, 634, 634, 634, 634,
3359 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
3360 634, 634, 635, 0, 635, 0, 635, 0, 635, 0,
3361
3362 0, 635, 635, 0, 635, 635, 635, 0, 0, 0,
3363 0, 0, 0, 0, 0, 0, 635, 0, 635, 0,
3364 0, 0, 0, 0, 635, 635, 635, 637, 0, 637,
3365 0, 637, 0, 637, 0, 0, 637, 637, 0, 637,
3366 637, 637, 637, 637, 637, 637, 637, 637, 637, 637,
3367 0, 637, 0, 637, 637, 637, 0, 0, 0, 637,
3368 637, 637, 637, 637, 637, 637, 637, 637, 637, 637,
3369 637, 637, 637, 637, 637, 637, 637, 637, 637, 638,
3370 0, 0, 638, 638, 638, 638, 638, 638, 638, 638,
3371 646, 646, 646, 646, 646, 646, 646, 0, 0, 0,
3372
3373 0, 0, 646, 0, 0, 0, 0, 0, 0, 0,
3374 646, 646, 646, 646, 646, 650, 0, 650, 0, 650,
3375 0, 650, 0, 0, 650, 650, 0, 650, 650, 650,
3376 650, 650, 650, 650, 650, 650, 650, 650, 0, 650,
3377 0, 650, 650, 650, 0, 0, 0, 650, 650, 650,
3378 650, 650, 650, 650, 650, 650, 650, 650, 650, 650,
3379 650, 650, 650, 650, 650, 650, 650, 651, 651, 651,
3380 651, 651, 651, 651, 0, 0, 0, 0, 0, 651,
3381 0, 0, 0, 0, 0, 0, 0, 651, 651, 651,
3382 651, 651, 655, 0, 655, 0, 655, 0, 655, 0,
3383
3384 0, 655, 655, 0, 655, 655, 655, 655, 655, 655,
3385 655, 655, 655, 655, 655, 0, 655, 0, 655, 655,
3386 655, 0, 0, 0, 655, 655, 655, 655, 655, 655,
3387 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
3388 655, 655, 655, 655, 657, 0, 657, 0, 657, 0,
3389 657, 0, 0, 657, 657, 0, 657, 657, 657, 657,
3390 657, 657, 657, 657, 657, 657, 657, 0, 657, 0,
3391 657, 657, 657, 0, 0, 0, 657, 657, 657, 657,
3392 657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
3393 657, 657, 657, 657, 657, 657, 661, 0, 661, 0,
3394
3395 661, 0, 661, 0, 0, 661, 661, 0, 661, 661,
3396 661, 661, 661, 661, 661, 661, 661, 661, 661, 0,
3397 661, 0, 661, 661, 661, 0, 0, 0, 661, 661,
3398 661, 661, 661, 661, 661, 661, 661, 661, 661, 661,
3399 661, 661, 661, 661, 661, 661, 661, 661, 662, 0,
3400 662, 662, 662, 662, 662, 662, 662, 664, 0, 664,
3401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3402 0, 664, 664, 664, 664, 664, 664, 664, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3404 0, 0, 0, 0, 664, 665, 0, 665, 0, 0,
3405
3406 0, 0, 0, 0, 665, 0, 665, 0, 0, 665,
3407 665, 665, 665, 665, 665, 665, 667, 0, 667, 0,
3408 667, 0, 667, 0, 0, 667, 667, 0, 667, 667,
3409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3410 667, 0, 667, 0, 0, 0, 0, 0, 667, 667,
3411 667, 668, 0, 668, 0, 668, 0, 668, 0, 0,
3412 668, 668, 0, 668, 668, 0, 0, 0, 0, 0,
3413 0, 0, 0, 0, 0, 668, 0, 668, 0, 0,
3414 0, 0, 0, 668, 668, 668, 669, 0, 669, 0,
3415 669, 0, 669, 0, 0, 669, 669, 0, 669, 669,
3416
3417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3418 669, 0, 669, 0, 0, 0, 0, 0, 669, 669,
3419 669, 670, 0, 670, 0, 670, 0, 670, 0, 0,
3420 670, 670, 0, 670, 670, 670, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 670, 0, 670, 0, 0,
3422 0, 0, 0, 670, 670, 670, 671, 0, 671, 0,
3423 671, 0, 671, 0, 0, 671, 671, 0, 671, 671,
3424 671, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 671, 0, 671, 0, 0, 0, 0, 0, 671, 671,
3426 671, 673, 673, 0, 673, 673, 673, 673, 673, 673,
3427
3428 673, 0, 0, 0, 0, 673, 675, 0, 675, 675,
3429 675, 675, 675, 675, 675, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 675, 678, 678, 678, 678,
3431 678, 678, 678, 678, 678, 680, 0, 680, 680, 680,
3432 680, 680, 680, 680, 682, 0, 682, 0, 0, 0,
3433 0, 0, 0, 0, 0, 0, 682, 0, 682, 682,
3434 682, 682, 682, 682, 682, 0, 0, 0, 0, 0,
3435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3436 0, 682, 683, 0, 683, 0, 0, 0, 0, 0,
3437 0, 683, 0, 683, 683, 0, 683, 683, 683, 683,
3438
3439 683, 683, 683, 687, 0, 687, 0, 687, 0, 687,
3440 0, 0, 687, 687, 0, 687, 687, 687, 687, 687,
3441 687, 687, 687, 687, 687, 687, 0, 687, 0, 687,
3442 687, 687, 0, 0, 0, 687, 687, 687, 687, 687,
3443 687, 687, 687, 687, 687, 687, 687, 687, 687, 687,
3444 687, 687, 687, 687, 687, 688, 0, 688, 688, 688,
3445 688, 688, 688, 688, 688, 693, 0, 693, 0, 693,
3446 0, 693, 0, 0, 693, 693, 0, 693, 693, 693,
3447 0, 0, 0, 0, 0, 0, 0, 0, 0, 693,
3448 0, 693, 0, 0, 0, 0, 0, 693, 693, 693,
3449
3450 694, 0, 694, 0, 694, 0, 694, 0, 0, 694,
3451 694, 0, 694, 694, 694, 0, 0, 0, 0, 0,
3452 0, 0, 0, 0, 694, 0, 694, 0, 0, 0,
3453 0, 0, 694, 694, 694, 695, 695, 0, 0, 0,
3454 0, 0, 0, 695, 695, 695, 695, 695, 695, 695,
3455 695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
3456 696, 0, 696, 0, 696, 0, 696, 0, 0, 696,
3457 696, 0, 696, 696, 696, 0, 0, 0, 0, 0,
3458 0, 0, 0, 0, 696, 0, 696, 0, 0, 0,
3459 0, 0, 696, 696, 696, 697, 697, 697, 697, 697,
3460
3461 697, 697, 697, 697, 697, 697, 697, 697, 697, 697,
3462 697, 697, 699, 0, 699, 0, 699, 0, 699, 0,
3463 0, 699, 699, 0, 699, 699, 699, 699, 699, 699,
3464 699, 699, 699, 699, 699, 0, 699, 0, 699, 699,
3465 699, 0, 0, 0, 699, 699, 699, 699, 699, 699,
3466 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
3467 699, 699, 699, 699, 700, 0, 700, 0, 700, 0,
3468 700, 0, 0, 700, 700, 0, 700, 700, 700, 700,
3469 700, 700, 700, 700, 700, 700, 700, 0, 700, 0,
3470 700, 700, 700, 0, 0, 0, 700, 700, 700, 700,
3471
3472 700, 700, 700, 700, 700, 700, 700, 700, 700, 700,
3473 700, 700, 700, 700, 700, 700, 703, 703, 703, 703,
3474 703, 703, 703, 703, 703, 703, 703, 703, 703, 703,
3475 703, 703, 703, 704, 704, 704, 704, 704, 704, 704,
3476 0, 0, 0, 0, 0, 704, 0, 0, 0, 0,
3477 0, 0, 0, 704, 704, 704, 704, 704, 707, 707,
3478 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
3479 707, 707, 707, 707, 707, 709, 709, 709, 709, 709,
3480 709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
3481 709, 709, 712, 712, 712, 712, 712, 712, 712, 712,
3482
3483 712, 712, 712, 712, 712, 712, 712, 712, 712, 714,
3484 0, 714, 0, 0, 0, 0, 0, 0, 0, 0,
3485 0, 0, 0, 714, 714, 714, 714, 714, 714, 714,
3486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3487 0, 0, 0, 0, 0, 0, 714, 715, 0, 715,
3488 0, 0, 0, 0, 0, 0, 715, 0, 715, 0,
3489 0, 715, 715, 715, 715, 715, 715, 715, 717, 0,
3490 717, 0, 717, 0, 717, 0, 0, 717, 717, 0,
3491 717, 717, 0, 0, 0, 0, 0, 0, 0, 0,
3492 0, 0, 717, 0, 717, 0, 0, 0, 0, 0,
3493
3494 717, 717, 717, 718, 0, 718, 0, 718, 0, 718,
3495 0, 0, 718, 718, 0, 718, 718, 0, 0, 0,
3496 0, 0, 0, 0, 0, 0, 0, 718, 0, 718,
3497 0, 0, 0, 0, 0, 718, 718, 718, 719, 0,
3498 719, 0, 719, 0, 719, 0, 0, 719, 719, 0,
3499 719, 719, 0, 0, 0, 0, 0, 0, 0, 0,
3500 0, 0, 719, 0, 719, 0, 0, 0, 0, 0,
3501 719, 719, 719, 720, 0, 720, 0, 720, 0, 720,
3502 0, 0, 720, 720, 0, 720, 720, 720, 0, 0,
3503 0, 0, 0, 0, 0, 0, 0, 720, 0, 720,
3504
3505 0, 0, 0, 0, 0, 720, 720, 720, 721, 0,
3506 721, 0, 721, 0, 721, 0, 0, 721, 721, 0,
3507 721, 721, 721, 0, 0, 0, 0, 0, 0, 0,
3508 0, 0, 721, 0, 721, 0, 0, 0, 0, 0,
3509 721, 721, 721, 722, 0, 722, 722, 722, 722, 722,
3510 722, 722, 0, 0, 0, 0, 722, 724, 724, 724,
3511 724, 724, 724, 724, 0, 0, 0, 0, 0, 0,
3512 0, 0, 0, 0, 724, 727, 727, 727, 727, 727,
3513 727, 727, 727, 729, 0, 729, 729, 729, 729, 729,
3514 729, 729, 731, 0, 731, 0, 0, 0, 0, 0,
3515
3516 0, 0, 0, 0, 731, 0, 731, 731, 731, 731,
3517 731, 731, 731, 0, 0, 0, 0, 0, 0, 0,
3518 0, 0, 0, 0, 0, 0, 0, 0, 0, 731,
3519 732, 0, 732, 0, 0, 0, 0, 0, 0, 732,
3520 0, 732, 0, 0, 732, 732, 732, 732, 732, 732,
3521 732, 736, 0, 736, 0, 736, 0, 736, 0, 0,
3522 736, 736, 0, 736, 736, 736, 736, 736, 736, 736,
3523 736, 736, 736, 736, 0, 736, 0, 736, 736, 736,
3524 0, 0, 0, 736, 736, 736, 736, 736, 736, 736,
3525 736, 736, 736, 736, 736, 736, 736, 736, 736, 736,
3526
3527 736, 736, 736, 737, 0, 737, 737, 737, 737, 737,
3528 737, 737, 737, 744, 0, 744, 0, 744, 0, 744,
3529 0, 0, 744, 744, 0, 744, 744, 744, 0, 0,
3530 0, 0, 0, 0, 0, 0, 0, 744, 0, 744,
3531 0, 0, 0, 0, 0, 744, 744, 744, 745, 0,
3532 745, 0, 745, 0, 745, 0, 0, 745, 745, 0,
3533 745, 745, 745, 0, 0, 0, 0, 0, 0, 0,
3534 0, 0, 745, 0, 745, 0, 0, 0, 0, 0,
3535 745, 745, 745, 746, 0, 0, 0, 0, 0, 0,
3536 0, 0, 0, 0, 0, 0, 0, 746, 746, 0,
3537
3538 0, 0, 0, 0, 0, 746, 746, 746, 746, 746,
3539 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
3540 746, 746, 747, 0, 747, 0, 747, 0, 747, 0,
3541 0, 747, 747, 0, 747, 747, 747, 0, 0, 0,
3542 0, 0, 0, 0, 0, 0, 747, 0, 747, 0,
3543 0, 0, 0, 0, 747, 747, 747, 749, 749, 749,
3544 749, 749, 749, 749, 749, 749, 749, 749, 749, 749,
3545 749, 749, 749, 749, 750, 0, 750, 0, 750, 0,
3546 750, 0, 0, 750, 750, 0, 750, 750, 750, 750,
3547 750, 750, 750, 750, 750, 750, 750, 0, 750, 0,
3548
3549 750, 750, 750, 0, 0, 0, 750, 750, 750, 750,
3550 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
3551 750, 750, 750, 750, 750, 750, 753, 753, 753, 753,
3552 753, 753, 753, 753, 753, 753, 753, 753, 753, 753,
3553 753, 753, 753, 754, 754, 754, 754, 754, 754, 754,
3554 0, 0, 0, 0, 0, 754, 0, 0, 0, 0,
3555 0, 0, 0, 754, 754, 754, 754, 754, 757, 757,
3556 757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
3557 757, 757, 757, 757, 757, 758, 758, 758, 758, 758,
3558 758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
3559
3560 758, 758, 761, 761, 761, 761, 761, 761, 761, 761,
3561 761, 761, 761, 761, 761, 761, 761, 761, 761, 767,
3562 0, 767, 767, 767, 767, 767, 767, 767, 769, 0,
3563 769, 0, 769, 0, 769, 0, 0, 769, 769, 0,
3564 0, 769, 769, 0, 0, 0, 0, 0, 0, 0,
3565 0, 0, 769, 0, 769, 0, 0, 0, 0, 0,
3566 769, 0, 769, 770, 0, 770, 0, 770, 0, 770,
3567 0, 0, 770, 770, 0, 0, 770, 770, 0, 0,
3568 0, 0, 0, 0, 0, 0, 0, 770, 0, 770,
3569 0, 0, 0, 0, 0, 770, 0, 770, 773, 773,
3570
3571 773, 773, 773, 773, 773, 0, 0, 0, 0, 0,
3572 0, 0, 0, 0, 0, 773, 776, 776, 776, 776,
3573 776, 776, 776, 776, 776, 778, 0, 778, 778, 778,
3574 778, 778, 778, 778, 780, 0, 780, 0, 0, 0,
3575 0, 0, 0, 0, 0, 0, 780, 0, 780, 780,
3576 780, 780, 780, 780, 780, 0, 0, 0, 0, 0,
3577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3578 0, 780, 781, 0, 781, 0, 0, 0, 0, 0,
3579 0, 781, 0, 781, 781, 0, 781, 781, 781, 781,
3580 781, 781, 781, 785, 0, 785, 0, 785, 0, 785,
3581
3582 0, 0, 785, 785, 0, 785, 785, 785, 785, 785,
3583 785, 785, 785, 785, 785, 785, 0, 785, 0, 785,
3584 785, 785, 0, 0, 0, 785, 785, 785, 785, 785,
3585 785, 785, 785, 785, 785, 785, 785, 785, 785, 785,
3586 785, 785, 785, 785, 785, 786, 0, 786, 786, 786,
3587 786, 786, 786, 786, 786, 791, 0, 791, 0, 791,
3588 0, 791, 0, 0, 791, 791, 0, 791, 791, 791,
3589 0, 0, 0, 0, 0, 0, 0, 0, 0, 791,
3590 0, 791, 0, 0, 0, 0, 0, 791, 791, 791,
3591 792, 0, 792, 0, 792, 0, 792, 0, 0, 792,
3592
3593 792, 0, 792, 792, 792, 0, 0, 0, 0, 0,
3594 0, 0, 0, 0, 792, 0, 792, 0, 0, 0,
3595 0, 0, 792, 792, 792, 793, 793, 0, 0, 0,
3596 0, 0, 0, 793, 793, 793, 793, 793, 793, 793,
3597 793, 793, 793, 793, 793, 793, 793, 793, 793, 793,
3598 795, 795, 795, 795, 795, 795, 795, 795, 799, 799,
3599 799, 799, 799, 799, 799, 799, 799, 799, 799, 799,
3600 799, 799, 799, 799, 799, 800, 800, 800, 800, 800,
3601 800, 800, 0, 0, 0, 0, 0, 800, 0, 0,
3602 0, 0, 0, 0, 0, 800, 800, 800, 800, 800,
3603
3604 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
3605 804, 804, 804, 804, 804, 804, 804, 808, 808, 808,
3606 808, 808, 808, 808, 808, 808, 808, 808, 808, 808,
3607 808, 808, 808, 808, 828, 828, 828, 828, 828, 828,
3608 828, 828, 829, 829, 829, 829, 829, 829, 829, 829,
3609 829, 829, 829, 829, 829, 829, 829, 829, 829, 830,
3610 830, 830, 830, 830, 830, 830, 0, 0, 0, 0,
3611 0, 830, 0, 0, 0, 0, 0, 0, 0, 830,
3612 830, 830, 830, 830, 831, 831, 831, 831, 831, 831,
3613 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
3614
3615 831, 832, 832, 832, 832, 832, 832, 832, 832, 832,
3616 832, 832, 832, 832, 832, 832, 832, 832, 863, 863,
3617 863, 863, 863, 863, 863, 863, 863, 863, 863, 863,
3618 863, 863, 863, 863, 863, 864, 864, 864, 864, 864,
3619 864, 864, 864, 864, 864, 864, 864, 864, 864, 864,
3620 864, 864, 865, 865, 865, 865, 865, 865, 865, 865,
3621 865, 865, 865, 865, 865, 865, 865, 865, 865, 866,
3622 866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
3623 866, 866, 866, 866, 866, 866, 867, 867, 867, 867,
3624 867, 867, 867, 867, 867, 867, 867, 867, 867, 867,
3625
3626 867, 867, 867, 868, 868, 868, 868, 868, 868, 868,
3627 868, 868, 868, 868, 868, 868, 868, 868, 868, 868,
3628 869, 869, 0, 869, 869, 869, 869, 869, 869, 869,
3629 869, 869, 869, 869, 869, 869, 869, 870, 0, 0,
3630 870, 870, 0, 870, 870, 870, 870, 871, 871, 0,
3631 871, 0, 871, 871, 871, 871, 871, 871, 871, 871,
3632 871, 871, 871, 871, 872, 872, 872, 872, 872, 872,
3633 872, 872, 872, 872, 872, 872, 872, 872, 872, 872,
3634 872, 873, 873, 0, 873, 873, 873, 873, 873, 873,
3635 873, 873, 873, 873, 873, 873, 873, 873, 874, 874,
3636
3637 0, 874, 874, 874, 874, 874, 874, 874, 874, 874,
3638 874, 874, 874, 874, 874, 875, 875, 0, 875, 875,
3639 875, 875, 875, 875, 875, 875, 875, 875, 875, 875,
3640 875, 875, 876, 0, 0, 0, 876, 876, 876, 876,
3641 876, 876, 876, 876, 876, 876, 876, 876, 876, 877,
3642 877, 0, 877, 877, 877, 877, 877, 877, 877, 877,
3643 877, 877, 877, 877, 877, 877, 878, 0, 878, 0,
3644 0, 0, 878, 878, 878, 878, 878, 0, 878, 878,
3645 878, 878, 878, 879, 879, 0, 0, 0, 879, 879,
3646 879, 879, 879, 879, 879, 0, 879, 879, 879, 879,
3647
3648 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
3649 880, 880, 880, 880, 880, 880, 880, 881, 881, 881,
3650 0, 0, 881, 881, 0, 881, 882, 0, 882, 0,
3651 0, 0, 882, 882, 882, 882, 882, 0, 882, 882,
3652 882, 882, 882, 883, 883, 0, 883, 883, 883, 883,
3653 883, 883, 883, 883, 883, 883, 883, 883, 883, 883,
3654 884, 0, 884, 0, 0, 0, 884, 884, 0, 884,
3655 884, 0, 884, 884, 884, 884, 884, 885, 885, 885,
3656 885, 885, 885, 885, 885, 885, 885, 885, 885, 885,
3657 885, 885, 885, 885, 886, 886, 886, 0, 0, 886,
3658
3659 886, 0, 886, 887, 0, 887, 0, 0, 0, 887,
3660 887, 887, 887, 887, 0, 887, 887, 887, 887, 887,
3661 888, 0, 888, 0, 0, 0, 888, 888, 888, 888,
3662 888, 0, 888, 888, 888, 888, 888, 889, 889, 0,
3663 0, 889, 0, 0, 889, 890, 0, 890, 0, 0,
3664 0, 890, 890, 890, 890, 890, 0, 890, 890, 890,
3665 890, 890, 891, 891, 0, 891, 891, 891, 891, 891,
3666 891, 891, 891, 891, 891, 891, 891, 891, 891, 892,
3667 892, 892, 0, 0, 892, 892, 0, 892, 893, 0,
3668 893, 0, 0, 0, 893, 893, 893, 893, 893, 0,
3669
3670 893, 893, 893, 893, 893, 894, 0, 894, 0, 0,
3671 0, 894, 894, 894, 894, 894, 0, 894, 894, 894,
3672 894, 894, 895, 895, 895, 0, 895, 0, 0, 895,
3673 896, 0, 896, 0, 0, 0, 896, 896, 896, 896,
3674 896, 0, 896, 896, 896, 896, 896, 897, 0, 897,
3675 0, 0, 0, 897, 897, 897, 897, 897, 0, 897,
3676 897, 897, 897, 897, 898, 0, 898, 0, 0, 0,
3677 898, 898, 0, 898, 898, 0, 898, 898, 898, 898,
3678 898, 899, 0, 0, 899, 0, 0, 899, 899, 899,
3679 899, 900, 900, 900, 0, 0, 900, 900, 0, 900,
3680
3681 901, 0, 901, 0, 0, 901, 901, 0, 0, 901,
3682 902, 0, 902, 0, 0, 0, 902, 902, 902, 902,
3683 902, 0, 902, 902, 902, 902, 902, 903, 0, 903,
3684 0, 0, 0, 903, 903, 903, 903, 903, 0, 903,
3685 903, 903, 903, 903, 904, 904, 0, 904, 0, 0,
3686 904, 905, 905, 905, 0, 905, 0, 0, 905, 906,
3687 0, 0, 906, 0, 0, 906, 907, 0, 907, 0,
3688 0, 0, 907, 907, 907, 907, 907, 0, 907, 907,
3689 907, 907, 907, 908, 0, 908, 0, 0, 0, 908,
3690 908, 908, 908, 908, 0, 908, 908, 908, 908, 908,
3691
3692 909, 0, 909, 0, 0, 0, 909, 909, 909, 909,
3693 909, 909, 909, 909, 909, 909, 909, 910, 0, 910,
3694 0, 0, 0, 910, 910, 910, 910, 910, 0, 910,
3695 910, 910, 910, 910, 911, 0, 911, 0, 0, 0,
3696 911, 911, 911, 911, 911, 0, 911, 911, 911, 911,
3697 911, 912, 0, 912, 0, 0, 0, 912, 912, 912,
3698 912, 912, 0, 912, 912, 912, 912, 912, 913, 0,
3699 913, 0, 0, 0, 913, 913, 913, 913, 913, 0,
3700 913, 913, 913, 913, 913, 914, 914, 0, 914, 0,
3701 0, 914, 914, 914, 914, 915, 0, 915, 0, 0,
3702
3703 0, 915, 915, 915, 915, 915, 0, 915, 915, 915,
3704 915, 915, 916, 916, 916, 0, 0, 916, 916, 0,
3705 916, 917, 0, 917, 0, 0, 0, 917, 917, 917,
3706 917, 917, 0, 917, 917, 917, 917, 917, 918, 0,
3707 918, 0, 0, 0, 918, 918, 918, 918, 918, 0,
3708 918, 918, 918, 918, 918, 919, 919, 0, 919, 0,
3709 0, 919, 920, 920, 920, 0, 920, 0, 0, 920,
3710 921, 921, 921, 0, 921, 0, 0, 921, 922, 0,
3711 922, 0, 0, 0, 922, 922, 922, 922, 922, 0,
3712 922, 922, 922, 922, 922, 923, 0, 923, 0, 0,
3713
3714 0, 923, 923, 923, 923, 923, 0, 923, 923, 923,
3715 923, 923, 924, 0, 924, 0, 0, 0, 924, 924,
3716 924, 924, 924, 0, 924, 924, 924, 924, 924, 925,
3717 0, 0, 925, 0, 0, 925, 925, 925, 925, 926,
3718 926, 926, 0, 0, 926, 926, 0, 926, 927, 0,
3719 927, 0, 0, 0, 927, 927, 927, 927, 927, 0,
3720 927, 927, 927, 927, 927, 928, 0, 928, 0, 0,
3721 0, 928, 928, 928, 928, 928, 0, 928, 928, 928,
3722 928, 928, 930, 930, 0, 930, 0, 0, 930, 931,
3723 931, 0, 931, 0, 0, 931, 932, 932, 932, 0,
3724
3725 932, 0, 0, 932, 933, 0, 0, 933, 0, 0,
3726 933, 934, 0, 934, 0, 0, 0, 934, 934, 934,
3727 934, 934, 0, 934, 934, 934, 934, 934, 935, 0,
3728 935, 0, 0, 0, 935, 935, 935, 935, 935, 0,
3729 935, 935, 935, 935, 935, 937, 0, 937, 0, 0,
3730 0, 937, 937, 937, 937, 937, 0, 937, 937, 937,
3731 937, 937, 938, 0, 938, 0, 0, 0, 938, 938,
3732 938, 938, 938, 0, 938, 938, 938, 938, 938, 939,
3733 939, 0, 939, 0, 0, 939, 939, 939, 939, 940,
3734 940, 940, 0, 0, 940, 940, 0, 940, 941, 0,
3735
3736 941, 0, 0, 0, 941, 941, 941, 941, 941, 0,
3737 941, 941, 941, 941, 941, 942, 0, 942, 0, 0,
3738 0, 942, 942, 942, 942, 942, 0, 942, 942, 942,
3739 942, 942, 943, 943, 0, 943, 0, 0, 943, 944,
3740 944, 0, 944, 0, 0, 944, 945, 945, 945, 0,
3741 945, 0, 0, 945, 946, 946, 946, 0, 946, 0,
3742 0, 946, 947, 0, 947, 0, 0, 0, 947, 947,
3743 947, 947, 947, 0, 947, 947, 947, 947, 947, 948,
3744 0, 948, 0, 0, 0, 948, 948, 948, 948, 948,
3745 0, 948, 948, 948, 948, 948, 950, 0, 0, 950,
3746
3747 0, 0, 950, 950, 950, 950, 952, 0, 0, 952,
3748 0, 0, 952, 952, 952, 952, 953, 953, 953, 0,
3749 0, 953, 953, 0, 953, 954, 0, 954, 0, 0,
3750 0, 954, 954, 954, 954, 954, 0, 954, 954, 954,
3751 954, 954, 955, 0, 955, 0, 0, 0, 955, 955,
3752 955, 955, 955, 0, 955, 955, 955, 955, 955, 956,
3753 0, 956, 0, 0, 0, 956, 956, 956, 956, 956,
3754 0, 956, 956, 956, 956, 956, 957, 957, 0, 957,
3755 0, 0, 957, 958, 958, 0, 958, 0, 0, 958,
3756 959, 959, 959, 0, 959, 0, 0, 959, 960, 0,
3757
3758 0, 960, 0, 0, 960, 961, 0, 961, 0, 0,
3759 0, 961, 961, 961, 961, 961, 0, 961, 961, 961,
3760 961, 961, 962, 0, 962, 0, 0, 0, 962, 962,
3761 962, 962, 962, 0, 962, 962, 962, 962, 962, 963,
3762 0, 0, 963, 0, 0, 963, 963, 963, 963, 965,
3763 0, 0, 965, 0, 0, 965, 965, 965, 965, 966,
3764 0, 0, 966, 0, 0, 966, 966, 966, 966, 968,
3765 0, 0, 968, 0, 0, 968, 968, 968, 968, 969,
3766 969, 0, 969, 0, 0, 969, 969, 969, 969, 970,
3767 970, 970, 0, 0, 970, 970, 0, 970, 971, 0,
3768
3769 971, 0, 0, 0, 971, 971, 971, 971, 971, 0,
3770 971, 971, 971, 971, 971, 972, 0, 972, 0, 0,
3771 0, 972, 972, 972, 972, 972, 0, 972, 972, 972,
3772 972, 972, 973, 0, 973, 0, 0, 0, 973, 973,
3773 973, 973, 973, 0, 973, 973, 973, 973, 973, 974,
3774 0, 974, 0, 0, 0, 0, 0, 0, 974, 975,
3775 975, 0, 975, 0, 0, 975, 976, 976, 0, 976,
3776 0, 0, 976, 977, 977, 977, 0, 977, 0, 0,
3777 977, 978, 978, 978, 0, 978, 0, 0, 978, 979,
3778 0, 979, 0, 0, 0, 979, 979, 979, 979, 979,
3779
3780 0, 979, 979, 979, 979, 979, 980, 0, 980, 0,
3781 0, 0, 980, 980, 980, 980, 980, 0, 980, 980,
3782 980, 980, 980, 981, 0, 0, 981, 0, 0, 981,
3783 981, 981, 981, 982, 0, 0, 982, 0, 0, 982,
3784 982, 982, 982, 983, 0, 0, 983, 0, 0, 983,
3785 983, 983, 983, 984, 0, 0, 984, 0, 0, 984,
3786 984, 984, 984, 985, 0, 0, 985, 0, 0, 985,
3787 985, 985, 985, 986, 0, 0, 986, 0, 0, 986,
3788 986, 986, 986, 987, 987, 987, 0, 0, 987, 987,
3789 0, 987, 988, 0, 988, 0, 0, 0, 988, 988,
3790
3791 988, 988, 988, 0, 988, 988, 988, 988, 988, 989,
3792 0, 989, 0, 0, 0, 989, 989, 989, 989, 989,
3793 0, 989, 989, 989, 989, 989, 990, 0, 990, 0,
3794 0, 0, 990, 990, 990, 990, 990, 0, 990, 990,
3795 990, 990, 990, 991, 0, 991, 0, 0, 0, 991,
3796 991, 991, 991, 991, 0, 991, 991, 991, 991, 991,
3797 992, 992, 0, 992, 0, 0, 992, 993, 993, 0,
3798 993, 0, 0, 993, 994, 994, 994, 0, 994, 0,
3799 0, 994, 995, 0, 0, 995, 0, 0, 995, 996,
3800 0, 996, 0, 0, 0, 996, 996, 996, 996, 996,
3801
3802 0, 996, 996, 996, 996, 996, 997, 0, 997, 0,
3803 0, 0, 997, 997, 997, 997, 997, 0, 997, 997,
3804 997, 997, 997, 998, 0, 0, 998, 0, 0, 998,
3805 998, 998, 998, 999, 0, 0, 999, 0, 0, 999,
3806 999, 999, 999, 1000, 0, 0, 1000, 0, 0, 1000,
3807 1000, 1000, 1000, 1004, 1004, 0, 1004, 0, 0, 1004,
3808 1004, 1004, 1004, 1005, 1005, 1005, 0, 0, 1005, 1005,
3809 0, 1005, 1006, 0, 1006, 0, 0, 0, 1006, 1006,
3810 1006, 1006, 1006, 0, 1006, 1006, 1006, 1006, 1006, 1007,
3811 0, 1007, 0, 0, 0, 1007, 1007, 1007, 1007, 1007,
3812
3813 0, 1007, 1007, 1007, 1007, 1007, 1008, 0, 1008, 0,
3814 0, 0, 1008, 1008, 1008, 1008, 1008, 0, 1008, 1008,
3815 1008, 1008, 1008, 1009, 0, 1009, 0, 0, 0, 1009,
3816 1009, 1009, 1009, 1009, 0, 1009, 1009, 1009, 1009, 1009,
3817 1010, 1010, 0, 1010, 0, 0, 1010, 1011, 1011, 0,
3818 1011, 0, 0, 1011, 1012, 1012, 1012, 0, 1012, 0,
3819 0, 1012, 1013, 1013, 1013, 0, 1013, 0, 0, 1013,
3820 1014, 0, 1014, 0, 0, 0, 1014, 1014, 1014, 1014,
3821 1014, 0, 1014, 1014, 1014, 1014, 1014, 1015, 0, 1015,
3822 0, 0, 0, 1015, 1015, 1015, 1015, 1015, 0, 1015,
3823
3824 1015, 1015, 1015, 1015, 1016, 1016, 1016, 0, 0, 1016,
3825 1016, 0, 1016, 1017, 0, 1017, 0, 0, 0, 1017,
3826 1017, 1017, 1017, 1017, 0, 1017, 1017, 1017, 1017, 1017,
3827 1018, 0, 1018, 0, 0, 0, 1018, 1018, 1018, 1018,
3828 1018, 0, 1018, 1018, 1018, 1018, 1018, 1019, 0, 1019,
3829 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 1019,
3830 1019, 1019, 1019, 1019, 1020, 1020, 0, 1020, 0, 0,
3831 1020, 1021, 1021, 0, 1021, 0, 0, 1021, 1022, 1022,
3832 1022, 0, 1022, 0, 0, 1022, 1023, 0, 0, 1023,
3833 0, 0, 1023, 1024, 0, 1024, 0, 0, 0, 1024,
3834
3835 1024, 1024, 1024, 1024, 0, 1024, 1024, 1024, 1024, 1024,
3836 1025, 0, 1025, 0, 0, 0, 1025, 1025, 1025, 1025,
3837 1025, 0, 1025, 1025, 1025, 1025, 1025, 1026, 0, 0,
3838 1026, 0, 0, 1026, 1026, 1026, 1026, 1027, 0, 0,
3839 1027, 0, 0, 1027, 1027, 1027, 1027, 1028, 0, 0,
3840 1028, 0, 0, 1028, 1028, 1028, 1028, 1029, 0, 1029,
3841 0, 0, 0, 0, 0, 0, 1029, 0, 0, 0,
3842 0, 0, 1029, 1030, 0, 1030, 0, 0, 1030, 1030,
3843 0, 0, 1030, 1031, 0, 1031, 0, 0, 0, 1031,
3844 1031, 1031, 1031, 1031, 0, 1031, 1031, 1031, 1031, 1031,
3845
3846 1032, 0, 1032, 0, 0, 0, 1032, 1032, 1032, 1032,
3847 1032, 0, 1032, 1032, 1032, 1032, 1032, 1033, 1033, 0,
3848 1033, 0, 0, 1033, 1034, 1034, 0, 1034, 0, 0,
3849 1034, 1035, 1035, 1035, 0, 1035, 0, 0, 1035, 1036,
3850 1036, 1036, 0, 1036, 0, 0, 1036, 1037, 0, 1037,
3851 0, 0, 0, 1037, 1037, 1037, 1037, 1037, 0, 1037,
3852 1037, 1037, 1037, 1037, 1038, 1038, 0, 1038, 0, 0,
3853 1038, 1039, 1039, 0, 1039, 0, 0, 1039, 1040, 1040,
3854 1040, 0, 1040, 0, 0, 1040, 1041, 0, 0, 1041,
3855 0, 0, 1041, 1042, 1042, 0, 1042, 0, 0, 1042,
3856
3857 1043, 1043, 0, 0, 1043, 0, 0, 1043, 1044, 1044,
3858 1044, 0, 1044, 0, 0, 1044, 1045, 1045, 0, 0,
3859 1045, 0, 0, 1045, 1046, 1046, 0, 0, 1046, 0,
3860 0, 1046, 1047, 1047, 0, 0, 1047, 0, 0, 1047,
3861 1048, 1048, 0, 0, 1048, 0, 0, 1048, 1049, 1049,
3862 0, 0, 1049, 0, 0, 1049, 862, 862, 862, 862,
3863 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
3864 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
3865 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
3866 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
3867
3868 862, 862, 862, 862, 862, 862, 862, 862, 862
3869 } ;
3870
3871 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
3872 static char *yy_full_match;
3873 static int yy_lp;
3874 #define REJECT \
3875 { \
3876 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
3877 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
3878 ++yy_lp; \
3879 goto find_rule; \
3880 }
3881 #define yymore() yymore_used_but_not_detected
/* [<][>][^][v][top][bottom][index][help] */
3882 #define YY_MORE_ADJ 0
3883 #define YY_RESTORE_YY_MORE_OFFSET
3884 char *yytext;
3885 #line 1 "rpsl.l"
3886 #define INITIAL 0
3887 /*
3888 // $Id: rpsl.l.cc,v 1.5 2001/07/25 15:01:37 engin Exp $
3889 //
3890 // Copyright (c) 1994 by the University of Southern California
3891 // All rights reserved.
3892 //
3893 // Permission to use, copy, modify, and distribute this software and its
3894 // documentation in source and binary forms for lawful non-commercial
3895 // purposes and without fee is hereby granted, provided that the above
3896 // copyright notice appear in all copies and that both the copyright
3897 // notice and this permission notice appear in supporting documentation,
3898 // and that any documentation, advertising materials, and other materials
3899 // related to such distribution and use acknowledge that the software was
3900 // developed by the University of Southern California, Information
3901 // Sciences Institute. The name of the USC may not be used to endorse or
3902 // promote products derived from this software without specific prior
3903 // written permission.
3904 //
3905 // THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY
3906 // REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY
3907 // PURPOSE. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
3908 // IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
3909 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
3910 // TITLE, AND NON-INFRINGEMENT.
3911 //
3912 // IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
3913 // SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT, TORT,
3914 // OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH, THE USE
3915 // OR PERFORMANCE OF THIS SOFTWARE.
3916 //
3917 // Questions concerning this software should be directed to
3918 // ratoolset@isi.edu.
3919 //
3920 // Author(s): Cengiz Alaettinoglu <cengiz@ISI.EDU>
3921 */
3922 /* definitions */
3923 #define STRING 1
3924
3925 #define EXPECT_OPERATOR 2
3926
3927 #define FREETEXT 3
3928
3929 #define BLOBMODE 4
3930
3931 #define GENERICMODE 5
3932
3933 #define SKIP_OBJECT 6
3934
3935 #define POLICYMODE 7
3936
3937 /*%option nodefault /* */
3938 /*%option debug /* */
3939 #line 83 "rpsl.l"
3940 #include "config.h"
3941 #include <cstring>
3942 #include <cstdarg>
3943 #include <cstdio>
3944 #include <time.h>
3945
3946 #include "object.hh"
3947 #include "rpsl.y.hh"
3948 #include "schema.hh"
3949
3950 static int errorLine = 0;
3951 static int errorColon = 0;
3952 #define errorNewLine { errorLine++; errorColon = 0; }
3953
3954 static int scan_position = 0;
3955 static bool start_of_object = true;
3956 static bool genericMode = true;
3957 static int oldStart = 0;
3958
3959 Object *current_object;
3960 Attr *current_attribute;
3961 YY_BUFFER_STATE rpsl_buffer = (YY_BUFFER_STATE) NULL;
3962
3963 #define MAX_STR_CONST 1024
3964 #define LEXER_RETURN return
3965 #define YY_USER_ACTION { scan_position += yyleng; errorColon += yyleng; }
3966 #define YYLESS(n) {scan_position -= yyleng - n; errorColon -= yyleng - n; yyless(n); }
/* [<][>][^][v][top][bottom][index][help] */
3967 #define yylval rpsllval
3968 #define yy_scan_object rpsl_scan_object
3969 #define yyschema schema
3970
3971 extern void handle_error(char *, ...);
3972 extern void handle_warning(char *, ...);
3973 extern int validIPv6(const char *);
3974 extern int validIntForPhone(const char *);
3975
3976 extern "C" {
3977 extern void atollRA(...);
3978 }
3979 #line 3980 "lex.rpsl.c"
3980
3981 /* Macros after this point can all be overridden by user definitions in
3982 * section 1.
3983 */
3984
3985 #ifndef YY_SKIP_YYWRAP
3986 #ifdef __cplusplus
3987 extern "C" int yywrap YY_PROTO(( void ));
3988 #else
3989 extern int yywrap YY_PROTO(( void ));
3990 #endif
3991 #endif
3992
3993 #ifndef YY_NO_UNPUT
3994 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
3995 #endif
3996
3997 #ifndef yytext_ptr
3998 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
3999 #endif
4000
4001 #ifdef YY_NEED_STRLEN
4002 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
4003 #endif
4004
4005 #ifndef YY_NO_INPUT
4006 #ifdef __cplusplus
4007 static int yyinput YY_PROTO(( void ));
4008 #else
4009 static int input YY_PROTO(( void ));
4010 #endif
4011 #endif
4012
4013 #if YY_STACK_USED
4014 static int yy_start_stack_ptr = 0;
4015 static int yy_start_stack_depth = 0;
4016 static int *yy_start_stack = 0;
4017 #ifndef YY_NO_PUSH_STATE
4018 static void yy_push_state YY_PROTO(( int new_state ));
4019 #endif
4020 #ifndef YY_NO_POP_STATE
4021 static void yy_pop_state YY_PROTO(( void ));
4022 #endif
4023 #ifndef YY_NO_TOP_STATE
4024 static int yy_top_state YY_PROTO(( void ));
4025 #endif
4026
4027 #else
4028 #define YY_NO_PUSH_STATE 1
4029 #define YY_NO_POP_STATE 1
4030 #define YY_NO_TOP_STATE 1
4031 #endif
4032
4033 #ifdef YY_MALLOC_DECL
4034 YY_MALLOC_DECL
4035 #else
4036 #if __STDC__
4037 #ifndef __cplusplus
4038 #include <stdlib.h>
4039 #endif
4040 #else
4041 /* Just try to get by without declaring the routines. This will fail
4042 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
4043 * or sizeof(void*) != sizeof(int).
4044 */
4045 #endif
4046 #endif
4047
4048 /* Amount of stuff to slurp up with each read. */
4049 #ifndef YY_READ_BUF_SIZE
4050 #define YY_READ_BUF_SIZE 8192
4051 #endif
4052
4053 /* Copy whatever the last rule matched to the standard output. */
4054
4055 #ifndef ECHO
4056 /* This used to be an fputs(), but since the string might contain NUL's,
4057 * we now use fwrite().
4058 */
4059 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
4060 #endif
4061
4062 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
4063 * is returned in "result".
4064 */
4065 #ifndef YY_INPUT
4066 #define YY_INPUT(buf,result,max_size) \
/* [<][>][^][v][top][bottom][index][help] */
4067 if ( yy_current_buffer->yy_is_interactive ) \
4068 { \
4069 int c = '*', n; \
4070 for ( n = 0; n < max_size && \
4071 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
4072 buf[n] = (char) c; \
4073 if ( c == '\n' ) \
4074 buf[n++] = (char) c; \
4075 if ( c == EOF && ferror( yyin ) ) \
4076 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4077 result = n; \
4078 } \
4079 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
4080 && ferror( yyin ) ) \
4081 YY_FATAL_ERROR( "input in flex scanner failed" );
4082 #endif
4083
4084 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4085 * we don't want an extra ';' after the "return" because that will cause
4086 * some compilers to complain about unreachable statements.
4087 */
4088 #ifndef yyterminate
4089 #define yyterminate() return YY_NULL
/* [<][>][^][v][top][bottom][index][help] */
4090 #endif
4091
4092 /* Number of entries by which start-condition stack grows. */
4093 #ifndef YY_START_STACK_INCR
4094 #define YY_START_STACK_INCR 25
4095 #endif
4096
4097 /* Report a fatal error. */
4098 #ifndef YY_FATAL_ERROR
4099 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
/* [<][>][^][v][top][bottom][index][help] */
4100 #endif
4101
4102 /* Default declaration of generated scanner - a define so the user can
4103 * easily add parameters.
4104 */
4105 #ifndef YY_DECL
4106 #define YY_DECL int yylex YY_PROTO(( void ))
4107 #endif
4108
4109 /* Code executed at the beginning of each rule, after yytext and yyleng
4110 * have been set up.
4111 */
4112 #ifndef YY_USER_ACTION
4113 #define YY_USER_ACTION
4114 #endif
4115
4116 /* Code executed at the end of each rule. */
4117 #ifndef YY_BREAK
4118 #define YY_BREAK break;
4119 #endif
4120
4121 #define YY_RULE_SETUP \
4122 if ( yyleng > 0 ) \
4123 yy_current_buffer->yy_at_bol = \
4124 (yytext[yyleng - 1] == '\n'); \
4125 YY_USER_ACTION
4126
4127 YY_DECL
4128 {
4129 register yy_state_type yy_current_state;
4130 register char *yy_cp, *yy_bp;
4131 register int yy_act;
4132
4133 #line 124 "rpsl.l"
4134
4135
4136 /* this code is copied to beginning of yylex */
4137 static char string_buf[MAX_STR_CONST];
4138 char *string_buf_ptr;
4139
4140
4141 #line 4142 "lex.rpsl.c"
4142
4143 if ( yy_init )
4144 {
4145 yy_init = 0;
4146
4147 #ifdef YY_USER_INIT
4148 YY_USER_INIT;
4149 #endif
4150
4151 if ( ! yy_start )
4152 yy_start = 1; /* first start state */
4153
4154 if ( ! yyin )
4155 yyin = stdin;
4156
4157 if ( ! yyout )
4158 yyout = stdout;
4159
4160 if ( ! yy_current_buffer )
4161 yy_current_buffer =
4162 yy_create_buffer( yyin, YY_BUF_SIZE );
4163
4164 yy_load_buffer_state();
4165 }
4166
4167 while ( 1 ) /* loops until end-of-file is reached */
4168 {
4169 yy_cp = yy_c_buf_p;
4170
4171 /* Support of yytext. */
4172 *yy_cp = yy_hold_char;
4173
4174 /* yy_bp points to the position in yy_ch_buf of the start of
4175 * the current run.
4176 */
4177 yy_bp = yy_cp;
4178
4179 yy_current_state = yy_start;
4180 yy_current_state += YY_AT_BOL();
4181 yy_state_ptr = yy_state_buf;
4182 *yy_state_ptr++ = yy_current_state;
4183 yy_match:
4184 do
4185 {
4186 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4187 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4188 {
4189 yy_current_state = (int) yy_def[yy_current_state];
4190 if ( yy_current_state >= 863 )
4191 yy_c = yy_meta[(unsigned int) yy_c];
4192 }
4193 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4194 *yy_state_ptr++ = yy_current_state;
4195 ++yy_cp;
4196 }
4197 while ( yy_base[yy_current_state] != 13957 );
4198
4199 yy_find_action:
4200 yy_current_state = *--yy_state_ptr;
4201 yy_lp = yy_accept[yy_current_state];
4202 find_rule: /* we branch to this label when backing up */
4203 for ( ; ; ) /* until we find what rule we matched */
4204 {
4205 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
4206 {
4207 yy_act = yy_acclist[yy_lp];
4208 {
4209 yy_full_match = yy_cp;
4210 break;
4211 }
4212 }
4213 --yy_cp;
4214 yy_current_state = *--yy_state_ptr;
4215 yy_lp = yy_accept[yy_current_state];
4216 }
4217
4218 YY_DO_BEFORE_ACTION;
4219
4220
4221 do_action: /* This label is used only to access EOF actions. */
4222
4223
4224 switch ( yy_act )
4225 { /* beginning of action switch */
4226 case 1:
4227 YY_RULE_SETUP
4228 #line 131 "rpsl.l"
4229 { //
4230 errorLine = 0;
4231 errorColon = yyleng;
4232
4233 *(yytext + yyleng - 1) = 0; // remove ':'
4234
4235 yylval.attr = new Attr;
4236 yylval.attr->offset = scan_position - yyleng;
4237 current_attribute = yylval.attr;
4238
4239 if (start_of_object) {
4240 start_of_object = false;
4241 current_object->type = yyschema.searchClass(yytext);
4242 if (!current_object->type) {
4243 handle_error("Error: unknown class \"%s\"\n", yytext);
4244 yylval.attr->type = NULL;
4245 //(*current_object) += yylval.attr;
4246 BEGIN(SKIP_OBJECT);
4247 LEXER_RETURN(TKN_UNKNOWN_CLASS);
4248 }
4249 }
4250
4251 yylval.attr->type = current_object->type->searchAttr(yytext);
4252 yylval.attr->object = current_object;
4253
4254 // (*current_object) += yylval.attr;
4255
4256 if (! yylval.attr->type) {
4257 if (! schema.isForgiving())
4258 handle_error("Error: unknown attribute %s of class %s\n",
4259 yytext, current_object->type->name);
4260 BEGIN(FREETEXT);
4261 LEXER_RETURN(ATTR_FREETEXT);
4262 }
4263
4264 if (yylval.attr->type->isObsolete())
4265 handle_warning("Warning: attribute %s of class %s is now obsolete\n",
4266 yytext, current_object->type->name);
4267
4268 if (!yylval.attr->type->shouldParse()) { // may be free text?
4269 BEGIN(FREETEXT);
4270 LEXER_RETURN(ATTR_FREETEXT);
4271 } else {
4272 if (yylval.attr->type->syntax() == ATTR_GENERIC) {
4273 genericMode = true;
4274 BEGIN(GENERICMODE);
4275 } else if (yylval.attr->type->syntax() == ATTR_BLOBS) {
4276 genericMode = true;
4277 BEGIN(BLOBMODE);
4278 } else {
4279 genericMode = false;
4280 BEGIN(POLICYMODE);
4281 }
4282 LEXER_RETURN(yylval.attr->type->syntax());
4283 }
4284 }
4285 YY_BREAK
4286 case 2:
4287 YY_RULE_SETUP
4288 #line 188 "rpsl.l"
4289 {
4290 if (current_attribute)
4291 current_attribute->len = scan_position - current_attribute->offset;
4292 LEXER_RETURN(TKN_EOO);
4293 }
4294 YY_BREAK
4295 case YY_STATE_EOF(INITIAL):
4296 case YY_STATE_EOF(STRING):
4297 case YY_STATE_EOF(EXPECT_OPERATOR):
4298 case YY_STATE_EOF(FREETEXT):
4299 case YY_STATE_EOF(BLOBMODE):
4300 case YY_STATE_EOF(GENERICMODE):
4301 case YY_STATE_EOF(SKIP_OBJECT):
4302 case YY_STATE_EOF(POLICYMODE):
4303 #line 194 "rpsl.l"
4304 {
4305 yy_delete_buffer(rpsl_buffer);
4306 rpsl_buffer = (YY_BUFFER_STATE) NULL;
4307 if (current_attribute)
4308 current_attribute->len = scan_position - current_attribute->offset;
4309 BEGIN(INITIAL);
4310 yyterminate();
4311 }
4312 YY_BREAK
4313 case 3:
4314 YY_RULE_SETUP
4315 #line 203 "rpsl.l"
4316
4317 YY_BREAK
4318 case 4:
4319 YY_RULE_SETUP
4320 #line 205 "rpsl.l"
4321 { // not a valid line
4322 current_attribute = NULL;
4323 handle_error("Error: valid lines start with an attribute name, space, tab, or plus sign (+)\n");
4324 BEGIN(FREETEXT);
4325 LEXER_RETURN(TKN_ERROR);
4326 }
4327 YY_BREAK
4328
4329 case 5:
4330 YY_RULE_SETUP
4331 #line 213 "rpsl.l"
4332 {
4333 BEGIN(INITIAL);
4334 if (current_attribute)
4335 current_attribute->len = scan_position - current_attribute->offset;
4336 LEXER_RETURN(TKN_EOO);
4337 }
4338 YY_BREAK
4339 case 6:
4340 YY_RULE_SETUP
4341 #line 219 "rpsl.l"
4342 errorNewLine;
4343 YY_BREAK
4344 case 7:
4345 YY_RULE_SETUP
4346 #line 220 "rpsl.l"
4347 ;
4348 YY_BREAK
4349
4350
4351 case 8:
4352 YY_RULE_SETUP
4353 #line 224 "rpsl.l"
4354 errorNewLine; errorColon++; // line continuation with +
4355 YY_BREAK
4356 case 9:
4357 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
4358 yy_c_buf_p = yy_cp = yy_bp + 1;
4359 YY_DO_BEFORE_ACTION; /* set up yytext again */
4360 YY_RULE_SETUP
4361 #line 225 "rpsl.l"
4362 errorNewLine; // line continuation with space or comment
4363 YY_BREAK
4364 case 10:
4365 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
4366 yy_c_buf_p = yy_cp = yy_bp + 1;
4367 YY_DO_BEFORE_ACTION; /* set up yytext again */
4368 YY_RULE_SETUP
4369 #line 226 "rpsl.l"
4370 { // end of attribute and may be end of object too
4371 BEGIN(INITIAL);
4372 if (current_attribute)
4373 current_attribute->len = scan_position - current_attribute->offset;
4374 LEXER_RETURN(TKN_EOA);
4375 }
4376 YY_BREAK
4377 case 11:
4378 YY_RULE_SETUP
4379 #line 232 "rpsl.l"
4380 ; // skip white space
4381 YY_BREAK
4382 case 12:
4383 YY_RULE_SETUP
4384 #line 233 "rpsl.l"
4385 ; // skip comment
4386 YY_BREAK
4387
4388 // dont parse anything, keep going till EOA
4389 case 13:
4390 YY_RULE_SETUP
4391 #line 237 "rpsl.l"
4392 ; // this rule needs to be after \n rules
4393 YY_BREAK
4394
4395
4396 case 14:
4397 YY_RULE_SETUP
4398 #line 241 "rpsl.l"
4399 {
4400 yylval.string = strdup(yytext);
4401 LEXER_RETURN(TKN_BLOB);
4402 }
4403 YY_BREAK
4404
4405
4406 case 15:
4407 YY_RULE_SETUP
4408 #line 248 "rpsl.l"
4409 {
4410 tm ts;
4411 bzero((char *) &ts, sizeof(ts));
4412
4413 int date, zone_hours, zone_mins;
4414 sscanf(yytext, "%d %d:%d:%d %d:%d",
4415 &date,
4416 &ts.tm_hour, &ts.tm_min, &ts.tm_sec,
4417 &zone_hours, &zone_mins);
4418
4419 ts.tm_mday = date % 100; date /= 100;
4420 ts.tm_mon = date % 100 - 1; date /= 100;
4421 ts.tm_year = date - 1900;
4422
4423 if (ts.tm_mday > 31) {
4424 handle_error("Error: Invalid day %d\n", ts.tm_mday);
4425 LEXER_RETURN(TKN_ERROR);
4426 }
4427 if (ts.tm_mon > 11) {
4428 handle_error("Error: Invalid month %d\n", ts.tm_mon);
4429 LEXER_RETURN(TKN_ERROR);
4430 }
4431 if (ts.tm_year < 70) {
4432 handle_error("Error: Invalid year %d\n", ts.tm_year);
4433 LEXER_RETURN(TKN_ERROR);
4434 }
4435 if (ts.tm_sec > 59) {
4436 handle_error("Error: Invalid sec %d\n", ts.tm_sec);
4437 LEXER_RETURN(TKN_ERROR);
4438 }
4439 if (ts.tm_min > 59) {
4440 handle_error("Error: Invalid min %d\n", ts.tm_min);
4441 LEXER_RETURN(TKN_ERROR);
4442 }
4443 if (ts.tm_hour > 23) {
4444 handle_error("Error: Invalid hour %d\n", ts.tm_hour);
4445 LEXER_RETURN(TKN_ERROR);
4446 }
4447 if (zone_mins > 59) {
4448 handle_error("Error: Invalid zone min %d\n", zone_mins);
4449 LEXER_RETURN(TKN_ERROR);
4450 }
4451 if (zone_hours > 23) {
4452 handle_error("Error: Invalid zone hour %d\n", zone_hours);
4453 LEXER_RETURN(TKN_ERROR);
4454 }
4455
4456 // this fiddling with TZ is necessary for mktime to use utc as timezone
4457 // it sucks, there's got to be a better way
4458 time_t result = (time_t) mktime(&ts);
4459 result -= (time_t) timezone;
4460 /*
4461 char *TZ=getenv("TZ");
4462 if (TZ)
4463 TZ = strdup(TZ);
4464 setenv("TZ", "", 1);
4465 time_t result = mktime(&ts);
4466 if (TZ) {
4467 setenv("TZ", TZ, 1);
4468 free(TZ);
4469 } else
4470 unsetenv("TZ");
4471 */
4472 if (zone_hours < 0)
4473 zone_mins *= -1;
4474
4475 result += zone_mins * 60 + zone_hours * 60 * 60;
4476
4477 yylval.time = result;
4478 LEXER_RETURN(TKN_TIMESTAMP);
4479 }
4480 YY_BREAK
4481
4482
4483 case 16:
4484 YY_RULE_SETUP
4485 #line 323 "rpsl.l"
4486 {
4487 if(current_attribute->type->syntax() == ATTR_AUTH){
4488 yylval.string = strdup(yytext);
4489 LEXER_RETURN(TKN_CRYPTEDPW);
4490 }else{
4491 scan_position -= yyleng; errorColon -= yyleng;
4492 REJECT;
4493 }
4494 }
4495 YY_BREAK
4496 case 17:
4497 YY_RULE_SETUP
4498 #line 333 "rpsl.l"
4499 {
4500 // The following code causes problem on Solaris since long long int
4501 // is not standardized yet
4502 // sscanf(yytext, "%Ld", &(yylval.i));
4503 if(current_attribute->type->syntax() == ATTR_PHONE){
4504 if(validIntForPhone(yytext)){
4505 atollRA(yytext, &yylval.i);
4506 LEXER_RETURN(TKN_INT);
4507 }else{
4508 scan_position -= yyleng; errorColon -= yyleng;
4509 REJECT;
4510 }
4511 }else{
4512 atollRA(yytext, &yylval.i);
4513 LEXER_RETURN(TKN_INT);
4514 }
4515 /* atollRA(yytext, &yylval.i);
4516 LEXER_RETURN(TKN_INT);*/
4517 }
4518 YY_BREAK
4519 case 18:
4520 YY_RULE_SETUP
4521 #line 353 "rpsl.l"
4522 {
4523 unsigned int ms, ls;
4524 char *colon = strchr(yytext, ':');
4525 *colon = 0;
4526 ms = atoi(yytext);
4527 ls = atoi(colon+1);
4528 if (ms > 65535 || ls > 65535)
4529 LEXER_RETURN(TKN_ERROR);
4530
4531 yylval.i = (ms << 16) + ls;
4532 LEXER_RETURN(TKN_INT);
4533 }
4534 YY_BREAK
4535 case 19:
4536 YY_RULE_SETUP
4537 #line 366 "rpsl.l"
4538 {
4539 yylval.real = atof(yytext);
4540 LEXER_RETURN(TKN_REAL);
4541 }
4542 YY_BREAK
4543 case 20:
4544 YY_RULE_SETUP
4545 #line 371 "rpsl.l"
4546 {
4547 string_buf_ptr = string_buf;
4548 oldStart = YY_START;
4549 BEGIN(STRING);
4550 }
4551 YY_BREAK
4552 case 21:
4553 YY_RULE_SETUP
4554 #line 377 "rpsl.l"
4555 {
4556 yylval.ip = new IPAddr(yytext);
4557 LEXER_RETURN(TKN_IPV4);
4558 }
4559 YY_BREAK
4560 case 22:
4561 YY_RULE_SETUP
4562 #line 382 "rpsl.l"
4563 {
4564 yylval.string = strdup(yytext);
4565 LEXER_RETURN(TKN_PRFXV6);
4566 }
4567 YY_BREAK
4568 case 23:
4569 YY_RULE_SETUP
4570 #line 387 "rpsl.l"
4571 {
4572 yylval.string = strdup(yytext);
4573 if(validIPv6(yylval.string)){
4574 LEXER_RETURN(TKN_PRFXV6);
4575 }else{
4576 handle_error("Error: Invalid IPv6 prefix\n");
4577 BEGIN(FREETEXT);
4578 LEXER_RETURN(TKN_ERROR);
4579 }
4580 }
4581 YY_BREAK
4582 case 24:
4583 YY_RULE_SETUP
4584 #line 398 "rpsl.l"
4585 {
4586 yylval.prfx = new Prefix(yytext);
4587 LEXER_RETURN(TKN_PRFXV4);
4588 }
4589 YY_BREAK
4590 case 25:
4591 YY_RULE_SETUP
4592 #line 403 "rpsl.l"
4593 {
4594 yylval.prfxrng = new PrefixRange(yytext);
4595 LEXER_RETURN(TKN_PRFXV4RNG);
4596 }
4597 YY_BREAK
4598 case 26:
4599 YY_RULE_SETUP
4600 #line 408 "rpsl.l"
4601 {
4602 /*printf("DEBUG: lexer: matched a nichdl candidate (%s)\n",yytext);*/
4603 if(current_attribute->type->syntax() != ATTR_NICHDL){
4604 /*printf("DEBUG: lexer: This is not a nichdl attribute, rejecting\n");*/
4605 scan_position -= yyleng; errorColon -= yyleng;
4606 REJECT;
4607 }else{
4608 yylval.string = strdup(yytext);
4609 LEXER_RETURN(TKN_NICHDL);
4610 }
4611 }
4612 YY_BREAK
4613 /* The order of these rules are important */
4614 case 27:
4615 YY_RULE_SETUP
4616 #line 422 "rpsl.l"
4617 {
4618 yylval.i = atoi(yytext+2);
4619 LEXER_RETURN(TKN_ASNO);
4620 }
4621 YY_BREAK
4622 case 28:
4623 YY_RULE_SETUP
4624 #line 427 "rpsl.l"
4625 {
4626 yylval.sid = symbols.symID(yytext);
4627 LEXER_RETURN(TKN_ASNAME);
4628 }
4629 YY_BREAK
4630 case 29:
4631 YY_RULE_SETUP
4632 #line 432 "rpsl.l"
4633 {
4634 yylval.sid = symbols.symID(yytext);
4635 LEXER_RETURN(TKN_RSNAME);
4636 }
4637 YY_BREAK
4638 case 30:
4639 YY_RULE_SETUP
4640 #line 437 "rpsl.l"
4641 {
4642 yylval.sid = symbols.symID(yytext);
4643 LEXER_RETURN(TKN_RTRSNAME);
4644 }
4645 YY_BREAK
4646 case 31:
4647 YY_RULE_SETUP
4648 #line 442 "rpsl.l"
4649 {
4650 yylval.sid = symbols.symID(yytext);
4651 LEXER_RETURN(TKN_PRNGNAME);
4652 }
4653 YY_BREAK
4654 case 32:
4655 YY_RULE_SETUP
4656 #line 447 "rpsl.l"
4657 {
4658 yylval.sid = symbols.symID(yytext);
4659 LEXER_RETURN(TKN_FLTRNAME);
4660 }
4661 YY_BREAK
4662 case 33:
4663 YY_RULE_SETUP
4664 #line 452 "rpsl.l"
4665 {
4666 yylval.i = 1;
4667 LEXER_RETURN(TKN_BOOLEAN);
4668 }
4669 YY_BREAK
4670 case 34:
4671 YY_RULE_SETUP
4672 #line 457 "rpsl.l"
4673 {
4674 yylval.i = 0;
4675 LEXER_RETURN(TKN_BOOLEAN);
4676 }
4677 YY_BREAK
4678 case 35:
4679 YY_RULE_SETUP
4680 #line 462 "rpsl.l"
4681 { /* keycert name */
4682 yylval.string = strdup(yytext);
4683 LEXER_RETURN(TKN_KEYCRTNAME);
4684 }
4685 YY_BREAK
4686 case 36:
4687 YY_RULE_SETUP
4688 #line 468 "rpsl.l"
4689 { /* reserved word or rp-attribute, or arbitrary name */
4690 if (!genericMode) {
4691 oldStart = YY_START;
4692
4693 int index;
4694 if ((index = yyschema.searchKeyword(yytext)) >= 0) {
4695 if (index == KEYW_OPERATOR)
4696 BEGIN(EXPECT_OPERATOR);
4697 LEXER_RETURN(index);
4698 }
4699
4700 if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4701 BEGIN(EXPECT_OPERATOR);
4702 LEXER_RETURN(TKN_RP_ATTR);
4703 }
4704 }
4705
4706 yylval.string = strdup(yytext);
4707 LEXER_RETURN(TKN_WORD);
4708 }
4709 YY_BREAK
4710 case 37:
4711 YY_RULE_SETUP
4712 #line 489 "rpsl.l"
4713 { /* rp-attribute.method or DNS name */
4714 if (!genericMode) {
4715 char *p = strchr(yytext, '.');
4716 *p = 0;
4717
4718 if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4719 *p = '.';
4720 YYLESS((p - yytext));
4721 LEXER_RETURN(TKN_RP_ATTR);
4722 }
4723
4724 *p = '.';
4725 }
4726
4727 yylval.sid = symbols.symID(yytext);
4728 LEXER_RETURN(TKN_DNS);
4729 }
4730 YY_BREAK
4731 case 38:
4732 YY_RULE_SETUP
4733 #line 507 "rpsl.l"
4734 { /* DNS name */
4735 yylval.sid = symbols.symID(yytext);
4736 LEXER_RETURN(TKN_DNS);
4737 }
4738 YY_BREAK
4739 case 39:
4740 YY_RULE_SETUP
4741 #line 512 "rpsl.l"
4742 { /* email */
4743 yylval.string = strdup(yytext);
4744 LEXER_RETURN(TKN_EMAIL);
4745 }
4746 YY_BREAK
4747 case 40:
4748 YY_RULE_SETUP
4749 #line 519 "rpsl.l"
4750 {
4751 if (*yytext <= 0) {
4752 handle_error("Error: Non-ASCII character encountered\n");
4753 LEXER_RETURN(TKN_ERROR);
4754 } else
4755 LEXER_RETURN(*yytext);
4756 }
4757 YY_BREAK
4758
4759
4760 case 41:
4761 YY_RULE_SETUP
4762 #line 529 "rpsl.l"
4763 {
4764 yylval.moreSpecOp = new FilterMS(0);
4765 LEXER_RETURN(OP_MS);
4766 }
4767 YY_BREAK
4768 case 42:
4769 YY_RULE_SETUP
4770 #line 534 "rpsl.l"
4771 {
4772 yylval.moreSpecOp = new FilterMS(1);
4773 LEXER_RETURN(OP_MS);
4774 }
4775 YY_BREAK
4776 case 43:
4777 YY_RULE_SETUP
4778 #line 539 "rpsl.l"
4779 {
4780 int i;
4781 sscanf(yytext, "^%d", &i);
4782 yylval.moreSpecOp = new FilterMS(2, i, i);
4783 LEXER_RETURN(OP_MS);
4784 }
4785 YY_BREAK
4786 case 44:
4787 YY_RULE_SETUP
4788 #line 546 "rpsl.l"
4789 {
4790 int i, j;
4791 sscanf(yytext, "^%d-%d", &i, &j);
4792 yylval.moreSpecOp = new FilterMS(2, i, j);
4793 LEXER_RETURN(OP_MS);
4794 }
4795 YY_BREAK
4796 case 45:
4797 YY_RULE_SETUP
4798 #line 553 "rpsl.l"
4799 LEXER_RETURN(TKN_3DOTS);
4800 YY_BREAK
4801
4802
4803 case 46:
4804 YY_RULE_SETUP
4805 #line 557 "rpsl.l"
4806 {
4807 yylval.string = strdup(yytext);
4808 BEGIN(oldStart);
4809 LEXER_RETURN(TKN_OPERATOR);
4810 }
4811 YY_BREAK
4812 case 47:
4813 YY_RULE_SETUP
4814 #line 563 "rpsl.l"
4815 {
4816 YYLESS(0);
4817 BEGIN(oldStart);
4818 }
4819 YY_BREAK
4820
4821
4822 case 48:
4823 YY_RULE_SETUP
4824 #line 570 "rpsl.l"
4825 { /* saw closing quote - all done */
4826 BEGIN(oldStart);
4827 *string_buf_ptr = '\0';
4828 yylval.string = strdup(string_buf);
4829 LEXER_RETURN(TKN_STRING);
4830 }
4831 YY_BREAK
4832 case 49:
4833 YY_RULE_SETUP
4834 #line 577 "rpsl.l"
4835 {
4836 errorNewLine;
4837 handle_error("Error: unterminated string encountered\n");
4838 BEGIN(oldStart);
4839 if (current_attribute)
4840 current_attribute->len = scan_position - current_attribute->offset;
4841 LEXER_RETURN(TKN_EOA);
4842 }
4843 YY_BREAK
4844 case 50:
4845 YY_RULE_SETUP
4846 #line 586 "rpsl.l"
4847 {
4848 /* octal escape sequence */
4849 int result;
4850
4851 (void) sscanf( yytext + 1, "%o", &result );
4852
4853 if ( result > 0xff ) {
4854 handle_error("Error: octal escape sequence is out of bounds\n");
4855 BEGIN(oldStart);
4856 LEXER_RETURN(TKN_ERROR);
4857 }
4858
4859 *string_buf_ptr++ = result;
4860 }
4861 YY_BREAK
4862 case 51:
4863 YY_RULE_SETUP
4864 #line 601 "rpsl.l"
4865 { /* like '\48' or '\0777777' */
4866 handle_error("Error: bad octal escape sequence\n");
4867 BEGIN(oldStart);
4868 LEXER_RETURN(TKN_ERROR);
4869 }
4870 YY_BREAK
4871 case 52:
4872 YY_RULE_SETUP
4873 #line 607 "rpsl.l"
4874 *string_buf_ptr++ = '\n';
4875 YY_BREAK
4876 case 53:
4877 YY_RULE_SETUP
4878 #line 608 "rpsl.l"
4879 *string_buf_ptr++ = '\t';
4880 YY_BREAK
4881 case 54:
4882 YY_RULE_SETUP
4883 #line 609 "rpsl.l"
4884 *string_buf_ptr++ = '\r';
4885 YY_BREAK
4886 case 55:
4887 YY_RULE_SETUP
4888 #line 610 "rpsl.l"
4889 *string_buf_ptr++ = '\b';
4890 YY_BREAK
4891 case 56:
4892 YY_RULE_SETUP
4893 #line 611 "rpsl.l"
4894 *string_buf_ptr++ = '\f';
4895 YY_BREAK
4896 case 57:
4897 YY_RULE_SETUP
4898 #line 613 "rpsl.l"
4899 *string_buf_ptr++ = yytext[1];
4900 YY_BREAK
4901 case 58:
4902 YY_RULE_SETUP
4903 #line 615 "rpsl.l"
4904 {
4905 char *yptr = yytext;
4906 while ( *yptr )
4907 *string_buf_ptr++ = *yptr++;
4908 }
4909 YY_BREAK
4910 case 59:
4911 YY_RULE_SETUP
4912 #line 621 "rpsl.l"
4913 *string_buf_ptr++ = yytext[0];
4914 YY_BREAK
4915
4916 case 60:
4917 YY_RULE_SETUP
4918 #line 624 "rpsl.l"
4919 ECHO;
4920 YY_BREAK
4921 #line 4922 "lex.rpsl.c"
4922
4923 case YY_END_OF_BUFFER:
4924 {
4925 /* Amount of text matched not including the EOB char. */
4926 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
4927
4928 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4929 *yy_cp = yy_hold_char;
4930 YY_RESTORE_YY_MORE_OFFSET
4931
4932 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
4933 {
4934 /* We're scanning a new file or input source. It's
4935 * possible that this happened because the user
4936 * just pointed yyin at a new source and called
4937 * yylex(). If so, then we have to assure
4938 * consistency between yy_current_buffer and our
4939 * globals. Here is the right place to do so, because
4940 * this is the first action (other than possibly a
4941 * back-up) that will match for the new input source.
4942 */
4943 yy_n_chars = yy_current_buffer->yy_n_chars;
4944 yy_current_buffer->yy_input_file = yyin;
4945 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
4946 }
4947
4948 /* Note that here we test for yy_c_buf_p "<=" to the position
4949 * of the first EOB in the buffer, since yy_c_buf_p will
4950 * already have been incremented past the NUL character
4951 * (since all states make transitions on EOB to the
4952 * end-of-buffer state). Contrast this with the test
4953 * in input().
4954 */
4955 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4956 { /* This was really a NUL. */
4957 yy_state_type yy_next_state;
4958
4959 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
4960
4961 yy_current_state = yy_get_previous_state();
4962
4963 /* Okay, we're now positioned to make the NUL
4964 * transition. We couldn't have
4965 * yy_get_previous_state() go ahead and do it
4966 * for us because it doesn't know how to deal
4967 * with the possibility of jamming (and we don't
4968 * want to build jamming into it because then it
4969 * will run more slowly).
4970 */
4971
4972 yy_next_state = yy_try_NUL_trans( yy_current_state );
4973
4974 yy_bp = yytext_ptr + YY_MORE_ADJ;
4975
4976 if ( yy_next_state )
4977 {
4978 /* Consume the NUL. */
4979 yy_cp = ++yy_c_buf_p;
4980 yy_current_state = yy_next_state;
4981 goto yy_match;
4982 }
4983
4984 else
4985 {
4986 yy_cp = yy_c_buf_p;
4987 goto yy_find_action;
4988 }
4989 }
4990
4991 else switch ( yy_get_next_buffer() )
4992 {
4993 case EOB_ACT_END_OF_FILE:
4994 {
4995 yy_did_buffer_switch_on_eof = 0;
4996
4997 if ( yywrap() )
4998 {
4999 /* Note: because we've taken care in
5000 * yy_get_next_buffer() to have set up
5001 * yytext, we can now set up
5002 * yy_c_buf_p so that if some total
5003 * hoser (like flex itself) wants to
5004 * call the scanner after we return the
5005 * YY_NULL, it'll still work - another
5006 * YY_NULL will get returned.
5007 */
5008 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
5009
5010 yy_act = YY_STATE_EOF(YY_START);
5011 goto do_action;
5012 }
5013
5014 else
5015 {
5016 if ( ! yy_did_buffer_switch_on_eof )
5017 YY_NEW_FILE;
5018 }
5019 break;
5020 }
5021
5022 case EOB_ACT_CONTINUE_SCAN:
5023 yy_c_buf_p =
5024 yytext_ptr + yy_amount_of_matched_text;
5025
5026 yy_current_state = yy_get_previous_state();
5027
5028 yy_cp = yy_c_buf_p;
5029 yy_bp = yytext_ptr + YY_MORE_ADJ;
5030 goto yy_match;
5031
5032 case EOB_ACT_LAST_MATCH:
5033 yy_c_buf_p =
5034 &yy_current_buffer->yy_ch_buf[yy_n_chars];
5035
5036 yy_current_state = yy_get_previous_state();
5037
5038 yy_cp = yy_c_buf_p;
5039 yy_bp = yytext_ptr + YY_MORE_ADJ;
5040 goto yy_find_action;
5041 }
5042 break;
5043 }
5044
5045 default:
5046 YY_FATAL_ERROR(
5047 "fatal flex scanner internal error--no action found" );
5048 } /* end of action switch */
5049 } /* end of scanning one token */
5050 } /* end of yylex */
5051
5052
5053 /* yy_get_next_buffer - try to read in a new buffer
5054 *
5055 * Returns a code representing an action:
5056 * EOB_ACT_LAST_MATCH -
5057 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5058 * EOB_ACT_END_OF_FILE - end of file
5059 */
5060
5061 static int yy_get_next_buffer()
/* [<][>][^][v][top][bottom][index][help] */
5062 {
5063 register char *dest = yy_current_buffer->yy_ch_buf;
5064 register char *source = yytext_ptr;
5065 register int number_to_move, i;
5066 int ret_val;
5067
5068 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
5069 YY_FATAL_ERROR(
5070 "fatal flex scanner internal error--end of buffer missed" );
5071
5072 if ( yy_current_buffer->yy_fill_buffer == 0 )
5073 { /* Don't try to fill the buffer, so this is an EOF. */
5074 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
5075 {
5076 /* We matched a single character, the EOB, so
5077 * treat this as a final EOF.
5078 */
5079 return EOB_ACT_END_OF_FILE;
5080 }
5081
5082 else
5083 {
5084 /* We matched some text prior to the EOB, first
5085 * process it.
5086 */
5087 return EOB_ACT_LAST_MATCH;
5088 }
5089 }
5090
5091 /* Try to read more data. */
5092
5093 /* First move last chars to start of buffer. */
5094 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
5095
5096 for ( i = 0; i < number_to_move; ++i )
5097 *(dest++) = *(source++);
5098
5099 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5100 /* don't do the read, it's not guaranteed to return an EOF,
5101 * just force an EOF
5102 */
5103 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
5104
5105 else
5106 {
5107 int num_to_read =
5108 yy_current_buffer->yy_buf_size - number_to_move - 1;
5109
5110 while ( num_to_read <= 0 )
5111 { /* Not enough room in the buffer - grow it. */
5112 #ifdef YY_USES_REJECT
5113 YY_FATAL_ERROR(
5114 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
5115 #else
5116
5117 /* just a shorter name for the current buffer */
5118 YY_BUFFER_STATE b = yy_current_buffer;
5119
5120 int yy_c_buf_p_offset =
5121 (int) (yy_c_buf_p - b->yy_ch_buf);
5122
5123 if ( b->yy_is_our_buffer )
5124 {
5125 int new_size = b->yy_buf_size * 2;
5126
5127 if ( new_size <= 0 )
5128 b->yy_buf_size += b->yy_buf_size / 8;
5129 else
5130 b->yy_buf_size *= 2;
5131
5132 b->yy_ch_buf = (char *)
5133 /* Include room in for 2 EOB chars. */
5134 yy_flex_realloc( (void *) b->yy_ch_buf,
5135 b->yy_buf_size + 2 );
5136 }
5137 else
5138 /* Can't grow it, we don't own it. */
5139 b->yy_ch_buf = 0;
5140
5141 if ( ! b->yy_ch_buf )
5142 YY_FATAL_ERROR(
5143 "fatal error - scanner input buffer overflow" );
5144
5145 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
5146
5147 num_to_read = yy_current_buffer->yy_buf_size -
5148 number_to_move - 1;
5149 #endif
5150 }
5151
5152 if ( num_to_read > YY_READ_BUF_SIZE )
5153 num_to_read = YY_READ_BUF_SIZE;
5154
5155 /* Read in more data. */
5156 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
5157 yy_n_chars, num_to_read );
5158
5159 yy_current_buffer->yy_n_chars = yy_n_chars;
5160 }
5161
5162 if ( yy_n_chars == 0 )
5163 {
5164 if ( number_to_move == YY_MORE_ADJ )
5165 {
5166 ret_val = EOB_ACT_END_OF_FILE;
5167 yyrestart( yyin );
5168 }
5169
5170 else
5171 {
5172 ret_val = EOB_ACT_LAST_MATCH;
5173 yy_current_buffer->yy_buffer_status =
5174 YY_BUFFER_EOF_PENDING;
5175 }
5176 }
5177
5178 else
5179 ret_val = EOB_ACT_CONTINUE_SCAN;
5180
5181 yy_n_chars += number_to_move;
5182 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
5183 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
5184
5185 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
5186
5187 return ret_val;
5188 }
5189
5190
5191 /* yy_get_previous_state - get the state just before the EOB char was reached */
5192
5193 static yy_state_type yy_get_previous_state()
/* [<][>][^][v][top][bottom][index][help] */
5194 {
5195 register yy_state_type yy_current_state;
5196 register char *yy_cp;
5197
5198 yy_current_state = yy_start;
5199 yy_current_state += YY_AT_BOL();
5200 yy_state_ptr = yy_state_buf;
5201 *yy_state_ptr++ = yy_current_state;
5202
5203 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
5204 {
5205 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5206 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5207 {
5208 yy_current_state = (int) yy_def[yy_current_state];
5209 if ( yy_current_state >= 863 )
5210 yy_c = yy_meta[(unsigned int) yy_c];
5211 }
5212 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5213 *yy_state_ptr++ = yy_current_state;
5214 }
5215
5216 return yy_current_state;
5217 }
5218
5219
5220 /* yy_try_NUL_trans - try to make a transition on the NUL character
5221 *
5222 * synopsis
5223 * next_state = yy_try_NUL_trans( current_state );
5224 */
5225
5226 #ifdef YY_USE_PROTOS
5227 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
/* [<][>][^][v][top][bottom][index][help] */
5228 #else
5229 static yy_state_type yy_try_NUL_trans( yy_current_state )
5230 yy_state_type yy_current_state;
5231 #endif
5232 {
5233 register int yy_is_jam;
5234
5235 register YY_CHAR yy_c = 1;
5236 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5237 {
5238 yy_current_state = (int) yy_def[yy_current_state];
5239 if ( yy_current_state >= 863 )
5240 yy_c = yy_meta[(unsigned int) yy_c];
5241 }
5242 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5243 yy_is_jam = (yy_current_state == 862);
5244 if ( ! yy_is_jam )
5245 *yy_state_ptr++ = yy_current_state;
5246
5247 return yy_is_jam ? 0 : yy_current_state;
5248 }
5249
5250
5251 #ifndef YY_NO_UNPUT
5252 #ifdef YY_USE_PROTOS
5253 static void yyunput( int c, register char *yy_bp )
/* [<][>][^][v][top][bottom][index][help] */
5254 #else
5255 static void yyunput( c, yy_bp )
5256 int c;
5257 register char *yy_bp;
5258 #endif
5259 {
5260 register char *yy_cp = yy_c_buf_p;
5261
5262 /* undo effects of setting up yytext */
5263 *yy_cp = yy_hold_char;
5264
5265 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
5266 { /* need to shift things up to make room */
5267 /* +2 for EOB chars. */
5268 register int number_to_move = yy_n_chars + 2;
5269 register char *dest = &yy_current_buffer->yy_ch_buf[
5270 yy_current_buffer->yy_buf_size + 2];
5271 register char *source =
5272 &yy_current_buffer->yy_ch_buf[number_to_move];
5273
5274 while ( source > yy_current_buffer->yy_ch_buf )
5275 *--dest = *--source;
5276
5277 yy_cp += (int) (dest - source);
5278 yy_bp += (int) (dest - source);
5279 yy_current_buffer->yy_n_chars =
5280 yy_n_chars = yy_current_buffer->yy_buf_size;
5281
5282 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
5283 YY_FATAL_ERROR( "flex scanner push-back overflow" );
5284 }
5285
5286 *--yy_cp = (char) c;
5287
5288
5289 yytext_ptr = yy_bp;
5290 yy_hold_char = *yy_cp;
5291 yy_c_buf_p = yy_cp;
5292 }
5293 #endif /* ifndef YY_NO_UNPUT */
5294
5295
5296 #ifdef __cplusplus
5297 static int yyinput()
/* [<][>][^][v][top][bottom][index][help] */
5298 #else
5299 static int input()
5300 #endif
5301 {
5302 int c;
5303
5304 *yy_c_buf_p = yy_hold_char;
5305
5306 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
5307 {
5308 /* yy_c_buf_p now points to the character we want to return.
5309 * If this occurs *before* the EOB characters, then it's a
5310 * valid NUL; if not, then we've hit the end of the buffer.
5311 */
5312 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
5313 /* This was really a NUL. */
5314 *yy_c_buf_p = '\0';
5315
5316 else
5317 { /* need more input */
5318 int offset = yy_c_buf_p - yytext_ptr;
5319 ++yy_c_buf_p;
5320
5321 switch ( yy_get_next_buffer() )
5322 {
5323 case EOB_ACT_LAST_MATCH:
5324 /* This happens because yy_g_n_b()
5325 * sees that we've accumulated a
5326 * token and flags that we need to
5327 * try matching the token before
5328 * proceeding. But for input(),
5329 * there's no matching to consider.
5330 * So convert the EOB_ACT_LAST_MATCH
5331 * to EOB_ACT_END_OF_FILE.
5332 */
5333
5334 /* Reset buffer status. */
5335 yyrestart( yyin );
5336
5337 /* fall through */
5338
5339 case EOB_ACT_END_OF_FILE:
5340 {
5341 if ( yywrap() )
5342 return EOF;
5343
5344 if ( ! yy_did_buffer_switch_on_eof )
5345 YY_NEW_FILE;
5346 #ifdef __cplusplus
5347 return yyinput();
5348 #else
5349 return input();
5350 #endif
5351 }
5352
5353 case EOB_ACT_CONTINUE_SCAN:
5354 yy_c_buf_p = yytext_ptr + offset;
5355 break;
5356 }
5357 }
5358 }
5359
5360 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
5361 *yy_c_buf_p = '\0'; /* preserve yytext */
5362 yy_hold_char = *++yy_c_buf_p;
5363
5364 yy_current_buffer->yy_at_bol = (c == '\n');
5365
5366 return c;
5367 }
5368
5369
5370 #ifdef YY_USE_PROTOS
5371 void yyrestart( FILE *input_file )
/* [<][>][^][v][top][bottom][index][help] */
5372 #else
5373 void yyrestart( input_file )
5374 FILE *input_file;
5375 #endif
5376 {
5377 if ( ! yy_current_buffer )
5378 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
5379
5380 yy_init_buffer( yy_current_buffer, input_file );
5381 yy_load_buffer_state();
5382 }
5383
5384
5385 #ifdef YY_USE_PROTOS
5386 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
/* [<][>][^][v][top][bottom][index][help] */
5387 #else
5388 void yy_switch_to_buffer( new_buffer )
5389 YY_BUFFER_STATE new_buffer;
5390 #endif
5391 {
5392 if ( yy_current_buffer == new_buffer )
5393 return;
5394
5395 if ( yy_current_buffer )
5396 {
5397 /* Flush out information for old buffer. */
5398 *yy_c_buf_p = yy_hold_char;
5399 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
5400 yy_current_buffer->yy_n_chars = yy_n_chars;
5401 }
5402
5403 yy_current_buffer = new_buffer;
5404 yy_load_buffer_state();
5405
5406 /* We don't actually know whether we did this switch during
5407 * EOF (yywrap()) processing, but the only time this flag
5408 * is looked at is after yywrap() is called, so it's safe
5409 * to go ahead and always set it.
5410 */
5411 yy_did_buffer_switch_on_eof = 1;
5412 }
5413
5414
5415 #ifdef YY_USE_PROTOS
5416 void yy_load_buffer_state( void )
/* [<][>][^][v][top][bottom][index][help] */
5417 #else
5418 void yy_load_buffer_state()
5419 #endif
5420 {
5421 yy_n_chars = yy_current_buffer->yy_n_chars;
5422 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
5423 yyin = yy_current_buffer->yy_input_file;
5424 yy_hold_char = *yy_c_buf_p;
5425 }
5426
5427
5428 #ifdef YY_USE_PROTOS
5429 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
/* [<][>][^][v][top][bottom][index][help] */
5430 #else
5431 YY_BUFFER_STATE yy_create_buffer( file, size )
5432 FILE *file;
5433 int size;
5434 #endif
5435 {
5436 YY_BUFFER_STATE b;
5437
5438 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5439 if ( ! b )
5440 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5441
5442 b->yy_buf_size = size;
5443
5444 /* yy_ch_buf has to be 2 characters longer than the size given because
5445 * we need to put in 2 end-of-buffer characters.
5446 */
5447 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
5448 if ( ! b->yy_ch_buf )
5449 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5450
5451 b->yy_is_our_buffer = 1;
5452
5453 yy_init_buffer( b, file );
5454
5455 return b;
5456 }
5457
5458
5459 #ifdef YY_USE_PROTOS
5460 void yy_delete_buffer( YY_BUFFER_STATE b )
/* [<][>][^][v][top][bottom][index][help] */
5461 #else
5462 void yy_delete_buffer( b )
5463 YY_BUFFER_STATE b;
5464 #endif
5465 {
5466 if ( ! b )
5467 return;
5468
5469 if ( b == yy_current_buffer )
5470 yy_current_buffer = (YY_BUFFER_STATE) 0;
5471
5472 if ( b->yy_is_our_buffer )
5473 yy_flex_free( (void *) b->yy_ch_buf );
5474
5475 yy_flex_free( (void *) b );
5476 }
5477
5478
5479 #ifndef YY_ALWAYS_INTERACTIVE
5480 #ifndef YY_NEVER_INTERACTIVE
5481 extern int isatty YY_PROTO(( int ));
5482 #endif
5483 #endif
5484
5485 #ifdef YY_USE_PROTOS
5486 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
/* [<][>][^][v][top][bottom][index][help] */
5487 #else
5488 void yy_init_buffer( b, file )
5489 YY_BUFFER_STATE b;
5490 FILE *file;
5491 #endif
5492
5493
5494 {
5495 yy_flush_buffer( b );
5496
5497 b->yy_input_file = file;
5498 b->yy_fill_buffer = 1;
5499
5500 #if YY_ALWAYS_INTERACTIVE
5501 b->yy_is_interactive = 1;
5502 #else
5503 #if YY_NEVER_INTERACTIVE
5504 b->yy_is_interactive = 0;
5505 #else
5506 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5507 #endif
5508 #endif
5509 }
5510
5511
5512 #ifdef YY_USE_PROTOS
5513 void yy_flush_buffer( YY_BUFFER_STATE b )
/* [<][>][^][v][top][bottom][index][help] */
5514 #else
5515 void yy_flush_buffer( b )
5516 YY_BUFFER_STATE b;
5517 #endif
5518
5519 {
5520 if ( ! b )
5521 return;
5522
5523 b->yy_n_chars = 0;
5524
5525 /* We always need two end-of-buffer characters. The first causes
5526 * a transition to the end-of-buffer state. The second causes
5527 * a jam in that state.
5528 */
5529 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5530 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5531
5532 b->yy_buf_pos = &b->yy_ch_buf[0];
5533
5534 b->yy_at_bol = 1;
5535 b->yy_buffer_status = YY_BUFFER_NEW;
5536
5537 if ( b == yy_current_buffer )
5538 yy_load_buffer_state();
5539 }
5540
5541
5542 #ifndef YY_NO_SCAN_BUFFER
5543 #ifdef YY_USE_PROTOS
5544 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5545 #else
5546 YY_BUFFER_STATE yy_scan_buffer( base, size )
5547 char *base;
5548 yy_size_t size;
5549 #endif
5550 {
5551 YY_BUFFER_STATE b;
5552
5553 if ( size < 2 ||
5554 base[size-2] != YY_END_OF_BUFFER_CHAR ||
5555 base[size-1] != YY_END_OF_BUFFER_CHAR )
5556 /* They forgot to leave room for the EOB's. */
5557 return 0;
5558
5559 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5560 if ( ! b )
5561 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5562
5563 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
5564 b->yy_buf_pos = b->yy_ch_buf = base;
5565 b->yy_is_our_buffer = 0;
5566 b->yy_input_file = 0;
5567 b->yy_n_chars = b->yy_buf_size;
5568 b->yy_is_interactive = 0;
5569 b->yy_at_bol = 1;
5570 b->yy_fill_buffer = 0;
5571 b->yy_buffer_status = YY_BUFFER_NEW;
5572
5573 yy_switch_to_buffer( b );
5574
5575 return b;
5576 }
5577 #endif
5578
5579
5580 #ifndef YY_NO_SCAN_STRING
5581 #ifdef YY_USE_PROTOS
5582 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
/* [<][>][^][v][top][bottom][index][help] */
5583 #else
5584 YY_BUFFER_STATE yy_scan_string( yy_str )
5585 yyconst char *yy_str;
5586 #endif
5587 {
5588 int len;
5589 for ( len = 0; yy_str[len]; ++len )
5590 ;
5591
5592 return yy_scan_bytes( yy_str, len );
5593 }
5594 #endif
5595
5596
5597 #ifndef YY_NO_SCAN_BYTES
5598 #ifdef YY_USE_PROTOS
5599 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
/* [<][>][^][v][top][bottom][index][help] */
5600 #else
5601 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
5602 yyconst char *bytes;
5603 int len;
5604 #endif
5605 {
5606 YY_BUFFER_STATE b;
5607 char *buf;
5608 yy_size_t n;
5609 int i;
5610
5611 /* Get memory for full buffer, including space for trailing EOB's. */
5612 n = len + 2;
5613 buf = (char *) yy_flex_alloc( n );
5614 if ( ! buf )
5615 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5616
5617 for ( i = 0; i < len; ++i )
5618 buf[i] = bytes[i];
5619
5620 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
5621
5622 b = yy_scan_buffer( buf, n );
5623 if ( ! b )
5624 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5625
5626 /* It's okay to grow etc. this buffer, and we should throw it
5627 * away when we're done.
5628 */
5629 b->yy_is_our_buffer = 1;
5630
5631 return b;
5632 }
5633 #endif
5634
5635
5636 #ifndef YY_NO_PUSH_STATE
5637 #ifdef YY_USE_PROTOS
5638 static void yy_push_state( int new_state )
/* [<][>][^][v][top][bottom][index][help] */
5639 #else
5640 static void yy_push_state( new_state )
5641 int new_state;
5642 #endif
5643 {
5644 if ( yy_start_stack_ptr >= yy_start_stack_depth )
5645 {
5646 yy_size_t new_size;
5647
5648 yy_start_stack_depth += YY_START_STACK_INCR;
5649 new_size = yy_start_stack_depth * sizeof( int );
5650
5651 if ( ! yy_start_stack )
5652 yy_start_stack = (int *) yy_flex_alloc( new_size );
5653
5654 else
5655 yy_start_stack = (int *) yy_flex_realloc(
5656 (void *) yy_start_stack, new_size );
5657
5658 if ( ! yy_start_stack )
5659 YY_FATAL_ERROR(
5660 "out of memory expanding start-condition stack" );
5661 }
5662
5663 yy_start_stack[yy_start_stack_ptr++] = YY_START;
5664
5665 BEGIN(new_state);
5666 }
5667 #endif
5668
5669
5670 #ifndef YY_NO_POP_STATE
5671 static void yy_pop_state()
/* [<][>][^][v][top][bottom][index][help] */
5672 {
5673 if ( --yy_start_stack_ptr < 0 )
5674 YY_FATAL_ERROR( "start-condition stack underflow" );
5675
5676 BEGIN(yy_start_stack[yy_start_stack_ptr]);
5677 }
5678 #endif
5679
5680
5681 #ifndef YY_NO_TOP_STATE
5682 static int yy_top_state()
/* [<][>][^][v][top][bottom][index][help] */
5683 {
5684 return yy_start_stack[yy_start_stack_ptr - 1];
5685 }
5686 #endif
5687
5688 #ifndef YY_EXIT_FAILURE
5689 #define YY_EXIT_FAILURE 2
5690 #endif
5691
5692 #ifdef YY_USE_PROTOS
5693 static void yy_fatal_error( yyconst char msg[] )
/* [<][>][^][v][top][bottom][index][help] */
5694 #else
5695 static void yy_fatal_error( msg )
5696 char msg[];
5697 #endif
5698 {
5699 (void) fprintf( stderr, "%s\n", msg );
5700 exit( YY_EXIT_FAILURE );
5701 }
5702
5703
5704
5705 /* Redefine yyless() so it works in section 3 code. */
5706
5707 #undef yyless
5708 #define yyless(n) \
/* [<][>][^][v][top][bottom][index][help] */
5709 do \
5710 { \
5711 /* Undo effects of setting up yytext. */ \
5712 yytext[yyleng] = yy_hold_char; \
5713 yy_c_buf_p = yytext + n; \
5714 yy_hold_char = *yy_c_buf_p; \
5715 *yy_c_buf_p = '\0'; \
5716 yyleng = n; \
5717 } \
5718 while ( 0 )
5719
5720
5721 /* Internal utility routines. */
5722
5723 #ifndef yytext_ptr
5724 #ifdef YY_USE_PROTOS
5725 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
/* [<][>][^][v][top][bottom][index][help] */
5726 #else
5727 static void yy_flex_strncpy( s1, s2, n )
5728 char *s1;
5729 yyconst char *s2;
5730 int n;
5731 #endif
5732 {
5733 register int i;
5734 for ( i = 0; i < n; ++i )
5735 s1[i] = s2[i];
5736 }
5737 #endif
5738
5739 #ifdef YY_NEED_STRLEN
5740 #ifdef YY_USE_PROTOS
5741 static int yy_flex_strlen( yyconst char *s )
/* [<][>][^][v][top][bottom][index][help] */
5742 #else
5743 static int yy_flex_strlen( s )
5744 yyconst char *s;
5745 #endif
5746 {
5747 register int n;
5748 for ( n = 0; s[n]; ++n )
5749 ;
5750
5751 return n;
5752 }
5753 #endif
5754
5755
5756 #ifdef YY_USE_PROTOS
5757 static void *yy_flex_alloc( yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5758 #else
5759 static void *yy_flex_alloc( size )
5760 yy_size_t size;
5761 #endif
5762 {
5763 return (void *) malloc( size );
5764 }
5765
5766 #ifdef YY_USE_PROTOS
5767 static void *yy_flex_realloc( void *ptr, yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5768 #else
5769 static void *yy_flex_realloc( ptr, size )
5770 void *ptr;
5771 yy_size_t size;
5772 #endif
5773 {
5774 /* The cast to (char *) in the following accommodates both
5775 * implementations that use char* generic pointers, and those
5776 * that use void* generic pointers. It works with the latter
5777 * because both ANSI C and C++ allow castless assignment from
5778 * any pointer type to void*, and deal with argument conversions
5779 * as though doing an assignment.
5780 */
5781 return (void *) realloc( (char *) ptr, size );
5782 }
5783
5784 #ifdef YY_USE_PROTOS
5785 static void yy_flex_free( void *ptr )
/* [<][>][^][v][top][bottom][index][help] */
5786 #else
5787 static void yy_flex_free( ptr )
5788 void *ptr;
5789 #endif
5790 {
5791 free( ptr );
5792 }
5793
5794 #if YY_MAIN
5795 int main()
/* [<][>][^][v][top][bottom][index][help] */
5796 {
5797 yylex();
5798 return 0;
5799 }
5800 #endif
5801 #line 624 "rpsl.l"
5802
5803 extern "C" {
5804 int yywrap () {
5805 return 1;
5806 }
5807 }
5808
5809 void handle_error(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5810 current_object->has_error = true;
5811
5812 char buffer[1024] = "***";
5813 va_list ap;
5814 va_start(ap, s);
5815 vsprintf(buffer+3, s, ap);
5816 va_end(ap);
5817
5818 if (current_attribute)
5819 current_attribute->errors += buffer;
5820 else
5821 current_object->errors += buffer;
5822 }
5823
5824 void handle_object_error(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5825 current_object->has_error = true;
5826
5827 char buffer[1024] = "***";
5828 va_list ap;
5829 va_start(ap, s);
5830 vsprintf(buffer+3, s, ap);
5831 va_end(ap);
5832
5833 current_object->errors += buffer;
5834 }
5835
5836 void rpslerror(char *, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5837 if (current_attribute) {
5838 current_attribute->errorLine = errorLine;
5839 current_attribute->errorColon = errorColon - yyleng;
5840 current_attribute->errorLeng = yyleng;
5841 }
5842 }
5843
5844 void handle_warning(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5845 current_object->has_warning = true;
5846
5847 char buffer[1024];
5848 va_list ap;
5849 va_start(ap, s);
5850 vsprintf(buffer, s, ap);
5851 va_end(ap);
5852
5853 if (current_attribute)
5854 current_attribute->errors += buffer;
5855 else
5856 current_object->errors += buffer;
5857 }
5858
5859 void yy_scan_object(Object *o) {
/* [<][>][^][v][top][bottom][index][help] */
5860 errorLine = 0;
5861 errorColon = 0;
5862 current_object = o;
5863 current_attribute = NULL;
5864 start_of_object = true;
5865 scan_position = 0;
5866 genericMode = true;
5867
5868 if (rpsl_buffer)
5869 yy_delete_buffer(rpsl_buffer);
5870 rpsl_buffer = yy_scan_bytes(o->contents, o->size);
5871 BEGIN(INITIAL);
5872 }
5873
5874 Attr *changeCurrentAttr(Attr *b) {
/* [<][>][^][v][top][bottom][index][help] */
5875 if (current_attribute) {
5876 b->object = current_attribute->object;
5877 b->type = current_attribute->type;
5878 b->offset = current_attribute->offset;;
5879 b->len = current_attribute->len;
5880 b->errors = current_attribute->errors;
5881 b->errorLine = current_attribute->errorLine;
5882 b->errorColon = current_attribute->errorColon;
5883 b->errorLeng = current_attribute->errorLeng;
5884 delete current_attribute;
5885 }
5886 current_attribute = b;
5887 return b;
5888 }
5889
5890 int validIPv6(const char *s){
/* [<][>][^][v][top][bottom][index][help] */
5891 char *string, *sleft, *sright, *pos;
5892 int countleft = 0, countright = 0;
5893 string = strdup(s);
5894 pos = strstr(string,"/");
5895 pos[0] = '\0';
5896 sleft = strdup(string);
5897 pos = strstr(sleft,"::");
5898 pos[0] = '\0';
5899 sright = pos + 2;
5900 // count the ':'s on the left
5901 for(int i=0;i<strlen(sleft);i++){
5902 if(sleft[i] == ':'){ countleft++;}
5903 }
5904 // count the ':'s on the right
5905 for(int i=0;i<strlen(sright);i++){
5906 if(sright[i] == ':'){ countright++;}
5907 }
5908
5909 // now, if the total # of quads is > 8, than there
5910 // is a problem with the syntax of the ipv6 address.
5911 if((countleft + 1 + countright + 1) <= 8 ){
5912 return 1;
5913 }else{
5914 return 0;
5915 }
5916 }
5917
5918 int validIntForPhone(const char * arg){
/* [<][>][^][v][top][bottom][index][help] */
5919 /* Checks if the integer is valid as a phone no (should not contain '+' or '-')*/
5920 if((strchr(arg,'+') == NULL) && (strchr(arg,'-') == NULL)){
5921 return 1;
5922 }
5923 return 0;
5924 }
5925