Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Regenerate all flexml parsers with 1.9.6-4
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 39
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 595
414 #define YY_END_OF_BUFFER 596
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3466] =
423     {   0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,  596,  594,   15,   10,
451        10,   15,   15,  574,   10,  574,    5,    6,    5,    8,
452         9,    8,  590,  582,  583,  591,  588,  591,  589,  593,
453       582,  583,  593,   40,   10,   40,   40,   40,   38,   40,
454        40,   44,   10,   44,   44,  594,   44,  594,  594,   44,
455        61,   10,   61,   61,   61,   59,   61,   61,   61,   65,
456
457        10,   65,  594,   65,   72,   10,   72,   72,   72,   70,
458        72,   76,   10,   76,   87,   10,   87,   87,   87,   85,
459        87,   87,   87,   91,   10,   91,  104,   10,  104,  104,
460       104,  102,  104,  104,  104,  108,   10,  108,  108,  117,
461        10,  117,  117,  117,  115,  117,  117,  121,   10,  121,
462       121,  140,   10,  140,  140,  140,  138,  140,  140,  140,
463       140,  140,  140,  144,   10,  144,  199,   10,  199,  199,
464       199,  197,  199,  199,  199,  199,  199,  199,  199,  199,
465       199,  203,   10,  203,  203,  210,   10,  210,  210,  210,
466       208,  210,  214,   10,  214,  214,  221,   10,  221,  221,
467
468       221,  219,  221,  225,   10,  225,  250,   10,  250,  250,
469       250,  248,  250,  250,  250,  250,  250,  254,   10,  254,
470       594,  254,  265,   10,  265,  265,  265,  263,  265,  265,
471       265,  269,   10,  269,  276,   10,  276,  276,  276,  274,
472       276,  280,   10,  280,  594,  280,  307,   10,  307,  307,
473       307,  305,  307,  307,  307,  307,  311,   10,  311,  311,
474       324,   10,  324,  324,  324,  322,  324,  324,  328,   10,
475       328,  337,   10,  337,  337,  337,  335,  337,  337,  341,
476        10,  341,  350,   10,  350,  350,  350,  348,  350,  350,
477       354,   10,  354,  363,   10,  363,  363,  363,  361,  363,
478
479       363,  367,   10,  367,  388,   10,  388,  388,  388,  386,
480       388,  388,  388,  388,  388,  388,  388,  392,   10,  392,
481       594,  399,   10,  399,  399,  399,  397,  399,  403,   10,
482       403,  403,  594,  403,  594,  403,  420,   10,  420,  420,
483       420,  418,  420,  420,  420,  420,  420,  424,   10,  424,
484       594,  424,  433,   10,  433,  433,  433,  431,  433,  433,
485       437,   10,  437,  464,   10,  464,  464,  464,  462,  464,
486       464,  464,  464,  464,  468,   10,  468,  481,   10,  481,
487       481,  481,  479,  481,  481,  485,   10,  485,  485,  494,
488        10,  494,  494,  494,  492,  494,  494,  498,   10,  498,
489
490       513,   10,  513,  513,  513,  511,  513,  513,  513,  513,
491       517,   10,  517,  517,  532,   10,  532,  532,  532,  530,
492       532,  532,  532,  532,  536,   10,  536,  594,  536,  547,
493        10,  547,  547,  547,  545,  547,  547,  547,  591,  590,
494       569,   10,  569,  569,  569,  567,  569,  569,  569,  573,
495        10,  573,   10,    0,    2,    2,    0,    4,    7,  585,
496       584,    0,    0,    0,    0,    0,    0,   39,   41,   41,
497        41,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500
501         0,    0,    0,   60,   62,   62,   62,   62,   62,    0,
502         0,   71,   73,   73,    0,   86,   88,   88,   88,   88,
503         0,  103,  105,  105,  105,  105,    0,  116,  118,  118,
504       118,    0,  139,  141,  141,  141,  141,  141,  141,  141,
505       141,    0,  198,  200,  200,  200,  200,  200,  200,  200,
506       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
507         0,  209,  211,  211,    0,  220,  222,  222,    0,  249,
508       251,  251,  251,  251,  251,  251,  251,    0,    0,  264,
509       266,  266,  266,  266,    0,  275,  277,  277,    0,    0,
510       306,  308,  308,  308,  308,  308,  308,    0,  323,  325,
511
512       325,  325,    0,  336,  338,  338,  338,    0,  349,  351,
513       351,  351,    0,  362,  364,  364,  364,    0,  387,  389,
514       389,  389,  389,  389,  389,  389,  389,    0,    0,  398,
515       400,  400,    0,    0,    0,    0,    0,    0,  419,  421,
516       421,  421,  421,  421,  421,    0,    0,  432,  434,  434,
517       434,    0,  463,  465,  465,  465,  465,  465,  465,  465,
518       465,  465,    0,  480,  482,  482,  482,  482,    0,  493,
519       495,  495,  495,    0,  512,  514,  514,  514,  514,  514,
520         0,  531,  533,  533,  533,  533,  533,    0,    0,  546,
521       548,  548,  548,  548,    0,    0,    0,  568,  570,  570,
522
523       570,  570,    0,    0,    0,    0,    0,    3,    0,    0,
524         0,    0,    0,    0,    0,  592,    0,    0,   41,    0,
525         0,   17,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527         0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
528         0,    0,    0,    0,    0,   16,    0,    0,   62,   62,
529        62,   62,    0,    0,    0,   73,    0,    0,   88,    0,
530         0,   88,    0,    0,  105,  105,  105,    0,    0,  118,
531       118,    0,    0,    0,    0,    0,    0,  141,  141,  141,
532       141,  141,    0,    0,  200,  200,    0,    0,  200,    0,
533
534         0,  200,  200,  200,  200,  200,  200,  200,  200,  200,
535       200,  200,    0,    0,    0,    0,    0,    0,  222,    0,
536         0,  251,  251,  251,    0,    0,  251,  251,  251,    0,
537         0,    0,    0,  266,    0,    0,    0,    0,    0,    0,
538       277,    0,    0,   17,  308,    0,    0,  308,  308,  308,
539         0,    0,  325,    0,    0,    0,    0,    0,    0,  338,
540         0,    0,  351,  351,    0,    0,  364,  364,    0,    0,
541       389,  389,  389,    0,    0,  389,  389,  389,    0,    0,
542         0,  400,    0,    0,    0,    0,    0,  421,  421,  421,
543       421,  421,    0,    0,    0,    0,    0,  434,    0,    0,
544
545       465,    0,    0,  465,  465,  465,  465,  465,  465,    0,
546         0,  482,  482,  482,    0,    0,  495,    0,    0,    0,
547         0,  514,  514,    0,    0,  514,    0,    0,  533,    0,
548         0,  533,  533,    0,    0,    0,  548,    0,    0,  548,
549         0,    0,    0,  587,  570,  570,  570,    0,    0,    0,
550        14,    1,    0,    0,  580,    0,    0,    0,  577,  576,
551         0,    0,   19,   18,   41,    0,    0,   43,    0,   17,
552         0,    0,    0,    0,    0,    0,    0,  216,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,    0,   16,    0,    0,    0,    0,    0,  215,    0,
555
556         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557        62,   62,    0,    0,   62,    0,    0,   64,    0,    0,
558        73,    0,    0,   75,    0,   88,    0,   82,   81,   88,
559         0,    0,   90,    0,    0,    0,  105,  105,    0,    0,
560         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
561       120,    0,    0,  125,  124,    0,  127,  126,    0,    0,
562       141,  141,  141,  141,    0,    0,  143,    0,  200,  200,
563       200,  200,    0,  158,  157,  200,    0,  162,  161,    0,
564         0,  200,  200,  200,  200,  200,  200,  200,  200,  200,
565       200,    0,    0,  202,    0,    0,  207,  206,    0,    0,
566
567       213,    0,  222,    0,    0,  224,    0,  251,  251,  251,
568         0,  237,  236,  251,  251,  251,    0,    0,  253,    0,
569         0,    0,  266,    0,  260,  259,    0,  262,  261,    0,
570         0,  268,    0,  277,    0,    0,  279,    0,  308,    0,
571       288,  287,  308,  308,  308,    0,    0,  310,    0,  325,
572         0,  321,  320,    0,    0,  327,    0,    0,  332,  331,
573       338,    0,    0,  340,    0,  351,  351,    0,    0,  353,
574         0,  364,  364,    0,    0,  366,    0,  389,  389,  389,
575       389,    0,  379,  378,    0,    0,  389,  389,    0,    0,
576       391,    0,    0,  400,    0,    0,  402,    0,    0,    0,
577
578         0,  421,  421,  421,  421,  421,    0,    0,  423,    0,
579         0,    0,  428,  427,  434,    0,    0,  436,    0,  465,
580         0,  449,  448,    0,    0,  465,    0,    0,  465,  465,
581       465,    0,    0,  467,    0,    0,    0,    0,    0,  482,
582         0,    0,  484,    0,  495,    0,  491,  490,    0,    0,
583       497,    0,  514,  514,    0,  508,  507,  514,    0,    0,
584       516,    0,  533,    0,  525,  524,  533,  533,    0,    0,
585       535,    0,    0,  548,    0,  542,  541,  548,    0,    0,
586         0,  550,    0,  570,  570,  570,    0,    0,  572,    0,
587         0,    0,  581,  575,    0,    0,   41,    0,   42,    0,
588
589         0,    0,    0,    0,    0,    0,  216,  227,    0,  282,
590         0,    0,    0,  369,    0,    0,  426,    0,    0,    0,
591         0,  425,    0,    0,    0,    0,    0,  215,  226,    0,
592       281,  368,    0,    0,    0,    0,    0,    0,   48,   47,
593        62,   62,    0,   54,   53,   62,    0,  281,   73,    0,
594        88,   88,    0,    0,   95,   94,  105,  105,    0,  101,
595       100,    0,    0,  112,  111,    0,  114,  113,    0,    0,
596       129,  128,  141,  141,  141,  141,    0,  200,  200,  200,
597       200,    0,    0,    0,  164,  163,  200,  200,  200,  200,
598       200,  200,  200,  200,  200,  200,  200,    0,    0,    0,
599
600         0,    0,  251,  251,    0,    0,  251,  251,  251,    0,
601         0,    0,    0,    0,    0,    0,    0,    0,  308,  308,
602       308,  308,    0,  325,    0,  338,    0,    0,    0,  351,
603         0,    0,    0,  364,    0,  389,  389,  389,  389,    0,
604       381,  380,  389,  389,    0,    0,  400,    0,    0,    0,
605         0,  421,    0,    0,  421,  421,  421,    0,    0,  434,
606         0,  465,    0,  451,  450,    0,    0,    0,  455,  454,
607       465,    0,    0,  465,    0,    0,  472,  471,    0,  474,
608       473,  482,    0,  495,    0,  514,  514,  514,    0,  533,
609       533,    0,    0,    0,    0,    0,    0,  548,    0,    0,
610
611       570,    0,    0,  570,    0,    0,    0,    0,   12,    0,
612       578,  579,   41,    0,    0,    0,    0,    0,    0,    0,
613       227,    0,    0,  282,    0,    0,  342,    0,  369,    0,
614         0,  426,    0,  470,    0,  538,  425,    0,    0,    0,
615         0,    0,  226,    0,    0,  281,  368,  469,    0,  537,
616       470,  469,   62,   62,   62,    0,    0,    0,    0,    0,
617        88,   88,    0,  105,  105,    0,    0,    0,    0,  141,
618       141,  141,    0,  200,    0,    0,  200,  200,    0,  160,
619       159,  200,  200,    0,    0,  200,  200,  200,  200,  200,
620       200,  200,  200,    0,    0,    0,  218,  217,    0,  223,
621
622       251,  251,    0,  235,  234,    0,    0,  251,    0,    0,
623       251,    0,  343,    0,    0,  258,  257,    0,    0,  273,
624       272,    0,  308,  308,  308,    0,    0,  308,    0,  325,
625         0,    0,    0,    0,    0,  345,  344,  351,    0,    0,
626       358,  357,  364,    0,  389,    0,    0,  389,  389,    0,
627         0,  389,    0,    0,  400,    0,    0,    0,    0,  421,
628         0,  409,  408,  421,  421,  421,    0,    0,    0,    0,
629         0,  465,    0,  453,  452,  465,    0,  459,  458,  465,
630         0,  482,    0,  495,    0,  514,  514,  514,    0,  533,
631         0,    0,    0,  529,  528,    0,    0,    0,  540,  539,
632
633       548,    0,    0,  570,    0,    0,    0,    0,    0,    0,
634         0,    0,    0,   11,   41,    0,    0,    0,    0,    0,
635         0,  204,    0,    0,    0,    0,  342,    0,    0,    0,
636       438,  470,  487,    0,  538,    0,    0,    0,    0,    0,
637         0,    0,    0,  469,  486,    0,  537,    0,    0,    0,
638         0,    0,   62,    0,    0,    0,   69,   68,    0,   88,
639        88,    0,    0,    0,    0,    0,    0,    0,    0,  131,
640       130,    0,    0,  141,    0,    0,    0,  200,    0,  150,
641       149,    0,    0,  200,  200,  200,    0,  172,  171,    0,
642         0,  200,  200,  200,  200,    0,    0,  200,  200,    0,
643
644         0,  251,  251,    0,  239,  238,    0,    0,    0,    0,
645         0,  251,    0,  252,  343,    0,    0,    0,  308,  308,
646       308,    0,    0,    0,  308,    0,  309,  325,    0,    0,
647       334,  333,    0,  351,    0,    0,    0,    0,  389,    0,
648       373,  372,    0,    0,  389,    0,  383,  382,  389,    0,
649       390,    0,  400,    0,  205,    0,  439,  421,  421,  421,
650       421,    0,    0,    0,  430,  429,    0,  435,  465,  465,
651       465,    0,  482,    0,  495,    0,    0,    0,  514,    0,
652         0,    0,  533,    0,  527,  526,    0,    0,  548,    0,
653         0,  570,    0,    0,    0,    0,    0,    0,    0,    0,
654
655         0,  566,  565,    0,    0,    0,    0,    0,    0,   46,
656         0,    0,    0,    0,  123,  146,  204,    0,  271,    0,
657         0,    0,    0,  404,  438,  487,  500,    0,   45,    0,
658         0,    0,  122,  145,    0,  270,  486,  499,    0,    0,
659        50,   49,    0,   52,   51,   62,    0,    0,    0,   88,
660         0,    0,    0,    0,   97,   96,    0,   99,   98,    0,
661         0,    0,  133,  132,    0,    0,    0,  137,  136,    0,
662       200,    0,  152,  151,  200,  200,  200,    0,  174,  173,
663         0,    0,  200,  200,  200,    0,  188,  187,  200,  200,
664         0,    0,  251,  251,    0,  241,  240,    0,    0,  251,
665
666         0,    0,    0,  308,    0,    0,  308,  308,    0,    0,
667       308,  325,    0,    0,  351,    0,  352,    0,  360,  359,
668         0,  389,    0,  375,  374,  389,  389,    0,    0,    0,
669         0,  205,  405,  439,  421,  421,  421,  421,    0,    0,
670       465,    0,    0,  465,    0,  482,    0,  483,  495,    0,
671         0,  502,  501,    0,    0,  514,    0,  510,  509,    0,
672         0,    0,  533,    0,    0,  548,    0,    0,  549,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,   46,   66,
675        78,    0,    0,  123,  146,    0,  271,  312,    0,  355,
676
677       393,  404,  500,    0,    0,   45,   77,    0,    0,  122,
678       145,    0,  270,  499,    0,    0,   62,    0,  313,    0,
679        88,    0,   84,   83,    0,    0,    0,    0,  135,  134,
680         0,  200,  200,  200,  200,    0,  176,  175,  200,  200,
681       200,  200,    0,    0,    0,    0,  212,  251,  251,    0,
682         0,    0,    0,  251,  356,    0,    0,  308,    0,  290,
683       289,  308,  308,    0,    0,    0,    0,  308,  325,    0,
684         0,  351,    0,  389,  389,  389,  394,    0,  396,  395,
685         0,  405,    0,    0,  421,  421,  421,    0,   67,  465,
686         0,  457,  456,  465,    0,  466,  482,  495,    0,  496,
687
688         0,  504,  503,  514,    0,    0,  521,  520,  533,    0,
689         0,  548,  586,    0,  554,  553,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
692        66,   78,    0,    0,  256,  312,    0,  355,  393,    0,
693         0,   77,    0,    0,  255,    0,    0,   62,    0,   63,
694       313,    0,    0,    0,    0,    0,    0,    0,  142,  200,
695       200,  200,  200,  200,    0,    0,  200,  200,  200,    0,
696         0,    0,    0,  201,  251,  251,    0,  243,    0,  242,
697       251,  356,    0,    0,  278,    0,    0,  308,  308,  308,
698
699         0,  300,    0,  299,  308,    0,    0,    0,    0,    0,
700         0,    0,  389,  389,  389,  394,    0,    0,  407,  406,
701         0,    0,  421,  421,    0,  422,   67,    0,    0,  465,
702       482,  495,  514,    0,  515,  533,    0,    0,  548,    0,
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,  256,  329,    0,
706         0,    0,    0,  255,    0,    0,   62,    0,   74,    0,
707        80,   79,    0,   89,    0,    0,  200,  200,  200,  200,
708       200,    0,  178,  177,  200,    0,    0,  200,    0,    0,
709
710         0,    0,  251,  251,  245,  244,    0,    0,    0,    0,
711       284,  283,  308,  308,  308,  302,  301,    0,    0,    0,
712         0,    0,    0,  326,    0,    0,  347,  346,    0,  365,
713       389,  389,    0,    0,    0,  401,    0,  411,  410,    0,
714         0,    0,    0,    0,    0,    0,  465,  482,  495,  514,
715       533,    0,  330,  548,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,  110,  329,    0,    0,    0,  109,    0,    0,    0,
719         0,    0,    0,  200,  200,  200,    0,    0,  200,  200,
720
721         0,  186,  185,  200,    0,    0,    0,    0,    0,    0,
722       251,    0,    0,    0,  247,  246,    0,  267,  308,  308,
723       308,    0,  304,  303,    0,    0,    0,    0,    0,    0,
724         0,  389,    0,    0,    0,  385,  384,    0,    0,    0,
725         0,  417,  416,    0,    0,    0,    0,    0,    0,  465,
726         0,    0,    0,    0,  514,  533,    0,  330,    0,    0,
727         0,    0,    0,    0,  558,    0,    0,    0,    0,  557,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,  110,  519,    0,
730         0,  109,  518,    0,    0,    0,    0,    0,    0,  200,
731
732       200,    0,    0,    0,  168,  167,    0,    0,  200,  200,
733         0,    0,    0,    0,    0,    0,    0,    0,  251,    0,
734       233,  232,  308,    0,    0,  308,    0,    0,    0,    0,
735         0,    0,    0,  339,  389,    0,  377,  376,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737       465,    0,    0,    0,    0,  489,  488,    0,    0,    0,
738         0,    0,    0,  544,  543,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,   21,   29,    0,    0,    0,    0,   20,   28,    0,
741        93,  519,  552,   92,  518,  551,    0,    0,    0,    0,
742
743         0,    0,  119,  200,  200,    0,  166,  165,    0,  170,
744       169,  200,  200,    0,    0,    0,    0,    0,    0,    0,
745       229,  228,  251,  308,    0,  292,  291,  308,    0,    0,
746       315,    0,    0,  314,  389,    0,    0,    0,    0,    0,
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,    0,  506,  505,    0,  523,  522,    0,
749         0,    0,  564,    0,    0,    0,  563,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
751         0,   22,    0,   93,  552,   92,  551,    0,    0,    0,
752         0,    0,  200,  200,    0,    0,  200,    0,  192,    0,
753
754         0,  191,    0,  251,    0,    0,    0,    0,    0,    0,
755         0,    0,  389,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,  461,  460,    0,    0,
757         0,    0,    0,  534,    0,    0,    0,    0,    0,    0,
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,   58,    0,   57,    0,    0,  106,  200,
760       200,    0,    0,    0,    0,    0,    0,  194,    0,  193,
761       251,    0,  286,  285,    0,    0,    0,  317,  319,  316,
762       318,  389,  413,    0,  412,    0,    0,  447,  443,    0,
763         0,  446,  442,    0,  478,    0,  477,    0,  562,    0,
764
765         0,  561,    0,    0,    0,  571,    0,    0,    0,   12,
766         0,   12,    0,   33,    0,    0,   31,   32,    0,    0,
767        30,   56,   55,  200,  200,    0,    0,    0,    0,    0,
768       190,  189,    0,    0,  251,    0,    0,    0,    0,  389,
769         0,    0,    0,    0,    0,    0,  476,  475,  556,  560,
770       555,  559,    0,    0,    0,    0,    0,    0,    0,   25,
771         0,    0,    0,   24,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776         0,    0,  148,  147,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,  196,  195,    0,  231,  230,    0,    0,
778         0,    0,    0,    0,    0,  371,  370,    0,    0,  441,
779         0,  440,    0,    0,   11,    0,    0,    0,    0,    0,
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,  415,  414,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,  445,  444,    0,    0,    0,    0,
785         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
786
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,   35,   27,    0,   34,   26,    0,    0,    0,    0,
789         0,    0,  180,    0,    0,  179,    0,    0,  294,    0,
790         0,  293,    0,    0,    0,    0,    0,    0,    0,  184,
791         0,  183,    0,  296,    0,  295,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,    0,   37,
793        36,    0,  154,    0,  153,    0,    0,    0,    0,    0,
794         0,  156,  155,  182,  181,  298,  297,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
803         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
804         0,    0,    0,   13,    0
805     } ;
806
807 static yyconst flex_int32_t yy_ec[256] =
808     {   0,
809         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
810         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
813         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
814        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
815        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
816        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
817        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
818        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
819
820        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
821        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
822        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
823         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830
831         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
834         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
835         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
836         1,    1,    1,    1,    1
837     } ;
838
839 static yyconst flex_int32_t yy_meta[75] =
840     {   0,
841         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
842         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
843         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
844         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
845         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
846         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
847         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
848         5,    5,    5,    5
849     } ;
850
851 static yyconst flex_int16_t yy_base[3973] =
852     {   0,
853         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
854        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
855        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
856       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
857       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
858       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
859       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
860       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
861       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
862       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
863
864       822,  826, 1252, 1314,  829,  883, 1376, 1443,  886,  889,
865       893,  896,  950,  953,  956,  960, 1510, 1579,  963, 1017,
866      1648, 1702, 1020, 1023, 1027, 1030, 1158, 1161, 1164, 1168,
867      1756, 1823, 1171, 1215, 1218, 1221, 1225, 1228, 1272, 1275,
868      1890, 1947, 1278, 1282, 2004, 2074, 1285, 1334, 2144, 2211,
869      1337, 1340, 2278, 2346, 1344, 1347, 2414, 2481, 1396, 1399,
870      1402, 1406, 2548, 2618, 1463, 1466, 1469, 1473, 1530, 1533,
871      1536, 1540, 1543, 1599, 1602, 1605, 1609, 1612, 1668, 1671,
872      1674, 1678, 1681, 1722, 2688, 2755, 1725, 1728, 1732, 1735,
873      1776, 1779, 1782, 1786, 2822, 2892, 1789, 1843, 2962, 3029,
874
875      1846, 1849, 3096, 3163, 1853, 1856, 1910, 1913, 1916, 1920,
876      1923, 1967, 3230, 3287, 1970, 1973, 3344, 3412, 1977, 1980,
877      2024, 2027, 2030, 2034, 2037, 2054, 3480, 3547, 2094, 2097,
878      2100, 2104, 2107, 2124, 2164, 2167, 3614, 3678, 2180, 2189,
879      3742, 3810, 2171, 2176,    0,    0, 9402,12512,12512,   95,
880       100,   29,   41,12512,  103,   51,12512,12512, 9391,12512,
881     12512, 9376,12512, 9391, 9391,  164,12512,12512,12512,12512,
882      9385, 9385, 9340,12512,  158, 9362,    0,  142,12512, 9329,
883      9317,12512,  164, 3874, 9311, 3938, 2183, 1362, 9362,   31,
884     12512,  253, 9353,    0,  143,12512, 9301, 9296,   84,12512,
885
886       258,  253,  109,  141,12512,  322, 9346,    0,  209,12512,
887      9312,12512,  325,  372,12512,  328, 9340,    0,  218,12512,
888      9310, 9302, 9304,12512,  392,  380,12512,  395, 9332,    0,
889       242,12512, 9280, 9275, 9279,12512,  455,  451,  246,12512,
890       458, 9320,    0,  245,12512, 9272, 9272,12512,  462,  457,
891       287,12512,  525, 9313,    0,  313,12512, 9261, 9279, 9277,
892        25, 9276, 9255,12512,  528,  579,12512,  531, 9299,    0,
893       370,12512, 9248,  101, 9254, 9260,  317,  175,  258,  526,
894      9248,12512,  534, 9298,  377,12512,  594, 9285,    0,  446,
895     12512, 9252,12512,  652, 9291,  388,12512,  716, 9278,    0,
896
897       580,12512, 9248,12512,  719,  639,12512,  722, 9276,    0,
898       636,12512, 9221, 9227, 9237,  638, 9216,12512,  783,  272,
899      9222,  569,12512,  786, 9262,    0,  637,12512, 9214, 9224,
900      9211,12512,  789,  833,12512,  847, 9250,    0,  640,12512,
901      9212,12512,  853, 2188, 9256,  681,12512,  856, 9243,    0,
902       706,12512, 9213, 9209, 9207,   15,12512,  914, 9243,  704,
903     12512,  917, 9234,    0,  707,12512, 9192, 9196,12512,  920,
904       841,12512,  923, 9227,    0,  773,12512, 9190, 9192,12512,
905       980,  967,12512,  989, 9220,    0,  774,12512, 9186, 9166,
906     12512, 1047, 1034,12512, 1056, 9213,    0,  831,12512, 9179,
907
908      9154,12512, 1188, 1289,12512, 1245, 9206,    0,  907,12512,
909      9151, 9149, 9156, 8586, 8588, 8572, 8566,12512, 1302, 1290,
910       964,12512, 1305, 8613,    0,  908,12512, 8579,12512, 1364,
911      1429,  748, 1305,  771, 8567,  815,12512, 1432, 8610,    0,
912       965,12512, 8560, 8564, 8569, 8562, 8548,12512, 1435,   11,
913      8566,  882,12512, 1494, 8593,    0,  968,12512, 8553, 8554,
914     12512, 1499, 1352,12512, 1502, 8582,    0, 1031,12512, 8547,
915      8543, 1358, 8545,   71,12512, 1561, 1547,12512, 1567, 8572,
916         0, 1032,12512, 8519, 1114,12512, 1570, 1419,  949,12512,
917      1573, 8564,    0, 1035,12512, 8517, 8526,12512, 1630, 1616,
918
919     12512, 1636, 8557,    0, 1172,12512, 8499, 8493, 8503, 8472,
920     12512, 1639, 8532, 1171,12512, 1642, 8522,    0, 1173,12512,
921      8469, 8473, 8461, 8465,12512, 1806, 1176, 8460, 1228,12512,
922      1815, 8484,    0, 1229,12512, 8444, 8447, 8442, 1793, 8445,
923     12512, 1818, 8471,    0, 1292,12512, 8423, 8425, 8414,12512,
924      1873, 1860, 1882,  239, 8403,12512, 8464, 8452,12512,12512,
925     12512, 1874,  247, 8395, 8394, 8389, 8425,12512,    0, 2240,
926      8368, 8414, 8395, 8362,  369,  384, 8363, 8362, 8354, 8354,
927       839, 1185,  524, 8331, 8332, 1500, 8352,  439, 1369, 8326,
928      8325, 8325, 8328, 1569, 1296, 8309, 8310, 8335,  629, 1879,
929
930      1425, 1195, 1436,12512,    0, 8297, 8316, 8311, 8299, 8318,
931      8282,12512,    0, 8277, 8283,12512,    0, 8268, 2251, 8261,
932      8277,12512,    0, 8245, 8246, 8241, 8241,12512,    0, 8221,
933      8227, 8217,12512,    0, 2258, 2298, 8198, 8193, 8206, 8206,
934      8201, 8202,12512,    0, 8203, 8202, 2301, 8182, 2304, 8179,
935      8184, 8168, 8159, 8175, 8171, 8153, 8166, 8165, 8158, 8147,
936      8158,12512,    0, 2307, 8146,12512,    0, 8135, 8139,12512,
937         0, 8144,  405, 2310, 8112, 8114, 8131, 8116, 1415,12512,
938         0, 8098, 2366, 2369, 8108,12512,    0, 8102, 8104, 8120,
939     12512,    0, 8089, 2372, 8082, 8071, 8069, 8054,12512,    0,
940
941      8043, 2375, 8041,12512,    0, 2378, 8040, 8029,12512,    0,
942      8028, 8016, 8017,12512,    0, 8015, 8004, 8004,12512,    0,
943      8011, 8011, 7990, 2434, 7980, 7976, 7988, 7970, 7965,12512,
944         0, 7957, 7954, 1630, 1936, 1492, 1638, 1937,12512,    0,
945      7955, 7940, 7946, 7956, 7946, 7923, 7919,12512,    0, 2437,
946      7913, 7904,12512,    0, 7905, 2440, 7893, 7898, 7884, 7892,
947      7889, 7889, 7873,12512,    0, 7857, 7873, 7861, 7855,12512,
948         0, 7841, 2443, 7837,12512,    0, 7833, 7838, 2447, 7834,
949      7826,12512,    0, 7830, 2501, 7834, 7811, 7816, 1678,12512,
950         0, 7812, 2504, 7805,  493, 7801, 7844,12512,    0, 7810,
951
952      7799, 7807, 7781, 7827, 7836, 1334, 7783,12512, 2049,    0,
953      7769, 7768, 7813, 7811, 7763,12512, 2507, 2130, 7757, 2513,
954      2568, 2199, 7768, 7761, 7747, 7759, 7735, 7740, 7732, 7732,
955      7745, 7732,  489, 7722, 7728, 7731, 7715, 7708, 7699, 7704,
956      7712, 7694, 2264, 7704, 7681, 7693, 7672, 7667, 7668, 7682,
957      7666, 7670, 7636, 7641, 7653, 2272, 7632, 7630, 2510, 2582,
958      2571, 2579, 2576, 2639, 7636, 7612, 2589, 2648, 7628, 2642,
959      2330, 7625, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722,
960      2776, 2779, 2788, 2794, 2396, 2801, 2466, 2843, 2855, 2861,
961      2868, 2924, 2846, 2938, 7616, 1993, 2914, 2533, 7619, 2917,
962
963      2602, 2927, 7613, 7601, 7611, 7608, 7603, 7591, 7586, 7576,
964      7589, 7578, 2982, 2991, 2986, 2673, 2994, 3057, 7580, 3050,
965      3054, 7575, 7564, 7576, 2997, 2879, 7574, 7577, 7552, 3060,
966      3063, 1323, 7544, 7549, 3069, 2948, 3119, 3018, 3125, 3129,
967      7556, 3132, 3137, 2340, 7552, 3183, 3152, 7550, 7535, 7521,
968      3186, 3201, 7534, 3192, 3210, 3250, 3253, 3259, 3220, 7513,
969      3262, 3265, 7528, 7513, 3309, 3312, 7518, 7517, 3315, 3319,
970      7507,   37, 7496, 3322, 3364, 3375, 7508, 7490, 3378, 3385,
971      7508, 7488, 3432, 3442, 7492, 7489, 7479, 7489, 7470, 7472,
972      7475, 7457, 3437, 3445, 7467, 3381, 3400, 7442, 3451, 3503,
973
974      7454, 3506, 3464, 3510, 7443, 3513, 7435, 7439, 7441, 3516,
975      3581, 3568, 3571, 3576, 3636, 3639, 7412, 3643, 3536, 3646,
976      3649, 7428, 7399, 3701, 3603, 7396, 3706, 3711, 7380, 3714,
977      3661, 7385, 7384, 3719, 3764, 1390, 7382, 3767, 3771, 7377,
978      7402, 3779, 3788,12512, 7356, 7364, 7354, 3831, 3835, 7382,
979     12512,12512, 1727, 7323,12512, 7364, 7359, 7308,12512,12512,
980      7302, 3794,12512,12512, 7312, 3838, 3841,12512, 3844, 2065,
981      7301, 7294, 7298, 7307, 7297, 7276, 7286, 2407, 7266, 7273,
982      7272, 7276, 7266, 7260, 7255, 7252,  718, 7250, 7233, 7233,
983      7240, 1691, 2610, 7226, 7229, 7237, 7226, 7193, 2613, 7190,
984
985      7196, 7195, 7185, 7176, 7164, 7165, 7147, 7145, 3863, 3868,
986      7127, 7127, 3881, 3885, 7131, 3895, 3900,12512, 3906, 7123,
987      7128, 3942, 3945,12512, 3948, 7108, 3910,12512,12512, 7109,
988      3951, 3954,12512, 3976, 3903, 4005, 7103, 7102, 3973, 4013,
989      3980, 4021,12512, 4026, 4029, 4033, 4041, 4047, 4055, 4059,
990     12512, 4062, 4065,12512,12512, 4074,12512,12512, 4082, 4085,
991      7100, 7108, 7111, 7103, 4093, 4096,12512, 4100, 7092, 7075,
992      7090, 7078, 4103,12512,12512, 4115, 4119,12512,12512, 4127,
993      4133, 7065, 7066, 7049, 7049, 7054, 7046, 7040, 7036, 7031,
994       110, 4141, 4145,12512, 4149, 4153,12512,12512, 4164, 4168,
995
996     12512, 4171, 4174, 4177, 4183,12512, 4192, 7022, 7026, 4196,
997      4202,12512,12512, 7011, 6993, 7007, 4217, 4220,12512, 4223,
998      6993, 6990, 4226, 4232,12512,12512, 4244,12512,12512, 4252,
999      4255,12512, 4260, 4263, 4266, 4274,12512, 4281, 6980, 4289,
1000     12512,12512, 6988, 6990, 6992, 4285, 4300,12512, 4304, 6993,
1001      4307,12512,12512, 4315, 4319,12512, 4326, 4334,12512,12512,
1002      6989, 4345, 4348,12512, 4351, 4354, 4357, 4360, 4375,12512,
1003      4379, 4382, 4388, 4394, 4406,12512, 4409, 6981, 6962, 6949,
1004      6965, 4413,12512,12512, 4421, 4428, 6923, 6915, 4439, 4442,
1005     12512, 4447, 6896, 6905, 4450, 4453,12512, 4461, 6900, 1748,
1006
1007      6897, 6878, 4472, 6885, 6878, 6804, 4476, 4481,12512, 4484,
1008      6802, 4503,12512,12512, 6804, 4491, 4495,12512, 4514, 6755,
1009      4517,12512,12512, 4525, 4529, 4537, 4546, 4549, 6754, 4557,
1010      6743, 4560, 4564,12512, 4567, 4570, 4579, 4588, 4591, 6740,
1011      4599, 4602,12512, 4606, 6736, 4609,12512,12512, 4621, 4628,
1012     12512, 4631, 6736, 6678, 4634,12512,12512, 6642, 4642, 4650,
1013     12512, 4653, 6614, 4657,12512,12512, 6585, 4665, 4674, 4677,
1014     12512, 4683, 6586, 4686, 4689,12512,12512, 4704, 6595, 4707,
1015      4710,12512, 4715, 6564, 4718, 6561, 4722, 4729,12512, 4736,
1016       821, 4741,12512,12512, 6572, 6506, 6460, 4748,12512, 6253,
1017
1018      6255, 6265, 6174, 6122, 6093, 6082, 2681, 2874,   20, 2887,
1019       130,  148,  151, 2750,  192,  214, 2813,  259,  325,  339,
1020       392, 2849,  445,  472,  551,  585,  636, 2852, 3089,  638,
1021      3473, 2957,  662,  722,  719,  721,  786, 4751,12512,12512,
1022       835,  854, 4767,12512,12512,  840, 4775, 3671, 4778, 4784,
1023       918,  944, 4787, 4790,12512,12512,  974, 1011, 4799,12512,
1024     12512, 4807, 4810,12512,12512, 4819,12512,12512, 4827, 4830,
1025     12512,12512, 4838, 4841, 4846, 4859, 4864, 1105, 4867, 1101,
1026      1132, 4870, 4879, 4888,12512,12512, 1158, 1177, 4896, 1211,
1027      1242, 1246, 1268, 1305, 1291, 1308, 1350, 4899, 4902, 4905,
1028
1029      4908, 4923, 1367, 1362, 4926, 4930, 4938, 1368, 4944, 4947,
1030      1418, 1442, 4950, 4956, 4968, 4971, 4974, 4982, 1452, 1475,
1031      1487, 4991, 4994, 1482, 4997, 5001, 5004, 5009, 5023, 1523,
1032      5031, 5019, 5041, 1543, 5056, 1561, 5059, 1550, 1562, 5062,
1033     12512,12512, 5070, 1576, 5077, 1593, 1601, 5080, 1631, 1638,
1034      1634, 1643, 5083, 5092, 1650, 1676, 1696, 5088, 1691, 5101,
1035      5107, 1705, 5112,12512,12512, 5121, 5126, 5143,12512,12512,
1036      1723, 5134, 5152, 1734, 5160, 5163,12512,12512, 5172,12512,
1037     12512, 1727, 5180, 1739, 5183, 1745, 1749, 1763, 5186, 1777,
1038      5189, 5192, 5195, 5211, 1794, 5214, 5217, 1810, 1841, 5225,
1039
1040      1804, 5234, 5237, 5252, 5255, 2026, 1848, 5258,12512, 1858,
1041     12512,12512, 1824, 1814, 1853, 1858, 1862, 1877, 1880, 1880,
1042      3531, 1880, 1891, 3725, 1893, 1915, 3734, 1929, 3802, 1923,
1043      1920, 5261, 1931, 5264, 1945, 5270, 5277, 1933, 1957, 1968,
1044      1991, 1994, 5280, 1989, 2002, 5283, 5286, 5289, 2004, 5292,
1045      5295, 5298, 5301, 5305, 5310, 5313, 2014, 5319, 5333, 5323,
1046      2018, 2000, 5342, 5346, 5349, 5354, 5367, 5375, 5387, 5395,
1047      5398, 5401, 5404, 2040, 5407, 5426, 5434, 2039, 5437,12512,
1048     12512, 2047, 2063, 5445, 5448, 5457, 2056, 2069, 2064, 2069,
1049      5465, 2075, 2074, 5468, 5471, 5476,12512,12512, 5490,12512,
1050
1051      2080, 2073, 5493,12512,12512, 5501, 5505, 5513, 5519, 5531,
1052      2083, 5522, 5527, 2089, 5541,12512,12512, 5549, 5552,12512,
1053     12512, 5560, 2088, 2068, 2088, 5563, 5568, 2106, 5581, 2115,
1054      5584, 5587, 5590, 5605, 5608,12512,12512, 2123, 5616, 5624,
1055     12512,12512, 5619, 5637, 2127, 5640, 5643, 5651, 2119, 5658,
1056      5665, 2132, 5676, 2124, 2134, 5679, 2144, 2137, 2147, 2146,
1057      5683,12512,12512, 2177, 2175, 2169, 5691, 2185, 5698, 5703,
1058      5711, 2172, 5716,12512,12512, 2181, 5726,12512,12512, 2176,
1059      5734, 2182, 5737, 2188, 5743, 5746, 5749, 5756, 5767, 2195,
1060      5770, 5774, 5782,12512,12512, 5790, 2216, 5796,12512,12512,
1061
1062      2212, 2231, 5804, 2204, 5809, 2298, 2637, 5817, 5823, 5831,
1063      2308, 2321, 2342,12512, 5839, 2241, 2253, 2254, 2365, 2250,
1064      2253, 5842, 2265, 2284, 2316, 2322, 5845, 2334, 2324, 2329,
1065      5850, 5857, 5860, 2348, 5863, 2353, 2354, 2350, 2435, 2345,
1066      2364, 2391, 2399, 5866, 5869, 2401, 5872, 2404, 5875, 5879,
1067      5887, 5893, 2401, 5901, 2399, 5905,12512,12512, 5913, 2408,
1068      5916, 5920, 5923, 5928, 5941, 5944, 5952, 5955, 5959,12512,
1069     12512, 5974, 5978, 5986, 5992, 5995, 6004, 2420, 6011,12512,
1070     12512, 6023, 6026, 2422, 2432, 2438, 6034,12512,12512, 6042,
1071      6045, 6056, 2461, 2471, 2464, 6060, 6063, 2456, 2451, 6074,
1072
1073      6078, 2468, 2485, 6081,12512,12512, 6089, 6093, 6101, 2504,
1074      2507, 2487, 6109,12512, 6112, 2491, 6115, 6118, 2479, 6121,
1075      2516, 6128, 2540, 2541, 2530, 6139,12512, 2526, 6142, 6145,
1076     12512,12512, 6153, 2567, 6161, 6164, 6176, 6184, 2542, 6188,
1077     12512,12512, 6196, 6203, 2551, 6214,12512,12512, 2545, 6222,
1078     12512, 2537, 6225, 6228, 6232, 2543, 6235, 2585, 2587, 2593,
1079      2606, 6243, 2605, 6247,12512,12512, 6255,12512, 2606, 6258,
1080      2615, 6262, 2623, 6265, 2632, 6268, 6276, 6290, 6298, 6301,
1081      6305, 6322, 6325, 6329,12512,12512, 6337, 2622, 2636, 2682,
1082      6345, 6348, 2691, 2692, 2707, 2703, 2718, 2707, 2763, 2709,
1083
1084      6352,12512,12512, 6360, 2768, 2787, 2801, 6366, 6372, 6380,
1085      2678, 2696, 2711, 2721, 6384, 6387, 6391, 2725, 6394, 2738,
1086      2740, 2757, 2751, 6397, 6400, 6403, 6407, 2756, 6410, 2791,
1087      2821, 2810, 6413, 6416, 2813, 6419, 6422, 6425, 2821, 6428,
1088     12512,12512, 6436,12512,12512, 2835, 6444, 2852, 6447, 2867,
1089      6450, 6454, 6468, 6472,12512,12512, 6480,12512,12512, 6488,
1090      6491, 6496,12512,12512, 6512, 6515, 6530,12512,12512, 6523,
1091      2864, 6538,12512,12512, 2870, 2874, 2889, 6546,12512,12512,
1092      6554, 6557, 2892, 2881, 2887, 6565,12512,12512, 2899, 6573,
1093      6576, 6579, 2893, 2887, 6584,12512,12512, 2977, 2980, 2896,
1094
1095      2938, 6598, 6601, 2936, 6604, 6607, 2949, 2942, 2983, 3052,
1096      2953, 2963, 6623, 6626, 2974, 6629,12512, 6632,12512,12512,
1097      6648, 2985, 6654,12512,12512, 2987, 3008, 3008, 6662, 6667,
1098      6675, 6680, 6683, 6690, 6694, 6697, 6702, 6705, 6708, 3010,
1099      3015, 6715, 6723, 3033, 6733, 3034, 6736,12512, 3021, 6740,
1100      6743,12512,12512, 6755, 6761, 3026, 6774,12512,12512, 6769,
1101      6782, 6788, 3044, 6796, 3053, 3067, 3079, 6800,12512, 6804,
1102      6808, 3095, 3105, 3106, 3112, 3107, 3116, 3114, 3119, 3125,
1103      3119, 6822, 6825, 3197, 3205, 6828, 6811, 6816, 6852, 6857,
1104      6860, 3113, 3122, 6863, 6866, 3134, 6872, 6875, 3134, 6878,
1105
1106      6881, 6884, 6887, 3130, 3138, 6890, 6893, 3135, 3138, 6896,
1107      6899, 3149, 6902, 6905, 3150, 3158, 3178, 6908, 6911, 6914,
1108      6917, 6920,12512,12512, 6928, 6935, 6938, 6941,12512,12512,
1109      6949, 3171, 3191, 3202, 3224, 6957,12512,12512, 6968, 3208,
1110      3222, 3218, 6973, 6982, 6976, 6991,12512, 3223, 3230, 3259,
1111      3297, 3282, 3311, 3274, 6995, 7000, 7003, 7006, 7010,12512,
1112     12512, 7024, 7027, 3303, 3325, 3309, 3328, 7030, 7033, 7036,
1113      7055, 7061, 7064, 3283, 3289, 3290, 7067, 7070,12512,12512,
1114      7083, 7089, 7092, 7098, 7106, 7110, 7116, 7120, 7124, 7128,
1115      7139,12512,12512, 7134, 7147,12512, 3311, 3316, 7152,12512,
1116
1117      7155,12512,12512, 3298, 7171, 7174,12512,12512, 3299, 7183,
1118      3311, 3308,12512, 7186,12512,12512, 3367, 3356, 3371, 3367,
1119      3381, 3383, 3370, 3385, 3396, 3411, 7194, 7197, 3422, 3524,
1120      3383, 3393, 3391, 3393, 3407, 3412, 3421, 3517, 3416, 3439,
1121      7202, 7205, 3440, 3436, 7208, 7216, 3458, 7219, 7222, 3451,
1122      3466, 7225, 3467, 3475, 7230, 3473, 3501, 3516, 7233,12512,
1123      7236, 7239, 7243, 7246, 7261, 7264, 7267, 7270,12512, 3514,
1124      3540, 3527, 3520, 3543, 7273, 7276, 3536, 7291, 3544, 7294,
1125      3573, 3617, 7302,12512, 3531, 3535, 3597,12512, 3601,12512,
1126      7305, 7309, 7312, 7315,12512, 7323, 7335, 3557, 3576, 3594,
1127
1128      3649,12512, 3649,12512, 7343, 7346, 7349, 7357, 7364, 7370,
1129      7376, 7384, 3604, 3609, 7388, 7391, 7394, 7397,12512,12512,
1130      7406, 7409, 7417, 7420, 7426,12512, 7429, 7438, 7441, 7449,
1131      3617, 3627, 3636, 7452,12512, 3637, 7456, 3642, 3634, 3668,
1132      3682, 3699, 3692, 3703, 3715, 3716, 3730, 3724, 3738, 7459,
1133      3789, 3816, 3787, 3709, 3727, 3724, 3733, 3732, 3732, 3757,
1134      3794, 3790, 3799, 3798, 3792, 3799, 3822, 7462, 7467, 3812,
1135      3827, 3812, 3837, 7471, 3828, 3840, 7478, 7481,12512, 7484,
1136     12512,12512, 7492,12512, 7496, 7500, 3838, 3853, 3859, 7506,
1137      3853, 7524,12512,12512, 3870, 7515, 7533, 3860, 3948, 3896,
1138
1139      3964, 3897, 3863, 7541,12512,12512, 7544, 7547, 7511, 7563,
1140     12512,12512, 3880, 3886, 3904,12512,12512, 7571, 7574, 7582,
1141      3985, 4290, 7590,12512, 7593, 7596,12512,12512, 7604,12512,
1142      3890, 7612, 7615, 7619, 7633,12512, 7636,12512,12512, 7644,
1143      7652, 7647, 7665, 7673, 4089, 4214, 7681, 7684, 7687, 3911,
1144      3913, 7690, 7693, 7705, 3937, 3947, 3949, 3963, 3984, 3961,
1145      3979, 3988, 3991, 4009, 7709, 4032, 4053, 4120, 3954, 3975,
1146      3965, 3980, 3994, 4005, 3988, 4011, 3999, 4032, 4040, 4059,
1147      4042, 7712, 7715, 4058, 4081, 4065, 7718, 4085, 4090, 7723,
1148      7728, 7736, 7744, 4106, 4095, 7747, 7750, 7756, 7770, 4109,
1149
1150      7773,12512,12512, 4110, 4124, 4161, 4151, 4150, 4170, 4163,
1151      7781, 7784, 7789, 7804,12512,12512, 7812,12512, 4142, 7815,
1152      4156, 7818,12512,12512, 4173, 4174, 4176, 4178, 4180, 4180,
1153      7833, 4183, 7836, 7839, 7848,12512,12512, 7856, 4235, 4274,
1154      7864,12512,12512, 4194, 4206, 4352, 4206, 4215, 4367, 7872,
1155      7875, 7878, 7886, 7893, 7904, 7907, 7910, 7913, 7916, 7934,
1156      4246, 4232, 4234, 4239,12512, 4271, 4255, 4255, 4272,12512,
1157      7925, 4325, 4314, 7929, 4258, 4266, 4289, 4336, 4338, 4307,
1158      4302, 4305, 4323, 4385, 4391, 4344, 4352, 7948, 7951, 4352,
1159      4368, 7954, 7957, 4359, 7960, 4393, 4423, 7968, 7973, 4379,
1160
1161      4375, 7977, 7980, 7988,12512,12512, 7996, 7999, 4363, 4373,
1162      4399, 4420, 4420, 4418, 4429, 4430, 8007, 8010, 4418, 8018,
1163     12512,12512, 4429, 8026, 8029, 4416, 4447, 4457, 4496, 4460,
1164      4473, 4504, 8037,12512, 4460, 8040,12512,12512, 4492, 4498,
1165      4495, 4504, 4514, 4502, 4507, 4515, 4523, 4511, 4519, 4529,
1166      8048, 8052, 4551, 4582, 8060,12512,12512, 8068, 8071, 8079,
1167      8082, 8090, 8093,12512,12512, 4535, 4556, 4573, 4576, 4559,
1168      4592, 4607, 4598, 8101, 4629, 8104, 8109, 8113, 4568, 4560,
1169      4633,12512,12512, 4590, 4594, 4582, 4649,12512,12512, 4612,
1170      8123, 8128, 8132, 8135, 8138, 8142, 4629, 4645, 4636, 4648,
1171
1172      8145, 8151,12512, 4625, 4639, 8154,12512,12512, 8164,12512,
1173     12512, 8172, 4632, 4661, 4696, 4665, 4675, 4719, 4690, 8175,
1174     12512,12512, 4677, 8183, 8186,12512,12512, 8197, 4701, 4715,
1175     12512, 4712, 4722,12512, 4701, 4733, 4724, 4739, 4727, 4737,
1176      4748, 4750, 4744, 4749, 4772, 4775, 4767, 8201, 8204, 4779,
1177      4791, 4782, 4794, 8215,12512,12512, 8223,12512,12512, 8231,
1178      4795, 4796,12512, 4805, 4808, 4821,12512, 4822, 8234, 4855,
1179      8237, 8240, 8259, 8302, 8349, 4788, 4789,12512, 4801, 4793,
1180      4798,12512, 4820, 8267, 8270, 8273, 8278, 4873, 4841, 4878,
1181      4854, 8281, 4836, 4865, 8293, 8284, 8296, 4882,12512, 4917,
1182
1183      4897,12512, 4928, 4878, 8314, 8322, 8340, 8332, 4938, 4949,
1184      4952, 4955, 4908, 4973, 4941, 4973, 4947, 4964, 4985, 5003,
1185      4976, 4993, 5010, 5021, 4991, 8369,12512,12512, 5031, 5001,
1186      5032, 5007, 8343,12512, 5042, 5016, 5019, 5045, 5022, 5034,
1187      8377, 5068, 8380, 5093, 5097, 8400, 8447, 5064, 5020, 5069,
1188      5122, 5028, 5098,12512, 5116,12512, 5117, 8390,12512, 5080,
1189      5068, 8420, 5183, 5203, 8411, 8429, 5116,12512, 5118,12512,
1190      5097, 8467,12512,12512, 8475, 5205, 5208,12512,12512,12512,
1191     12512, 5098,12512, 5135,12512, 5137, 5146,12512,12512, 5130,
1192      5159,12512,12512, 5139,12512, 5173,12512, 5193,12512, 5199,
1193
1194      5201,12512, 5200, 5215, 8437,12512, 5249, 5353, 5229, 5219,
1195      5363, 5225, 8440,12512, 5312, 5357,12512,12512, 5359, 5310,
1196     12512,12512,12512, 8483, 8486, 5319, 5241, 5345, 5302, 8494,
1197     12512,12512, 5306, 5321, 8504, 5390, 5325, 5401, 5346, 8507,
1198      5347, 5350, 5380, 5389, 5401, 5392,12512,12512,12512,12512,
1199     12512,12512, 8510, 5413, 5401, 5416, 8513, 5384, 5381,12512,
1200      5396, 5406, 5393,12512, 5413, 8516, 8525, 8534, 8537, 5423,
1201      5432, 5455, 5441, 5450, 5464, 5481, 5480, 8545, 8548, 5450,
1202      5465, 5478, 5461, 5473, 5490, 8556, 8559, 5473, 5478, 5513,
1203      5505, 5530, 5519, 8567, 5526, 5480, 5483, 5506, 5491, 5494,
1204
1205      5517, 8570,12512,12512, 8579, 5576, 5624, 5536, 5542, 5538,
1206      5541, 5546, 5543,12512,12512, 8587,12512,12512, 5558, 5565,
1207      5562, 5565, 5572, 5575, 8595,12512,12512, 5610, 5615,12512,
1208      5597,12512, 5600, 5628,12512, 5587, 5568, 5594, 5608, 5589,
1209      5608, 5644, 5643, 5653, 5647, 5658, 5665, 5665, 5667, 5673,
1210      5678, 5678, 5685, 5690, 5691, 5698, 5698,12512,12512, 5720,
1211      5718, 5722, 5666, 5676, 5702, 5688, 5695, 5711, 5726, 5745,
1212      5739, 5759, 5745, 5754, 5776, 5766, 5763, 5784, 5777, 5781,
1213      5798, 5791, 5789, 5806,12512,12512, 5860, 5771, 5832, 5834,
1214      5784, 5846, 5847, 5849, 5849, 5855, 5855, 5872, 5864, 5904,
1215
1216      5886, 5876, 5919, 5903, 5899, 5932, 5913, 5904, 5940, 5944,
1217      5898,12512,12512, 5899,12512,12512, 5937, 5945, 5943, 5948,
1218      5973, 5952,12512, 5977, 5958,12512, 5986, 5967,12512, 5993,
1219      5970,12512, 5989, 5957, 5959, 5979, 5993, 5984, 6006,12512,
1220      6007,12512, 6008,12512, 6013,12512, 6015, 8605, 6044, 6043,
1221      6027, 6049, 6030, 6059, 6026, 6027, 6029, 6030, 8608,12512,
1222     12512, 6080,12512, 6079,12512, 6083, 6091, 6095, 6097, 6116,
1223      6133,12512,12512,12512,12512,12512,12512, 6106, 6108, 6140,
1224      6151, 6132, 6138, 6194, 6267, 6183, 6201, 6261, 6264, 6223,
1225      6254, 6232, 6286, 6089, 6292, 6316, 6317, 6220, 6293, 6423,
1226
1227      6439, 6202, 6278, 6424, 6457, 6446, 6465, 6157, 6325, 6416,
1228      6441, 6421, 6487, 6483, 6515, 6492, 6493, 6517, 6574, 6602,
1229      6604, 6235, 6298, 6531, 6578, 6617, 6694, 6413, 6599, 6642,
1230      6669, 6668, 6700, 6682, 6695, 6542, 6552, 6299, 6545, 6761,
1231      6762, 6445, 6735, 6620, 6789, 6703, 6713, 6793, 6795, 6595,
1232      6710, 6828, 6945, 6905, 6915, 6953, 6980, 6963, 6970, 6827,
1233      6575, 8616, 8619,12512,12512, 8639, 8648, 8657, 8666, 8675,
1234      8684, 8693, 8702, 8711, 8720, 8729, 8738, 8747, 8756, 8765,
1235      8774, 8783, 8792, 8801, 8810, 8819, 8828, 8837, 8846, 8855,
1236      8864, 8873, 8882, 8891, 8900, 8909, 8918, 8927, 8936, 8945,
1237
1238      8954, 8963, 8972, 8981, 8990, 8999, 9008, 9017, 9026, 9035,
1239      9044, 9053, 9062, 9071, 9080, 9089, 9098, 9107, 9116, 9125,
1240      9134, 9143, 9152, 9161, 9170, 9179, 9188, 9197, 9206, 9213,
1241      9220, 9227, 9234, 9241, 9248, 9255, 9262, 9269, 9276, 9283,
1242      9290, 9297, 9304, 9311, 9318, 9325, 9332, 9339, 9346, 9353,
1243      9360, 9367, 9374, 9381, 9388, 9395, 9402, 9409, 9418, 9425,
1244      9430, 9437, 9442, 9449, 9454, 9461, 9466, 9473, 9478, 9485,
1245      9490, 9497, 9502, 9509, 9514, 9521, 9526, 9533, 9538, 9545,
1246      9550, 9557, 9562, 9569, 9574, 9581, 9586, 9593, 9598, 9605,
1247      9610, 9617, 9622, 9629, 9634, 9641, 9646, 9653, 9658, 9665,
1248
1249      9670, 9677, 9682, 9689, 9694, 9701, 9706, 9713, 9718, 9725,
1250      9730, 9737, 9742, 9749, 9754, 9761, 9766, 9775, 9781, 9788,
1251      9796, 9804, 9812, 9819, 9827, 9834, 9842, 9850, 9858, 9866,
1252      9874, 9882, 9890, 9897, 9905, 9913, 9920, 9928, 9935, 9943,
1253      9950, 9958, 9965, 9973, 9980, 9988, 9995,10003,10010,10018,
1254     10025,10033,10040,10048,10055,10063,10070,10078,10085,10093,
1255     10100,10108,10115,10123,10131,10139,10146,10154,10161,10169,
1256     10176,10184,10191,10199,10206,10214,10223,10229,10236,10244,
1257     10251,10259,10266,10274,10281,10289,10296,10304,10312,10319,
1258     10327,10334,10342,10350,10358,10366,10373,10381,10389,10397,
1259
1260     10405,10413,10420,10428,10435,10443,10450,10458,10466,10474,
1261     10482,10490,10497,10505,10512,10520,10527,10535,10542,10550,
1262     10557,10565,10572,10580,10587,10595,10602,10610,10617,10625,
1263     10633,10641,10648,10656,10665,10674,10681,10688,10696,10704,
1264     10712,10719,10727,10734,10742,10750,10758,10766,10773,10781,
1265     10789,10797,10804,10812,10820,10828,10835,10843,10850,10858,
1266     10866,10874,10881,10889,10896,10904,10911,10919,10926,10934,
1267     10941,10949,10957,10965,10972,10980,10987,10995,11002,11010,
1268     11017,11025,11032,11040,11047,11055,11062,11070,11079,11088,
1269     11095,11103,11111,11119,11126,11134,11142,11150,11158,11166,
1270
1271     11174,11181,11189,11197,11204,11212,11220,11228,11235,11243,
1272     11250,11258,11266,11273,11281,11289,11297,11304,11312,11319,
1273     11327,11334,11342,11350,11357,11365,11372,11380,11387,11395,
1274     11403,11411,11418,11426,11433,11441,11448,11456,11465,11474,
1275     11482,11489,11497,11505,11512,11520,11528,11536,11544,11552,
1276     11559,11567,11575,11582,11590,11598,11605,11612,11620,11628,
1277     11635,11643,11651,11658,11666,11674,11681,11689,11696,11704,
1278     11711,11719,11726,11734,11742,11750,11758,11766,11773,11781,
1279     11789,11797,11806,11815,11822,11830,11838,11845,11853,11861,
1280     11869,11877,11884,11892,11900,11907,11915,11923,11930,11937,
1281
1282     11945,11953,11960,11968,11975,11983,11991,11999,12006,12014,
1283     12021,12028,12036,12043,12051,12058,12066,12073,12081,12090,
1284     12099,12106,12114,12122,12130,12138,12146,12154,12162,12169,
1285     12177,12184,12192,12200,12208,12216,12224,12232,12240,12248,
1286     12255,12263,12271,12279,12287,12294,12301,12308,12316,12323,
1287     12331,12338,12346,12355,12364,12371,12379,12387,12395,12403,
1288     12410,12417,12425,12432,12440,12448,12457,12466,12475,12484,
1289     12493,12502
1290     } ;
1291
1292 static yyconst flex_int16_t yy_def[3973] =
1293     {   0,
1294      3466, 3466, 3467, 3467, 3467, 3467, 3468, 3468, 3469, 3469,
1295      3470, 3470, 3471, 3471, 3471, 3471, 3472, 3472, 3473, 3473,
1296      3474, 3474, 3474, 3474, 3466, 3466, 3474, 3474, 3474, 3474,
1297      3466, 3466, 3474, 3474, 3466, 3466, 3474, 3474, 3474, 3474,
1298      3475, 3475, 3476, 3476, 3466, 3466, 3476, 3476, 3476, 3476,
1299      3477, 3477, 3478, 3478, 3479, 3479, 3480, 3480, 3481, 3481,
1300      3482, 3482, 3466, 3466, 3482, 3482, 3482, 3482, 3483, 3483,
1301      3484, 3484, 3466, 3466, 3484, 3484, 3484, 3484, 3485, 3485,
1302      3486, 3486, 3465,   83, 3487, 3487, 3466, 3466, 3487, 3487,
1303      3487, 3487, 3488, 3488, 3489, 3489, 3466, 3466, 3489, 3489,
1304
1305      3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492, 3493, 3493,
1306      3466, 3466, 3493, 3493, 3493, 3493, 3494, 3494, 3495, 3495,
1307      3496, 3496, 3497, 3497, 3466, 3466, 3497, 3497, 3497, 3497,
1308      3498, 3498, 3499, 3499, 3466, 3466, 3499, 3499, 3499, 3499,
1309      3500, 3500, 3501, 3501, 3502, 3502, 3503, 3503, 3504, 3504,
1310      3505, 3505, 3506, 3506, 3507, 3507, 3508, 3508, 3509, 3509,
1311      3466, 3466, 3510, 3510, 3511, 3511, 3511, 3511, 3466, 3466,
1312      3511, 3511, 3511, 3511, 3466, 3466, 3511, 3511, 3466, 3466,
1313      3511, 3511, 3511, 3511, 3512, 3512, 3513, 3513, 3466, 3466,
1314      3513, 3513, 3513, 3513, 3514, 3514, 3515, 3515, 3516, 3516,
1315
1316      3517, 3517, 3518, 3518, 3519, 3519, 3466, 3466, 3519, 3519,
1317      3519, 3519, 3520, 3520, 3521, 3521, 3522, 3522, 3523, 3523,
1318      3466, 3466, 3523, 3523, 3523, 3523, 3524, 3524, 3525, 3525,
1319      3466, 3466, 3525, 3525, 3525, 3525, 3526, 3526, 3527, 3527,
1320      3528, 3528, 3529, 3529, 3466, 3466, 3465, 3465, 3465, 3465,
1321      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1322      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1323      3465, 3465, 3465, 3465, 3465, 3465, 3530, 3465, 3465, 3530,
1324      3530, 3465, 3465, 3465,  284, 3465,  286,  284,  287,  286,
1325      3465, 3465, 3465, 3531, 3465, 3465, 3531, 3531, 3531, 3465,
1326
1327      3465,  286,  286,  286, 3465, 3465, 3465, 3532, 3465, 3465,
1328      3532, 3465, 3465, 3465, 3465, 3465, 3465, 3533, 3465, 3465,
1329      3533, 3533, 3533, 3465, 3465, 3465, 3465, 3465, 3465, 3534,
1330      3465, 3465, 3534, 3534, 3534, 3465, 3465,  286,  286, 3465,
1331      3465, 3465, 3535, 3465, 3465, 3535, 3535, 3465, 3465,  286,
1332       286, 3465, 3465, 3465, 3536, 3465, 3465, 3536, 3536, 3536,
1333      3536, 3536, 3536, 3465, 3465, 3465, 3465, 3465, 3465, 3537,
1334      3465, 3465, 3537, 3537, 3537, 3537, 3537, 3537, 3537, 3537,
1335      3537, 3465, 3465,  286,  286, 3465, 3465, 3465, 3538, 3465,
1336      3465, 3538, 3465, 3465,  286,  286, 3465, 3465, 3465, 3539,
1337
1338      3465, 3465, 3539, 3465, 3465, 3465, 3465, 3465, 3465, 3540,
1339      3465, 3465, 3540, 3540, 3540, 3540, 3540, 3465, 3465,  286,
1340       286,  286, 3465, 3465, 3465, 3541, 3465, 3465, 3541, 3541,
1341      3541, 3465, 3465, 3465, 3465, 3465, 3465, 3542, 3465, 3465,
1342      3542, 3465, 3465,  286,  444,  286, 3465, 3465, 3465, 3543,
1343      3465, 3465, 3543, 3543, 3543, 3543, 3465, 3465,  286,  286,
1344      3465, 3465, 3465, 3544, 3465, 3465, 3544, 3544, 3465, 3465,
1345      3465, 3465, 3465, 3465, 3545, 3465, 3465, 3545, 3545, 3465,
1346      3465, 3465, 3465, 3465, 3465, 3546, 3465, 3465, 3546, 3546,
1347      3465, 3465, 3465, 3465, 3465, 3465, 3547, 3465, 3465, 3547,
1348
1349      3547, 3465, 3465, 3465, 3465, 3465, 3465, 3548, 3465, 3465,
1350      3548, 3548, 3548, 3548, 3548, 3548, 3548, 3465, 3465, 3465,
1351      3465, 3465, 3465, 3465, 3549, 3465, 3465, 3549, 3465, 3465,
1352       444,  444,  286,  286,  286,  286, 3465, 3465, 3465, 3550,
1353      3465, 3465, 3550, 3550, 3550, 3550, 3550, 3465, 3465,  286,
1354       286,  286, 3465, 3465, 3465, 3551, 3465, 3465, 3551, 3551,
1355      3465, 3465, 3465, 3465, 3465, 3465, 3552, 3465, 3465, 3552,
1356      3552, 3552, 3552, 3552, 3465, 3465, 3465, 3465, 3465, 3465,
1357      3553, 3465, 3465, 3553, 3553, 3465, 3465,  286,  286, 3465,
1358      3465, 3465, 3554, 3465, 3465, 3554, 3554, 3465, 3465, 3465,
1359
1360      3465, 3465, 3465, 3555, 3465, 3465, 3555, 3555, 3555, 3555,
1361      3465, 3465,  286,  286, 3465, 3465, 3465, 3556, 3465, 3465,
1362      3556, 3556, 3556, 3556, 3465, 3465,  286,  286,  286, 3465,
1363      3465, 3465, 3557, 3465, 3465, 3557, 3557, 3557, 3465, 3465,
1364      3465, 3465, 3465, 3558, 3465, 3465, 3558, 3558, 3558, 3465,
1365      3465, 3465, 3465, 3559, 3465, 3465, 3465, 3465, 3465, 3465,
1366      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3560, 3560,
1367      3560, 3561, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1368      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1369      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1370
1371      3465, 3465, 3465, 3465, 3562, 3562, 3562, 3562, 3562, 3563,
1372      3465, 3465, 3564, 3564, 3565, 3465, 3566, 3566, 3566, 3566,
1373      3567, 3465, 3568, 3568, 3568, 3568, 3569, 3465, 3570, 3570,
1374      3570, 3571, 3465, 3572, 3572, 3572, 3572, 3572, 3572, 3572,
1375      3572, 3573, 3465, 3574, 3574, 3574, 3574, 3574, 3574, 3574,
1376      3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574,
1377      3575, 3465, 3576, 3576, 3577, 3465, 3578, 3578, 3579, 3465,
1378      3580, 3580, 3580, 3580, 3580, 3580, 3580, 3581, 3465, 3465,
1379      3582, 3582, 3582, 3582, 3583, 3465, 3584, 3584, 3585, 3465,
1380      3465, 3586, 3586, 3586, 3586, 3586, 3586, 3587, 3465, 3588,
1381
1382      3588, 3588, 3589, 3465, 3590, 3590, 3590, 3591, 3465, 3592,
1383      3592, 3592, 3593, 3465, 3594, 3594, 3594, 3595, 3465, 3596,
1384      3596, 3596, 3596, 3596, 3596, 3596, 3596, 3597, 3465, 3465,
1385      3598, 3598, 3599, 3465, 3465, 3465, 3465, 3465, 3465, 3600,
1386      3600, 3600, 3600, 3600, 3600, 3601, 3465, 3465, 3602, 3602,
1387      3602, 3603, 3465, 3604, 3604, 3604, 3604, 3604, 3604, 3604,
1388      3604, 3604, 3605, 3465, 3606, 3606, 3606, 3606, 3607, 3465,
1389      3608, 3608, 3608, 3609, 3465, 3610, 3610, 3610, 3610, 3610,
1390      3611, 3465, 3612, 3612, 3612, 3612, 3612, 3613, 3465, 3465,
1391      3614, 3614, 3614, 3614, 3465, 3615, 3465, 3465, 3616, 3616,
1392
1393      3616, 3616, 3617, 3618, 3465, 3618, 3465, 3465, 3465, 3619,
1394      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3620, 3621,
1395      3621, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1396      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1397      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1398      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3622, 3622,
1399      3622, 3622, 3623, 3623, 3465, 3624, 3625, 3625, 3626, 3465,
1400      3465, 3626, 3627, 3627, 3628, 3628, 3628, 3629, 3629, 3630,
1401      3630, 3631, 3631, 3465, 3465, 3465, 3465, 3632, 3632, 3632,
1402      3632, 3632, 3633, 3633, 3634, 3634, 3465, 3465, 3634, 3465,
1403
1404      3465, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
1405      3634, 3634, 3635, 3635, 3465, 3465, 3636, 3636, 3637, 3638,
1406      3638, 3639, 3639, 3639, 3465, 3465, 3639, 3639, 3639, 3640,
1407      3640, 3465, 3465, 3641, 3465, 3465, 3465, 3465, 3642, 3642,
1408      3643, 3644, 3644, 3465, 3645, 3465, 3465, 3645, 3645, 3645,
1409      3646, 3646, 3647, 3465, 3465, 3648, 3648, 3465, 3465, 3649,
1410      3650, 3650, 3651, 3651, 3652, 3652, 3653, 3653, 3654, 3654,
1411      3655, 3655, 3655, 3465, 3465, 3655, 3655, 3655, 3656, 3656,
1412      3465, 3657, 3658, 3658, 3465, 3465, 3465, 3659, 3659, 3659,
1413      3659, 3659, 3660, 3660, 3465, 3465, 3465, 3661, 3662, 3662,
1414
1415      3663, 3465, 3465, 3663, 3663, 3663, 3663, 3663, 3663, 3664,
1416      3664, 3665, 3665, 3665, 3666, 3666, 3667, 3465, 3465, 3668,
1417      3668, 3669, 3669, 3465, 3465, 3669, 3670, 3670, 3671, 3465,
1418      3465, 3671, 3671, 3672, 3672, 3465, 3673, 3465, 3465, 3673,
1419      3465, 3674, 3674, 3465, 3675, 3675, 3675, 3676, 3676, 3677,
1420      3465, 3465, 3677, 3465, 3465, 3678, 3465, 3465, 3465, 3465,
1421      3465, 3465, 3465, 3465, 3679, 3465, 3680, 3465, 3680, 3465,
1422      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1423      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1424      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1425
1426      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1427      3681, 3681, 3465, 3465, 3681, 3465, 3682, 3465, 3682, 3465,
1428      3683, 3465, 3684, 3465, 3684, 3685, 3465, 3465, 3465, 3685,
1429      3465, 3686, 3465, 3686, 3465, 3465, 3687, 3687, 3465, 3465,
1430      3465, 3688, 3465, 3688, 3465, 3465, 3465, 3465, 3465, 3689,
1431      3465, 3689, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1432      3690, 3690, 3690, 3690, 3465, 3691, 3465, 3691, 3692, 3692,
1433      3692, 3692, 3465, 3465, 3465, 3692, 3465, 3465, 3465, 3465,
1434      3465, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692,
1435      3692, 3465, 3693, 3465, 3693, 3465, 3465, 3465, 3465, 3694,
1436
1437      3465, 3694, 3695, 3465, 3696, 3465, 3696, 3697, 3697, 3697,
1438      3465, 3465, 3465, 3697, 3697, 3697, 3465, 3698, 3465, 3698,
1439      3465, 3465, 3699, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1440      3700, 3465, 3700, 3701, 3465, 3702, 3465, 3702, 3703, 3465,
1441      3465, 3465, 3703, 3703, 3703, 3465, 3704, 3465, 3704, 3705,
1442      3465, 3465, 3465, 3465, 3706, 3465, 3706, 3465, 3465, 3465,
1443      3707, 3465, 3708, 3465, 3708, 3709, 3709, 3465, 3710, 3465,
1444      3710, 3711, 3711, 3465, 3712, 3465, 3712, 3713, 3713, 3713,
1445      3713, 3465, 3465, 3465, 3465, 3465, 3713, 3713, 3465, 3714,
1446      3465, 3714, 3465, 3715, 3465, 3716, 3465, 3716, 3465, 3465,
1447
1448      3465, 3717, 3717, 3717, 3717, 3717, 3465, 3718, 3465, 3718,
1449      3465, 3465, 3465, 3465, 3719, 3465, 3720, 3465, 3720, 3721,
1450      3465, 3465, 3465, 3465, 3465, 3721, 3465, 3465, 3721, 3721,
1451      3721, 3465, 3722, 3465, 3722, 3465, 3465, 3465, 3465, 3723,
1452      3465, 3724, 3465, 3724, 3725, 3465, 3465, 3465, 3465, 3726,
1453      3465, 3726, 3727, 3727, 3465, 3465, 3465, 3727, 3465, 3728,
1454      3465, 3728, 3729, 3465, 3465, 3465, 3729, 3729, 3465, 3730,
1455      3465, 3730, 3465, 3731, 3465, 3465, 3465, 3731, 3465, 3465,
1456      3732, 3465, 3732, 3733, 3733, 3733, 3465, 3734, 3465, 3734,
1457      3735, 3736, 3465, 3465, 3465, 3465, 3737, 3465, 3465, 3465,
1458
1459      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1460      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1461      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1462      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1463      3738, 3738, 3465, 3465, 3465, 3738, 3739, 3465, 3740, 3741,
1464      3742, 3742, 3743, 3465, 3465, 3465, 3744, 3744, 3465, 3465,
1465      3465, 3745, 3465, 3465, 3465, 3465, 3465, 3465, 3746, 3465,
1466      3465, 3465, 3747, 3747, 3747, 3747, 3748, 3749, 3749, 3749,
1467      3749, 3465, 3465, 3465, 3465, 3465, 3749, 3749, 3749, 3749,
1468      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3750, 3751, 3465,
1469
1470      3465, 3752, 3753, 3753, 3465, 3465, 3753, 3753, 3753, 3754,
1471      3465, 3465, 3465, 3465, 3755, 3465, 3465, 3756, 3757, 3757,
1472      3757, 3757, 3758, 3759, 3760, 3761, 3762, 3465, 3465, 3763,
1473      3764, 3465, 3465, 3765, 3766, 3767, 3767, 3767, 3767, 3465,
1474      3465, 3465, 3767, 3767, 3768, 3465, 3769, 3770, 3465, 3465,
1475      3465, 3771, 3465, 3465, 3771, 3771, 3771, 3772, 3465, 3773,
1476      3774, 3775, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1477      3775, 3465, 3465, 3775, 3776, 3465, 3465, 3465, 3465, 3465,
1478      3465, 3777, 3778, 3779, 3780, 3781, 3781, 3781, 3782, 3783,
1479      3783, 3465, 3465, 3784, 3465, 3465, 3465, 3785, 3465, 3786,
1480
1481      3787, 3465, 3465, 3787, 3788, 3789, 3790, 3790, 3465, 3790,
1482      3465, 3465, 3791, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1483      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1484      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1485      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1486      3465, 3465, 3792, 3792, 3792, 3793, 3465, 3465, 3465, 3794,
1487      3795, 3795, 3796, 3797, 3797, 3798, 3799, 3465, 3465, 3800,
1488      3800, 3800, 3801, 3802, 3465, 3465, 3802, 3802, 3465, 3465,
1489      3465, 3802, 3802, 3465, 3465, 3802, 3802, 3802, 3802, 3802,
1490      3802, 3802, 3802, 3803, 3804, 3465, 3465, 3465, 3465, 3465,
1491
1492      3805, 3805, 3465, 3465, 3465, 3465, 3465, 3805, 3465, 3465,
1493      3805, 3806, 3465, 3465, 3465, 3465, 3465, 3807, 3465, 3465,
1494      3465, 3808, 3809, 3809, 3809, 3465, 3465, 3809, 3810, 3811,
1495      3812, 3465, 3465, 3813, 3465, 3465, 3465, 3814, 3815, 3465,
1496      3465, 3465, 3816, 3817, 3818, 3465, 3465, 3818, 3818, 3465,
1497      3465, 3818, 3819, 3465, 3820, 3821, 3465, 3465, 3465, 3822,
1498      3465, 3465, 3465, 3822, 3822, 3822, 3823, 3465, 3465, 3465,
1499      3824, 3825, 3465, 3465, 3465, 3825, 3465, 3465, 3465, 3825,
1500      3826, 3827, 3828, 3829, 3830, 3831, 3831, 3831, 3832, 3833,
1501      3465, 3465, 3465, 3465, 3465, 3834, 3465, 3465, 3465, 3465,
1502
1503      3835, 3465, 3836, 3837, 3465, 3465, 3465, 3465, 3465, 3838,
1504      3839, 3840, 3840, 3465, 3841, 3465, 3465, 3465, 3465, 3465,
1505      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1506      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1507      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1508      3465, 3465, 3842, 3843, 3465, 3465, 3465, 3465, 3844, 3845,
1509      3845, 3846, 3465, 3465, 3465, 3465, 3847, 3848, 3465, 3465,
1510      3465, 3465, 3465, 3849, 3465, 3465, 3850, 3851, 3465, 3465,
1511      3465, 3465, 3465, 3851, 3851, 3851, 3465, 3465, 3465, 3465,
1512      3465, 3851, 3851, 3851, 3851, 3465, 3465, 3851, 3851, 3852,
1513
1514      3853, 3854, 3854, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1515      3465, 3854, 3465, 3465, 3465, 3465, 3855, 3856, 3857, 3857,
1516      3857, 3465, 3465, 3465, 3857, 3465, 3465, 3858, 3859, 3465,
1517      3465, 3465, 3860, 3861, 3862, 3465, 3465, 3863, 3864, 3465,
1518      3465, 3465, 3465, 3465, 3864, 3465, 3465, 3465, 3864, 3465,
1519      3465, 3465, 3865, 3866, 3465, 3465, 3465, 3867, 3867, 3867,
1520      3867, 3868, 3465, 3465, 3465, 3465, 3465, 3465, 3869, 3869,
1521      3869, 3870, 3871, 3872, 3873, 3874, 3465, 3465, 3875, 3465,
1522      3465, 3876, 3877, 3465, 3465, 3465, 3878, 3465, 3879, 3465,
1523      3880, 3881, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1524
1525      3465, 3465, 3465, 3882, 3883, 3884, 3884, 3465, 3465, 3465,
1526      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1527      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1528      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1529      3465, 3465, 3465, 3465, 3465, 3885, 3886, 3465, 3887, 3888,
1530      3465, 3465, 3889, 3465, 3465, 3465, 3465, 3465, 3465, 3890,
1531      3891, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3892,
1532      3893, 3465, 3465, 3465, 3893, 3893, 3893, 3465, 3465, 3465,
1533      3465, 3465, 3893, 3893, 3893, 3465, 3465, 3465, 3893, 3893,
1534      3894, 3895, 3896, 3896, 3465, 3465, 3465, 3465, 3465, 3896,
1535
1536      3465, 3897, 3898, 3899, 3465, 3465, 3899, 3899, 3465, 3465,
1537      3899, 3900, 3901, 3902, 3903, 3465, 3465, 3465, 3465, 3465,
1538      3904, 3905, 3465, 3465, 3465, 3905, 3905, 3465, 3465, 3465,
1539      3906, 3465, 3465, 3465, 3907, 3907, 3907, 3907, 3908, 3465,
1540      3909, 3465, 3465, 3909, 3910, 3911, 3465, 3465, 3912, 3913,
1541      3465, 3465, 3465, 3465, 3465, 3914, 3465, 3465, 3465, 3915,
1542      3465, 3465, 3916, 3917, 3465, 3918, 3465, 3465, 3465, 3465,
1543      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1544      3465, 3919, 3920, 3921, 3921, 3465, 3465, 3465, 3465, 3465,
1545      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1546
1547      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1548      3465, 3465, 3465, 3465, 3465, 3465, 3922, 3923, 3465, 3924,
1549      3925, 3465, 3465, 3465, 3926, 3927, 3928, 3465, 3465, 3465,
1550      3929, 3930, 3930, 3930, 3930, 3465, 3465, 3465, 3930, 3930,
1551      3930, 3930, 3465, 3465, 3931, 3465, 3465, 3932, 3932, 3465,
1552      3465, 3465, 3465, 3932, 3465, 3933, 3934, 3935, 3465, 3465,
1553      3465, 3935, 3935, 3465, 3465, 3465, 3465, 3935, 3936, 3937,
1554      3938, 3939, 3940, 3941, 3941, 3941, 3465, 3465, 3465, 3465,
1555      3942, 3465, 3465, 3465, 3943, 3943, 3943, 3944, 3465, 3945,
1556      3465, 3465, 3465, 3945, 3465, 3465, 3946, 3947, 3465, 3465,
1557
1558      3465, 3465, 3465, 3948, 3949, 3465, 3465, 3465, 3950, 3951,
1559      3465, 3952, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1560      3465, 3465, 3465, 3465, 3465, 3465, 3953, 3954, 3955, 3955,
1561      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1562      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1563      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3956, 3465, 3465,
1564      3465, 3957, 3465, 3465, 3958, 3959, 3960, 3465, 3465, 3961,
1565      3961, 3961, 3961, 3961, 3465, 3465, 3961, 3961, 3961, 3465,
1566      3465, 3465, 3465, 3465, 3962, 3962, 3465, 3465, 3465, 3465,
1567      3962, 3465, 3963, 3465, 3465, 3465, 3465, 3964, 3964, 3964,
1568
1569      3465, 3465, 3465, 3465, 3964, 3465, 3465, 3965, 3966, 3465,
1570      3465, 3940, 3941, 3941, 3941, 3465, 3942, 3465, 3465, 3465,
1571      3465, 3465, 3943, 3943, 3465, 3465, 3465, 3465, 3465, 3945,
1572      3946, 3947, 3948, 3465, 3465, 3950, 3951, 3465, 3952, 3465,
1573      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3953,
1574      3954, 3955, 3955, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1575      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1576      3465, 3465, 3465, 3465, 3465, 3465, 3956, 3465, 3465, 3465,
1577      3465, 3465, 3465, 3465, 3959, 3960, 3961, 3961, 3961, 3961,
1578      3961, 3465, 3465, 3465, 3961, 3465, 3465, 3961, 3465, 3465,
1579
1580      3465, 3465, 3962, 3962, 3465, 3465, 3465, 3465, 3963, 3465,
1581      3465, 3465, 3964, 3964, 3964, 3465, 3465, 3465, 3465, 3465,
1582      3465, 3465, 3465, 3465, 3966, 3465, 3465, 3465, 3465, 3465,
1583      3941, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1584      3465, 3465, 3465, 3465, 3465, 3465, 3945, 3946, 3947, 3948,
1585      3950, 3951, 3465, 3952, 3465, 3465, 3465, 3465, 3465, 3465,
1586      3465, 3465, 3465, 3465, 3953, 3954, 3955, 3955, 3465, 3465,
1587      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1588      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1589      3465, 3959, 3960, 3961, 3961, 3961, 3465, 3465, 3961, 3961,
1590
1591      3465, 3465, 3465, 3961, 3465, 3465, 3465, 3465, 3465, 3465,
1592      3962, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3964, 3964,
1593      3964, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1594      3966, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1595      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3945,
1596      3465, 3465, 3465, 3465, 3948, 3950, 3951, 3465, 3465, 3465,
1597      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1598      3953, 3954, 3955, 3955, 3465, 3465, 3465, 3465, 3465, 3465,
1599      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1600      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3959, 3960, 3961,
1601
1602      3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3961, 3961,
1603      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3962, 3465,
1604      3465, 3465, 3964, 3465, 3465, 3964, 3465, 3465, 3465, 3465,
1605      3465, 3465, 3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465,
1606      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1607      3945, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1608      3465, 3951, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1609      3465, 3465, 3465, 3953, 3954, 3955, 3955, 3955, 3465, 3465,
1610      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1611      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1612
1613      3959, 3465, 3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465,
1614      3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1615      3465, 3465, 3962, 3964, 3465, 3465, 3465, 3964, 3465, 3465,
1616      3465, 3465, 3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465,
1617      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1618      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3951,
1619      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3953, 3954,
1620      3955, 3955, 3955, 3967, 3968, 3465, 3465, 3465, 3465, 3465,
1621      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1622      3465, 3959, 3961, 3961, 3465, 3465, 3961, 3465, 3465, 3465,
1623
1624      3465, 3465, 3465, 3962, 3465, 3465, 3465, 3465, 3465, 3465,
1625      3465, 3465, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1626      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1627      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1628      3953, 3954, 3955, 3969, 3970, 3967, 3968, 3465, 3465, 3465,
1629      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3961,
1630      3961, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1631      3962, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1632      3465, 3941, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1633      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1634
1635      3465, 3465, 3465, 3465, 3465, 3465, 3954, 3969, 3955, 3971,
1636      3970, 3972, 3955, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1637      3465, 3465, 3465, 3961, 3961, 3465, 3465, 3465, 3465, 3465,
1638      3465, 3465, 3465, 3465, 3962, 3465, 3465, 3465, 3465, 3941,
1639      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1640      3465, 3465, 3954, 3971, 3465, 3972, 3955, 3465, 3465, 3465,
1641      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1642      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1643      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1644      3465, 3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465,
1645
1646      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1647      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1648      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1649      3465, 3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465,
1650      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1651      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1652      3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1653      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1654      3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465, 3465, 3465,
1655      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1656
1657      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954,
1658      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1659      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1660      3465, 3465, 3954, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1661      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465, 3465,
1662      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3465,
1663      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3954,
1664      3954, 3465, 3465, 3465, 3465, 3465, 3465, 3954, 3954, 3954,
1665      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1666      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1667
1668      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1669      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1670      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1671      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1672      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1673      3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954, 3954,
1674      3954, 3954, 3954, 3465,    0, 3465, 3465, 3465, 3465, 3465,
1675      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1676      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1677      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1678
1679      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1680      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1681      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1682      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1683      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1684      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1685      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1686      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1687      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1688      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1689
1690      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1691      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1692      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1693      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1694      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1695      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1696      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1697      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1698      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1699      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1700
1701      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1702      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1703      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1704      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1705      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1706      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1707      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1708      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1709      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1710      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1711
1712      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1713      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1714      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1715      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1716      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1717      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1718      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1719      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1720      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1721      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1722
1723      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1724      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1725      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1726      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1727      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1728      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1729      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
1730      3465, 3465
1731     } ;
1732
1733 static yyconst flex_int16_t yy_nxt[12587] =
1734     {   0,
1735      3465,  250,  251,  250,  250,  251,  250,  250,  251,  250,
1736       250,  251,  250,  255,  251,  255,  261,  252,  258,  261,
1737       252,  258,  846,  253, 3465,  259,  253, 3465,  259,  256,
1738       255,  251,  255,  654,  262,  264,  265,  262,  264,  265,
1739       266,  267,  672,  266,  267,  654,  256,  271,  272,  655,
1740       268,  264,  265,  268,  269,  657,  266,  264,  265,  847,
1741       269,  656,  266,  271,  272, 3465,  268,  283,  251,  283,
1742       796,  656,  268,  283,  251,  283,  283,  251,  283,  283,
1743       251,  283,  797,  284,  251,  251,  251,  738, 1723,  284,
1744       739,  273,  285, 1379,  700,  285,  653,  653,  653, 1380,
1745
1746       286,  653,  653,  653,  653,  653,  653,  273,  274,  275,
1747       251,  275,  274,  274,  274,  274,  274,  274,  274,  276,
1748       274,  274,  274,  861,  274,  278,  274,  279,  274,  251,
1749       251,  251,  283,  251,  283,  283,  251,  283,  862,  283,
1750       251,  283,  283,  251,  283,  286,  657,  657,  284,  708,
1751       746,  284,  710,  274,  274,  287,  709, 1596,  287,  653,
1752       653,  653,  656,  656,  280,  653,  653,  653,  711, 1597,
1753       662,  747,  700,  281,  274,  275,  251,  275,  274,  274,
1754       274,  274,  274,  274,  274,  276,  274,  274,  274, 1726,
1755       274,  278,  274,  279,  274,  251,  251,  251,  251,  251,
1756
1757       251,  283,  251,  283,  700,  283,  251,  283,  251,  251,
1758       251,  288,  663,  657,  288, 1727, 1728,  285,  664,  274,
1759       274,  285,  657,  665,  289,  251,  251,  251,  666,  656,
1760       280,  283,  251,  283,  283,  251,  283,  753,  656,  281,
1761       754,  289,  283,  251,  283, 1730,  657,  287,  905,  657,
1762       287,  283,  251,  283,  653,  653,  653,  727,  290,  653,
1763       653,  653,  656,  906,  710,  656, 1731,  290,  291,  292,
1764       251,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1765       291,  291,  291,  778,  291,  295,  291,  296,  291,  301,
1766       251,  301,  301,  251,  301,  251,  251,  251,  732,  251,
1767
1768       251,  251,  301,  251,  301,  302,  755,  911,  302,  700,
1769       912,  303,  711,  291,  291,  303,  700,  657,  302,  297,
1770       756, 1733,  298,  653,  653,  653,  653,  653,  653,  653,
1771       653,  653,  779,  656,  299,  291,  292,  251,  292,  291,
1772       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
1773       700,  291,  295,  291,  296,  291,  301,  251,  301,  301,
1774       251,  301,  301,  251,  301,  750,  313,  251,  313,  313,
1775       251,  313,  302,  751,  657,  304,  657, 1734,  304,  752,
1776       291,  291,  314,  715,  657,  314,  297, 1735,  761,  298,
1777       656,  721,  656,  653,  653,  653,  653,  653,  653,  765,
1778
1779       656,  299,  305,  306,  251,  306,  305,  305,  305,  305,
1780       305,  305,  305,  307,  305,  305,  305,  924,  305,  309,
1781       305,  310,  305,  325,  251,  325,  325,  251,  325,  337,
1782       251,  337,  926,  337,  251,  337,  251,  251,  251,  326,
1783       700,  925,  326,  927, 1736,  338,  928,  305,  305,  338,
1784       657,  700,  303,  251,  251,  251,  653,  653,  653,  653,
1785       653,  653,  727,  653,  653,  653,  656, 1023,  732,  303,
1786      1024,  311,  305,  306,  251,  306,  305,  305,  305,  305,
1787       305,  305,  305,  307,  305,  305,  305,  944,  305,  309,
1788       305,  310,  305,  337,  251,  337,  337,  251,  337,  337,
1789
1790       251,  337,  905,  337,  251,  337,  349,  251,  349,  338,
1791       711,  945,  338, 1738,  700,  339,  711,  305,  305,  339,
1792       700, 1739,  350,  349,  251,  349,  653,  653,  653,  653,
1793       653,  653,  653,  653,  653,  653,  653,  653, 1141,  350,
1794      1182,  311,  315,  316,  251,  316,  315,  315,  315,  315,
1795       315,  315,  315,  317,  315,  315,  315, 1183,  315,  319,
1796       315,  320,  315,  251,  251,  251,  251,  251,  251,  349,
1797       251,  349,  938,  349,  251,  349,  349,  251,  349,  303,
1798       778,  757,  303,  657,  657,  350,  939,  315,  315,  350,
1799       742,  321,  351,  758,  759,  653,  653,  653,  322,  656,
1800
1801       656,  323,  315,  316,  251,  316,  315,  315,  315,  315,
1802       315,  315,  315,  317,  315,  315,  315, 1740,  315,  319,
1803       315,  320,  315,  349,  251,  349,  365,  251,  365,  365,
1804       251,  365,  700,  383,  251,  383,  383,  251,  383,  351,
1805       657,  657,  366,  657,  657,  366, 1741,  315,  315,  384,
1806       769,  321,  384,  653,  653,  653,  656,  656,  322,  656,
1807       656,  323,  327,  328,  251,  328,  327,  327,  327,  327,
1808       327,  327,  327,  329,  327,  327,  327,  944,  327,  331,
1809       327,  332,  327,  251,  251,  251,  251,  251,  251,  383,
1810       251,  383,  789,  383,  251,  383,  383,  251,  383,  286,
1811
1812       775,  925,  286, 1742,  776,  384, 1745,  327,  327,  384,
1813       657,  657,  385,  333, 1748,  798,  334,  653,  653,  653,
1814       653,  653,  653,  653,  653,  653,  656,  656,  335,  327,
1815       328,  251,  328,  327,  327,  327,  327,  327,  327,  327,
1816       329,  327,  327,  327,  700,  327,  331,  327,  332,  327,
1817       383,  251,  383,  394,  251,  394,  394,  251,  394,  833,
1818       251,  251,  251,  251,  251,  251,  385,  700, 1516,  395,
1819      1749, 1750,  395, 1751,  327,  327,  286,  657,  657,  286,
1820       333, 1517,  833,  334,  653,  653,  653,  653,  653,  653,
1821       653,  653,  653,  656,  656,  335,  340,  341,  251,  341,
1822
1823       340,  340,  340,  340,  340,  340,  340,  342,  340,  340,
1824       340,  835,  340,  344,  340,  345,  340,  394,  251,  394,
1825       394,  251,  394,  394,  251,  394,  833,  394,  251,  394,
1826       405,  251,  405,  395,  838,  657,  395,  657, 1752,  396,
1827      1151,  340,  340,  396,  785,  657,  406,  346,  653,  653,
1828       653,  656,  803,  656,  653,  653,  653,  653,  653,  653,
1829      1706,  656,  347,  340,  341,  251,  341,  340,  340,  340,
1830       340,  340,  340,  340,  342,  340,  340,  340,  700,  340,
1831       344,  340,  345,  340,  405,  251,  405,  419,  251,  419,
1832       419,  251,  419,  846,  251,  251,  251,  251,  251,  251,
1833
1834       406,  933, 1753,  420, 1754,  934,  420, 1755,  340,  340,
1835       421,  657,  657,  421,  346,  653,  653,  653,  653,  653,
1836       653,  653,  653,  653,  653,  653,  653,  656,  656,  347,
1837       352,  353,  251,  353,  352,  352,  352,  352,  352,  352,
1838       352,  354,  352,  352,  352,  700,  352,  356,  352,  357,
1839       352,  419,  251,  419,  419,  251,  419,  419,  251,  419,
1840       869,  419,  251,  419,  433,  251,  433,  420,  657,  657,
1841       420,  657,  657,  422, 1761,  352,  352,  422,  808,  358,
1842       434,  653,  653,  653,  656,  656,  359,  656,  656,  360,
1843       653,  653,  653,  361, 1762,  362,  363,  352,  353,  251,
1844
1845       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1846       352,  352,  700,  352,  356,  352,  357,  352,  433,  251,
1847       433,  443,  251,  443,  443,  251,  443,  829,  251,  251,
1848       251,  251,  251,  251,  434,  657,  657,  444,  657,  657,
1849       444, 1764,  352,  352,  445,  813,  358,  445,  653,  653,
1850       653,  656,  656,  359,  656,  656,  360,  653,  653,  653,
1851       361, 1765,  362,  363,  367,  368,  251,  368,  367,  367,
1852       367,  367,  367,  367,  367,  369,  367,  367,  367,  370,
1853       367,  371,  367,  372,  367,  370,  370,  370,  370,  370,
1854       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
1855
1856       370,  370,  370,  370,  370,  370,  370,  370,  370,  367,
1857       367,  370,  373,  374,  375,  370,  370,  370,  370,  370,
1858       376,  370,  370,  377,  370,  370,  370,  378,  370,  379,
1859       380,  381,  370,  370,  370,  370,  370,  370,  386,  387,
1860       251,  387,  386,  386,  386,  386,  386,  386,  386,  388,
1861       386,  386,  386, 1774,  386,  390,  386,  391,  386,  443,
1862       251,  443,  443,  251,  443,  443,  251,  443, 1777,  443,
1863       251,  443,  458,  251,  458,  444,  657,  657,  444,  867,
1864      1778,  446,  881,  386,  386,  446,  868,  888,  459,  653,
1865       653,  653,  656,  656,  392,  386,  387,  251,  387,  386,
1866
1867       386,  386,  386,  386,  386,  386,  388,  386,  386,  386,
1868      1782,  386,  390,  386,  391,  386,  458,  251,  458,  251,
1869       251,  251,  251,  251,  251, 1783,  458,  251,  458,  458,
1870       251,  458,  459,  657,  700,  286,  889,  935,  286,  888,
1871       386,  386,  459,  924,  936,  459,  653,  653,  653,  656,
1872       937,  392,  397,  398,  251,  398,  397,  397,  397,  397,
1873       397,  397,  397,  399,  397,  397,  397,  945,  397,  401,
1874       397,  402,  397,  458,  251,  458,  458,  251,  458,  470,
1875       251,  470, 1786,  470,  251,  470,  481,  251,  481,  460,
1876      1787,  700,  460,  657,  657,  471,  657,  397,  397,  471,
1877
1878       818,  828,  482,  653,  653,  653,  653,  653,  653,  656,
1879       656, 1788,  656,  403,  397,  398,  251,  398,  397,  397,
1880       397,  397,  397,  397,  397,  399,  397,  397,  397, 1789,
1881       397,  401,  397,  402,  397,  481,  251,  481,  492,  251,
1882       492,  492,  251,  492,  938,  503,  251,  503,  503,  251,
1883       503,  482, 1790, 1151,  493,  837,  657,  493,  953,  397,
1884       397,  504, 1791,  852,  504,  653,  653,  653,  700, 1153,
1885       836, 1792,  656, 3465, 1182,  403,  407,  408,  251,  408,
1886       407,  407,  407,  407,  407,  407,  407,  409,  407,  407,
1887       407, 1321,  407,  411,  407,  412,  407,  519,  251,  519,
1888
1889       519,  251,  519,  251,  251,  251,  857,  251,  251,  251,
1890       858,  702, 1793,  520,  859, 1801,  520,  946, 1802,  521,
1891      1808,  407,  407,  521,  413,  686,  414,  703,  947,  697,
1892       869,  928,  415,  653,  653,  653,  653,  653,  653,  416,
1893       833, 1473,  417,  407,  408,  251,  408,  407,  407,  407,
1894       407,  407,  407,  407,  409,  407,  407,  407, 1183,  407,
1895       411,  407,  412,  407,  530,  251,  530,  530,  251,  530,
1896       530,  251,  530,  938,  530,  251,  530, 1032,  711,  834,
1897       531, 1033,  700,  531,  938, 1813,  532,  957,  407,  407,
1898       532,  413,  835,  414,  836,  653,  653,  653,  958,  415,
1899
1900       653,  653,  653,  653,  653,  653,  416, 1814, 1823,  417,
1901       423,  424,  251,  424,  423,  423,  423,  423,  423,  423,
1902       423,  425,  423,  423,  423, 1824,  423,  427,  423,  428,
1903       423,  251,  251,  251,  251,  251,  251,  530,  251,  530,
1904      1087,  530,  251,  530,  530,  251,  530,  533, 1825, 1830,
1905       533,  657,  935,  531,  953,  423,  423,  531,  863,  936,
1906       534,  429,  653,  653,  653,  942,  430,  656,  653,  653,
1907       653,  653,  653,  653,  653,  653,  653, 1838,  431,  423,
1908       424,  251,  424,  423,  423,  423,  423,  423,  423,  423,
1909       425,  423,  423,  423, 1843,  423,  427,  423,  428,  423,
1910
1911       530,  251,  530,  251,  251,  251,  251,  251,  251, 1845,
1912       530,  251,  530,  530,  251,  530,  534, 1848, 1849,  445,
1913       657,  952,  445, 1852,  423,  423,  532,  874,  936,  532,
1914       429,  653,  653,  653,  937,  430,  656,  653,  653,  653,
1915       653,  653,  653,  653,  653,  653, 1854,  431,  435,  436,
1916       251,  436,  435,  435,  435,  435,  435,  435,  435,  437,
1917       435,  435,  435, 1855,  435,  439,  435,  440,  435,  251,
1918       251,  251,  251,  251,  251,  530,  251,  530,  926,  530,
1919       251,  530,  530,  251,  530,  535,  946, 1857,  535,  927,
1920      1858,  534, 1085,  435,  435,  534, 1859,  947,  536, 1860,
1921
1922      1085,  441,  435,  436,  251,  436,  435,  435,  435,  435,
1923       435,  435,  435,  437,  435,  435,  435, 1864,  435,  439,
1924       435,  440,  435,  530,  251,  530,  549,  251,  549,  549,
1925       251,  549, 1865,  251,  251,  251,  251,  251,  251,  536,
1926      1136, 1516,  550, 1866,  934,  550, 1151,  435,  435,  551,
1927      1491, 1868,  551, 1872, 1522,  441,  447,  448,  251,  448,
1928       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
1929       447, 1876,  447,  451,  447,  452,  447,  549,  251,  549,
1930       549,  251,  549,  549,  251,  549, 1880,  549,  251,  549,
1931       562,  251,  562,  550, 1882, 1884,  550,  895, 1650,  552,
1932
1933      1886,  447,  447,  552,  896,  453,  563,  653,  653,  653,
1934      1887, 1522,  454,  656, 1888,  455,  653,  653,  653,  653,
1935       653,  653,  456,  447,  448,  251,  448,  447,  447,  447,
1936       447,  447,  447,  447,  449,  447,  447,  447, 1890,  447,
1937       451,  447,  452,  447,  562,  251,  562,  576,  251,  576,
1938       576,  251,  576, 1897,  587,  251,  587,  587,  251,  587,
1939       563, 1901, 1902,  577,  657, 1904,  577, 1709,  447,  447,
1940       588,  903,  453,  588,  653,  653,  653, 1914, 1915,  454,
1941       656, 1916,  455,  653,  653,  653,  909,  909,  909,  456,
1942       461,  462,  251,  462,  461,  461,  461,  461,  461,  461,
1943
1944       461,  463,  461,  461,  461, 1917,  461,  465,  461,  466,
1945       461,  251,  251,  251,  251,  251,  251,  587,  251,  587,
1946      1918,  587,  251,  587,  587,  251,  587,  303, 1919, 1920,
1947       303,  952, 1921,  588, 1922,  461,  461,  588,  936, 1923,
1948       589,  467, 1924, 1925,  942,  910,  468,  461,  462,  251,
1949       462,  461,  461,  461,  461,  461,  461,  461,  463,  461,
1950       461,  461, 1926,  461,  465,  461,  466,  461,  587,  251,
1951       587,  599,  251,  599,  599,  251,  599, 1928,  612,  251,
1952       612,  612,  251,  612,  589, 1929, 1930,  600,  935,  952,
1953       600, 1931,  461,  461,  613,  936,  936,  613,  467, 1934,
1954
1955      1937, 1086, 1086,  468,  472,  473,  251,  473,  472,  472,
1956       472,  472,  472,  472,  472,  474,  472,  472,  472, 1938,
1957       472,  476,  472,  477,  472,  251,  251,  251,  251,  251,
1958       251,  612,  251,  612, 1939,  612,  251,  612,  612,  251,
1959       612,  286, 1270, 1940,  286, 1151, 1941,  613, 1942,  472,
1960       472,  613, 1271, 1943,  614,  612,  251,  612, 1946, 1272,
1961       478,  909,  909,  909, 1955, 1155, 1170, 1170, 1170, 1960,
1962      1911,  614, 1961,  479,  472,  473,  251,  473,  472,  472,
1963       472,  472,  472,  472,  472,  474,  472,  472,  472, 1978,
1964       472,  476,  472,  477,  472,  626,  251,  626,  626,  251,
1965
1966       626,  251,  251,  251, 1984,  251,  251,  251,  626,  251,
1967       626,  627, 1985, 1986,  627, 1992, 1993,  628, 1994,  472,
1968       472,  628, 1995, 1998,  627,  626,  251,  626, 1999, 2002,
1969       478, 1162, 1162, 1162, 2003, 1163, 2012, 2016, 1164, 2019,
1970      2020,  627, 2021,  479,  483,  484,  251,  484,  483,  483,
1971       483,  483,  483,  483,  483,  485,  483,  483,  483, 2025,
1972       483,  487,  483,  488,  483,  626,  251,  626,  626,  251,
1973       626, 2028,  651,  251,  651, 2034, 2039,  651,  251,  651,
1974      2045,  629,  264,  265,  629, 2049, 2052,  266,  652,  483,
1975       483,  264,  265,  652,  672, 2053,  266,  639, 2055,  789,
1976
1977      1170, 1170, 1170, 2056,  698,  489,  639, 2057, 2058,  790,
1978       490,  483,  484,  251,  484,  483,  483,  483,  483,  483,
1979       483,  483,  485,  483,  483,  483,  640,  483,  487,  483,
1980       488,  483,  699, 2059, 2060,  640, 2061, 2063,  676, 2069,
1981      2070,  917,  917,  917,  679, 2071,  700, 2073,  701, 2075,
1982       685,  686,  970,  970,  970,  685,  483,  483,  918,  984,
1983       984,  984, 2083, 2088, 1171, 1193, 1193, 1193, 2089,  971,
1984      2090, 2092,  489, 1193, 1193, 1193,  985,  490,  494,  495,
1985       251,  495,  494,  494,  494,  494,  494,  494,  494,  496,
1986       494,  494,  494, 2110,  494,  498,  494,  499,  494,  986,
1987
1988       986,  986,  997,  997,  997, 1000, 1000, 1000, 1015, 1015,
1989      1015, 1025, 1025, 1025, 2111, 2112,  987, 2115, 2116,  998,
1990      2093, 2118, 1001,  494,  494, 1016, 2094, 1151, 1026, 1194,
1991      2095, 1227, 1227, 1227, 2096, 1228, 2119, 1171, 1229,  500,
1992      1709, 1170, 1170, 1170, 2105,  501,  494,  495,  251,  495,
1993       494,  494,  494,  494,  494,  494,  494,  496,  494,  494,
1994       494, 1709,  494,  498,  494,  499,  494, 1035, 1035, 1035,
1995      1037, 1037, 1037, 1046, 1046, 1046, 1054, 1054, 1054, 1058,
1996      1058, 1058, 2106, 2120, 1036, 2121, 2113, 1038, 2122, 2123,
1997      1047,  494,  494, 1055, 2107, 2124, 1059, 1253, 1253, 1253,
1998
1999      2127, 1254, 2114, 2128, 1255, 1194, 2129,  500, 1507, 1507,
2000      1507, 2130, 2133,  501,  505,  506,  251,  506,  505,  505,
2001       505,  505,  505,  505,  505,  507,  505,  505,  505, 2134,
2002       505,  509,  505,  510,  505, 1074, 1074, 1074, 1096, 1096,
2003      1096, 1102, 1102, 1102, 1118, 1118, 1118, 2135, 1124, 1124,
2004      1124, 2136, 1075, 2138, 2139, 1097, 2131, 2146, 1103,  505,
2005       505, 1119,  511,  512,  513, 1125, 2148, 1256, 1256, 1256,
2006       514, 1257, 2132,  515, 1258, 2150, 2171,  516, 2175, 2176,
2007       517,  505,  506,  251,  506,  505,  505,  505,  505,  505,
2008       505,  505,  507,  505,  505,  505, 2177,  505,  509,  505,
2009
2010       510,  505, 1130, 1130, 1130, 1138, 1138, 1138,  917,  917,
2011       917, 1209, 1209, 1209, 1166, 1166, 1166, 2183, 2184, 1131,
2012      2185, 2189, 1139, 2190, 2193,  918,  505,  505, 1210,  511,
2013       512,  513, 1168, 2194, 1273, 1273, 1273,  514, 1274, 2198,
2014       515, 1275, 2199, 2200,  516, 2201, 2204,  517,  522,  523,
2015       251,  523,  522,  522,  522,  522,  522,  522,  522,  524,
2016       522,  522,  522, 2208,  522,  526,  522,  527,  522, 1166,
2017      1166, 1166, 1213, 1213, 1213, 2209, 2210, 1216, 1216, 1216,
2018      3465, 3465, 3465, 3465, 3465, 3465, 2211, 1168, 2212, 1214,
2019      1222, 1222, 1222,  522,  522, 1218, 2215, 3465, 2222, 2226,
2020
2021      3465, 2227, 2228, 1277, 1277, 1277, 1169, 1278, 1224, 2233,
2022      1279, 1193, 1193, 1193, 1528, 1528, 1528,  528,  522,  523,
2023       251,  523,  522,  522,  522,  522,  522,  522,  522,  524,
2024       522,  522,  522, 1211,  522,  526,  522,  527,  522, 1215,
2025      1216, 1216, 1216,  970,  970,  970, 2235, 2236, 1212, 1222,
2026      1222, 1222, 1231, 1231, 1231, 1235, 1235, 1235, 1218, 2097,
2027       971, 2237, 2238,  522,  522, 2098, 2240, 1224, 2241, 2099,
2028      1233, 2244, 1236, 2100, 1296, 1296, 1296, 1219, 1297, 2246,
2029      2249, 1298, 1507, 1507, 1507, 2265, 2266,  528,  537,  538,
2030       251,  538,  537,  537,  537,  537,  537,  537,  537,  539,
2031
2032       537,  537,  537, 2267,  537,  541,  537,  542,  537, 1239,
2033      1239, 1239, 2272, 1225, 1241, 1241, 1241, 1241, 1241, 1241,
2034      3465, 3465, 3465, 1245, 1245, 1245, 1240, 2273, 2274, 1231,
2035      1231, 1231, 1243,  537,  537, 1243, 2275, 3465, 2276, 2277,
2036      1246,  543, 2278,  544, 2281, 2290,  545, 1233, 2291, 2292,
2037       546, 1729, 1729, 1729,  547,  537,  538,  251,  538,  537,
2038       537,  537,  537,  537,  537,  537,  539,  537,  537,  537,
2039      1237,  537,  541,  537,  542,  537, 1234, 1247, 1247, 1247,
2040      1249, 1249, 1249, 2293, 2279, 1238, 2296, 1151, 1244, 1249,
2041      1249, 1249, 2280, 2283, 1248,  984,  984,  984, 1251, 2298,
2042
2043       537,  537,  986,  986,  986, 2299, 1709, 1251,  543, 2300,
2044       544, 2301,  985,  545, 1732, 1732, 1732,  546, 2305,  987,
2045      1709,  547,  553,  554,  251,  554,  553,  553,  553,  553,
2046       553,  553,  553,  555,  553,  553,  553, 2284,  553,  557,
2047       553,  558,  553, 2307, 1259, 1259, 1259, 1265, 1265, 1265,
2048      1737, 1737, 1737, 1528, 1528, 1528, 3465, 3465, 3465, 2308,
2049      1252, 1260, 3465, 3465, 3465, 1267, 2285,  553,  553, 3465,
2050      3465, 3465, 2309, 3465, 2312, 1721, 1721, 1721,  559, 3465,
2051      1311, 1311, 1311, 2316, 1312, 2317, 3465, 1313, 1724, 1724,
2052      1724,  560,  553,  554,  251,  554,  553,  553,  553,  553,
2053
2054       553,  553,  553,  555,  553,  553,  553, 1261,  553,  557,
2055       553,  558,  553, 2319, 1262,  997,  997,  997, 1000, 1000,
2056      1000, 1722, 2321, 2332, 1263, 3465, 3465, 3465, 1280, 1280,
2057      1280, 2333,  998, 2334, 1725, 1001, 2335,  553,  553, 1265,
2058      1265, 1265, 3465, 2339, 2340, 1281, 2341, 2342,  559, 1324,
2059      1324, 1324, 2348, 1325, 2349, 2354, 1326, 1267, 1747, 1747,
2060      1747,  560,  564,  565,  251,  565,  564,  564,  564,  564,
2061       564,  564,  564,  566,  564,  564,  564, 1264,  564,  568,
2062       564,  569,  564, 1292, 1292, 1292, 1268, 1015, 1015, 1015,
2063      2355, 2358, 1292, 1292, 1292, 1299, 1299, 1299, 1025, 1025,
2064
2065      1025, 1294, 2362, 2350, 1016, 2363, 2352,  564,  564, 2364,
2066      1294, 2351, 2368, 1301, 2353, 1026,  570, 2365,  571, 1327,
2067      1327, 1327,  572, 1328, 2369, 2372, 1329,  573,  574,  564,
2068       565,  251,  565,  564,  564,  564,  564,  564,  564,  564,
2069       566,  564,  564,  564, 2374,  564,  568,  564,  569,  564,
2070      1295, 1304, 1304, 1304, 2375, 1304, 1304, 1304, 1299, 1299,
2071      1299, 1317, 1317, 1317, 1317, 1317, 1317, 2376, 2377, 1306,
2072      1035, 1035, 1035, 1306,  564,  564, 1301, 2389, 2366, 1319,
2073      2390, 2394, 1319,  570, 2397,  571, 2367, 1036, 2398,  572,
2074      1743, 1743, 1743, 2404,  573,  574,  578,  579,  251,  579,
2075
2076       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
2077       578, 2409,  578,  582,  578,  583,  578, 1307, 2411, 1302,
2078      1037, 1037, 1037, 2412, 2413, 1320, 1330, 1330, 1330, 2417,
2079      1330, 1330, 1330, 1335, 1335, 1335, 1744, 1038, 1335, 1335,
2080      1335,  578,  578, 2418, 1332, 2419, 2420,  584, 1332, 2421,
2081      2422, 1337, 2423, 1340, 1340, 1340, 1337, 1341, 2424, 2425,
2082      1342, 2426,  585,  578,  579,  251,  579,  578,  578,  578,
2083       578,  578,  578,  578,  580,  578,  578,  578, 2443,  578,
2084       582,  578,  583,  578, 1046, 1046, 1046, 1346, 1346, 1346,
2085      2444, 1333, 2445, 1054, 1054, 1054, 2447, 2450, 1338, 2451,
2086
2087      2453, 1047, 1346, 1346, 1346, 1348, 2454, 2455,  578,  578,
2088      1055, 1351, 1351, 1351,  584, 1352, 1709, 2456, 1353, 2457,
2089      1348, 1358, 1358, 1358, 1709, 1359, 2458, 2470, 1360,  585,
2090       590,  591,  251,  591,  590,  590,  590,  590,  590,  590,
2091       590,  592,  590,  590,  590, 2471,  590,  594,  590,  595,
2092       590, 1354, 1354, 1354, 1354, 1354, 1354, 1349, 2472, 2429,
2093      1058, 1058, 1058, 1362, 1362, 1362, 1362, 1362, 1362, 1356,
2094      2477, 2430, 1356, 2473, 2478,  590,  590, 1059, 2479, 2485,
2095       596, 1364, 2486, 2474, 1364, 2487,  597,  590,  591,  251,
2096       591,  590,  590,  590,  590,  590,  590,  590,  592,  590,
2097
2098       590,  590, 2488,  590,  594,  590,  595,  590, 2489, 1357,
2099      1368, 1368, 1368, 1368, 1368, 1368, 1374, 1374, 1374, 2490,
2100      1374, 1374, 1374, 1074, 1074, 1074, 2491, 1365, 1370, 2501,
2101      2502, 1370,  590,  590, 1376, 2503, 2504,  596, 1376, 2513,
2102      1075, 2514, 2515,  597,  601,  602,  251,  602,  601,  601,
2103       601,  601,  601,  601,  601,  603,  601,  601,  601, 2531,
2104       601,  605,  601,  606,  601, 1382, 1382, 1382, 2532, 1383,
2105      2533, 2536, 1384, 2538, 1371, 2539, 1385, 1385, 1385, 1389,
2106      1389, 1389, 1096, 1096, 1096, 1377, 1389, 1389, 1389,  601,
2107       601, 2540,  607, 1386,  608, 2541, 2542, 1391, 2543, 1097,
2108
2109       609, 1412, 1412, 1412, 1391, 1413, 2544, 2545, 1414, 2546,
2110      2547,  610,  601,  602,  251,  602,  601,  601,  601,  601,
2111       601,  601,  601,  603,  601,  601,  601, 2548,  601,  605,
2112       601,  606,  601, 1395, 1395, 1395, 2549, 1392, 1407, 1407,
2113      1407, 1709, 2554, 1395, 1395, 1395, 1407, 1407, 1407, 2555,
2114      2556, 1397, 1416, 1416, 1416, 2558, 1409,  601,  601, 2557,
2115       607, 1397,  608, 2559, 1409, 1421, 1421, 1421,  609, 1422,
2116      1418, 2560, 1423, 2552, 1746, 1746, 1746, 2561, 2564,  610,
2117       615,  616,  251,  616,  615,  615,  615,  615,  615,  615,
2118       615,  617,  615,  615,  615, 2565,  615,  619,  615,  620,
2119
2120       615, 1398, 2566, 2567, 1416, 1416, 1416, 1102, 1102, 1102,
2121      1410, 1424, 1424, 1424, 1427, 1427, 1427, 1432, 1432, 1432,
2122      1725, 2569, 1418, 2570, 1103,  615,  615, 2571, 1425, 2572,
2123       621, 1428, 1721, 1721, 1721, 1434,  622, 1446, 1446, 1446,
2124       623, 1447, 2573, 1709, 1448, 2575,  624,  615,  616,  251,
2125       616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
2126       615,  615, 2576,  615,  619,  615,  620,  615, 1419, 1436,
2127      1436, 1436, 1438, 1438, 1438, 2577, 2562, 3465, 3465, 3465,
2128      2553, 2587, 1432, 1432, 1432, 2563, 1437, 2588, 2589, 1439,
2129      2590, 2591,  615,  615, 3465, 2595, 2598,  621, 2603, 2599,
2130
2131      1434, 2604, 2605,  622, 1455, 1455, 1455,  623, 1456, 2606,
2132      2613, 1457, 2600,  624,  630,  631,  251,  631,  630,  630,
2133       630,  630,  630,  630,  630,  632,  630,  630,  630, 1435,
2134       630,  634,  630,  635,  630, 2614, 1440, 1441, 1441, 1441,
2135      1441, 1441, 1441, 2601, 1118, 1118, 1118, 1449, 1449, 1449,
2136      1449, 1449, 1449, 2615, 2616, 1443, 2602, 2617, 1443,  630,
2137       630, 1119, 1464, 1464, 1464, 1451, 1465,  636, 1451, 1466,
2138       637, 2631, 1746, 1746, 1746, 2632, 2648,  638,  630,  631,
2139       251,  631,  630,  630,  630,  630,  630,  630,  630,  632,
2140       630,  630,  630, 2649,  630,  634,  630,  635,  630, 2650,
2141
2142      2651, 1444, 1124, 1124, 1124, 2653, 2654, 1459, 1459, 1459,
2143      2655, 1452, 1459, 1459, 1459, 1130, 1130, 1130, 1757, 1125,
2144      1469, 1469, 1469,  630,  630, 1461, 1724, 1724, 1724, 2656,
2145      1461,  636, 1131, 2657,  637, 1927, 1927, 1927, 1471, 2658,
2146      2659,  638,  641,  642,  251,  642,  641,  641,  641,  641,
2147       641,  641,  641,  643,  641,  641,  641, 2660,  641,  645,
2148       641,  646,  641, 2661, 2662, 1469, 1469, 1469, 1138, 1138,
2149      1138, 2663, 1475, 1475, 1475, 2664, 1476, 2669, 1462, 1477,
2150      1480, 1480, 1480, 1471, 2670, 1139, 2671,  641,  641, 1480,
2151      1480, 1480, 2672, 2673,  647, 1162, 1162, 1162, 1482, 1163,
2152
2153       648, 2674, 1164, 1729, 1729, 1729, 1709, 1482, 1151,  649,
2154       641,  642,  251,  642,  641,  641,  641,  641,  641,  641,
2155       641,  643,  641,  641,  641, 2675,  641,  645,  641,  646,
2156       641, 1472, 1487, 1487, 1487, 1709, 1487, 1487, 1487, 1166,
2157      1166, 1166, 1166, 1166, 1166, 1498, 1498, 1498, 2666, 2668,
2158      1489, 2676, 2677, 1483, 1489,  641,  641, 1168, 2678, 2679,
2159      1168, 2680,  647, 1499, 1209, 1209, 1209, 2681,  648, 1538,
2160      1538, 1538, 2667, 1539, 2682, 2684, 1540,  649,  657, 2685,
2161      2686, 1210, 1213, 1213, 1213,  672, 1543, 1543, 1543, 2687,
2162      1544, 2688, 2689, 1545,  656,  673, 1216, 1216, 1216, 1214,
2163
2164      1490, 1216, 1216, 1216, 1235, 1235, 1235, 1216, 1216, 1216,
2165      2694, 1227, 1227, 1227, 1218, 1228, 2695, 2696, 1229, 1218,
2166      2699, 1236,  674,  675,  676, 1218, 2700, 2704,  677,  678,
2167       679, 2707, 2710,  680,  681, 2711, 2719,  682, 2720,  683,
2168       684,  685,  657, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
2169      1222, 1222, 1231, 1231, 1231, 1231, 1231, 1231,  656,  687,
2170      2721, 1224, 2732, 2755, 1224, 2756, 2761, 1224, 2762, 2705,
2171      1233, 1547, 2763, 1233, 1239, 1239, 1239, 1231, 1231, 1231,
2172      2706, 1241, 1241, 1241, 2764, 2708,  674,  688,  689, 2765,
2173      2766, 1240,  690,  691,  692, 1233, 2709,  693,  681, 1243,
2174
2175      2767,  694, 1550,  695,  696,  697, 1554, 1554, 1554, 2725,
2176      1555, 2768, 2769, 1556, 1559, 1559, 1559, 2770, 1560, 2726,
2177      2775, 1561, 1241, 1241, 1241, 2727, 1553, 1241, 1241, 1241,
2178      1245, 1245, 1245, 2776, 1563, 1563, 1563, 2777, 1564, 2778,
2179      1243, 1565, 1247, 1247, 1247, 1243, 2779, 1246, 1566, 1566,
2180      1566, 1151, 1567, 2780, 2781, 1568, 1249, 1249, 1249, 1248,
2181      1249, 1249, 1249, 1249, 1249, 1249, 1253, 1253, 1253, 2782,
2182      1254, 2783, 1709, 1255, 1251, 1256, 1256, 1256, 1251, 1257,
2183      2772, 1251, 1258, 1259, 1259, 1259, 1570, 1570, 1570, 1562,
2184      1571, 2784, 2785, 1572, 1265, 1265, 1265, 1265, 1265, 1265,
2185
2186      1260, 1265, 1265, 1265, 1273, 1273, 1273, 2786, 1274, 2787,
2187      2789, 1275, 1267, 2744, 2773, 1267, 1582, 1582, 1582, 1267,
2188      1277, 1277, 1277, 2745, 1278, 1569, 2746, 1279, 1280, 1280,
2189      1280, 2790, 2791, 1583, 1584, 1584, 1584, 2793, 1585, 1709,
2190      2794, 1586, 1292, 1292, 1292, 1281, 1292, 1292, 1292, 1577,
2191      1292, 1292, 1292, 2800, 1296, 1296, 1296, 2801, 1297, 2809,
2192      1294, 1298, 2810, 2811, 1294, 1299, 1299, 1299, 1294, 1299,
2193      1299, 1299, 1299, 1299, 1299, 1600, 1600, 1600, 1304, 1304,
2194      1304, 2774, 2812, 1301, 1304, 1304, 1304, 1301, 2813, 2814,
2195      1301, 2815, 1601, 1304, 1304, 1304, 1306, 1605, 1605, 1605,
2196
2197      2816, 2823, 1306, 1311, 1311, 1311, 2826, 1312, 2827, 2828,
2198      1313, 1306, 2829, 2830, 1606, 2831, 2832, 1598, 1317, 1317,
2199      1317, 1317, 1317, 1317, 1317, 1317, 1317, 1613, 1613, 1613,
2200      2835, 2843, 1599, 1324, 1324, 1324, 1319, 1325, 2747, 1319,
2201      1326, 2844, 1319, 2847, 1614, 1327, 1327, 1327, 2748, 1328,
2202      2848, 2749, 1329, 1330, 1330, 1330, 1330, 1330, 1330, 2839,
2203      1602, 1330, 1330, 1330, 1616, 1616, 1616, 1335, 1335, 1335,
2204      2866, 1332, 2840, 2867, 1332, 1335, 1335, 1335, 2868, 1332,
2205      2869, 1617, 1335, 1335, 1335, 1337, 1346, 1346, 1346, 1610,
2206      1340, 1340, 1340, 1337, 1341, 2870, 2871, 1342, 2841, 2872,
2207
2208      1337, 1346, 1346, 1346, 1348, 1346, 1346, 1346, 1351, 1351,
2209      1351, 2842, 1352, 2873, 2728, 1353, 1354, 1354, 1354, 1348,
2210      1354, 1354, 1354, 1348, 2729, 2879, 1615, 1354, 1354, 1354,
2211      2730, 1618, 2880, 1709, 1356, 1358, 1358, 1358, 1356, 1359,
2212      2881, 2882, 1360, 2883, 1151, 1356, 1362, 1362, 1362, 1362,
2213      1362, 1362, 1362, 1362, 1362, 1628, 1628, 1628, 3465, 3465,
2214      3465, 1368, 1368, 1368, 1364, 1623, 2884, 1364, 2876, 2885,
2215      1364, 2886, 1629, 2845, 2887, 3465, 1368, 1368, 1368, 1370,
2216      1368, 1368, 1368, 1632, 1632, 1632, 2846, 1625, 2849, 3465,
2217      3465, 3465, 2875, 2888, 1370, 1374, 1374, 1374, 1370, 2889,
2218
2219      1633, 2850, 1627, 2890, 2891, 1630, 3465, 1374, 1374, 1374,
2220      1374, 1374, 1374, 1376, 1382, 1382, 1382, 1634, 1383, 2893,
2221      2894, 1384, 1385, 1385, 1385, 1376, 2896, 2897, 1376, 1640,
2222      1640, 1640, 2904, 1641, 2905, 2912, 1642, 2898, 2913, 1386,
2223      1389, 1389, 1389, 1389, 1389, 1389, 2914, 1631, 1389, 1389,
2224      1389, 1395, 1395, 1395, 1395, 1395, 1395, 2899, 1391, 2915,
2225      2916, 1391, 1395, 1395, 1395, 2917, 1391, 2900, 2918, 1397,
2226      2919, 2923, 1397, 1653, 1653, 1653, 1635, 1407, 1407, 1407,
2227      1397, 2924, 1407, 1407, 1407, 1407, 1407, 1407, 2928, 2929,
2228      1654, 2930, 1416, 1416, 1416, 1409, 1416, 1416, 1416, 1645,
2229
2230      1409, 2931, 2932, 1409, 1412, 1412, 1412, 2933, 1413, 1648,
2231      1418, 1414, 2934, 2935, 1418, 1416, 1416, 1416, 1421, 1421,
2232      1421, 2936, 1422, 2937, 2938, 1423, 1424, 1424, 1424, 2939,
2233      1663, 1663, 1663, 1418, 1664, 2940, 2941, 1665, 1666, 1666,
2234      1666, 2942, 2943, 1425, 2944, 2945, 1658, 1427, 1427, 1427,
2235      1668, 1668, 1668, 2946, 1669, 1667, 2947, 1670, 1672, 1672,
2236      1672, 1432, 1432, 1432, 1428, 1432, 1432, 1432, 1432, 1432,
2237      1432, 1436, 1436, 1436, 2961, 1673, 1661, 2962, 2963, 1434,
2238      1676, 1676, 1676, 1434, 1677, 2950, 1434, 1678, 1437, 1438,
2239      1438, 1438, 1679, 1679, 1679, 2951, 1680, 2964, 2965, 1681,
2240
2241      1441, 1441, 1441, 1441, 1441, 1441, 1439, 1441, 1441, 1441,
2242      1446, 1446, 1446, 2966, 1447, 2967, 2952, 1448, 1443, 2968,
2243      2976, 1443, 1449, 1449, 1449, 1443, 2953, 2977, 1675, 1449,
2244      1449, 1449, 1449, 1449, 1449, 1455, 1455, 1455, 2978, 1456,
2245      1451, 2979, 1457, 1459, 1459, 1459, 2980, 1451, 1151, 2981,
2246      1451, 1459, 1459, 1459, 1459, 1459, 1459, 2982, 1464, 1464,
2247      1464, 1461, 1465, 2983, 2988, 1466, 1692, 1692, 1692, 1461,
2248      2989, 2990, 1461, 2991, 1683, 1469, 1469, 1469, 1469, 1469,
2249      1469, 2993, 2970, 1693, 1469, 1469, 1469, 1696, 1696, 1696,
2250      1475, 1475, 1475, 1471, 1476, 2994, 1471, 1477, 2997, 1685,
2251
2252      2998, 2999, 1471, 3000, 1697, 3465, 3465, 3465, 1480, 1480,
2253      1480, 1480, 1480, 1480, 3001, 1689, 1480, 1480, 1480, 1702,
2254      1702, 1702, 3465, 1487, 1487, 1487, 1482, 3002, 3003, 1482,
2255      1487, 1487, 1487, 3004, 1482, 3009, 1703, 1487, 1487, 1487,
2256      3010, 1489, 1708, 1708, 1708, 1694, 3011, 3012, 1489, 1498,
2257      1498, 1498, 1538, 1538, 1538, 1489, 1539, 3013, 3014, 1540,
2258      1709, 1710, 3015, 1700, 3016, 3017, 1698, 1499, 1543, 1543,
2259      1543, 3018, 1544, 3019, 3020, 1545, 1216, 1216, 1216, 1758,
2260      1758, 1758, 3021, 3022, 1705, 1222, 1222, 1222, 1231, 1231,
2261      1231, 1554, 1554, 1554, 1218, 1555, 1759, 3023, 1556, 3024,
2262
2263      1559, 1559, 1559, 1224, 1560, 3025, 1233, 1561, 1241, 1241,
2264      1241, 1563, 1563, 1563, 3029, 1564, 3030, 3031, 1565, 3032,
2265      1566, 1566, 1566, 3035, 1567, 3036, 1243, 1568, 1249, 1249,
2266      1249, 1570, 1570, 1570, 3037, 1571, 3038, 1756, 1572, 1768,
2267      1768, 1768, 3465, 3465, 3465, 1763, 1251, 3465, 3465, 3465,
2268      3039, 3040, 1760, 3048, 3049, 1766, 1769, 3050, 3051, 3465,
2269      3465, 3465, 3465, 3052, 3465, 1265, 1265, 1265, 1775, 1775,
2270      1775, 1582, 1582, 1582, 1151, 1767, 3053, 3465, 3054, 3055,
2271      1779, 1779, 1779, 1267, 1780, 1776, 3056, 1781, 1583, 1584,
2272      1584, 1584, 3057, 1585, 1771, 3060, 1586, 1784, 1784, 1784,
2273
2274      1292, 1292, 1292, 1299, 1299, 1299, 1600, 1600, 1600, 1796,
2275      1796, 1796, 1770, 1797, 1785, 3061, 1798, 3042, 1294, 3067,
2276      1773, 1301, 3068, 1601, 1799, 1799, 1799, 1605, 1605, 1605,
2277      1772, 1803, 1803, 1803, 3069, 1804, 3070, 3071, 1805, 1806,
2278      1806, 1806, 1800, 3078, 1606, 1809, 1809, 1809, 1317, 1317,
2279      1317, 1613, 1613, 1613, 3079, 1795, 1807, 1815, 1815, 1815,
2280      3080, 1816, 1810, 3081, 1817, 1794, 1319, 3082, 1614, 1330,
2281      1330, 1330, 1616, 1616, 1616, 1819, 1819, 1819, 3083, 1820,
2282      3084, 3085, 1821, 1335, 1335, 1335, 3086, 1332, 3087, 1617,
2283      3088, 1811, 1826, 1826, 1826, 1346, 1346, 1346, 1354, 1354,
2284
2285      1354, 1337, 1832, 1832, 1832, 1362, 1362, 1362, 3089, 1827,
2286      1628, 1628, 1628, 1348, 1812, 3090, 1356, 3091, 3092, 1833,
2287      1632, 1632, 1632, 1364, 1835, 1835, 1835, 1629, 1836, 3093,
2288      3094, 1837, 1368, 1368, 1368, 1818, 3095, 1633, 1828, 3096,
2289      3097, 1822, 1840, 1840, 1840, 3098, 1841, 3099, 3100, 1842,
2290      1370, 3101, 1829, 3102, 3103, 1831, 1834, 1374, 1374, 1374,
2291      1846, 1846, 1846, 1640, 1640, 1640, 3104, 1641, 3116, 3114,
2292      1642, 1850, 1850, 1850, 3117, 1376, 3120, 1847, 1389, 1389,
2293      1389, 1395, 1395, 1395, 1653, 1653, 1653, 1151, 1851, 1407,
2294      1407, 1407, 1839, 1861, 1861, 1861, 1391, 1862, 3109, 1397,
2295
2296      1863, 1654, 1869, 1869, 1869, 3109, 3121, 1409, 1416, 1416,
2297      1416, 3115, 3110, 1663, 1663, 1663, 3112, 1664, 1844, 1870,
2298      1665, 3122, 1666, 1666, 1666, 3123, 1418, 1873, 1873, 1873,
2299      3118, 1874, 3124, 3107, 1875, 1672, 1672, 1672, 1867, 1667,
2300      3125, 3133, 1853, 3134, 1668, 1668, 1668, 1856, 1669, 3135,
2301      3140, 1670, 1673, 1877, 1877, 1877, 3141, 1878, 3142, 3143,
2302      1879, 1432, 1432, 1432, 1676, 1676, 1676, 3144, 1677, 3119,
2303      1871, 1678, 3145, 1679, 1679, 1679, 3146, 1680, 3147, 1434,
2304      1681, 1441, 1441, 1441, 1449, 1449, 1449, 1459, 1459, 1459,
2305      1891, 1891, 1891, 1692, 1692, 1692, 1893, 1893, 1893, 1443,
2306
2307      1894, 3148, 1451, 1895, 3149, 1461, 3150, 1892, 3151, 3126,
2308      1693, 1881, 1469, 1469, 1469, 1696, 1696, 1696, 1898, 1898,
2309      1898, 3127, 1899, 3152, 3155, 1900, 1480, 1480, 1480, 3128,
2310      1471, 3136, 1697, 3155, 3138, 1702, 1702, 1702, 1905, 1905,
2311      1905, 3129, 1906, 3137, 1482, 1907, 3139, 1883, 1709, 1710,
2312      1885, 1889, 1703, 1908, 1908, 1908, 1487, 1487, 1487, 1708,
2313      1708, 1708, 1732, 1732, 1732, 1932, 1932, 1932, 1151, 3172,
2314      1909, 1935, 1935, 1935, 1489, 1903, 1896, 1709, 1737, 1737,
2315      1737, 1743, 1743, 1743, 1746, 1746, 1746, 1747, 1747, 1747,
2316      1944, 1944, 1944, 1947, 1947, 1947, 1932, 1932, 1932, 1944,
2317
2318      1944, 1944, 1949, 1949, 1949, 1910, 1951, 1951, 1951, 3153,
2319      1912, 3465, 3465, 3465, 1216, 1216, 1216, 1936, 3164, 1950,
2320      1758, 1758, 1758, 1952, 1222, 1222, 1222, 1913, 3465, 1933,
2321      3175, 3176, 1218, 3165, 1956, 1956, 1956, 1759, 1957, 1948,
2322      3170, 1958, 1224, 1231, 1231, 1231, 3177, 1963, 1963, 1963,
2323      1965, 1965, 1965, 3182, 1945, 1241, 1241, 1241, 3109, 3171,
2324      1945, 1233, 3160, 1933, 1964, 3158, 3173, 1966, 1249, 1249,
2325      1249, 3109, 3110, 1243, 3185, 1953, 1768, 1768, 1768, 3159,
2326      3161, 1954, 3112, 1959, 3188, 3174, 1251, 3189, 1969, 1969,
2327      1969, 1962, 1970, 1769, 3190, 1971, 1972, 1972, 1972, 3465,
2328
2329      3465, 3465, 1975, 1975, 1975, 1265, 1265, 1265, 1775, 1775,
2330      1775, 3180, 3162, 1973, 3191, 3192, 3465, 3193, 3155, 1976,
2331      1967, 3195, 3183, 1267, 3155, 1776, 3163, 1979, 1979, 1979,
2332      3181, 1980, 3196, 1968, 1981, 1982, 1982, 1982, 1779, 1779,
2333      1779, 3184, 1780, 3197, 3198, 1781, 1784, 1784, 1784, 1987,
2334      1987, 1987, 1983, 1988, 3199, 3200, 1989, 1974, 1990, 1990,
2335      1990, 3201, 3208, 1785, 3209, 1977, 1996, 1996, 1996, 1292,
2336      1292, 1292, 1299, 1299, 1299, 1991, 3210, 1796, 1796, 1796,
2337      3211, 1797, 3212, 1997, 1798, 3213, 3214, 1294, 3215, 3219,
2338      1301, 1799, 1799, 1799, 1803, 1803, 1803, 3220, 1804, 3221,
2339
2340      3222, 1805, 1806, 1806, 1806, 3223, 2004, 2004, 2004, 1800,
2341      2005, 3224, 3228, 2006, 2007, 2007, 2007, 3229, 3230, 1807,
2342      1809, 1809, 1809, 2013, 2013, 2013, 3231, 2001, 2015, 2015,
2343      2015, 2008, 2009, 2009, 2009, 2000, 2010, 1810, 3232, 2011,
2344      3233, 2014, 1815, 1815, 1815, 3235, 1816, 3236, 3237, 1817,
2345      1330, 1330, 1330, 1819, 1819, 1819, 3238, 1820, 3239, 3240,
2346      1821, 1335, 1335, 1335, 1826, 1826, 1826, 3241, 1332, 2022,
2347      2022, 2022, 3246, 2023, 3247, 3248, 2024, 3249, 3250, 1337,
2348      3251, 1827, 2026, 2026, 2026, 1354, 1354, 1354, 1832, 1832,
2349      1832, 2030, 2030, 2030, 3252, 2031, 2017, 3253, 2032, 3254,
2350
2351      2027, 3255, 3242, 1356, 3256, 1833, 1362, 1362, 1362, 1835,
2352      1835, 1835, 3257, 1836, 3243, 3258, 1837, 1368, 1368, 1368,
2353      2036, 2036, 2036, 3259, 1364, 1840, 1840, 1840, 2018, 1841,
2354      3260, 2029, 1842, 3261, 3263, 1370, 3264, 2037, 1374, 1374,
2355      1374, 1846, 1846, 1846, 2040, 2040, 2040, 1151, 2041, 3265,
2356      3244, 2042, 2043, 2043, 2043, 3266, 1376, 3267, 1847, 1850,
2357      1850, 1850, 3245, 3268, 2033, 3269, 2046, 2046, 2046, 2044,
2358      2047, 3270, 3262, 2048, 3271, 3272, 1851, 2050, 2050, 2050,
2359      1395, 1395, 1395, 2035, 1861, 1861, 1861, 3273, 1862, 3274,
2360      3275, 1863, 1407, 1407, 1407, 2051, 3276, 3277, 1397, 1869,
2361
2362      1869, 1869, 2038, 3278, 2064, 2064, 2064, 3279, 2065, 3280,
2363      1409, 2066, 2067, 2067, 2067, 3281, 1870, 1873, 1873, 1873,
2364      3282, 1874, 3283, 3284, 1875, 3285, 3286, 1877, 1877, 1877,
2365      2068, 1878, 2054, 3288, 1879, 1432, 1432, 1432, 1441, 1441,
2366      1441, 1151, 3289, 2062, 1449, 1449, 1449, 2077, 2077, 2077,
2367      3465, 3465, 3465, 1434, 3290, 3291, 1443, 2080, 2080, 2080,
2368      3287, 3292, 1451, 3293, 2078, 3294, 3295, 3465, 1459, 1459,
2369      1459, 1891, 1891, 1891, 2081, 2084, 2084, 2084, 3296, 2085,
2370      3297, 3298, 2086, 1893, 1893, 1893, 1461, 1894, 1892, 2074,
2371      1895, 1469, 1469, 1469, 3299, 2076, 2072, 1898, 1898, 1898,
2372
2373      3300, 1899, 3301, 3302, 1900, 1480, 1480, 1480, 3303, 1471,
2374      1905, 1905, 1905, 3304, 1906, 2082, 2079, 1907, 1908, 1908,
2375      1908, 3305, 3306, 1482, 2101, 2101, 2101, 3307, 2102, 3308,
2376      3309, 2103, 1487, 1487, 1487, 1909, 3311, 3312, 2087, 3313,
2377      2108, 2108, 2108, 2117, 2117, 2117, 1927, 1927, 1927, 3314,
2378      1489, 2125, 2125, 2125, 3315, 3316, 2091, 2109, 1932, 1932,
2379      1932, 2126, 2126, 2126, 1935, 1935, 1935, 1944, 1944, 1944,
2380      2137, 2137, 2137, 1947, 1947, 1947, 1949, 1949, 1949, 1151,
2381      2140, 2140, 2140, 2104, 2141, 3317, 3318, 2142, 1951, 1951,
2382      1951, 3319, 3320, 1950, 2143, 2143, 2143, 3321, 2144, 3310,
2383
2384      3322, 2145, 1216, 1216, 1216, 1952, 1956, 1956, 1956, 3323,
2385      1957, 3324, 3325, 1958, 1222, 1222, 1222, 2151, 2151, 2151,
2386      1218, 1231, 1231, 1231, 1963, 1963, 1963, 3326, 3327, 2154,
2387      2154, 2154, 1224, 2155, 2152, 3328, 2156, 3329, 3330, 1233,
2388      3331, 1964, 1965, 1965, 1965, 2157, 2157, 2157, 3332, 2158,
2389      3334, 3335, 2159, 1241, 1241, 1241, 1249, 1249, 1249, 1966,
2390      1969, 1969, 1969, 1151, 1970, 2149, 3336, 1971, 2147, 3333,
2391      3337, 1243, 3338, 3339, 1251, 1972, 1972, 1972, 3340, 2162,
2392      2162, 2162, 2153, 2163, 3341, 3342, 2164, 2165, 2165, 2165,
2393      3343, 3344, 1973, 1975, 1975, 1975, 2167, 2167, 2167, 3345,
2394
2395      2168, 3346, 3347, 2169, 2166, 1265, 1265, 1265, 1151, 3349,
2396      1976, 3350, 1979, 1979, 1979, 3351, 1980, 3352, 2160, 1981,
2397      3353, 2161, 3348, 1267, 1982, 1982, 1982, 2172, 2172, 2172,
2398      3354, 2173, 3355, 3356, 2174, 1987, 1987, 1987, 3357, 1988,
2399      3358, 1983, 1989, 1990, 1990, 1990, 2178, 2178, 2178, 3360,
2400      2179, 3361, 3362, 2180, 3363, 3364, 2170, 2181, 2181, 2181,
2401      1991, 1996, 1996, 1996, 2186, 2186, 2186, 3365, 2187, 3366,
2402      3367, 2188, 3368, 3369, 2182, 1292, 1292, 1292, 1997, 1299,
2403      1299, 1299, 2004, 2004, 2004, 3372, 2005, 3373, 3374, 2006,
2404      2007, 2007, 2007, 1294, 2195, 2195, 2195, 1301, 2196, 3375,
2405
2406      3376, 2197, 2009, 2009, 2009, 3377, 2010, 2008, 1151, 2011,
2407      2013, 2013, 2013, 2015, 2015, 2015, 1330, 1330, 1330, 1335,
2408      1335, 1335, 2205, 2205, 2205, 1151, 2191, 1151, 2014, 2022,
2409      2022, 2022, 2192, 2023, 1332, 1151, 2024, 1337, 1720, 2206,
2410      2026, 2026, 2026, 1354, 1354, 1354, 2030, 2030, 2030, 3396,
2411      2031, 1151, 1151, 2032, 1362, 1362, 1362, 1151, 2027, 1151,
2412      1719, 1356, 2216, 2216, 2216, 2036, 2036, 2036, 2207, 2203,
2413      1151, 3378, 1364, 3380, 2202, 3381, 1151, 2218, 2218, 2218,
2414      2217, 2219, 2037, 1718, 2220, 1374, 1374, 1374, 3379, 2040,
2415      2040, 2040, 2213, 2041, 3388, 3384, 2042, 2043, 2043, 2043,
2416
2417      2214, 3385, 1151, 1376, 2223, 2223, 2223, 3382, 2224, 3386,
2418      3410, 2225, 3389, 1151, 2044, 2046, 2046, 2046, 3383, 2047,
2419      1151, 1151, 2048, 2050, 2050, 2050, 2229, 2229, 2229, 1395,
2420      1395, 1395, 2221, 2232, 2232, 2232, 2234, 2234, 2234, 1151,
2421      1717, 2051, 1151, 2230, 1407, 1407, 1407, 1397, 2064, 2064,
2422      2064, 1151, 2065, 3404, 1151, 2066, 2067, 2067, 2067, 2242,
2423      2242, 2242, 1409, 1432, 1432, 1432, 2247, 2247, 2247, 1449,
2424      1449, 1449, 3390, 1151, 2068, 3391, 2243, 2077, 2077, 2077,
2425      1151, 1434, 3387, 1151, 2248, 3400, 1151, 1451, 3394, 3392,
2426      2231, 2251, 2251, 2251, 2078, 2252, 3424, 1151, 2253, 2254,
2427
2428      2254, 2254, 2080, 2080, 2080, 1151, 2257, 2257, 2257, 2239,
2429      2258, 1151, 1151, 2259, 1716, 1715, 2255, 1151, 1151, 2081,
2430      3393, 1714, 2245, 1459, 1459, 1459, 2261, 2261, 2261, 3405,
2431      2084, 2084, 2084, 2250, 2085, 1151, 1151, 2086, 1469, 1469,
2432      1469, 1461, 3395, 2262, 1151, 2256, 2268, 2268, 2268, 2270,
2433      2270, 2270, 3397, 2101, 2101, 2101, 1471, 2102, 3401, 3425,
2434      2103, 1487, 1487, 1487, 2269, 3440, 2271, 2108, 2108, 2108,
2435      3398, 3399, 2263, 2286, 2286, 2286, 2260, 2287, 3411, 1489,
2436      2288, 2289, 2289, 2289, 2109, 2294, 2294, 2294, 2295, 2295,
2437      2295, 2264, 2117, 2117, 2117, 2297, 2297, 2297, 2302, 2302,
2438
2439      2302, 2125, 2125, 2125, 2126, 2126, 2126, 2282, 2303, 2303,
2440      2303, 2306, 2306, 2306, 2310, 2310, 2310, 2311, 2311, 2311,
2441      2313, 2313, 2313, 2137, 2137, 2137, 2314, 2314, 2314, 2140,
2442      2140, 2140, 1151, 2141, 3406, 1151, 2142, 2143, 2143, 2143,
2443      1151, 2144, 1151, 1151, 2145, 1216, 1216, 1216, 1222, 1222,
2444      1222, 2151, 2151, 2151, 2304, 2322, 2322, 2322, 1151, 2323,
2445      1151, 3430, 2324, 1218, 1151, 1151, 1224, 3407, 2152, 1231,
2446      1231, 1231, 2315, 2154, 2154, 2154, 1151, 2155, 3412, 3402,
2447      2156, 2157, 2157, 2157, 1151, 2158, 3414, 1233, 2159, 1241,
2448      1241, 1241, 1249, 1249, 1249, 3403, 2318, 2162, 2162, 2162,
2449
2450      3408, 2163, 1151, 3413, 2164, 3444, 1151, 1243, 2320, 2326,
2451      1251, 1151, 1151, 2165, 2165, 2165, 2328, 2328, 2328, 3409,
2452      2329, 1713, 1712, 2330, 1265, 1265, 1265, 3420, 2327, 2325,
2453      2166, 2167, 2167, 2167, 1151, 2168, 1151, 3416, 2169, 2172,
2454      2172, 2172, 1267, 2173, 3418, 3419, 2174, 2178, 2178, 2178,
2455      1151, 2179, 3415, 3438, 2180, 2181, 2181, 2181, 2336, 2336,
2456      2336, 1151, 2337, 3439, 1151, 2338, 2186, 2186, 2186, 3417,
2457      2187, 1151, 2182, 2188, 2343, 2343, 2343, 1292, 1292, 1292,
2458      2346, 2346, 2346, 3462, 3421, 2195, 2195, 2195, 1711, 2196,
2459      2331, 2344, 2197, 1151, 1151, 1294, 3426, 1151, 2347, 1330,
2460
2461      1330, 1330, 1335, 1335, 1335, 2205, 2205, 2205, 2359, 2359,
2462      2359, 3441, 2360, 1704, 1151, 2361, 1701, 1332, 1151, 1699,
2463      1337, 1151, 2206, 1151, 1354, 1354, 1354, 1362, 1362, 1362,
2464      2216, 2216, 2216, 2218, 2218, 2218, 1151, 2219, 1695, 1151,
2465      2220, 2345, 1356, 3427, 1691, 1364, 3452, 3431, 2217, 1374,
2466      1374, 1374, 3432, 2357, 2356, 2223, 2223, 2223, 3422, 2224,
2467      3423, 1151, 2225, 2229, 2229, 2229, 1690, 1376, 2378, 2378,
2468      2378, 1688, 2379, 3428, 3446, 2380, 1395, 1395, 1395, 3433,
2469      2230, 2232, 2232, 2232, 2382, 2382, 2382, 1151, 1151, 2371,
2470      2370, 2234, 2234, 2234, 1397, 2383, 2383, 2383, 3465, 3465,
2471
2472      3465, 1151, 2373, 3465, 3465, 3465, 3465, 3465, 3465, 1407,
2473      1407, 1407, 2384, 1151, 1151, 3465, 2242, 2242, 2242, 1151,
2474      3465, 3434, 1151, 3465, 2391, 2391, 2391, 1409, 2392, 1151,
2475      1687, 2393, 1151, 2243, 2395, 2395, 2395, 2247, 2247, 2247,
2476      2381, 2399, 2399, 2399, 2251, 2251, 2251, 3436, 2252, 2385,
2477      3429, 2253, 2396, 3435, 1151, 2248, 2254, 2254, 2254, 2400,
2478      3437, 3453, 2401, 2401, 2401, 2387, 2402, 2386, 3448, 2403,
2479      1459, 1459, 1459, 2255, 2388, 2257, 2257, 2257, 3449, 2258,
2480      1151, 1151, 2259, 2261, 2261, 2261, 1686, 1684, 1461, 2406,
2481      2406, 2406, 1682, 2407, 1674, 3445, 2408, 1469, 1469, 1469,
2482
2483      2262, 2268, 2268, 2268, 1671, 2270, 2270, 2270, 1151, 2414,
2484      2414, 2414, 1151, 2415, 1151, 1471, 2416, 3442, 3443, 2269,
2485      1662, 2405, 2271, 1487, 1487, 1487, 2428, 2428, 2428, 2286,
2486      2286, 2286, 3462, 2287, 2431, 2432, 2288, 2433, 3454, 2436,
2487      2437, 1489, 2438, 3447, 1151, 2434, 1151, 1151, 2410, 3450,
2488      2439, 3451, 2435, 2289, 2289, 2289, 1660, 2440, 2441, 2441,
2489      2441, 2442, 2442, 2442, 2294, 2294, 2294, 2295, 2295, 2295,
2490      1659, 1657, 2427, 2297, 2297, 2297, 2446, 2446, 2446, 2448,
2491      2448, 2448, 2449, 2449, 2449, 2302, 2302, 2302, 2303, 2303,
2492      2303, 2306, 2306, 2306, 2452, 2452, 2452, 2310, 2310, 2310,
2493
2494      2311, 2311, 2311, 2313, 2313, 2313, 2314, 2314, 2314, 2459,
2495      2459, 2459, 2461, 2461, 2461, 1222, 1222, 1222, 2463, 2463,
2496      2463, 2322, 2322, 2322, 1151, 2323, 1656, 2460, 2324, 1231,
2497      1231, 1231, 1655, 1224, 1151, 2464, 1241, 1241, 1241, 1249,
2498      1249, 1249, 2328, 2328, 2328, 1652, 2329, 1233, 1651, 2330,
2499      2468, 2468, 2468, 1649, 1243, 3455, 3456, 1251, 2336, 2336,
2500      2336, 1647, 2337, 1646, 1151, 2338, 3457, 1644, 2469, 2475,
2501      2475, 2475, 1151, 2466, 2343, 2343, 2343, 2483, 2483, 2483,
2502      2465, 2462, 1151, 2480, 2480, 2480, 2476, 2481, 1643, 1151,
2503      2482, 2344, 2346, 2346, 2346, 2484, 2492, 2492, 2492, 1151,
2504
2505      2467, 1330, 1330, 1330, 2494, 2494, 2494, 2496, 2496, 2496,
2506      2347, 2359, 2359, 2359, 3460, 2360, 1639, 1638, 2361, 1332,
2507      3458, 3461, 2495, 1637, 2497, 3465, 3465, 3465, 3465, 3465,
2508      3465, 3465, 3465, 3465, 2506, 2506, 2506, 1354, 1354, 1354,
2509      1636, 1626, 3465, 1624, 1622, 3465, 1621, 3459, 3465, 1620,
2510      1619, 2507, 1612, 2498, 1611, 1356, 1362, 1362, 1362, 1609,
2511      1608, 2493, 2510, 2510, 2510, 1374, 1374, 1374, 2516, 2516,
2512      2516, 2378, 2378, 2378, 1364, 2379, 1607, 1604, 2380, 2511,
2513      2499, 1603, 2505, 1376, 1395, 1395, 1395, 1595, 1594, 2500,
2514      2382, 2382, 2382, 2383, 2383, 2383, 1593, 2508, 1592, 2518,
2515
2516      2518, 2518, 1397, 2519, 1591, 1590, 2520, 2521, 2521, 2521,
2517      2384, 3465, 3465, 3465, 1589, 1588, 2512, 3465, 3465, 3465,
2518      2509, 2525, 2525, 2525, 2522, 2527, 2527, 2527, 3465, 2528,
2519      2528, 2528, 1587, 1581, 3465, 3465, 3465, 3465, 1580, 2526,
2520      2391, 2391, 2391, 2517, 2392, 1579, 2529, 2393, 2395, 2395,
2521      2395, 1578, 3465, 2399, 2399, 2399, 2401, 2401, 2401, 1576,
2522      2402, 1575, 2523, 2403, 1574, 1573, 2396, 1558, 2524, 1557,
2523      1552, 2400, 2534, 2534, 2534, 2406, 2406, 2406, 1551, 2407,
2524      1549, 1548, 2408, 1546, 1469, 1469, 1469, 2414, 2414, 2414,
2525      2535, 2415, 1542, 1541, 2416, 1487, 1487, 1487, 2428, 2428,
2526
2527      2428, 2530, 1471, 2441, 2441, 2441, 2442, 2442, 2442, 2568,
2528      2568, 2568, 1537, 1489, 1536, 1535, 1151, 2446, 2446, 2446,
2529      2448, 2448, 2448, 2449, 2449, 2449, 2452, 2452, 2452, 1534,
2530      2537, 2574, 2574, 2574, 2459, 2459, 2459, 2461, 2461, 2461,
2531      2578, 2578, 2578, 1533, 2463, 2463, 2463, 2580, 2580, 2580,
2532      1532, 2581, 2460, 1531, 2582, 1530, 2550, 1529, 2579, 1527,
2533      2551, 2464, 2583, 2583, 2583, 1241, 1241, 1241, 1249, 1249,
2534      1249, 2468, 2468, 2468, 2475, 2475, 2475, 2592, 2592, 2592,
2535      2584, 2593, 1526, 1243, 2594, 1525, 1251, 1524, 1523, 2469,
2536      1521, 2476, 2596, 2596, 2596, 2480, 2480, 2480, 1520, 2481,
2537
2538      1519, 1518, 2482, 2483, 2483, 2483, 2607, 2607, 2607, 2597,
2539      2492, 2492, 2492, 1330, 1330, 1330, 2494, 2494, 2494, 1515,
2540      1514, 2484, 1513, 2608, 2496, 2496, 2496, 1512, 1511, 2585,
2541      1510, 1332, 1509, 1508, 2495, 2586, 2610, 2610, 2610, 1506,
2542      2611, 2497, 1505, 2612, 2618, 2618, 2618, 2506, 2506, 2506,
2543      2620, 2620, 2620, 1504, 2621, 1503, 1502, 2622, 2623, 2623,
2544      2623, 2619, 1501, 1500, 2507, 1362, 1362, 1362, 1497, 1496,
2545      2609, 2510, 2510, 2510, 1495, 1494, 2624, 2626, 2626, 2626,
2546      1493, 2627, 1492, 1364, 2628, 2629, 2629, 2629, 2511, 2633,
2547      2633, 2633, 2516, 2516, 2516, 2635, 2635, 2635, 2518, 2518,
2548
2549      2518, 1151, 2519, 2630, 1486, 2520, 2634, 2521, 2521, 2521,
2550      2637, 2637, 2637, 2636, 2638, 1485, 1484, 2639, 2640, 2640,
2551      2640, 2642, 2642, 2642, 2522, 1479, 2625, 2525, 2525, 2525,
2552      2527, 2527, 2527, 1478, 1474, 2641, 1468, 1467, 2643, 2528,
2553      2528, 2528, 2644, 2644, 2644, 2526, 2645, 1463, 1458, 2646,
2554      3465, 3465, 3465, 2534, 2534, 2534, 2529, 1469, 1469, 1469,
2555      1487, 1487, 1487, 2568, 2568, 2568, 1454, 3465, 2683, 2683,
2556      2683, 2535, 2574, 2574, 2574, 1471, 1453, 1445, 1489, 2690,
2557      2690, 2690, 2578, 2578, 2578, 2580, 2580, 2580, 1431, 2581,
2558      1430, 1429, 2582, 2583, 2583, 2583, 2691, 1241, 1241, 1241,
2559
2560      2579, 1249, 1249, 1249, 1426, 2647, 1420, 2697, 2697, 2697,
2561      1415, 2584, 2717, 2717, 2717, 1243, 2596, 2596, 2596, 1251,
2562      2665, 1411, 1406, 2652, 2698, 2592, 2592, 2592, 1405, 2593,
2563      2718, 1404, 2594, 2597, 2701, 2701, 2701, 1403, 2702, 1402,
2564      1401, 2703, 2712, 2712, 2712, 2607, 2607, 2607, 2714, 2714,
2565      2714, 1400, 2715, 1399, 1394, 2716, 1393, 1388, 2692, 2713,
2566      1387, 1381, 2608, 1378, 2610, 2610, 2610, 2693, 2611, 1373,
2567      1372, 2612, 2618, 2618, 2618, 2722, 2722, 2722, 1367, 2723,
2568      1366, 1361, 2724, 2620, 2620, 2620, 1350, 2621, 1345, 2619,
2569      2622, 2623, 2623, 2623, 1362, 1362, 1362, 2626, 2626, 2626,
2570
2571      1344, 2627, 1343, 1339, 2628, 2629, 2629, 2629, 1334, 2624,
2572      1323, 1322, 1364, 2733, 2733, 2733, 2633, 2633, 2633, 1316,
2573      2735, 2735, 2735, 2630, 2736, 1315, 1314, 2737, 1310, 1309,
2574      2734, 1308, 1303, 2634, 2635, 2635, 2635, 2637, 2637, 2637,
2575      1291, 2638, 1290, 1289, 2639, 2640, 2640, 2640, 2642, 2642,
2576      2642, 1288, 2636, 2738, 2738, 2738, 2731, 2739, 1287, 1286,
2577      2740, 1285, 2641, 1284, 1283, 2643, 2741, 2741, 2741, 1282,
2578      2742, 1276, 1269, 2743, 2644, 2644, 2644, 1230, 2645, 1226,
2579      1221, 2646, 3465, 3465, 3465, 2751, 2751, 2751, 2753, 2753,
2580      2753, 1469, 1469, 1469, 2758, 2758, 2758, 1220, 1208, 3465,
2581
2582      1207, 1206, 2752, 1205, 1204, 2754, 2759, 2759, 2759, 1471,
2583      1487, 1487, 1487, 2788, 2788, 2788, 2683, 2683, 2683, 2792,
2584      2792, 2792, 1203, 2760, 2690, 2690, 2690, 1202, 1489, 2795,
2585      2795, 2795, 1201, 2796, 1200, 1199, 2797, 1241, 1241, 1241,
2586      1198, 2691, 1197, 2750, 1196, 1249, 1249, 1249, 2802, 2802,
2587      2802, 2697, 2697, 2697, 1195, 1243, 1192, 2804, 2804, 2804,
2588      1191, 2805, 2757, 1251, 2806, 2803, 1190, 1189, 2698, 1188,
2589      2771, 2807, 2807, 2807, 2701, 2701, 2701, 1187, 2702, 1186,
2590      1185, 2703, 2817, 2817, 2817, 2712, 2712, 2712, 2808, 1184,
2591      2820, 2820, 2820, 1181, 2821, 1180, 2799, 2822, 1179, 2818,
2592
2593      1178, 1177, 2713, 1176, 2798, 2714, 2714, 2714, 1175, 2715,
2594      1174, 1173, 2716, 2717, 2717, 2717, 2824, 2824, 2824, 2722,
2595      2722, 2722, 1172, 2723, 1165, 1161, 2724, 1160, 2819, 1159,
2596      1158, 2718, 1157, 2825, 2833, 2833, 2833, 2733, 2733, 2733,
2597      2836, 2836, 2836, 1154, 2837, 1152, 1151, 2838, 1149, 2735,
2598      2735, 2735, 2834, 2736, 2734, 1147, 2737, 2738, 2738, 2738,
2599      1146, 2739, 1145, 1144, 2740, 2741, 2741, 2741, 1143, 2742,
2600      1140, 1137, 2743, 3465, 3465, 3465, 2751, 2751, 2751, 2852,
2601      2852, 2852, 1135, 2853, 1133, 1132, 2854, 2753, 2753, 2753,
2602      3465, 1129, 1128, 2752, 2855, 2855, 2855, 1126, 2856, 1123,
2603
2604      1122, 2857, 1121, 1117, 2754, 2858, 2858, 2858, 2860, 2860,
2605      2860, 1469, 1469, 1469, 2758, 2758, 2758, 2759, 2759, 2759,
2606      1116, 1114, 2859, 1113, 1112, 2861, 1487, 1487, 1487, 1471,
2607      2877, 2877, 2877, 2851, 2760, 2863, 2863, 2863, 1111, 2864,
2608      1109, 1108, 2865, 1107, 1489, 1106, 1105, 2878, 1709, 2788,
2609      2788, 2788, 2892, 2892, 2892, 2792, 2792, 2792, 2895, 2895,
2610      2895, 2795, 2795, 2795, 1104, 2796, 1101, 1100, 2797, 1241,
2611      1241, 1241, 1098, 2862, 2902, 2902, 2902, 2874, 2802, 2802,
2612      2802, 2906, 2906, 2906, 1095, 2907, 1094, 1243, 2908, 2804,
2613      2804, 2804, 2903, 2805, 1092, 2803, 2806, 2807, 2807, 2807,
2614
2615      2909, 2909, 2909, 1091, 2910, 1090, 1089, 2911, 2817, 2817,
2616      2817, 2920, 2920, 2920, 2808, 2921, 1088, 1084, 2922, 2820,
2617      2820, 2820, 1082, 2821, 1081, 2818, 2822, 2824, 2824, 2824,
2618      2925, 2925, 2925, 1080, 2926, 2901, 1078, 2927, 2833, 2833,
2619      2833, 2836, 2836, 2836, 2825, 2837, 1077, 1076, 2838, 2948,
2620      2948, 2948, 1073, 2852, 2852, 2852, 2834, 2853, 1072, 1071,
2621      2854, 2855, 2855, 2855, 1070, 2856, 2949, 1068, 2857, 2858,
2622      2858, 2858, 2954, 2954, 2954, 1067, 2955, 1066, 1064, 2956,
2623      2860, 2860, 2860, 2957, 2957, 2957, 2859, 2958, 1063, 1062,
2624      2959, 1469, 1469, 1469, 2863, 2863, 2863, 2861, 2864, 1060,
2625
2626      1057, 2865, 1487, 1487, 1487, 2971, 2971, 2971, 1053, 1471,
2627      2877, 2877, 2877, 1052, 2973, 2973, 2973, 1050, 2974, 1049,
2628      1489, 2975, 2972, 1709, 2984, 2984, 2984, 2878, 1709, 2892,
2629      2892, 2892, 1709, 2985, 2985, 2985, 2986, 2986, 2986, 2895,
2630      2895, 2895, 2960, 2987, 2987, 2987, 1241, 1241, 1241, 1048,
2631      1045, 2969, 2902, 2902, 2902, 2906, 2906, 2906, 1044, 2907,
2632      1043, 1041, 2908, 1040, 1243, 2909, 2909, 2909, 1034, 2910,
2633      2903, 1031, 2911, 2995, 2995, 2995, 2920, 2920, 2920, 1029,
2634      2921, 1028, 1027, 2922, 3005, 3005, 3005, 2925, 2925, 2925,
2635      2996, 2926, 1022, 1021, 2927, 1019, 1018, 2992, 3007, 3007,
2636
2637      3007, 3006, 2948, 2948, 2948, 3026, 3026, 3026, 1014, 3027,
2638      1012, 1011, 3028, 1010, 1009, 3008, 2954, 2954, 2954, 2949,
2639      2955, 1008, 1007, 2956, 2957, 2957, 2957, 1006, 2958, 1005,
2640      1004, 2959, 3033, 3033, 3033, 1487, 1487, 1487, 2971, 2971,
2641      2971, 3043, 3043, 3043, 1003, 3044, 1002,  999, 3045,  996,
2642      3034,  995,  994, 1489,  992, 2972, 1709,  991,  990, 1709,
2643      2973, 2973, 2973,  989, 2974,  988,  983, 2975, 2984, 2984,
2644      2984, 2985, 2985, 2985, 2986, 2986, 2986,  981, 1709, 2987,
2645      2987, 2987, 3058, 3058, 3058, 3062, 3062, 3062,  980, 3063,
2646       979,  977, 3064,  976, 2995, 2995, 2995, 3065, 3065, 3065,
2647
2648      3059, 3041, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,
2649      1707, 2996,  975, 1707, 3066, 3005, 3005, 3005, 1707, 1707,
2650      1707, 1709, 1707, 3072, 3072, 3072,  974, 3073,  972,  969,
2651      3074,  968, 3006, 3075, 3075, 3075,  966, 3076,  965,  964,
2652      3077, 3007, 3007, 3007, 3033, 3033, 3033, 1707, 1707, 1707,
2653      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 3008,  962,
2654      1707,  961, 3034,  960,  959, 1707, 1707, 1707, 1709, 1707,
2655      3026, 3026, 3026,  956, 3027,  955,  954, 3028, 3105, 3105,
2656      3105, 3043, 3043, 3043,  951, 3044,  950,  949, 3045,  948,
2657       943, 3058, 3058, 3058, 1707, 1707, 3106,  941,  940, 1709,
2658
2659      1707, 1707, 1707, 1707, 1707, 3113, 1707, 1707, 1707, 3059,
2660       932, 1707, 3065, 3065, 3065,  931, 1707, 1707, 1707, 1709,
2661      1707, 3062, 3062, 3062,  930, 3063,  929,  923, 3064, 3066,
2662      3130, 3130, 3130,  922, 3131,  921,  919, 3132, 3105, 3105,
2663      3105, 3157, 3157, 3157,  916, 1707, 1707, 1707, 1707, 1707,
2664      1707, 1707, 1707, 1707, 1707, 3113, 3106,  915, 1707, 1709,
2665      1710,  914,  913, 1707, 1707, 1707, 1709, 1707, 3072, 3072,
2666      3072,  908, 3073,  905,  907, 3074, 3075, 3075, 3075,  902,
2667      3076,  901,  900, 3077, 3166, 3166, 3166, 3168, 3168, 3168,
2668       898,  897, 1707, 1707,  894, 3130, 3130, 3130,  893, 3131,
2669
2670       892, 3167, 3132,  890, 3169, 3178, 3178, 3178, 3186, 3186,
2671      3186, 3194, 3194, 3194, 3157, 3157, 3157, 3166, 3166, 3166,
2672       889,  887, 3179,  886,  885, 3187, 3202, 3202, 3202, 1151,
2673      3203,  884, 1709, 3204, 3167, 3168, 3168, 3168, 3205, 3205,
2674      3205,  882, 3206,  881,  880, 3207, 3178, 3178, 3178, 3216,
2675      3216, 3216, 3169, 3217,  879,  878, 3218, 3186, 3186, 3186,
2676      3225, 3225, 3225, 3179, 3226, 1912,  877, 3227, 3194, 3194,
2677      3194, 3202, 3202, 3202, 3187, 3203,  875,  873, 3204,  872,
2678      3205, 3205, 3205,  870, 3206,  866, 1151, 3207, 3216, 3216,
2679      3216,  864, 3217,  860,  856, 3218, 3225, 3225, 3225,  855,
2680
2681      3226,  853,  851, 3227,  850, 3234, 3359, 3359, 3359, 3359,
2682      3359, 3359,  848, 3370,  847,  845, 3371, 3463, 3463, 3463,
2683      3463, 3463, 3463,  844, 1151,  843,  842, 1151,  841,  839,
2684       838,  832,  830,  827,  826, 3464,  825,  824, 3464,  248,
2685       248,  248,  248,  248,  248,  248,  248,  248,  249,  249,
2686       249,  249,  249,  249,  249,  249,  249,  254,  254,  254,
2687       254,  254,  254,  254,  254,  254,  257,  257,  257,  257,
2688       257,  257,  257,  257,  257,  260,  260,  260,  260,  260,
2689       260,  260,  260,  260,  263,  263,  263,  263,  263,  263,
2690       263,  263,  263,  270,  270,  270,  270,  270,  270,  270,
2691
2692       270,  270,  277,  277,  277,  277,  277,  277,  277,  277,
2693       277,  282,  282,  282,  282,  282,  282,  282,  282,  282,
2694       294,  294,  294,  294,  294,  294,  294,  294,  294,  300,
2695       300,  300,  300,  300,  300,  300,  300,  300,  308,  308,
2696       308,  308,  308,  308,  308,  308,  308,  312,  312,  312,
2697       312,  312,  312,  312,  312,  312,  318,  318,  318,  318,
2698       318,  318,  318,  318,  318,  324,  324,  324,  324,  324,
2699       324,  324,  324,  324,  330,  330,  330,  330,  330,  330,
2700       330,  330,  330,  336,  336,  336,  336,  336,  336,  336,
2701       336,  336,  343,  343,  343,  343,  343,  343,  343,  343,
2702
2703       343,  348,  348,  348,  348,  348,  348,  348,  348,  348,
2704       355,  355,  355,  355,  355,  355,  355,  355,  355,  364,
2705       364,  364,  364,  364,  364,  364,  364,  364,  382,  382,
2706       382,  382,  382,  382,  382,  382,  382,  389,  389,  389,
2707       389,  389,  389,  389,  389,  389,  393,  393,  393,  393,
2708       393,  393,  393,  393,  393,  400,  400,  400,  400,  400,
2709       400,  400,  400,  400,  404,  404,  404,  404,  404,  404,
2710       404,  404,  404,  410,  410,  410,  410,  410,  410,  410,
2711       410,  410,  418,  418,  418,  418,  418,  418,  418,  418,
2712       418,  426,  426,  426,  426,  426,  426,  426,  426,  426,
2713
2714       432,  432,  432,  432,  432,  432,  432,  432,  432,  438,
2715       438,  438,  438,  438,  438,  438,  438,  438,  442,  442,
2716       442,  442,  442,  442,  442,  442,  442,  450,  450,  450,
2717       450,  450,  450,  450,  450,  450,  457,  457,  457,  457,
2718       457,  457,  457,  457,  457,  464,  464,  464,  464,  464,
2719       464,  464,  464,  464,  469,  469,  469,  469,  469,  469,
2720       469,  469,  469,  475,  475,  475,  475,  475,  475,  475,
2721       475,  475,  480,  480,  480,  480,  480,  480,  480,  480,
2722       480,  486,  486,  486,  486,  486,  486,  486,  486,  486,
2723       491,  491,  491,  491,  491,  491,  491,  491,  491,  497,
2724
2725       497,  497,  497,  497,  497,  497,  497,  497,  502,  502,
2726       502,  502,  502,  502,  502,  502,  502,  508,  508,  508,
2727       508,  508,  508,  508,  508,  508,  518,  518,  518,  518,
2728       518,  518,  518,  518,  518,  525,  525,  525,  525,  525,
2729       525,  525,  525,  525,  529,  529,  529,  529,  529,  529,
2730       529,  529,  529,  540,  540,  540,  540,  540,  540,  540,
2731       540,  540,  548,  548,  548,  548,  548,  548,  548,  548,
2732       548,  556,  556,  556,  556,  556,  556,  556,  556,  556,
2733       561,  561,  561,  561,  561,  561,  561,  561,  561,  567,
2734       567,  567,  567,  567,  567,  567,  567,  567,  575,  575,
2735
2736       575,  575,  575,  575,  575,  575,  575,  581,  581,  581,
2737       581,  581,  581,  581,  581,  581,  586,  586,  586,  586,
2738       586,  586,  586,  586,  586,  593,  593,  593,  593,  593,
2739       593,  593,  593,  593,  598,  598,  598,  598,  598,  598,
2740       598,  598,  598,  604,  604,  604,  604,  604,  604,  604,
2741       604,  604,  611,  611,  611,  611,  611,  611,  611,  611,
2742       611,  618,  618,  618,  618,  618,  618,  618,  618,  618,
2743       625,  625,  625,  625,  625,  625,  625,  625,  625,  633,
2744       633,  633,  633,  633,  633,  633,  633,  633,  263,  263,
2745       263,  263,  263,  263,  263,  263,  263,  644,  644,  644,
2746
2747       644,  644,  644,  644,  644,  644,  650,  650,  650,  650,
2748       650,  650,  650,  650,  650,  669,  669,  669,  823,  822,
2749       821,  669,  705,  705,  705,  819,  817,  816,  705,  713,
2750       713,  713,  814,  812,  811,  713,  717,  717,  717,  809,
2751       807,  806,  717,  723,  723,  723,  804,  802,  801,  723,
2752       729,  729,  729,  799,  798,  795,  729,  734,  734,  734,
2753       794,  793,  791,  734,  744,  744,  744, 3465,  788,  786,
2754       744,  763,  763,  763,  784,  783,  782,  763,  767,  767,
2755       767,  780,  779,  777,  767,  771,  771,  771,  774,  773,
2756       772,  771,  781,  781,  781,  770,  768,  766,  781,  787,
2757
2758       787,  787,  765,  764,  762,  787,  792,  792,  792,  761,
2759       760,  749,  792,  800,  800,  800,  748,  745,  743,  800,
2760       805,  805,  805,  741,  740,  737,  805,  810,  810,  810,
2761       736,  735,  733,  810,  815,  815,  815,  731,  730,  728,
2762       815,  820,  820,  820,  726,  725,  724,  820,  831,  831,
2763       831,  722,  720,  719,  831,  840,  840,  840,  718,  716,
2764       714,  840,  849,  849,  849,  712,  707,  706,  849,  854,
2765       854,  854,  704, 3465,  686,  854,  865,  865,  865,  671,
2766       670,  668,  865,  871,  871,  871,  667,  661,  660,  871,
2767       876,  876,  876,  661,  660,  659,  876,  883,  883,  883,
2768
2769       658, 3465, 3465,  883,  891,  891,  891, 3465, 3465, 3465,
2770       891,  899,  899,  899, 3465, 3465, 3465,  899,  904,  904,
2771       904,  904,  904,  904,  904, 3465,  904,  669,  669,  669,
2772      3465, 3465, 3465,  669,  920, 3465, 3465, 3465,  920,  705,
2773       705,  705, 3465, 3465, 3465,  705,  963, 3465, 3465, 3465,
2774       963,  713,  713,  713, 3465, 3465, 3465,  713,  967, 3465,
2775      3465, 3465,  967,  717,  717,  717, 3465, 3465, 3465,  717,
2776       973, 3465, 3465, 3465,  973,  723,  723,  723, 3465, 3465,
2777      3465,  723,  978, 3465, 3465, 3465,  978,  729,  729,  729,
2778      3465, 3465, 3465,  729,  982, 3465, 3465, 3465,  982,  734,
2779
2780       734,  734, 3465, 3465, 3465,  734,  993, 3465, 3465, 3465,
2781       993,  744,  744,  744, 3465, 3465, 3465,  744, 1013, 3465,
2782      3465, 3465, 1013,  763,  763,  763, 3465, 3465, 3465,  763,
2783      1017, 3465, 3465, 3465, 1017,  767,  767,  767, 3465, 3465,
2784      3465,  767, 1020, 3465, 3465, 3465, 1020,  771,  771,  771,
2785      3465, 3465, 3465,  771, 1030, 3465, 3465, 3465, 1030,  781,
2786       781,  781, 3465, 3465, 3465,  781, 1039, 3465, 3465, 3465,
2787      1039,  787,  787,  787, 3465, 3465, 3465,  787, 1042, 3465,
2788      3465, 3465, 1042,  792,  792,  792, 3465, 3465, 3465,  792,
2789      1051, 3465, 3465, 3465, 1051,  800,  800,  800, 3465, 3465,
2790
2791      3465,  800, 1056, 3465, 3465, 3465, 1056,  805,  805,  805,
2792      3465, 3465, 3465,  805, 1061, 3465, 3465, 3465, 1061,  810,
2793       810,  810, 3465, 3465, 3465,  810, 1065, 3465, 3465, 3465,
2794      1065,  815,  815,  815, 3465, 3465, 3465,  815, 1069, 3465,
2795      3465, 3465, 1069,  820,  820,  820, 3465, 3465, 3465,  820,
2796      1079, 3465, 3465, 3465, 1079,  831,  831,  831, 3465, 3465,
2797      3465,  831, 1083, 3465, 3465, 3465, 1083,  840,  840,  840,
2798      3465, 3465, 3465,  840, 1093, 3465, 3465, 3465, 1093,  849,
2799       849,  849, 3465, 3465, 3465,  849, 1099, 3465, 3465, 3465,
2800      1099,  854,  854,  854, 3465, 3465, 3465,  854, 1110, 3465,
2801
2802      3465, 3465, 1110,  865,  865,  865, 3465, 3465, 3465,  865,
2803      1115, 3465, 3465, 3465, 1115,  871,  871,  871, 3465, 3465,
2804      3465,  871, 1120, 3465, 3465, 3465, 1120,  876,  876,  876,
2805      3465, 3465, 3465,  876, 1127, 3465, 3465, 3465, 1127,  883,
2806       883,  883, 3465, 3465, 3465,  883, 1134, 3465, 3465, 3465,
2807      1134,  891,  891,  891, 3465, 3465, 3465,  891, 1142, 3465,
2808      3465, 3465, 1142,  899,  899,  899, 3465, 3465, 3465,  899,
2809      1148, 3465, 3465, 3465, 1148, 1150, 1150, 1150, 1150, 1150,
2810      1150, 1150, 1150, 1150, 1156, 3465, 3465, 3465, 3465, 1156,
2811       669,  669,  669, 3465, 3465, 3465,  669, 1167, 1167, 1167,
2812
2813      1167, 3465, 3465, 1167, 1167,  705,  705,  705,  705, 3465,
2814       705, 3465,  705, 1217, 1217, 1217, 1217, 3465, 3465, 1217,
2815      1217,  713,  713,  713, 3465, 3465, 3465,  713, 1223, 1223,
2816      1223, 1223, 3465, 3465, 1223, 1223,  717,  717,  717, 3465,
2817      3465, 3465,  717, 1232, 1232, 1232, 1232, 3465, 3465, 1232,
2818      1232,  723,  723,  723,  723, 3465,  723, 3465,  723, 1242,
2819      1242, 1242, 1242, 3465, 3465, 1242, 1242,  729,  729,  729,
2820       729, 3465,  729, 3465,  729, 1250, 1250, 1250, 1250, 3465,
2821      3465, 1250, 1250,  734,  734,  734,  734, 3465,  734, 3465,
2822       734, 1266, 1266, 1266, 1266, 3465, 3465, 1266, 1266,  744,
2823
2824       744,  744, 3465, 3465, 3465,  744, 1293, 1293, 1293, 1293,
2825      3465, 3465, 1293, 1293, 1300, 1300, 1300, 1300, 3465, 3465,
2826      1300, 1300,  767,  767,  767, 3465, 3465, 3465,  767, 1305,
2827      1305, 1305, 1305, 3465, 3465, 1305, 1305,  771,  771,  771,
2828      3465, 3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465,
2829      1318, 1318,  781,  781,  781, 3465, 3465, 3465,  781, 1331,
2830      1331, 1331, 1331, 3465, 3465, 1331, 1331,  787,  787,  787,
2831      3465, 3465, 3465,  787, 1336, 1336, 1336, 1336, 3465, 3465,
2832      1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792, 1347,
2833      1347, 1347, 1347, 3465, 3465, 1347, 1347,  800,  800,  800,
2834
2835      3465, 3465, 3465,  800, 1355, 1355, 1355, 1355, 3465, 3465,
2836      1355, 1355,  805,  805,  805, 3465, 3465, 3465,  805, 1363,
2837      1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
2838      3465, 3465, 3465,  810, 1369, 1369, 1369, 1369, 3465, 3465,
2839      1369, 1369,  815,  815,  815, 3465, 3465, 3465,  815, 1375,
2840      1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
2841      3465, 3465, 3465,  820, 1390, 1390, 1390, 1390, 3465, 3465,
2842      1390, 1390,  831,  831,  831, 3465, 3465, 3465,  831, 1396,
2843      1396, 1396, 1396, 3465, 3465, 1396, 1396,  840,  840,  840,
2844      3465, 3465, 3465,  840, 1408, 1408, 1408, 1408, 3465, 3465,
2845
2846      1408, 1408,  849,  849,  849, 3465, 3465, 3465,  849, 1417,
2847      1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,  854,  854,
2848      3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465, 3465,
2849      1433, 1433,  865,  865,  865,  865, 3465,  865, 3465,  865,
2850      1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,  871,
2851       871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450, 3465,
2852      3465, 1450, 1450,  876,  876,  876, 3465, 3465, 3465,  876,
2853      1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,  883,
2854       883, 3465, 3465, 3465,  883, 1470, 1470, 1470, 1470, 3465,
2855      3465, 1470, 1470,  891,  891,  891, 3465, 3465, 3465,  891,
2856
2857      1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,  899,  899,
2858       899, 3465, 3465, 3465,  899, 1488, 1488, 1488, 1488, 3465,
2859      3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
2860      1150, 1150, 1156, 3465, 1156, 3465, 3465, 1156,  669,  669,
2861       669, 3465, 3465, 3465,  669, 1167, 1167, 1167, 1167, 3465,
2862      3465, 1167, 1167,  705,  705,  705, 3465, 3465, 3465,  705,
2863      1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217,  713,  713,
2864       713, 3465, 3465, 3465,  713, 1223, 1223, 1223, 1223, 3465,
2865      3465, 1223, 1223,  717,  717,  717, 3465, 3465, 3465,  717,
2866      1232, 1232, 1232, 1232, 3465, 3465, 1232, 1232,  723,  723,
2867
2868       723, 3465, 3465, 3465,  723, 1242, 1242, 1242, 1242, 3465,
2869      3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465, 3465, 1250,
2870      1250,  734,  734,  734, 3465, 3465, 3465,  734, 1266, 1266,
2871      1266, 1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465,
2872      3465, 3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293,
2873      1293, 1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300,  767,
2874       767,  767,  767, 3465,  767, 3465,  767, 1305, 1305, 1305,
2875      1305, 3465, 3465, 1305, 1305,  771,  771,  771, 3465, 3465,
2876      3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318, 1318,
2877       781,  781,  781,  781, 3465,  781, 3465,  781, 1331, 1331,
2878
2879      1331, 1331, 3465, 3465, 1331, 1331,  787,  787,  787,  787,
2880      3465,  787, 3465,  787, 1336, 1336, 1336, 1336, 3465, 3465,
2881      1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792, 1347,
2882      1347, 1347, 1347, 3465, 3465, 1347, 1347,  800,  800,  800,
2883      3465, 3465, 3465,  800, 1355, 1355, 1355, 1355, 3465, 3465,
2884      1355, 1355,  805,  805,  805, 3465, 3465, 3465,  805, 1363,
2885      1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
2886       810, 3465,  810, 3465,  810, 1369, 1369, 1369, 1369, 3465,
2887      3465, 1369, 1369,  815,  815,  815,  815, 3465,  815, 3465,
2888       815, 1375, 1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,
2889
2890       820,  820, 3465, 3465, 3465,  820, 1390, 1390, 1390, 1390,
2891      3465, 3465, 1390, 1390,  831,  831,  831, 3465, 3465, 3465,
2892       831, 1396, 1396, 1396, 1396, 3465, 3465, 1396, 1396,  840,
2893       840,  840, 3465, 3465, 3465,  840, 1408, 1408, 1408, 1408,
2894      3465, 3465, 1408, 1408,  849,  849,  849, 3465, 3465, 3465,
2895       849, 1417, 1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,
2896       854,  854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433,
2897      3465, 3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,
2898       865, 1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,
2899       871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450,
2900
2901      3465, 3465, 1450, 1450,  876,  876,  876, 3465, 3465, 3465,
2902       876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,
2903       883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470, 1470,
2904      3465, 3465, 1470, 1470,  891,  891,  891,  891, 3465,  891,
2905      3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
2906       899,  899,  899, 3465, 3465, 3465,  899, 1488, 1488, 1488,
2907      1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
2908      1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
2909      1707, 1707, 1707,  669,  669,  669, 3465, 3465, 3465,  669,
2910       705,  705,  705, 3465, 3465, 3465,  705, 1217, 1217, 1217,
2911
2912      1217, 3465, 3465, 1217, 1217,  713,  713,  713,  713, 3465,
2913       713, 3465,  713, 1223, 1223, 1223, 1223, 3465, 3465, 1223,
2914      1223,  717,  717,  717, 3465, 3465, 3465,  717, 1232, 1232,
2915      1232, 1232, 3465, 3465, 1232, 1232,  723,  723,  723, 3465,
2916      3465, 3465,  723, 1242, 1242, 1242, 1242, 3465, 3465, 1242,
2917      1242, 1250, 1250, 1250, 1250, 3465, 3465, 1250, 1250,  734,
2918       734,  734,  734, 3465,  734, 3465,  734, 1266, 1266, 1266,
2919      1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465, 3465,
2920      3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293, 1293,
2921      1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300, 1305, 1305,
2922
2923      1305, 1305, 3465, 3465, 1305, 1305,  771,  771,  771, 3465,
2924      3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318,
2925      1318, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
2926      1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
2927      3465, 3465, 3465,  792, 1347, 1347, 1347, 1347, 3465, 3465,
2928      1347, 1347,  800,  800,  800, 3465, 3465, 3465,  800, 1355,
2929      1355, 1355, 1355, 3465, 3465, 1355, 1355,  805,  805,  805,
2930       805, 3465,  805, 3465,  805, 1363, 1363, 1363, 1363, 3465,
2931      3465, 1363, 1363,  810,  810,  810, 3465, 3465, 3465,  810,
2932      1369, 1369, 1369, 1369, 3465, 3465, 1369, 1369,  815,  815,
2933
2934       815, 3465, 3465, 3465,  815, 1375, 1375, 1375, 1375, 3465,
2935      3465, 1375, 1375,  820,  820,  820, 3465, 3465, 3465,  820,
2936      1390, 1390, 1390, 1390, 3465, 3465, 1390, 1390,  831,  831,
2937       831, 3465, 3465, 3465,  831, 1396, 1396, 1396, 1396, 3465,
2938      3465, 1396, 1396,  840,  840,  840, 3465, 3465, 3465,  840,
2939      1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  849,  849,
2940       849,  849, 3465,  849, 3465,  849, 1417, 1417, 1417, 1417,
2941      3465, 3465, 1417, 1417,  854,  854,  854, 3465, 3465, 3465,
2942       854, 1433, 1433, 1433, 1433, 3465, 3465, 1433, 1433,  865,
2943       865,  865, 3465, 3465, 3465,  865, 1442, 1442, 1442, 1442,
2944
2945      3465, 3465, 1442, 1442,  871,  871,  871, 3465, 3465, 3465,
2946       871, 1450, 1450, 1450, 1450, 3465, 3465, 1450, 1450,  876,
2947       876,  876, 3465, 3465, 3465,  876, 1460, 1460, 1460, 1460,
2948      3465, 3465, 1460, 1460,  883,  883,  883, 3465, 3465, 3465,
2949       883, 1470, 1470, 1470, 1470, 3465, 3465, 1470, 1470,  891,
2950       891,  891, 3465, 3465, 3465,  891, 1481, 1481, 1481, 1481,
2951      3465, 3465, 1481, 1481,  899,  899,  899, 3465, 3465, 3465,
2952       899, 1488, 1488, 1488, 1488, 3465, 3465, 1488, 1488, 1150,
2953      1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1707, 1707,
2954      1707, 1707, 1707, 1707, 1707, 1707, 1707,  669,  669,  669,
2955
2956      3465, 3465, 3465,  669,  705,  705,  705,  705, 3465,  705,
2957      3465,  705, 1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217,
2958      1223, 1223, 1223, 1223, 3465, 3465, 1223, 1223,  717,  717,
2959       717, 3465, 3465, 3465,  717, 1232, 1232, 1232, 1232, 3465,
2960      3465, 1232, 1232,  723,  723,  723,  723, 3465,  723, 3465,
2961       723, 1242, 1242, 1242, 1242, 3465, 3465, 1242, 1242, 1250,
2962      1250, 1250, 1250, 3465, 3465, 1250, 1250,  734,  734,  734,
2963       734, 3465,  734, 3465,  734, 1266, 1266, 1266, 1266, 3465,
2964      3465, 1266, 1266,  744,  744,  744, 3465, 3465, 3465,  744,
2965      1293, 1293, 1293, 1293, 3465, 3465, 1293, 1293, 1300, 1300,
2966
2967      1300, 1300, 3465, 3465, 1300, 1300,  771,  771,  771, 3465,
2968      3465, 3465,  771, 1318, 1318, 1318, 1318, 3465, 3465, 1318,
2969      1318, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
2970      1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
2971      3465, 3465, 3465,  792, 1347, 1347, 1347, 1347, 3465, 3465,
2972      1347, 1347,  800,  800,  800, 3465, 3465, 3465,  800, 1355,
2973      1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363, 1363, 1363,
2974      1363, 3465, 3465, 1363, 1363,  810,  810,  810, 3465, 3465,
2975      3465,  810, 1369, 1369, 1369, 1369, 3465, 3465, 1369, 1369,
2976       815,  815,  815,  815, 3465,  815, 3465,  815, 1375, 1375,
2977
2978      1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820, 3465,
2979      3465, 3465,  820, 1390, 1390, 1390, 1390, 3465, 3465, 1390,
2980      1390,  831,  831,  831, 3465, 3465, 3465,  831, 1396, 1396,
2981      1396, 1396, 3465, 3465, 1396, 1396,  840,  840,  840, 3465,
2982      3465, 3465,  840, 1408, 1408, 1408, 1408, 3465, 3465, 1408,
2983      1408, 1417, 1417, 1417, 1417, 3465, 3465, 1417, 1417,  854,
2984       854,  854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433,
2985      3465, 3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,
2986       865, 1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,
2987       871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450,
2988
2989      3465, 3465, 1450, 1450,  876,  876,  876,  876, 3465,  876,
2990      3465,  876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,
2991       883,  883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470,
2992      1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
2993      3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
2994       899,  899,  899, 3465, 3465, 3465,  899, 1488, 1488, 1488,
2995      1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
2996      1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
2997      1707, 1707, 1707,  669,  669,  669,  669, 3465,  669, 3465,
2998       669,  705,  705,  705, 3465, 3465, 3465,  705, 1217, 1217,
2999
3000      1217, 1217, 3465, 3465, 1217, 1217, 1223, 1223, 1223, 1223,
3001      3465, 3465, 1223, 1223,  717,  717,  717, 3465, 3465, 3465,
3002       717, 1232, 1232, 1232, 1232, 3465, 3465, 1232, 1232, 1242,
3003      1242, 1242, 1242, 3465, 3465, 1242, 1242, 1250, 1250, 1250,
3004      1250, 3465, 3465, 1250, 1250,  734,  734,  734,  734, 3465,
3005       734, 3465,  734, 1266, 1266, 1266, 1266, 3465, 3465, 1266,
3006      1266,  744,  744,  744, 3465, 3465, 3465,  744, 1293, 1293,
3007      1293, 1293, 3465, 3465, 1293, 1293, 1300, 1300, 1300, 1300,
3008      3465, 3465, 1300, 1300,  771,  771,  771, 3465, 3465, 3465,
3009       771, 1331, 1331, 1331, 1331, 3465, 3465, 1331, 1331, 1336,
3010
3011      1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,  792,  792,
3012      3465, 3465, 3465,  792,  800,  800,  800, 3465, 3465, 3465,
3013       800, 1355, 1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363,
3014      1363, 1363, 1363, 3465, 3465, 1363, 1363,  810,  810,  810,
3015      3465, 3465, 3465,  810, 1369, 1369, 1369, 1369, 3465, 3465,
3016      1369, 1369, 1375, 1375, 1375, 1375, 3465, 3465, 1375, 1375,
3017       820,  820,  820, 3465, 3465, 3465,  820,  831,  831,  831,
3018       831, 3465,  831, 3465,  831, 1396, 1396, 1396, 1396, 3465,
3019      3465, 1396, 1396,  840,  840,  840, 3465, 3465, 3465,  840,
3020      1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
3021
3022       854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465,
3023      3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,  865,
3024      1442, 1442, 1442, 1442, 3465, 3465, 1442, 1442,  871,  871,
3025       871, 3465, 3465, 3465,  871, 1450, 1450, 1450, 1450, 3465,
3026      3465, 1450, 1450,  876,  876,  876,  876, 3465,  876, 3465,
3027       876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,  883,
3028       883,  883,  883, 3465,  883, 3465,  883, 1470, 1470, 1470,
3029      1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
3030      3465,  891, 1481, 1481, 1481, 1481, 3465, 3465, 1481, 1481,
3031       899,  899,  899,  899, 3465,  899, 3465,  899, 1488, 1488,
3032
3033      1488, 1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150,
3034      1150, 1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707,
3035      1707, 1707, 1707, 1707,  705,  705,  705, 3465, 3465, 3465,
3036       705, 1217, 1217, 1217, 1217, 3465, 3465, 1217, 1217, 1223,
3037      1223, 1223, 1223, 3465, 3465, 1223, 1223,  717,  717,  717,
3038      3465, 3465, 3465,  717, 1232, 1232, 1232, 1232, 3465, 3465,
3039      1232, 1232, 1242, 1242, 1242, 1242, 3465, 3465, 1242, 1242,
3040      1250, 1250, 1250, 1250, 3465, 3465, 1250, 1250, 1266, 1266,
3041      1266, 1266, 3465, 3465, 1266, 1266,  744,  744,  744, 3465,
3042      3465, 3465,  744, 1293, 1293, 1293, 1293, 3465, 3465, 1293,
3043
3044      1293, 1300, 1300, 1300, 1300, 3465, 3465, 1300, 1300,  771,
3045       771,  771, 3465, 3465, 3465,  771, 1331, 1331, 1331, 1331,
3046      3465, 3465, 1331, 1331, 1336, 1336, 1336, 1336, 3465, 3465,
3047      1336, 1336,  792,  792,  792, 3465, 3465, 3465,  792,  800,
3048       800,  800, 3465, 3465, 3465,  800, 1355, 1355, 1355, 1355,
3049      3465, 3465, 1355, 1355, 1363, 1363, 1363, 1363, 3465, 3465,
3050      1363, 1363,  810,  810,  810, 3465, 3465, 3465,  810, 1375,
3051      1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
3052      3465, 3465, 3465,  820, 1396, 1396, 1396, 1396, 3465, 3465,
3053      1396, 1396,  840,  840,  840,  840, 3465,  840, 3465,  840,
3054
3055      1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
3056       854, 3465, 3465, 3465,  854, 1433, 1433, 1433, 1433, 3465,
3057      3465, 1433, 1433,  865,  865,  865, 3465, 3465, 3465,  865,
3058       871,  871,  871, 3465, 3465, 3465,  871, 1450, 1450, 1450,
3059      1450, 3465, 3465, 1450, 1450,  876,  876,  876, 3465, 3465,
3060      3465,  876, 1460, 1460, 1460, 1460, 3465, 3465, 1460, 1460,
3061       883,  883,  883, 3465, 3465, 3465,  883, 1470, 1470, 1470,
3062      1470, 3465, 3465, 1470, 1470,  891,  891,  891, 3465, 3465,
3063      3465,  891, 1488, 1488, 1488, 1488, 3465, 3465, 1488, 1488,
3064      1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1707,
3065
3066      1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707,  705,  705,
3067       705, 3465, 3465, 3465,  705, 1217, 1217, 1217, 1217, 3465,
3068      3465, 1217, 1217, 1223, 1223, 1223, 1223, 3465, 3465, 1223,
3069      1223,  717,  717,  717,  717, 3465,  717, 3465,  717, 1232,
3070      1232, 1232, 1232, 3465, 3465, 1232, 1232, 1242, 1242, 1242,
3071      1242, 3465, 3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465,
3072      3465, 1250, 1250, 1266, 1266, 1266, 1266, 3465, 3465, 1266,
3073      1266,  744,  744,  744, 3465, 3465, 3465,  744, 1293, 1293,
3074      1293, 1293, 3465, 3465, 1293, 1293,  771,  771,  771, 3465,
3075      3465, 3465,  771, 1331, 1331, 1331, 1331, 3465, 3465, 1331,
3076
3077      1331, 1336, 1336, 1336, 1336, 3465, 3465, 1336, 1336,  792,
3078       792,  792,  792, 3465,  792, 3465,  792,  800,  800,  800,
3079       800, 3465,  800, 3465,  800, 1355, 1355, 1355, 1355, 3465,
3080      3465, 1355, 1355, 1363, 1363, 1363, 1363, 3465, 3465, 1363,
3081      1363,  810,  810,  810,  810, 3465,  810, 3465,  810, 1375,
3082      1375, 1375, 1375, 3465, 3465, 1375, 1375,  820,  820,  820,
3083      3465, 3465, 3465,  820, 1396, 1396, 1396, 1396, 3465, 3465,
3084      1396, 1396,  840,  840,  840,  840, 3465,  840, 3465,  840,
3085      1408, 1408, 1408, 1408, 3465, 3465, 1408, 1408,  854,  854,
3086       854,  854, 3465,  854, 3465,  854,  865,  865,  865, 3465,
3087
3088      3465, 3465,  865,  871,  871,  871, 3465, 3465, 3465,  871,
3089       876,  876,  876, 3465, 3465, 3465,  876, 1460, 1460, 1460,
3090      1460, 3465, 3465, 1460, 1460,  883,  883,  883, 3465, 3465,
3091      3465,  883, 1470, 1470, 1470, 1470, 3465, 3465, 1470, 1470,
3092       891,  891,  891, 3465, 3465, 3465,  891, 1488, 1488, 1488,
3093      1488, 3465, 3465, 1488, 1488, 1150, 1150, 1150, 1150, 1150,
3094      1150, 1150, 1150, 1150, 1707, 1707, 1707, 1707, 1707, 1707,
3095      1707, 1707, 1707,  705,  705,  705, 3465, 3465, 3465,  705,
3096      1223, 1223, 1223, 1223, 3465, 3465, 1223, 1223, 1232, 1232,
3097      1232, 1232, 3465, 3465, 1232, 1232, 1242, 1242, 1242, 1242,
3098
3099      3465, 3465, 1242, 1242, 1250, 1250, 1250, 1250, 3465, 3465,
3100      1250, 1250,  744,  744,  744, 3465, 3465, 3465,  744,  771,
3101       771,  771, 3465, 3465, 3465,  771, 1331, 1331, 1331, 1331,
3102      3465, 3465, 1331, 1331,  792,  792,  792, 3465, 3465, 3465,
3103       792, 1355, 1355, 1355, 1355, 3465, 3465, 1355, 1355, 1363,
3104      1363, 1363, 1363, 3465, 3465, 1363, 1363, 3046, 3046, 3046,
3105      3046, 3046, 3046, 3046, 3046, 3046, 3047, 3047, 3047, 3047,
3106      3047, 3047, 3047, 3047, 3047, 3108, 3108, 3108, 3108, 3108,
3107      3108, 3108, 3108, 3108, 3111, 3111, 3111, 3111, 3111, 3111,
3108      3111, 3111, 3111, 3154, 3154, 3154, 3154, 3154, 3154, 3154,
3109
3110      3154, 3154, 3156, 3156, 3156, 3156, 3156, 3156, 3156, 3156,
3111      3156,  247, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3112      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3113      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3114      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3115      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3116      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3117      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
3118      3465, 3465, 3465, 3465, 3465, 3465
3119     } ;
3120
3121 static yyconst flex_int16_t yy_chk[12587] =
3122     {   0,
3123         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3124         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3125         4,   10,  550,    5,    0,    9,    6,    0,   10,    7,
3126         8,    8,    8,  252,   11,   13,   13,   12,   14,   14,
3127        13,   13,  290,   14,   14,  253,    8,   17,   17,  252,
3128        13,   15,   15,   14,   15,  256,   15,   16,   16,  550,
3129        16,  253,   16,   18,   18,    0,   15,   21,   21,   21,
3130       456,  256,   16,   22,   22,   22,   23,   23,   23,   24,
3131        24,   24,  456,   21,   25,   25,   25,  361, 1509,   22,
3132       361,   17,   23, 1072,  290,   24,  250,  250,  250, 1072,
3133
3134        25,  251,  251,  251,  255,  255,  255,   18,   19,   19,
3135        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3136        19,   19,   19,  574,   19,   19,   19,   19,   19,   26,
3137        26,   26,   27,   27,   27,   28,   28,   28,  574,   29,
3138        29,   29,   30,   30,   30,   26,  278,  295,   27,  299,
3139       374,   28,  304,   19,   19,   29,  299, 1291,   30,  275,
3140       275,  275,  278,  295,   19,  283,  283,  283,  303, 1291,
3141       266,  374,  303,   19,   20,   20,   20,   20,   20,   20,
3142        20,   20,   20,   20,   20,   20,   20,   20,   20, 1511,
3143        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3144
3145        32,   33,   33,   33,  304,   34,   34,   34,   35,   35,
3146        35,   31,  266,  309,   32, 1512, 1513,   33,  266,   20,
3147        20,   34,  319,  266,   35,   36,   36,   36,  266,  309,
3148        20,   37,   37,   37,   38,   38,   38,  378,  319,   20,
3149       378,   36,   39,   39,   39, 1515,  331,   37,  654,  344,
3150        38,   40,   40,   40,  292,  292,  292,  339,   39,  301,
3151       301,  301,  331,  654,  302,  344, 1516,   40,   41,   41,
3152        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3153        41,   41,   41,  420,   41,   41,   41,   41,   41,   43,
3154        43,   43,   44,   44,   44,   45,   45,   45,  351,   46,
3155
3156        46,   46,   47,   47,   47,   43,  379,  663,   44,  339,
3157       663,   45,  302,   41,   41,   46,  302,  356,   47,   41,
3158       379, 1518,   41,  306,  306,  306,  313,  313,  313,  316,
3159       316,  316,  420,  356,   41,   42,   42,   42,   42,   42,
3160        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3161       351,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3162        49,   49,   50,   50,   50,  377,   53,   53,   53,   54,
3163        54,   54,   48,  377,  371,   49,  314, 1519,   50,  377,
3164        42,   42,   53,  314,  326,   54,   42, 1520,  385,   42,
3165       371,  326,  314,  325,  325,  325,  328,  328,  328,  396,
3166
3167       326,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3168        51,   51,   51,   51,   51,   51,   51,  675,   51,   51,
3169        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3170        61,   61,  676,   62,   62,   62,   63,   63,   63,   57,
3171       385,  675,   58,  676, 1521,   61,  676,   51,   51,   62,
3172       390,  396,   63,   64,   64,   64,  337,  337,  337,  341,
3173       341,  341,  338,  349,  349,  349,  390,  773,  350,   64,
3174       773,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3175        52,   52,   52,   52,   52,   52,   52,  688,   52,   52,
3176        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3177
3178        67,   67,  895,   68,   68,   68,   71,   71,   71,   65,
3179       338,  688,   66, 1523,  338,   67,  350,   52,   52,   68,
3180       350, 1524,   71,   72,   72,   72,  353,  353,  353,  365,
3181       365,  365,  368,  368,  368,  383,  383,  383,  895,   72,
3182       933,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3183        55,   55,   55,   55,   55,   55,   55,  933,   55,   55,
3184        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3185        75,   75,  683,   76,   76,   76,   77,   77,   77,   73,
3186       422,  380,   74,  366,  401,   75,  683,   55,   55,   76,
3187       366,   55,   77,  380,  380,  387,  387,  387,   55,  366,
3188
3189       401,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3190        56,   56,   56,   56,   56,   56,   56, 1525,   56,   56,
3191        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3192        82,   82,  422,   85,   85,   85,   86,   86,   86,   78,
3193       411,  427,   81,  406,  439,   82, 1526,   56,   56,   85,
3194       406,   56,   86,  394,  394,  394,  411,  427,   56,  406,
3195       439,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3196        59,   59,   59,   59,   59,   59,   59,  699,   59,   59,
3197        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3198        89,   89,  446,   90,   90,   90,   91,   91,   91,   87,
3199
3200       416,  699,   88, 1527,  416,   89, 1530,   59,   59,   90,
3201       451,  465,   91,   59, 1533,  460,   59,  398,  398,  398,
3202       405,  405,  405,  408,  408,  408,  451,  465,   59,   60,
3203        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3204        60,   60,   60,   60,  446,   60,   60,   60,   60,   60,
3205        92,   92,   92,   95,   95,   95,   96,   96,   96,  532,
3206        97,   97,   97,   98,   98,   98,   92,  460, 1187,   95,
3207      1534, 1535,   96, 1536,   60,   60,   97,  476,  487,   98,
3208        60, 1187,  534,   60,  419,  419,  419,  424,  424,  424,
3209       433,  433,  433,  476,  487,   60,   69,   69,   69,   69,
3210
3211        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3212        69,  532,   69,   69,   69,   69,   69,   99,   99,   99,
3213       100,  100,  100,  101,  101,  101,  536,  102,  102,  102,
3214       105,  105,  105,   99,  534,  498,  100,  434, 1537,  101,
3215      1491,   69,   69,  102,  434,  471,  105,   69,  436,  436,
3216       436,  498,  471,  434,  443,  443,  443,  448,  448,  448,
3217      1491,  471,   69,   70,   70,   70,   70,   70,   70,   70,
3218        70,   70,   70,   70,   70,   70,   70,   70,  536,   70,
3219        70,   70,   70,   70,  106,  106,  106,  109,  109,  109,
3220       110,  110,  110,  552,  111,  111,  111,  112,  112,  112,
3221
3222       106,  681, 1541,  109, 1542,  681,  110, 1546,   70,   70,
3223       111,  509,  526,  112,   70,  458,  458,  458,  462,  462,
3224       462,  470,  470,  470,  473,  473,  473,  509,  526,   70,
3225        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3226        79,   79,   79,   79,   79,  552,   79,   79,   79,   79,
3227        79,  113,  113,  113,  114,  114,  114,  115,  115,  115,
3228       589,  116,  116,  116,  119,  119,  119,  113,  521,  541,
3229       114,  482,  557,  115, 1551,   79,   79,  116,  482,   79,
3230       119,  481,  481,  481,  521,  541,   79,  482,  557,   79,
3231       484,  484,  484,   79, 1552,   79,   79,   80,   80,   80,
3232
3233        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3234        80,   80,  589,   80,   80,   80,   80,   80,  120,  120,
3235       120,  123,  123,  123,  124,  124,  124,  521,  125,  125,
3236       125,  126,  126,  126,  120,  568,  582,  123,  493,  594,
3237       124, 1557,   80,   80,  125,  493,   80,  126,  492,  492,
3238       492,  568,  582,   80,  493,  594,   80,  495,  495,  495,
3239        80, 1558,   80,   80,   83,   83,   83,   83,   83,   83,
3240        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3241        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3242        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3243
3244        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3245        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3246        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3247        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3248        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3249        93,   93,   93, 1578,   93,   93,   93,   93,   93,  127,
3250       127,  127,  128,  128,  128,  129,  129,  129, 1580,  130,
3251       130,  130,  133,  133,  133,  127,  605,  619,  128,  585,
3252      1581,  129,  614,   93,   93,  130,  585,  627,  133,  503,
3253       503,  503,  605,  619,   93,   94,   94,   94,   94,   94,
3254
3255        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3256      1587,   94,   94,   94,   94,   94,  134,  134,  134,  135,
3257       135,  135,  136,  136,  136, 1588,  137,  137,  137,  138,
3258       138,  138,  134,  634,  614,  135,  627,  682,  136,  629,
3259        94,   94,  137,  702,  682,  138,  506,  506,  506,  634,
3260       682,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3261       103,  103,  103,  103,  103,  103,  103,  702,  103,  103,
3262       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3263       143,  143, 1590,  144,  144,  144,  147,  147,  147,  139,
3264      1591,  629,  140,  504,  520,  143,  645,  103,  103,  144,
3265
3266       504,  520,  147,  519,  519,  519,  523,  523,  523,  504,
3267       520, 1592,  645,  103,  104,  104,  104,  104,  104,  104,
3268       104,  104,  104,  104,  104,  104,  104,  104,  104, 1593,
3269       104,  104,  104,  104,  104,  148,  148,  148,  151,  151,
3270       151,  152,  152,  152,  695,  155,  155,  155,  156,  156,
3271       156,  148, 1594,  906,  151,  533,  563,  152,  695,  104,
3272       104,  155, 1595,  563,  156,  530,  530,  530,  533,  906,
3273       533, 1596,  563,  288, 1032,  104,  107,  107,  107,  107,
3274       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
3275       107, 1032,  107,  107,  107,  107,  107,  159,  159,  159,
3276
3277       160,  160,  160,  161,  161,  161,  572,  162,  162,  162,
3278       572,  288, 1597,  159,  572, 1603,  160,  689, 1604,  161,
3279      1608,  107,  107,  162,  107,  288,  107,  288,  689,  288,
3280       588,  689,  107,  538,  538,  538,  549,  549,  549,  107,
3281       531, 1136,  107,  108,  108,  108,  108,  108,  108,  108,
3282       108,  108,  108,  108,  108,  108,  108,  108, 1136,  108,
3283       108,  108,  108,  108,  165,  165,  165,  166,  166,  166,
3284       167,  167,  167,  701,  168,  168,  168,  779,  588,  531,
3285       165,  779,  588,  166,  703, 1611,  167,  701,  108,  108,
3286       168,  108,  531,  108,  531,  554,  554,  554,  703,  108,
3287
3288       562,  562,  562,  565,  565,  565,  108, 1612, 1619,  108,
3289       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3290       117,  117,  117,  117,  117, 1620,  117,  117,  117,  117,
3291       117,  169,  169,  169,  170,  170,  170,  171,  171,  171,
3292       836,  172,  172,  172,  173,  173,  173,  169, 1621, 1624,
3293       170,  577,  686,  171,  836,  117,  117,  172,  577,  686,
3294       173,  117,  576,  576,  576,  686,  117,  577,  579,  579,
3295       579,  587,  587,  587,  591,  591,  591, 1630,  117,  118,
3296       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3297       118,  118,  118,  118, 1634,  118,  118,  118,  118,  118,
3298
3299       174,  174,  174,  175,  175,  175,  176,  176,  176, 1636,
3300       177,  177,  177,  178,  178,  178,  174, 1638, 1639,  175,
3301       600,  694,  176, 1644,  118,  118,  177,  600,  694,  178,
3302       118,  599,  599,  599,  694,  118,  600,  602,  602,  602,
3303       612,  612,  612,  616,  616,  616, 1646,  118,  121,  121,
3304       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3305       121,  121,  121, 1647,  121,  121,  121,  121,  121,  179,
3306       179,  179,  180,  180,  180,  181,  181,  181,  834,  182,
3307       182,  182,  183,  183,  183,  179,  837, 1649,  180,  834,
3308      1650,  181,  834,  121,  121,  182, 1651,  837,  183, 1652,
3309
3310       837,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3311       122,  122,  122,  122,  122,  122,  122, 1655,  122,  122,
3312       122,  122,  122,  184,  184,  184,  187,  187,  187,  188,
3313       188,  188, 1656,  189,  189,  189,  190,  190,  190,  184,
3314       889, 1192,  187, 1657,  889,  188, 1153,  122,  122,  189,
3315      1153, 1659,  190, 1662, 1192,  122,  131,  131,  131,  131,
3316       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3317       131, 1671,  131,  131,  131,  131,  131,  191,  191,  191,
3318       192,  192,  192,  193,  193,  193, 1674,  194,  194,  194,
3319       197,  197,  197,  191, 1682, 1684,  192,  639, 1400,  193,
3320
3321      1686,  131,  131,  194,  639,  131,  197,  626,  626,  626,
3322      1687, 1400,  131,  639, 1688,  131,  631,  631,  631,  642,
3323       642,  642,  131,  132,  132,  132,  132,  132,  132,  132,
3324       132,  132,  132,  132,  132,  132,  132,  132, 1690,  132,
3325       132,  132,  132,  132,  198,  198,  198,  201,  201,  201,
3326       202,  202,  202, 1695,  205,  205,  205,  206,  206,  206,
3327       198, 1698, 1699,  201,  652, 1701,  202, 1707,  132,  132,
3328       205,  652,  132,  206,  651,  651,  651, 1710, 1713,  132,
3329       652, 1714,  132,  653,  653,  653,  662,  662,  662,  132,
3330       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3331
3332       141,  141,  141,  141,  141, 1715,  141,  141,  141,  141,
3333       141,  207,  207,  207,  208,  208,  208,  209,  209,  209,
3334      1716,  210,  210,  210,  211,  211,  211,  207, 1717, 1718,
3335       208,  700, 1719,  209, 1720,  141,  141,  210,  700, 1722,
3336       211,  141, 1723, 1725,  700,  662,  141,  142,  142,  142,
3337       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3338       142,  142, 1726,  142,  142,  142,  142,  142,  212,  212,
3339       212,  215,  215,  215,  216,  216,  216, 1728,  219,  219,
3340       219,  220,  220,  220,  212, 1730, 1731,  215,  835,  838,
3341       216, 1733,  142,  142,  219,  835,  838,  220,  142, 1735,
3342
3343      1738,  835,  838,  142,  145,  145,  145,  145,  145,  145,
3344       145,  145,  145,  145,  145,  145,  145,  145,  145, 1739,
3345       145,  145,  145,  145,  145,  221,  221,  221,  222,  222,
3346       222,  223,  223,  223, 1740,  224,  224,  224,  225,  225,
3347       225,  221,  996, 1741,  222, 1706, 1742,  223, 1744,  145,
3348       145,  224,  996, 1745,  225,  226,  226,  226, 1749,  996,
3349       145,  909,  909,  909, 1757,  909, 1170, 1170, 1170, 1761,
3350      1706,  226, 1762,  145,  146,  146,  146,  146,  146,  146,
3351       146,  146,  146,  146,  146,  146,  146,  146,  146, 1774,
3352       146,  146,  146,  146,  146,  229,  229,  229,  230,  230,
3353
3354       230,  231,  231,  231, 1778,  232,  232,  232,  233,  233,
3355       233,  229, 1782, 1783,  230, 1787, 1788,  231, 1789,  146,
3356       146,  232, 1790, 1792,  233,  234,  234,  234, 1793, 1801,
3357       146,  918,  918,  918, 1802,  918, 1811, 1814,  918, 1823,
3358      1824,  234, 1825,  146,  149,  149,  149,  149,  149,  149,
3359       149,  149,  149,  149,  149,  149,  149,  149,  149, 1828,
3360       149,  149,  149,  149,  149,  235,  235,  235,  236,  236,
3361       236, 1830,  243,  243,  243, 1838, 1845,  244,  244,  244,
3362      1849,  235,  239,  239,  236, 1852, 1854,  239,  243,  149,
3363       149,  240,  240,  244,  287, 1855,  240,  239, 1857,  444,
3364
3365       922,  922,  922, 1858,  287,  149,  240, 1859, 1860,  444,
3366       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3367       150,  150,  150,  150,  150,  150,  239,  150,  150,  150,
3368       150,  150,  287, 1864, 1865,  240, 1866, 1868,  444, 1872,
3369      1876,  670,  670,  670,  444, 1880,  287, 1882,  287, 1884,
3370       287,  444,  719,  719,  719,  444,  150,  150,  670,  735,
3371       735,  735, 1890, 1897,  922,  943,  943,  943, 1901,  719,
3372      1902, 1904,  150,  956,  956,  956,  735,  150,  153,  153,
3373       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3374       153,  153,  153, 1916,  153,  153,  153,  153,  153,  736,
3375
3376       736,  736,  747,  747,  747,  749,  749,  749,  764,  764,
3377       764,  774,  774,  774, 1917, 1918,  736, 1920, 1921,  747,
3378      1906, 1923,  749,  153,  153,  764, 1906, 1911,  774,  943,
3379      1906,  971,  971,  971, 1906,  971, 1924,  956,  971,  153,
3380      1912, 1044, 1044, 1044, 1911,  153,  154,  154,  154,  154,
3381       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3382       154, 1913,  154,  154,  154,  154,  154,  783,  783,  783,
3383       784,  784,  784,  794,  794,  794,  802,  802,  802,  806,
3384       806,  806, 1912, 1925,  783, 1926, 1919,  784, 1928, 1929,
3385       794,  154,  154,  802, 1913, 1930,  806,  985,  985,  985,
3386
3387      1934,  985, 1919, 1936,  985, 1044, 1937,  154, 1178, 1178,
3388      1178, 1938, 1940,  154,  157,  157,  157,  157,  157,  157,
3389       157,  157,  157,  157,  157,  157,  157,  157,  157, 1941,
3390       157,  157,  157,  157,  157,  824,  824,  824,  850,  850,
3391       850,  856,  856,  856,  873,  873,  873, 1942,  879,  879,
3392       879, 1943,  824, 1946, 1948,  850, 1939, 1953,  856,  157,
3393       157,  873,  157,  157,  157,  879, 1955,  987,  987,  987,
3394       157,  987, 1939,  157,  987, 1960, 1978,  157, 1984, 1985,
3395       157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3396       158,  158,  158,  158,  158,  158, 1986,  158,  158,  158,
3397
3398       158,  158,  885,  885,  885,  893,  893,  893,  917,  917,
3399       917,  959,  959,  959,  920,  920,  920, 1993, 1994,  885,
3400      1995, 1998,  893, 1999, 2002,  917,  158,  158,  959,  158,
3401       158,  158,  920, 2003,  998,  998,  998,  158,  998, 2010,
3402       158,  998, 2011, 2012,  158, 2016, 2019,  158,  163,  163,
3403       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3404       163,  163,  163, 2021,  163,  163,  163,  163,  163,  921,
3405       921,  921,  961,  961,  961, 2023, 2024,  963,  963,  963,
3406       962,  962,  962,  960,  960,  960, 2025,  921, 2028,  961,
3407       967,  967,  967,  163,  163,  963, 2034,  962, 2039, 2045,
3408
3409       960, 2049, 2052, 1001, 1001, 1001,  921, 1001,  967, 2056,
3410      1001, 1193, 1193, 1193, 1199, 1199, 1199,  163,  164,  164,
3411       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3412       164,  164,  164,  960,  164,  164,  164,  164,  164,  962,
3413       964,  964,  964,  970,  970,  970, 2058, 2059,  960,  968,
3414       968,  968,  973,  973,  973,  975,  975,  975,  964, 1907,
3415       970, 2060, 2061,  164,  164, 1907, 2063,  968, 2069, 1907,
3416       973, 2071,  975, 1907, 1016, 1016, 1016,  964, 1016, 2073,
3417      2075, 1016, 1507, 1507, 1507, 2088, 2089,  164,  185,  185,
3418       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3419
3420       185,  185,  185, 2090,  185,  185,  185,  185,  185,  977,
3421       977,  977, 2093,  968,  978,  978,  978,  979,  979,  979,
3422       976,  976,  976,  980,  980,  980,  977, 2094, 2095,  974,
3423       974,  974,  978,  185,  185,  979, 2095,  976, 2096, 2097,
3424       980,  185, 2098,  185, 2100, 2111,  185,  974, 2112, 2113,
3425       185, 1514, 1514, 1514,  185,  186,  186,  186,  186,  186,
3426       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3427       976,  186,  186,  186,  186,  186,  974,  981,  981,  981,
3428       982,  982,  982, 2114, 2099,  976, 2118, 2105,  979,  983,
3429       983,  983, 2099, 2105,  981,  984,  984,  984,  982, 2120,
3430
3431       186,  186,  986,  986,  986, 2121, 2106,  983,  186, 2122,
3432       186, 2123,  984,  186, 1517, 1517, 1517,  186, 2128,  986,
3433      2107,  186,  195,  195,  195,  195,  195,  195,  195,  195,
3434       195,  195,  195,  195,  195,  195,  195, 2106,  195,  195,
3435       195,  195,  195, 2130,  988,  988,  988,  993,  993,  993,
3436      1522, 1522, 1522, 1528, 1528, 1528,  989,  989,  989, 2131,
3437       983,  988,  990,  990,  990,  993, 2107,  195,  195,  991,
3438       991,  991, 2132,  989, 2135, 1508, 1508, 1508,  195,  990,
3439      1026, 1026, 1026, 2139, 1026, 2146,  991, 1026, 1510, 1510,
3440      1510,  195,  196,  196,  196,  196,  196,  196,  196,  196,
3441
3442       196,  196,  196,  196,  196,  196,  196,  989,  196,  196,
3443       196,  196,  196, 2148,  990,  997,  997,  997, 1000, 1000,
3444      1000, 1508, 2150, 2171,  991,  992,  992,  992, 1002, 1002,
3445      1002, 2175,  997, 2176, 1510, 1000, 2177,  196,  196,  994,
3446       994,  994,  992, 2183, 2184, 1002, 2185, 2189,  196, 1036,
3447      1036, 1036, 2193, 1036, 2194, 2200, 1036,  994, 1532, 1532,
3448      1532,  196,  199,  199,  199,  199,  199,  199,  199,  199,
3449       199,  199,  199,  199,  199,  199,  199,  992,  199,  199,
3450       199,  199,  199, 1013, 1013, 1013,  994, 1015, 1015, 1015,
3451      2201, 2204, 1014, 1014, 1014, 1017, 1017, 1017, 1025, 1025,
3452
3453      1025, 1013, 2207, 2198, 1015, 2208, 2199,  199,  199, 2209,
3454      1014, 2198, 2211, 1017, 2199, 1025,  199, 2209,  199, 1038,
3455      1038, 1038,  199, 1038, 2212, 2215, 1038,  199,  199,  200,
3456       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3457       200,  200,  200,  200, 2222,  200,  200,  200,  200,  200,
3458      1014, 1020, 1020, 1020, 2226, 1021, 1021, 1021, 1018, 1018,
3459      1018, 1030, 1030, 1030, 1031, 1031, 1031, 2227, 2228, 1020,
3460      1035, 1035, 1035, 1021,  200,  200, 1018, 2240, 2210, 1030,
3461      2241, 2244, 1031,  200, 2246,  200, 2210, 1035, 2249,  200,
3462      1529, 1529, 1529, 2256,  200,  200,  203,  203,  203,  203,
3463
3464       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3465       203, 2263,  203,  203,  203,  203,  203, 1021, 2265, 1018,
3466      1037, 1037, 1037, 2266, 2267, 1031, 1039, 1039, 1039, 2272,
3467      1040, 1040, 1040, 1042, 1042, 1042, 1529, 1037, 1043, 1043,
3468      1043,  203,  203, 2273, 1039, 2274, 2275,  203, 1040, 2276,
3469      2277, 1042, 2278, 1047, 1047, 1047, 1043, 1047, 2279, 2280,
3470      1047, 2281,  203,  204,  204,  204,  204,  204,  204,  204,
3471       204,  204,  204,  204,  204,  204,  204,  204, 2292,  204,
3472       204,  204,  204,  204, 1046, 1046, 1046, 1051, 1051, 1051,
3473      2293, 1040, 2296, 1054, 1054, 1054, 2299, 2304, 1043, 2305,
3474
3475      2308, 1046, 1052, 1052, 1052, 1051, 2309, 2312,  204,  204,
3476      1054, 1055, 1055, 1055,  204, 1055, 2284, 2315, 1055, 2316,
3477      1052, 1059, 1059, 1059, 2285, 1059, 2317, 2332, 1059,  204,
3478       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
3479       213,  213,  213,  213,  213, 2333,  213,  213,  213,  213,
3480       213, 1056, 1056, 1056, 1057, 1057, 1057, 1052, 2334, 2284,
3481      1058, 1058, 1058, 1061, 1061, 1061, 1062, 1062, 1062, 1056,
3482      2340, 2285, 1057, 2335, 2341,  213,  213, 1058, 2342, 2348,
3483       213, 1061, 2349, 2335, 1062, 2350,  213,  214,  214,  214,
3484       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3485
3486       214,  214, 2351,  214,  214,  214,  214,  214, 2352, 1057,
3487      1065, 1065, 1065, 1066, 1066, 1066, 1069, 1069, 1069, 2353,
3488      1070, 1070, 1070, 1074, 1074, 1074, 2354, 1062, 1065, 2364,
3489      2365, 1066,  214,  214, 1069, 2366, 2367,  214, 1070, 2374,
3490      1074, 2375, 2376,  214,  217,  217,  217,  217,  217,  217,
3491       217,  217,  217,  217,  217,  217,  217,  217,  217, 2397,
3492       217,  217,  217,  217,  217, 1075, 1075, 1075, 2398, 1075,
3493      2404, 2409, 1075, 2411, 1066, 2412, 1076, 1076, 1076, 1079,
3494      1079, 1079, 1096, 1096, 1096, 1070, 1080, 1080, 1080,  217,
3495       217, 2417,  217, 1076,  217, 2418, 2419, 1079, 2420, 1096,
3496
3497       217, 1097, 1097, 1097, 1080, 1097, 2421, 2422, 1097, 2423,
3498      2424,  217,  218,  218,  218,  218,  218,  218,  218,  218,
3499       218,  218,  218,  218,  218,  218,  218, 2425,  218,  218,
3500       218,  218,  218, 1083, 1083, 1083, 2426, 1080, 1093, 1093,
3501      1093, 2429, 2431, 1084, 1084, 1084, 1094, 1094, 1094, 2432,
3502      2433, 1083, 1099, 1099, 1099, 2434, 1093,  218,  218, 2433,
3503       218, 1084,  218, 2435, 1094, 1103, 1103, 1103,  218, 1103,
3504      1099, 2436, 1103, 2429, 1531, 1531, 1531, 2437, 2439,  218,
3505       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
3506       227,  227,  227,  227,  227, 2440,  227,  227,  227,  227,
3507
3508       227, 1084, 2443, 2444, 1100, 1100, 1100, 1102, 1102, 1102,
3509      1094, 1104, 1104, 1104, 1106, 1106, 1106, 1110, 1110, 1110,
3510      1531, 2447, 1100, 2450, 1102,  227,  227, 2451, 1104, 2453,
3511       227, 1106, 1721, 1721, 1721, 1110,  227, 1119, 1119, 1119,
3512       227, 1119, 2454, 2430, 1119, 2456,  227,  228,  228,  228,
3513       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
3514       228,  228, 2457,  228,  228,  228,  228,  228, 1100, 1112,
3515      1112, 1112, 1113, 1113, 1113, 2458, 2438, 1114, 1114, 1114,
3516      2430, 2470, 1111, 1111, 1111, 2438, 1112, 2471, 2472, 1113,
3517      2473, 2474,  228,  228, 1114, 2477, 2479,  228, 2485, 2481,
3518
3519      1111, 2486, 2487,  228, 1125, 1125, 1125,  228, 1125, 2489,
3520      2498, 1125, 2481,  228,  237,  237,  237,  237,  237,  237,
3521       237,  237,  237,  237,  237,  237,  237,  237,  237, 1111,
3522       237,  237,  237,  237,  237, 2499, 1114, 1115, 1115, 1115,
3523      1116, 1116, 1116, 2482, 1118, 1118, 1118, 1120, 1120, 1120,
3524      1121, 1121, 1121, 2500, 2501, 1115, 2482, 2503, 1116,  237,
3525       237, 1118, 1131, 1131, 1131, 1120, 1131,  237, 1121, 1131,
3526       237, 2513, 1548, 1548, 1548, 2514, 2531,  237,  238,  238,
3527       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3528       238,  238,  238, 2532,  238,  238,  238,  238,  238, 2533,
3529
3530      2536, 1116, 1124, 1124, 1124, 2538, 2539, 1127, 1127, 1127,
3531      2540, 1121, 1128, 1128, 1128, 1130, 1130, 1130, 1548, 1124,
3532      1134, 1134, 1134,  238,  238, 1127, 1724, 1724, 1724, 2541,
3533      1128,  238, 1130, 2542,  238, 1727, 1727, 1727, 1134, 2543,
3534      2544,  238,  241,  241,  241,  241,  241,  241,  241,  241,
3535       241,  241,  241,  241,  241,  241,  241, 2545,  241,  241,
3536       241,  241,  241, 2546, 2547, 1135, 1135, 1135, 1138, 1138,
3537      1138, 2548, 1139, 1139, 1139, 2549, 1139, 2554, 1128, 1139,
3538      1142, 1142, 1142, 1135, 2555, 1138, 2556,  241,  241, 1143,
3539      1143, 1143, 2557, 2558,  241, 1162, 1162, 1162, 1142, 1162,
3540
3541       241, 2559, 1162, 1729, 1729, 1729, 2553, 1143, 2551,  241,
3542       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
3543       242,  242,  242,  242,  242, 2560,  242,  242,  242,  242,
3544       242, 1135, 1148, 1148, 1148, 2552, 1149, 1149, 1149, 1166,
3545      1166, 1166, 1167, 1167, 1167, 1169, 1169, 1169, 2551, 2553,
3546      1148, 2561, 2562, 1143, 1149,  242,  242, 1166, 2563, 2564,
3547      1167, 2565,  242, 1169, 1209, 1209, 1209, 2566,  242, 1210,
3548      1210, 1210, 2552, 1210, 2567, 2570, 1210,  242,  284, 2571,
3549      2572, 1209, 1213, 1213, 1213,  284, 1214, 1214, 1214, 2573,
3550      1214, 2575, 2576, 1214,  284,  284, 1216, 1216, 1216, 1213,
3551
3552      1149, 1217, 1217, 1217, 1235, 1235, 1235, 1219, 1219, 1219,
3553      2587, 1227, 1227, 1227, 1216, 1227, 2588, 2589, 1227, 1217,
3554      2591, 1235,  284,  284,  284, 1219, 2595, 2598,  284,  284,
3555       284, 2600, 2602,  284,  284, 2603, 2613,  284, 2614,  284,
3556       284,  284,  286, 1222, 1222, 1222, 1223, 1223, 1223, 1225,
3557      1225, 1225, 1231, 1231, 1231, 1232, 1232, 1232,  286,  286,
3558      2615, 1222, 2631, 2650, 1223, 2651, 2655, 1225, 2656, 2599,
3559      1231, 1219, 2657, 1232, 1239, 1239, 1239, 1234, 1234, 1234,
3560      2599, 1241, 1241, 1241, 2658, 2601,  286,  286,  286, 2659,
3561      2660, 1239,  286,  286,  286, 1234, 2601,  286,  286, 1241,
3562
3563      2661,  286, 1225,  286,  286,  286, 1236, 1236, 1236, 2621,
3564      1236, 2662, 2663, 1236, 1240, 1240, 1240, 2664, 1240, 2621,
3565      2669, 1240, 1242, 1242, 1242, 2621, 1234, 1244, 1244, 1244,
3566      1245, 1245, 1245, 2670, 1246, 1246, 1246, 2671, 1246, 2672,
3567      1242, 1246, 1247, 1247, 1247, 1244, 2673, 1245, 1248, 1248,
3568      1248, 2666, 1248, 2674, 2675, 1248, 1249, 1249, 1249, 1247,
3569      1250, 1250, 1250, 1252, 1252, 1252, 1253, 1253, 1253, 2676,
3570      1253, 2677, 2667, 1253, 1249, 1256, 1256, 1256, 1250, 1256,
3571      2666, 1252, 1256, 1259, 1259, 1259, 1260, 1260, 1260, 1244,
3572      1260, 2678, 2679, 1260, 1265, 1265, 1265, 1266, 1266, 1266,
3573
3574      1259, 1268, 1268, 1268, 1273, 1273, 1273, 2680, 1273, 2681,
3575      2684, 1273, 1265, 2645, 2667, 1266, 1276, 1276, 1276, 1268,
3576      1277, 1277, 1277, 2645, 1277, 1252, 2645, 1277, 1280, 1280,
3577      1280, 2685, 2686, 1276, 1281, 1281, 1281, 2688, 1281, 2668,
3578      2689, 1281, 1292, 1292, 1292, 1280, 1293, 1293, 1293, 1268,
3579      1295, 1295, 1295, 2694, 1296, 1296, 1296, 2695, 1296, 2700,
3580      1292, 1296, 2704, 2705, 1293, 1299, 1299, 1299, 1295, 1300,
3581      1300, 1300, 1302, 1302, 1302, 1303, 1303, 1303, 1304, 1304,
3582      1304, 2668, 2706, 1299, 1305, 1305, 1305, 1300, 2707, 2708,
3583      1302, 2709, 1303, 1307, 1307, 1307, 1304, 1310, 1310, 1310,
3584
3585      2710, 2719, 1305, 1311, 1311, 1311, 2721, 1311, 2725, 2726,
3586      1311, 1307, 2727, 2728, 1310, 2729, 2730, 1295, 1317, 1317,
3587      1317, 1318, 1318, 1318, 1320, 1320, 1320, 1323, 1323, 1323,
3588      2732, 2744, 1302, 1324, 1324, 1324, 1317, 1324, 2646, 1318,
3589      1324, 2745, 1320, 2747, 1323, 1327, 1327, 1327, 2646, 1327,
3590      2748, 2646, 1327, 1330, 1330, 1330, 1331, 1331, 1331, 2739,
3591      1307, 1333, 1333, 1333, 1334, 1334, 1334, 1335, 1335, 1335,
3592      2761, 1330, 2739, 2762, 1331, 1336, 1336, 1336, 2763, 1333,
3593      2764, 1334, 1338, 1338, 1338, 1335, 1346, 1346, 1346, 1320,
3594      1340, 1340, 1340, 1336, 1340, 2766, 2767, 1340, 2740, 2768,
3595
3596      1338, 1347, 1347, 1347, 1346, 1349, 1349, 1349, 1351, 1351,
3597      1351, 2740, 1351, 2769, 2622, 1351, 1354, 1354, 1354, 1347,
3598      1355, 1355, 1355, 1349, 2622, 2775, 1333, 1357, 1357, 1357,
3599      2622, 1338, 2776, 2773, 1354, 1358, 1358, 1358, 1355, 1358,
3600      2777, 2778, 1358, 2779, 2772, 1357, 1362, 1362, 1362, 1363,
3601      1363, 1363, 1365, 1365, 1365, 1366, 1366, 1366, 1367, 1367,
3602      1367, 1368, 1368, 1368, 1362, 1349, 2780, 1363, 2773, 2781,
3603      1365, 2782, 1366, 2746, 2783, 1367, 1369, 1369, 1369, 1368,
3604      1371, 1371, 1371, 1372, 1372, 1372, 2746, 1357, 2749, 1373,
3605      1373, 1373, 2772, 2784, 1369, 1374, 1374, 1374, 1371, 2785,
3606
3607      1372, 2749, 1365, 2786, 2787, 1367, 1373, 1375, 1375, 1375,
3608      1377, 1377, 1377, 1374, 1382, 1382, 1382, 1373, 1382, 2790,
3609      2791, 1382, 1385, 1385, 1385, 1375, 2794, 2796, 1377, 1386,
3610      1386, 1386, 2800, 1386, 2801, 2809, 1386, 2796, 2810, 1385,
3611      1389, 1389, 1389, 1390, 1390, 1390, 2811, 1371, 1392, 1392,
3612      1392, 1395, 1395, 1395, 1396, 1396, 1396, 2797, 1389, 2812,
3613      2813, 1390, 1398, 1398, 1398, 2814, 1392, 2797, 2815, 1395,
3614      2816, 2819, 1396, 1403, 1403, 1403, 1377, 1407, 1407, 1407,
3615      1398, 2823, 1408, 1408, 1408, 1410, 1410, 1410, 2826, 2827,
3616      1403, 2828, 1416, 1416, 1416, 1407, 1417, 1417, 1417, 1392,
3617
3618      1408, 2829, 2830, 1410, 1412, 1412, 1412, 2831, 1412, 1398,
3619      1416, 1412, 2832, 2835, 1417, 1419, 1419, 1419, 1421, 1421,
3620      1421, 2839, 1421, 2840, 2841, 1421, 1424, 1424, 1424, 2842,
3621      1425, 1425, 1425, 1419, 1425, 2843, 2844, 1425, 1426, 1426,
3622      1426, 2845, 2846, 1424, 2847, 2848, 1410, 1427, 1427, 1427,
3623      1428, 1428, 1428, 2849, 1428, 1426, 2850, 1428, 1430, 1430,
3624      1430, 1432, 1432, 1432, 1427, 1433, 1433, 1433, 1435, 1435,
3625      1435, 1436, 1436, 1436, 2866, 1430, 1419, 2867, 2868, 1432,
3626      1437, 1437, 1437, 1433, 1437, 2853, 1435, 1437, 1436, 1438,
3627      1438, 1438, 1439, 1439, 1439, 2853, 1439, 2869, 2870, 1439,
3628
3629      1441, 1441, 1441, 1442, 1442, 1442, 1438, 1444, 1444, 1444,
3630      1446, 1446, 1446, 2871, 1446, 2872, 2854, 1446, 1441, 2873,
3631      2879, 1442, 1449, 1449, 1449, 1444, 2854, 2880, 1435, 1450,
3632      1450, 1450, 1452, 1452, 1452, 1455, 1455, 1455, 2881, 1455,
3633      1449, 2884, 1455, 1459, 1459, 1459, 2885, 1450, 2875, 2886,
3634      1452, 1460, 1460, 1460, 1462, 1462, 1462, 2887, 1464, 1464,
3635      1464, 1459, 1464, 2890, 2897, 1464, 1468, 1468, 1468, 1460,
3636      2898, 2899, 1462, 2900, 1444, 1469, 1469, 1469, 1470, 1470,
3637      1470, 2904, 2875, 1468, 1472, 1472, 1472, 1474, 1474, 1474,
3638      1475, 1475, 1475, 1469, 1475, 2905, 1470, 1475, 2913, 1452,
3639
3640      2914, 2915, 1472, 2916, 1474, 1478, 1478, 1478, 1480, 1480,
3641      1480, 1481, 1481, 1481, 2917, 1462, 1483, 1483, 1483, 1485,
3642      1485, 1485, 1478, 1487, 1487, 1487, 1480, 2918, 2919, 1481,
3643      1488, 1488, 1488, 2923, 1483, 2929, 1485, 1490, 1490, 1490,
3644      2930, 1487, 1492, 1492, 1492, 1472, 2932, 2933, 1488, 1498,
3645      1498, 1498, 1538, 1538, 1538, 1490, 1538, 2935, 2936, 1538,
3646      1492, 1492, 2937, 1483, 2938, 2939, 1478, 1498, 1543, 1543,
3647      1543, 2940, 1543, 2941, 2942, 1543, 1547, 1547, 1547, 1549,
3648      1549, 1549, 2943, 2944, 1490, 1550, 1550, 1550, 1553, 1553,
3649      1553, 1554, 1554, 1554, 1547, 1554, 1549, 2945, 1554, 2946,
3650
3651      1559, 1559, 1559, 1550, 1559, 2947, 1553, 1559, 1562, 1562,
3652      1562, 1563, 1563, 1563, 2950, 1563, 2951, 2952, 1563, 2953,
3653      1566, 1566, 1566, 2961, 1566, 2962, 1562, 1566, 1569, 1569,
3654      1569, 1570, 1570, 1570, 2964, 1570, 2965, 1547, 1570, 1573,
3655      1573, 1573, 1574, 1574, 1574, 1553, 1569, 1575, 1575, 1575,
3656      2966, 2968, 1550, 2976, 2977, 1562, 1573, 2979, 2980, 1574,
3657      1576, 1576, 1576, 2981, 1575, 1577, 1577, 1577, 1579, 1579,
3658      1579, 1582, 1582, 1582, 2970, 1569, 2983, 1576, 2988, 2989,
3659      1583, 1583, 1583, 1577, 1583, 1579, 2990, 1583, 1582, 1584,
3660      1584, 1584, 2991, 1584, 1575, 2993, 1584, 1589, 1589, 1589,
3661
3662      1598, 1598, 1598, 1599, 1599, 1599, 1600, 1600, 1600, 1601,
3663      1601, 1601, 1574, 1601, 1589, 2994, 1601, 2970, 1598, 2998,
3664      1577, 1599, 3000, 1600, 1602, 1602, 1602, 1605, 1605, 1605,
3665      1576, 1606, 1606, 1606, 3001, 1606, 3003, 3004, 1606, 1607,
3666      1607, 1607, 1602, 3009, 1605, 1609, 1609, 1609, 1610, 1610,
3667      1610, 1613, 1613, 1613, 3010, 1599, 1607, 1614, 1614, 1614,
3668      3011, 1614, 1609, 3012, 1614, 1598, 1610, 3013, 1613, 1615,
3669      1615, 1615, 1616, 1616, 1616, 1617, 1617, 1617, 3014, 1617,
3670      3015, 3016, 1617, 1618, 1618, 1618, 3017, 1615, 3018, 1616,
3671      3019, 1609, 1622, 1622, 1622, 1623, 1623, 1623, 1625, 1625,
3672
3673      1625, 1618, 1626, 1626, 1626, 1627, 1627, 1627, 3020, 1622,
3674      1628, 1628, 1628, 1623, 1610, 3021, 1625, 3022, 3023, 1626,
3675      1632, 1632, 1632, 1627, 1629, 1629, 1629, 1628, 1629, 3024,
3676      3025, 1629, 1631, 1631, 1631, 1615, 3029, 1632, 1622, 3030,
3677      3031, 1618, 1633, 1633, 1633, 3032, 1633, 3035, 3036, 1633,
3678      1631, 3037, 1623, 3038, 3039, 1625, 1627, 1635, 1635, 1635,
3679      1637, 1637, 1637, 1640, 1640, 1640, 3040, 1640, 3049, 3048,
3680      1640, 1643, 1643, 1643, 3050, 1635, 3052, 1637, 1645, 1645,
3681      1645, 1648, 1648, 1648, 1653, 1653, 1653, 3042, 1643, 1658,
3682      1658, 1658, 1631, 1654, 1654, 1654, 1645, 1654, 3044, 1648,
3683
3684      1654, 1653, 1660, 1660, 1660, 3045, 3053, 1658, 1661, 1661,
3685      1661, 3048, 3044, 1663, 1663, 1663, 3045, 1663, 1635, 1660,
3686      1663, 3055, 1666, 1666, 1666, 3057, 1661, 1667, 1667, 1667,
3687      3051, 1667, 3060, 3042, 1667, 1672, 1672, 1672, 1658, 1666,
3688      3061, 3067, 1645, 3069, 1668, 1668, 1668, 1648, 1668, 3071,
3689      3082, 1668, 1672, 1673, 1673, 1673, 3084, 1673, 3086, 3087,
3690      1673, 1675, 1675, 1675, 1676, 1676, 1676, 3090, 1676, 3051,
3691      1661, 1676, 3091, 1679, 1679, 1679, 3094, 1679, 3096, 1675,
3692      1679, 1683, 1683, 1683, 1685, 1685, 1685, 1689, 1689, 1689,
3693      1691, 1691, 1691, 1692, 1692, 1692, 1693, 1693, 1693, 1683,
3694
3695      1693, 3098, 1685, 1693, 3100, 1689, 3101, 1691, 3103, 3063,
3696      1692, 1675, 1694, 1694, 1694, 1696, 1696, 1696, 1697, 1697,
3697      1697, 3063, 1697, 3104, 3110, 1697, 1700, 1700, 1700, 3064,
3698      1694, 3076, 1696, 3112, 3077, 1702, 1702, 1702, 1703, 1703,
3699      1703, 3064, 1703, 3076, 1700, 1703, 3077, 1683, 3109, 3109,
3700      1685, 1689, 1702, 1704, 1704, 1704, 1705, 1705, 1705, 1708,
3701      1708, 1708, 1732, 1732, 1732, 1734, 1734, 1734, 3107, 3127,
3702      1704, 1736, 1736, 1736, 1705, 1700, 1694, 1708, 1737, 1737,
3703      1737, 1743, 1743, 1743, 1746, 1746, 1746, 1747, 1747, 1747,
3704      1748, 1748, 1748, 1750, 1750, 1750, 1751, 1751, 1751, 1752,
3705
3706      1752, 1752, 1753, 1753, 1753, 1705, 1754, 1754, 1754, 3107,
3707      1708, 1755, 1755, 1755, 1756, 1756, 1756, 1736, 3120, 1753,
3708      1758, 1758, 1758, 1754, 1760, 1760, 1760, 1708, 1755, 1734,
3709      3129, 3133, 1756, 3120, 1759, 1759, 1759, 1758, 1759, 1750,
3710      3126, 1759, 1760, 1763, 1763, 1763, 3134, 1764, 1764, 1764,
3711      1765, 1765, 1765, 3137, 1748, 1766, 1766, 1766, 3108, 3126,
3712      1751, 1763, 3116, 1752, 1764, 3115, 3128, 1765, 1767, 1767,
3713      1767, 3111, 3108, 1766, 3139, 1755, 1768, 1768, 1768, 3115,
3714      3116, 1756, 3111, 1760, 3141, 3128, 1767, 3142, 1769, 1769,
3715      1769, 1763, 1769, 1768, 3143, 1769, 1770, 1770, 1770, 1771,
3716
3717      1771, 1771, 1772, 1772, 1772, 1773, 1773, 1773, 1775, 1775,
3718      1775, 3136, 3119, 1770, 3144, 3145, 1771, 3146, 3154, 1772,
3719      1766, 3155, 3138, 1773, 3156, 1775, 3119, 1776, 1776, 1776,
3720      3136, 1776, 3158, 1767, 1776, 1777, 1777, 1777, 1779, 1779,
3721      1779, 3138, 1779, 3159, 3161, 1779, 1784, 1784, 1784, 1785,
3722      1785, 1785, 1777, 1785, 3162, 3163, 1785, 1771, 1786, 1786,
3723      1786, 3165, 3170, 1784, 3171, 1773, 1791, 1791, 1791, 1794,
3724      1794, 1794, 1795, 1795, 1795, 1786, 3172, 1796, 1796, 1796,
3725      3173, 1796, 3174, 1791, 1796, 3175, 3176, 1794, 3177, 3180,
3726      1795, 1799, 1799, 1799, 1803, 1803, 1803, 3181, 1803, 3182,
3727
3728      3183, 1803, 1806, 1806, 1806, 3184, 1807, 1807, 1807, 1799,
3729      1807, 3185, 3188, 1807, 1808, 1808, 1808, 3189, 3190, 1806,
3730      1809, 1809, 1809, 1812, 1812, 1812, 3191, 1795, 1813, 1813,
3731      1813, 1808, 1810, 1810, 1810, 1794, 1810, 1809, 3192, 1810,
3732      3193, 1812, 1815, 1815, 1815, 3195, 1815, 3196, 3197, 1815,
3733      1818, 1818, 1818, 1819, 1819, 1819, 3198, 1819, 3199, 3200,
3734      1819, 1822, 1822, 1822, 1826, 1826, 1826, 3201, 1818, 1827,
3735      1827, 1827, 3208, 1827, 3209, 3210, 1827, 3211, 3212, 1822,
3736      3213, 1826, 1829, 1829, 1829, 1831, 1831, 1831, 1832, 1832,
3737      1832, 1833, 1833, 1833, 3219, 1833, 1818, 3220, 1833, 3221,
3738
3739      1829, 3222, 3206, 1831, 3223, 1832, 1834, 1834, 1834, 1835,
3740      1835, 1835, 3224, 1835, 3206, 3228, 1835, 1839, 1839, 1839,
3741      1843, 1843, 1843, 3229, 1834, 1840, 1840, 1840, 1822, 1840,
3742      3231, 1831, 1840, 3233, 3236, 1839, 3237, 1843, 1844, 1844,
3743      1844, 1846, 1846, 1846, 1847, 1847, 1847, 3234, 1847, 3238,
3744      3207, 1847, 1848, 1848, 1848, 3239, 1844, 3240, 1846, 1850,
3745      1850, 1850, 3207, 3241, 1834, 3242, 1851, 1851, 1851, 1848,
3746      1851, 3243, 3234, 1851, 3244, 3245, 1850, 1853, 1853, 1853,
3747      1856, 1856, 1856, 1839, 1861, 1861, 1861, 3246, 1861, 3247,
3748      3248, 1861, 1867, 1867, 1867, 1853, 3249, 3250, 1856, 1869,
3749
3750      1869, 1869, 1844, 3251, 1870, 1870, 1870, 3252, 1870, 3253,
3751      1867, 1870, 1871, 1871, 1871, 3254, 1869, 1873, 1873, 1873,
3752      3255, 1873, 3256, 3257, 1873, 3260, 3261, 1877, 1877, 1877,
3753      1871, 1877, 1856, 3263, 1877, 1881, 1881, 1881, 1883, 1883,
3754      1883, 3262, 3264, 1867, 1885, 1885, 1885, 1886, 1886, 1886,
3755      1887, 1887, 1887, 1881, 3265, 3266, 1883, 1888, 1888, 1888,
3756      3262, 3267, 1885, 3268, 1886, 3269, 3270, 1887, 1889, 1889,
3757      1889, 1891, 1891, 1891, 1888, 1892, 1892, 1892, 3271, 1892,
3758      3272, 3273, 1892, 1893, 1893, 1893, 1889, 1893, 1891, 1883,
3759      1893, 1896, 1896, 1896, 3274, 1885, 1881, 1898, 1898, 1898,
3760
3761      3275, 1898, 3276, 3277, 1898, 1903, 1903, 1903, 3278, 1896,
3762      1905, 1905, 1905, 3279, 1905, 1889, 1887, 1905, 1908, 1908,
3763      1908, 3280, 3281, 1903, 1909, 1909, 1909, 3282, 1909, 3283,
3764      3284, 1909, 1910, 1910, 1910, 1908, 3288, 3289, 1896, 3290,
3765      1915, 1915, 1915, 1922, 1922, 1922, 1927, 1927, 1927, 3291,
3766      1910, 1931, 1931, 1931, 3292, 3293, 1903, 1915, 1932, 1932,
3767      1932, 1933, 1933, 1933, 1935, 1935, 1935, 1944, 1944, 1944,
3768      1945, 1945, 1945, 1947, 1947, 1947, 1949, 1949, 1949, 3287,
3769      1950, 1950, 1950, 1910, 1950, 3294, 3295, 1950, 1951, 1951,
3770      1951, 3296, 3297, 1949, 1952, 1952, 1952, 3298, 1952, 3287,
3771
3772      3299, 1952, 1954, 1954, 1954, 1951, 1956, 1956, 1956, 3300,
3773      1956, 3301, 3302, 1956, 1959, 1959, 1959, 1961, 1961, 1961,
3774      1954, 1962, 1962, 1962, 1963, 1963, 1963, 3303, 3304, 1964,
3775      1964, 1964, 1959, 1964, 1961, 3305, 1964, 3306, 3307, 1962,
3776      3308, 1963, 1965, 1965, 1965, 1966, 1966, 1966, 3309, 1966,
3777      3311, 3314, 1966, 1967, 1967, 1967, 1968, 1968, 1968, 1965,
3778      1969, 1969, 1969, 3310, 1969, 1959, 3317, 1969, 1954, 3310,
3779      3318, 1967, 3319, 3320, 1968, 1972, 1972, 1972, 3321, 1973,
3780      1973, 1973, 1962, 1973, 3322, 3324, 1973, 1974, 1974, 1974,
3781      3325, 3327, 1972, 1975, 1975, 1975, 1976, 1976, 1976, 3328,
3782
3783      1976, 3330, 3331, 1976, 1974, 1977, 1977, 1977, 3333, 3334,
3784      1975, 3335, 1979, 1979, 1979, 3336, 1979, 3337, 1967, 1979,
3785      3338, 1968, 3333, 1977, 1982, 1982, 1982, 1983, 1983, 1983,
3786      3339, 1983, 3341, 3343, 1983, 1987, 1987, 1987, 3345, 1987,
3787      3347, 1982, 1987, 1990, 1990, 1990, 1991, 1991, 1991, 3349,
3788      1991, 3350, 3351, 1991, 3352, 3353, 1977, 1992, 1992, 1992,
3789      1990, 1996, 1996, 1996, 1997, 1997, 1997, 3354, 1997, 3355,
3790      3356, 1997, 3357, 3358, 1992, 2000, 2000, 2000, 1996, 2001,
3791      2001, 2001, 2004, 2004, 2004, 3362, 2004, 3364, 3366, 2004,
3792      2007, 2007, 2007, 2000, 2008, 2008, 2008, 2001, 2008, 3367,
3793
3794      3368, 2008, 2009, 2009, 2009, 3369, 2009, 2007, 3394, 2009,
3795      2013, 2013, 2013, 2015, 2015, 2015, 2017, 2017, 2017, 2018,
3796      2018, 2018, 2020, 2020, 2020, 3378, 2000, 3379, 2013, 2022,
3797      2022, 2022, 2001, 2022, 2017, 3370, 2022, 2018, 1506, 2020,
3798      2026, 2026, 2026, 2029, 2029, 2029, 2030, 2030, 2030, 3394,
3799      2030, 3382, 3371, 2030, 2033, 2033, 2033, 3383, 2026, 3380,
3800      1505, 2029, 2035, 2035, 2035, 2036, 2036, 2036, 2020, 2018,
3801      3381, 3370, 2033, 3378, 2017, 3379, 3408, 2037, 2037, 2037,
3802      2035, 2037, 2036, 1504, 2037, 2038, 2038, 2038, 3371, 2040,
3803      2040, 2040, 2029, 2040, 3386, 3382, 2040, 2043, 2043, 2043,
3804
3805      2033, 3383, 3386, 2038, 2044, 2044, 2044, 3380, 2044, 3384,
3806      3408, 2044, 3387, 3384, 2043, 2046, 2046, 2046, 3381, 2046,
3807      3387, 3402, 2046, 2050, 2050, 2050, 2053, 2053, 2053, 2054,
3808      2054, 2054, 2038, 2055, 2055, 2055, 2057, 2057, 2057, 3398,
3809      1503, 2050, 3390, 2053, 2062, 2062, 2062, 2054, 2064, 2064,
3810      2064, 3392, 2064, 3402, 3422, 2064, 2067, 2067, 2067, 2070,
3811      2070, 2070, 2062, 2072, 2072, 2072, 2074, 2074, 2074, 2076,
3812      2076, 2076, 3388, 3391, 2067, 3389, 2070, 2077, 2077, 2077,
3813      3388, 2072, 3385, 3389, 2074, 3398, 3385, 2076, 3392, 3390,
3814      2054, 2078, 2078, 2078, 2077, 2078, 3422, 3403, 2078, 2079,
3815
3816      2079, 2079, 2080, 2080, 2080, 3393, 2081, 2081, 2081, 2062,
3817      2081, 3395, 3399, 2081, 1502, 1501, 2079, 3423, 3438, 2080,
3818      3391, 1500, 2072, 2082, 2082, 2082, 2083, 2083, 2083, 3403,
3819      2084, 2084, 2084, 2076, 2084, 3396, 3397, 2084, 2087, 2087,
3820      2087, 2082, 3393, 2083, 3409, 2079, 2091, 2091, 2091, 2092,
3821      2092, 2092, 3395, 2101, 2101, 2101, 2087, 2101, 3399, 3423,
3822      2101, 2104, 2104, 2104, 2091, 3438, 2092, 2108, 2108, 2108,
3823      3396, 3397, 2083, 2109, 2109, 2109, 2082, 2109, 3409, 2104,
3824      2109, 2110, 2110, 2110, 2108, 2115, 2115, 2115, 2116, 2116,
3825      2116, 2087, 2117, 2117, 2117, 2119, 2119, 2119, 2124, 2124,
3826
3827      2124, 2125, 2125, 2125, 2126, 2126, 2126, 2104, 2127, 2127,
3828      2127, 2129, 2129, 2129, 2133, 2133, 2133, 2134, 2134, 2134,
3829      2136, 2136, 2136, 2137, 2137, 2137, 2138, 2138, 2138, 2140,
3830      2140, 2140, 3428, 2140, 3404, 3410, 2140, 2143, 2143, 2143,
3831      3412, 2143, 3400, 3404, 2143, 2147, 2147, 2147, 2149, 2149,
3832      2149, 2151, 2151, 2151, 2127, 2152, 2152, 2152, 3401, 2152,
3833      3411, 3428, 2152, 2147, 3442, 3406, 2149, 3405, 2151, 2153,
3834      2153, 2153, 2138, 2154, 2154, 2154, 3405, 2154, 3410, 3400,
3835      2154, 2157, 2157, 2157, 3407, 2157, 3412, 2153, 2157, 2160,
3836      2160, 2160, 2161, 2161, 2161, 3401, 2147, 2162, 2162, 2162,
3837
3838      3406, 2162, 3414, 3411, 2162, 3442, 3413, 2160, 2149, 2160,
3839      2161, 3416, 3417, 2165, 2165, 2165, 2166, 2166, 2166, 3407,
3840      2166, 1497, 1496, 2166, 2170, 2170, 2170, 3418, 2161, 2153,
3841      2165, 2167, 2167, 2167, 3415, 2167, 3418, 3414, 2167, 2172,
3842      2172, 2172, 2170, 2172, 3416, 3417, 2172, 2178, 2178, 2178,
3843      3424, 2178, 3413, 3436, 2178, 2181, 2181, 2181, 2182, 2182,
3844      2182, 3436, 2182, 3437, 3439, 2182, 2186, 2186, 2186, 3415,
3845      2186, 3437, 2181, 2186, 2190, 2190, 2190, 2191, 2191, 2191,
3846      2192, 2192, 2192, 3461, 3419, 2195, 2195, 2195, 1495, 2195,
3847      2170, 2190, 2195, 3419, 3461, 2191, 3424, 3425, 2192, 2202,
3848
3849      2202, 2202, 2203, 2203, 2203, 2205, 2205, 2205, 2206, 2206,
3850      2206, 3439, 2206, 1486, 3450, 2206, 1484, 2202, 3429, 1479,
3851      2203, 3420, 2205, 3421, 2213, 2213, 2213, 2214, 2214, 2214,
3852      2216, 2216, 2216, 2218, 2218, 2218, 3426, 2218, 1473, 3444,
3853      2218, 2191, 2213, 3425, 1467, 2214, 3450, 3429, 2216, 2221,
3854      2221, 2221, 3430, 2203, 2202, 2223, 2223, 2223, 3420, 2223,
3855      3421, 3430, 2223, 2229, 2229, 2229, 1463, 2221, 2230, 2230,
3856      2230, 1458, 2230, 3426, 3444, 2230, 2231, 2231, 2231, 3431,
3857      2229, 2232, 2232, 2232, 2233, 2233, 2233, 3432, 3431, 2214,
3858      2213, 2234, 2234, 2234, 2231, 2235, 2235, 2235, 2236, 2236,
3859
3860      2236, 3434, 2221, 2237, 2237, 2237, 2238, 2238, 2238, 2239,
3861      2239, 2239, 2235, 3427, 3435, 2236, 2242, 2242, 2242, 3433,
3862      2237, 3432, 3446, 2238, 2243, 2243, 2243, 2239, 2243, 3451,
3863      1454, 2243, 3447, 2242, 2245, 2245, 2245, 2247, 2247, 2247,
3864      2231, 2250, 2250, 2250, 2251, 2251, 2251, 3434, 2251, 2236,
3865      3427, 2251, 2245, 3433, 3443, 2247, 2254, 2254, 2254, 2250,
3866      3435, 3451, 2255, 2255, 2255, 2238, 2255, 2237, 3446, 2255,
3867      2260, 2260, 2260, 2254, 2239, 2257, 2257, 2257, 3447, 2257,
3868      3440, 3441, 2257, 2261, 2261, 2261, 1453, 1445, 2260, 2262,
3869      2262, 2262, 1440, 2262, 1431, 3443, 2262, 2264, 2264, 2264,
3870
3871      2261, 2268, 2268, 2268, 1429, 2270, 2270, 2270, 3445, 2271,
3872      2271, 2271, 3448, 2271, 3449, 2264, 2271, 3440, 3441, 2268,
3873      1420, 2260, 2270, 2282, 2282, 2282, 2283, 2283, 2283, 2286,
3874      2286, 2286, 3460, 2286, 2287, 2287, 2286, 2287, 3452, 2288,
3875      2288, 2282, 2288, 3445, 2283, 2287, 3460, 3452, 2264, 3448,
3876      2288, 3449, 2287, 2289, 2289, 2289, 1415, 2288, 2290, 2290,
3877      2290, 2291, 2291, 2291, 2294, 2294, 2294, 2295, 2295, 2295,
3878      1411, 1406, 2282, 2297, 2297, 2297, 2298, 2298, 2298, 2300,
3879      2300, 2300, 2301, 2301, 2301, 2302, 2302, 2302, 2303, 2303,
3880      2303, 2306, 2306, 2306, 2307, 2307, 2307, 2310, 2310, 2310,
3881
3882      2311, 2311, 2311, 2313, 2313, 2313, 2314, 2314, 2314, 2318,
3883      2318, 2318, 2319, 2319, 2319, 2320, 2320, 2320, 2321, 2321,
3884      2321, 2322, 2322, 2322, 3454, 2322, 1405, 2318, 2322, 2325,
3885      2325, 2325, 1404, 2320, 3455, 2321, 2326, 2326, 2326, 2327,
3886      2327, 2327, 2328, 2328, 2328, 1402, 2328, 2325, 1401, 2328,
3887      2331, 2331, 2331, 1399, 2326, 3453, 3454, 2327, 2336, 2336,
3888      2336, 1394, 2336, 1393, 3453, 2336, 3455, 1388, 2331, 2339,
3889      2339, 2339, 3456, 2326, 2343, 2343, 2343, 2345, 2345, 2345,
3890      2325, 2320, 3458, 2344, 2344, 2344, 2339, 2344, 1387, 3459,
3891      2344, 2343, 2346, 2346, 2346, 2345, 2355, 2355, 2355, 3457,
3892
3893      2327, 2356, 2356, 2356, 2357, 2357, 2357, 2358, 2358, 2358,
3894      2346, 2359, 2359, 2359, 3458, 2359, 1381, 1380, 2359, 2356,
3895      3456, 3459, 2357, 1379, 2358, 2362, 2362, 2362, 2363, 2363,
3896      2363, 2368, 2368, 2368, 2369, 2369, 2369, 2370, 2370, 2370,
3897      1378, 1361, 2362, 1350, 1345, 2363, 1344, 3457, 2368, 1343,
3898      1339, 2369, 1322, 2358, 1321, 2370, 2371, 2371, 2371, 1316,
3899      1315, 2356, 2372, 2372, 2372, 2373, 2373, 2373, 2377, 2377,
3900      2377, 2378, 2378, 2378, 2371, 2378, 1314, 1309, 2378, 2372,
3901      2362, 1308, 2368, 2373, 2381, 2381, 2381, 1290, 1289, 2363,
3902      2382, 2382, 2382, 2383, 2383, 2383, 1288, 2370, 1287, 2384,
3903
3904      2384, 2384, 2381, 2384, 1286, 1285, 2384, 2385, 2385, 2385,
3905      2383, 2386, 2386, 2386, 1284, 1283, 2373, 2387, 2387, 2387,
3906      2371, 2388, 2388, 2388, 2385, 2389, 2389, 2389, 2386, 2390,
3907      2390, 2390, 1282, 1272, 2387, 2394, 2394, 2394, 1271, 2388,
3908      2391, 2391, 2391, 2381, 2391, 1270, 2390, 2391, 2395, 2395,
3909      2395, 1269, 2394, 2399, 2399, 2399, 2401, 2401, 2401, 1264,
3910      2401, 1263, 2386, 2401, 1262, 1261, 2395, 1238, 2387, 1237,
3911      1230, 2399, 2405, 2405, 2405, 2406, 2406, 2406, 1226, 2406,
3912      1221, 1220, 2406, 1215, 2410, 2410, 2410, 2414, 2414, 2414,
3913      2405, 2414, 1212, 1211, 2414, 2427, 2427, 2427, 2428, 2428,
3914
3915      2428, 2394, 2410, 2441, 2441, 2441, 2442, 2442, 2442, 2445,
3916      2445, 2445, 1208, 2427, 1207, 1206, 2428, 2446, 2446, 2446,
3917      2448, 2448, 2448, 2449, 2449, 2449, 2452, 2452, 2452, 1205,
3918      2410, 2455, 2455, 2455, 2459, 2459, 2459, 2461, 2461, 2461,
3919      2462, 2462, 2462, 1204, 2463, 2463, 2463, 2464, 2464, 2464,
3920      1203, 2464, 2459, 1202, 2464, 1201, 2427, 1200, 2462, 1198,
3921      2428, 2463, 2465, 2465, 2465, 2466, 2466, 2466, 2467, 2467,
3922      2467, 2468, 2468, 2468, 2475, 2475, 2475, 2476, 2476, 2476,
3923      2465, 2476, 1197, 2466, 2476, 1196, 2467, 1195, 1194, 2468,
3924      1191, 2475, 2478, 2478, 2478, 2480, 2480, 2480, 1190, 2480,
3925
3926      1189, 1188, 2480, 2483, 2483, 2483, 2491, 2491, 2491, 2478,
3927      2492, 2492, 2492, 2493, 2493, 2493, 2494, 2494, 2494, 1186,
3928      1185, 2483, 1184, 2491, 2496, 2496, 2496, 1183, 1182, 2466,
3929      1181, 2493, 1180, 1179, 2494, 2467, 2497, 2497, 2497, 1177,
3930      2497, 2496, 1176, 2497, 2505, 2505, 2505, 2506, 2506, 2506,
3931      2507, 2507, 2507, 1175, 2507, 1174, 1173, 2507, 2508, 2508,
3932      2508, 2505, 1172, 1171, 2506, 2509, 2509, 2509, 1165, 1161,
3933      2493, 2510, 2510, 2510, 1158, 1157, 2508, 2511, 2511, 2511,
3934      1156, 2511, 1154, 2509, 2511, 2512, 2512, 2512, 2510, 2515,
3935      2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517, 2518, 2518,
3936
3937      2518, 1150, 2518, 2512, 1147, 2518, 2515, 2521, 2521, 2521,
3938      2522, 2522, 2522, 2517, 2522, 1146, 1145, 2522, 2523, 2523,
3939      2523, 2524, 2524, 2524, 2521, 1141, 2509, 2525, 2525, 2525,
3940      2527, 2527, 2527, 1140, 1137, 2523, 1133, 1132, 2524, 2528,
3941      2528, 2528, 2529, 2529, 2529, 2525, 2529, 1129, 1126, 2529,
3942      2530, 2530, 2530, 2534, 2534, 2534, 2528, 2537, 2537, 2537,
3943      2550, 2550, 2550, 2568, 2568, 2568, 1123, 2530, 2569, 2569,
3944      2569, 2534, 2574, 2574, 2574, 2537, 1122, 1117, 2550, 2577,
3945      2577, 2577, 2578, 2578, 2578, 2580, 2580, 2580, 1109, 2580,
3946      1108, 1107, 2580, 2583, 2583, 2583, 2577, 2585, 2585, 2585,
3947
3948      2578, 2586, 2586, 2586, 1105, 2530, 1101, 2590, 2590, 2590,
3949      1098, 2583, 2609, 2609, 2609, 2585, 2596, 2596, 2596, 2586,
3950      2550, 1095, 1092, 2537, 2590, 2592, 2592, 2592, 1091, 2592,
3951      2609, 1090, 2592, 2596, 2597, 2597, 2597, 1089, 2597, 1088,
3952      1087, 2597, 2604, 2604, 2604, 2607, 2607, 2607, 2608, 2608,
3953      2608, 1086, 2608, 1085, 1082, 2608, 1081, 1078, 2585, 2604,
3954      1077, 1073, 2607, 1071, 2610, 2610, 2610, 2586, 2610, 1068,
3955      1067, 2610, 2618, 2618, 2618, 2619, 2619, 2619, 1064, 2619,
3956      1063, 1060, 2619, 2620, 2620, 2620, 1053, 2620, 1050, 2618,
3957      2620, 2623, 2623, 2623, 2625, 2625, 2625, 2626, 2626, 2626,
3958
3959      1049, 2626, 1048, 1045, 2626, 2629, 2629, 2629, 1041, 2623,
3960      1034, 1033, 2625, 2632, 2632, 2632, 2633, 2633, 2633, 1029,
3961      2634, 2634, 2634, 2629, 2634, 1028, 1027, 2634, 1024, 1023,
3962      2632, 1022, 1019, 2633, 2635, 2635, 2635, 2637, 2637, 2637,
3963      1012, 2637, 1011, 1010, 2637, 2640, 2640, 2640, 2642, 2642,
3964      2642, 1009, 2635, 2641, 2641, 2641, 2625, 2641, 1008, 1007,
3965      2641, 1006, 2640, 1005, 1004, 2642, 2643, 2643, 2643, 1003,
3966      2643,  999,  995, 2643, 2644, 2644, 2644,  972, 2644,  969,
3967       966, 2644, 2647, 2647, 2647, 2648, 2648, 2648, 2649, 2649,
3968      2649, 2652, 2652, 2652, 2653, 2653, 2653,  965,  958, 2647,
3969
3970       957,  955, 2648,  954,  953, 2649, 2654, 2654, 2654, 2652,
3971      2665, 2665, 2665, 2682, 2682, 2682, 2683, 2683, 2683, 2687,
3972      2687, 2687,  952, 2654, 2690, 2690, 2690,  951, 2665, 2691,
3973      2691, 2691,  950, 2691,  949,  948, 2691, 2692, 2692, 2692,
3974       947, 2690,  946, 2647,  945, 2693, 2693, 2693, 2696, 2696,
3975      2696, 2697, 2697, 2697,  944, 2692,  942, 2698, 2698, 2698,
3976       941, 2698, 2652, 2693, 2698, 2696,  940,  939, 2697,  938,
3977      2665, 2699, 2699, 2699, 2701, 2701, 2701,  937, 2701,  936,
3978       935, 2701, 2711, 2711, 2711, 2712, 2712, 2712, 2699,  934,
3979      2713, 2713, 2713,  932, 2713,  931, 2693, 2713,  930, 2711,
3980
3981       929,  928, 2712,  927, 2692, 2714, 2714, 2714,  926, 2714,
3982       925,  924, 2714, 2717, 2717, 2717, 2720, 2720, 2720, 2722,
3983      2722, 2722,  923, 2722,  919,  915, 2722,  914, 2711,  913,
3984       912, 2717,  911, 2720, 2731, 2731, 2731, 2733, 2733, 2733,
3985      2734, 2734, 2734,  907, 2734,  905,  904, 2734,  903, 2735,
3986      2735, 2735, 2731, 2735, 2733,  902, 2735, 2738, 2738, 2738,
3987       901, 2738,  900,  897, 2738, 2741, 2741, 2741,  896, 2741,
3988       894,  892, 2741, 2750, 2750, 2750, 2751, 2751, 2751, 2752,
3989      2752, 2752,  888, 2752,  887,  886, 2752, 2753, 2753, 2753,
3990      2750,  884,  881, 2751, 2754, 2754, 2754,  880, 2754,  878,
3991
3992       877, 2754,  874,  872, 2753, 2755, 2755, 2755, 2756, 2756,
3993      2756, 2757, 2757, 2757, 2758, 2758, 2758, 2759, 2759, 2759,
3994       869,  868, 2755,  867,  866, 2756, 2771, 2771, 2771, 2757,
3995      2774, 2774, 2774, 2750, 2759, 2760, 2760, 2760,  863, 2760,
3996       862,  861, 2760,  860, 2771,  859,  858, 2774, 2774, 2788,
3997      2788, 2788, 2789, 2789, 2789, 2792, 2792, 2792, 2793, 2793,
3998      2793, 2795, 2795, 2795,  857, 2795,  855,  852, 2795, 2798,
3999      2798, 2798,  851, 2757, 2799, 2799, 2799, 2771, 2802, 2802,
4000      2802, 2803, 2803, 2803,  847, 2803,  846, 2798, 2803, 2804,
4001      2804, 2804, 2799, 2804,  845, 2802, 2804, 2807, 2807, 2807,
4002
4003      2808, 2808, 2808,  844, 2808,  843,  842, 2808, 2817, 2817,
4004      2817, 2818, 2818, 2818, 2807, 2818,  841,  833, 2818, 2820,
4005      2820, 2820,  832, 2820,  829, 2817, 2820, 2824, 2824, 2824,
4006      2825, 2825, 2825,  828, 2825, 2798,  827, 2825, 2833, 2833,
4007      2833, 2836, 2836, 2836, 2824, 2836,  826,  825, 2836, 2851,
4008      2851, 2851,  823, 2852, 2852, 2852, 2833, 2852,  822,  821,
4009      2852, 2855, 2855, 2855,  818, 2855, 2851,  817, 2855, 2858,
4010      2858, 2858, 2859, 2859, 2859,  816, 2859,  813,  812, 2859,
4011      2860, 2860, 2860, 2861, 2861, 2861, 2858, 2861,  811,  808,
4012      2861, 2862, 2862, 2862, 2863, 2863, 2863, 2860, 2863,  807,
4013
4014       803, 2863, 2874, 2874, 2874, 2876, 2876, 2876,  801, 2862,
4015      2877, 2877, 2877,  798, 2878, 2878, 2878,  797, 2878,  796,
4016      2874, 2878, 2876, 2876, 2891, 2891, 2891, 2877, 2877, 2892,
4017      2892, 2892, 2878, 2893, 2893, 2893, 2894, 2894, 2894, 2895,
4018      2895, 2895, 2862, 2896, 2896, 2896, 2901, 2901, 2901,  795,
4019       793, 2874, 2902, 2902, 2902, 2906, 2906, 2906,  790, 2906,
4020       789,  788, 2906,  785, 2901, 2909, 2909, 2909,  782, 2909,
4021      2902,  778, 2909, 2912, 2912, 2912, 2920, 2920, 2920,  777,
4022      2920,  776,  775, 2920, 2924, 2924, 2924, 2925, 2925, 2925,
4023      2912, 2925,  772,  769, 2925,  768,  765, 2901, 2928, 2928,
4024
4025      2928, 2924, 2948, 2948, 2948, 2949, 2949, 2949,  761, 2949,
4026       760,  759, 2949,  758,  757, 2928, 2954, 2954, 2954, 2948,
4027      2954,  756,  755, 2954, 2957, 2957, 2957,  754, 2957,  753,
4028       752, 2957, 2960, 2960, 2960, 2969, 2969, 2969, 2971, 2971,
4029      2971, 2972, 2972, 2972,  751, 2972,  750,  748, 2972,  746,
4030      2960,  745,  742, 2969,  741, 2971, 2971,  740,  739, 2972,
4031      2973, 2973, 2973,  738, 2973,  737,  732, 2973, 2984, 2984,
4032      2984, 2985, 2985, 2985, 2986, 2986, 2986,  731, 2973, 2987,
4033      2987, 2987, 2992, 2992, 2992, 2996, 2996, 2996,  730, 2996,
4034       727,  726, 2996,  725, 2995, 2995, 2995, 2997, 2997, 2997,
4035
4036      2992, 2969, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
4037      2974, 2995,  724, 2974, 2997, 3005, 3005, 3005, 2974, 2974,
4038      2974, 2974, 2974, 3006, 3006, 3006,  721, 3006,  720,  718,
4039      3006,  715, 3005, 3008, 3008, 3008,  714, 3008,  711,  710,
4040      3008, 3007, 3007, 3007, 3033, 3033, 3033, 2974, 2974, 2975,
4041      2975, 2975, 2975, 2975, 2975, 2975, 2975, 2975, 3007,  709,
4042      2975,  708, 3033,  707,  706, 2975, 2975, 2975, 2975, 2975,
4043      3026, 3026, 3026,  698, 3026,  697,  696, 3026, 3041, 3041,
4044      3041, 3043, 3043, 3043,  693, 3043,  692,  691, 3043,  690,
4045       687, 3058, 3058, 3058, 2975, 2975, 3041,  685,  684, 3043,
4046
4047      3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3058,
4048       680, 3046, 3065, 3065, 3065,  679, 3046, 3046, 3046, 3046,
4049      3046, 3062, 3062, 3062,  678, 3062,  677,  674, 3062, 3065,
4050      3066, 3066, 3066,  673, 3066,  672,  671, 3066, 3105, 3105,
4051      3105, 3113, 3113, 3113,  667, 3046, 3046, 3047, 3047, 3047,
4052      3047, 3047, 3047, 3047, 3047, 3047, 3105,  666, 3047, 3113,
4053      3113,  665,  664, 3047, 3047, 3047, 3047, 3047, 3072, 3072,
4054      3072,  658, 3072,  657,  655, 3072, 3075, 3075, 3075,  649,
4055      3075,  648,  647, 3075, 3124, 3124, 3124, 3125, 3125, 3125,
4056       643,  640, 3047, 3047,  638, 3130, 3130, 3130,  637, 3130,
4057
4058       636, 3124, 3130,  632, 3125, 3135, 3135, 3135, 3140, 3140,
4059      3140, 3153, 3153, 3153, 3157, 3157, 3157, 3166, 3166, 3166,
4060       628,  624, 3135,  623,  622, 3140, 3167, 3167, 3167, 3153,
4061      3167,  621, 3157, 3167, 3166, 3168, 3168, 3168, 3169, 3169,
4062      3169,  617, 3169,  613,  610, 3169, 3178, 3178, 3178, 3179,
4063      3179, 3179, 3168, 3179,  609,  608, 3179, 3186, 3186, 3186,
4064      3187, 3187, 3187, 3178, 3187, 3157,  607, 3187, 3194, 3194,
4065      3194, 3202, 3202, 3202, 3186, 3202,  603,  597, 3202,  596,
4066      3205, 3205, 3205,  592, 3205,  584, 3194, 3205, 3216, 3216,
4067      3216,  580, 3216,  573,  571, 3216, 3225, 3225, 3225,  570,
4068
4069      3225,  566,  560, 3225,  559, 3194, 3348, 3348, 3348, 3359,
4070      3359, 3359,  555, 3359,  551,  547, 3359, 3462, 3462, 3462,
4071      3463, 3463, 3463,  546, 3348,  545,  544, 3359,  543,  539,
4072       535,  528,  524,  517,  516, 3462,  515,  514, 3463, 3466,
4073      3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3467, 3467,
4074      3467, 3467, 3467, 3467, 3467, 3467, 3467, 3468, 3468, 3468,
4075      3468, 3468, 3468, 3468, 3468, 3468, 3469, 3469, 3469, 3469,
4076      3469, 3469, 3469, 3469, 3469, 3470, 3470, 3470, 3470, 3470,
4077      3470, 3470, 3470, 3470, 3471, 3471, 3471, 3471, 3471, 3471,
4078      3471, 3471, 3471, 3472, 3472, 3472, 3472, 3472, 3472, 3472,
4079
4080      3472, 3472, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473,
4081      3473, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474,
4082      3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3476,
4083      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3477, 3477,
4084      3477, 3477, 3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478,
4085      3478, 3478, 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479,
4086      3479, 3479, 3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480,
4087      3480, 3480, 3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481,
4088      3481, 3481, 3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
4089      3482, 3482, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
4090
4091      3483, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4092      3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486,
4093      3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487,
4094      3487, 3487, 3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488,
4095      3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489,
4096      3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490,
4097      3490, 3490, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491,
4098      3491, 3491, 3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
4099      3492, 3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
4100      3493, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
4101
4102      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496,
4103      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497,
4104      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498,
4105      3498, 3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499,
4106      3499, 3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500,
4107      3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501,
4108      3501, 3501, 3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4109      3502, 3502, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
4110      3503, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
4111      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506,
4112
4113      3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507,
4114      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508,
4115      3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509,
4116      3509, 3509, 3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510,
4117      3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511,
4118      3511, 3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
4119      3512, 3512, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
4120      3513, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514,
4121      3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516,
4122      3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517,
4123
4124      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518,
4125      3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519,
4126      3519, 3519, 3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520,
4127      3520, 3520, 3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521,
4128      3521, 3521, 3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
4129      3522, 3522, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
4130      3523, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
4131      3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526,
4132      3526, 3526, 3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527,
4133      3527, 3527, 3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528,
4134
4135      3528, 3528, 3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529,
4136      3529, 3529, 3529, 3529, 3529, 3530, 3530, 3530,  513,  512,
4137       511, 3530, 3531, 3531, 3531,  507,  501,  500, 3531, 3532,
4138      3532, 3532,  496,  490,  489, 3532, 3533, 3533, 3533,  485,
4139       479,  478, 3533, 3534, 3534, 3534,  474,  468,  467, 3534,
4140      3535, 3535, 3535,  463,  459,  455, 3535, 3536, 3536, 3536,
4141       454,  453,  449, 3536, 3537, 3537, 3537,  445,  441,  437,
4142      3537, 3538, 3538, 3538,  431,  430,  429, 3538, 3539, 3539,
4143      3539,  425,  421,  417, 3539, 3540, 3540, 3540,  415,  414,
4144       413, 3540, 3541, 3541, 3541,  409,  403,  399, 3541, 3542,
4145
4146      3542, 3542,  395,  392,  388, 3542, 3543, 3543, 3543,  384,
4147       381,  376, 3543, 3544, 3544, 3544,  375,  373,  369, 3544,
4148      3545, 3545, 3545,  363,  362,  360, 3545, 3546, 3546, 3546,
4149       359,  358,  354, 3546, 3547, 3547, 3547,  347,  346,  342,
4150      3547, 3548, 3548, 3548,  335,  334,  333, 3548, 3549, 3549,
4151      3549,  329,  323,  322, 3549, 3550, 3550, 3550,  321,  317,
4152       311, 3550, 3551, 3551, 3551,  307,  298,  297, 3551, 3552,
4153      3552, 3552,  293,  289,  285, 3552, 3553, 3553, 3553,  281,
4154       280,  276, 3553, 3554, 3554, 3554,  273,  272,  271, 3554,
4155      3555, 3555, 3555,  265,  264,  262, 3555, 3556, 3556, 3556,
4156
4157       259,  247,    0, 3556, 3557, 3557, 3557,    0,    0,    0,
4158      3557, 3558, 3558, 3558,    0,    0,    0, 3558, 3559, 3559,
4159      3559, 3559, 3559, 3559, 3559,    0, 3559, 3560, 3560, 3560,
4160         0,    0,    0, 3560, 3561,    0,    0,    0, 3561, 3562,
4161      3562, 3562,    0,    0,    0, 3562, 3563,    0,    0,    0,
4162      3563, 3564, 3564, 3564,    0,    0,    0, 3564, 3565,    0,
4163         0,    0, 3565, 3566, 3566, 3566,    0,    0,    0, 3566,
4164      3567,    0,    0,    0, 3567, 3568, 3568, 3568,    0,    0,
4165         0, 3568, 3569,    0,    0,    0, 3569, 3570, 3570, 3570,
4166         0,    0,    0, 3570, 3571,    0,    0,    0, 3571, 3572,
4167
4168      3572, 3572,    0,    0,    0, 3572, 3573,    0,    0,    0,
4169      3573, 3574, 3574, 3574,    0,    0,    0, 3574, 3575,    0,
4170         0,    0, 3575, 3576, 3576, 3576,    0,    0,    0, 3576,
4171      3577,    0,    0,    0, 3577, 3578, 3578, 3578,    0,    0,
4172         0, 3578, 3579,    0,    0,    0, 3579, 3580, 3580, 3580,
4173         0,    0,    0, 3580, 3581,    0,    0,    0, 3581, 3582,
4174      3582, 3582,    0,    0,    0, 3582, 3583,    0,    0,    0,
4175      3583, 3584, 3584, 3584,    0,    0,    0, 3584, 3585,    0,
4176         0,    0, 3585, 3586, 3586, 3586,    0,    0,    0, 3586,
4177      3587,    0,    0,    0, 3587, 3588, 3588, 3588,    0,    0,
4178
4179         0, 3588, 3589,    0,    0,    0, 3589, 3590, 3590, 3590,
4180         0,    0,    0, 3590, 3591,    0,    0,    0, 3591, 3592,
4181      3592, 3592,    0,    0,    0, 3592, 3593,    0,    0,    0,
4182      3593, 3594, 3594, 3594,    0,    0,    0, 3594, 3595,    0,
4183         0,    0, 3595, 3596, 3596, 3596,    0,    0,    0, 3596,
4184      3597,    0,    0,    0, 3597, 3598, 3598, 3598,    0,    0,
4185         0, 3598, 3599,    0,    0,    0, 3599, 3600, 3600, 3600,
4186         0,    0,    0, 3600, 3601,    0,    0,    0, 3601, 3602,
4187      3602, 3602,    0,    0,    0, 3602, 3603,    0,    0,    0,
4188      3603, 3604, 3604, 3604,    0,    0,    0, 3604, 3605,    0,
4189
4190         0,    0, 3605, 3606, 3606, 3606,    0,    0,    0, 3606,
4191      3607,    0,    0,    0, 3607, 3608, 3608, 3608,    0,    0,
4192         0, 3608, 3609,    0,    0,    0, 3609, 3610, 3610, 3610,
4193         0,    0,    0, 3610, 3611,    0,    0,    0, 3611, 3612,
4194      3612, 3612,    0,    0,    0, 3612, 3613,    0,    0,    0,
4195      3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615,    0,
4196         0,    0, 3615, 3616, 3616, 3616,    0,    0,    0, 3616,
4197      3617,    0,    0,    0, 3617, 3618, 3618, 3618, 3618, 3618,
4198      3618, 3618, 3618, 3618, 3619,    0,    0,    0,    0, 3619,
4199      3620, 3620, 3620,    0,    0,    0, 3620, 3621, 3621, 3621,
4200
4201      3621,    0,    0, 3621, 3621, 3622, 3622, 3622, 3622,    0,
4202      3622,    0, 3622, 3623, 3623, 3623, 3623,    0,    0, 3623,
4203      3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625, 3625,
4204      3625, 3625,    0,    0, 3625, 3625, 3626, 3626, 3626,    0,
4205         0,    0, 3626, 3627, 3627, 3627, 3627,    0,    0, 3627,
4206      3627, 3628, 3628, 3628, 3628,    0, 3628,    0, 3628, 3629,
4207      3629, 3629, 3629,    0,    0, 3629, 3629, 3630, 3630, 3630,
4208      3630,    0, 3630,    0, 3630, 3631, 3631, 3631, 3631,    0,
4209         0, 3631, 3631, 3632, 3632, 3632, 3632,    0, 3632,    0,
4210      3632, 3633, 3633, 3633, 3633,    0,    0, 3633, 3633, 3634,
4211
4212      3634, 3634,    0,    0,    0, 3634, 3635, 3635, 3635, 3635,
4213         0,    0, 3635, 3635, 3636, 3636, 3636, 3636,    0,    0,
4214      3636, 3636, 3637, 3637, 3637,    0,    0,    0, 3637, 3638,
4215      3638, 3638, 3638,    0,    0, 3638, 3638, 3639, 3639, 3639,
4216         0,    0,    0, 3639, 3640, 3640, 3640, 3640,    0,    0,
4217      3640, 3640, 3641, 3641, 3641,    0,    0,    0, 3641, 3642,
4218      3642, 3642, 3642,    0,    0, 3642, 3642, 3643, 3643, 3643,
4219         0,    0,    0, 3643, 3644, 3644, 3644, 3644,    0,    0,
4220      3644, 3644, 3645, 3645, 3645,    0,    0,    0, 3645, 3646,
4221      3646, 3646, 3646,    0,    0, 3646, 3646, 3647, 3647, 3647,
4222
4223         0,    0,    0, 3647, 3648, 3648, 3648, 3648,    0,    0,
4224      3648, 3648, 3649, 3649, 3649,    0,    0,    0, 3649, 3650,
4225      3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651, 3651,
4226         0,    0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0,
4227      3652, 3652, 3653, 3653, 3653,    0,    0,    0, 3653, 3654,
4228      3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,
4229         0,    0,    0, 3655, 3656, 3656, 3656, 3656,    0,    0,
4230      3656, 3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658,
4231      3658, 3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659,
4232         0,    0,    0, 3659, 3660, 3660, 3660, 3660,    0,    0,
4233
4234      3660, 3660, 3661, 3661, 3661,    0,    0,    0, 3661, 3662,
4235      3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,
4236         0,    0,    0, 3663, 3664, 3664, 3664, 3664,    0,    0,
4237      3664, 3664, 3665, 3665, 3665, 3665,    0, 3665,    0, 3665,
4238      3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667,
4239      3667,    0,    0,    0, 3667, 3668, 3668, 3668, 3668,    0,
4240         0, 3668, 3668, 3669, 3669, 3669,    0,    0,    0, 3669,
4241      3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671, 3671,
4242      3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,    0,
4243         0, 3672, 3672, 3673, 3673, 3673,    0,    0,    0, 3673,
4244
4245      3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675, 3675,
4246      3675,    0,    0,    0, 3675, 3676, 3676, 3676, 3676,    0,
4247         0, 3676, 3676, 3677, 3677, 3677, 3677, 3677, 3677, 3677,
4248      3677, 3677, 3678,    0, 3678,    0,    0, 3678, 3679, 3679,
4249      3679,    0,    0,    0, 3679, 3680, 3680, 3680, 3680,    0,
4250         0, 3680, 3680, 3681, 3681, 3681,    0,    0,    0, 3681,
4251      3682, 3682, 3682, 3682,    0,    0, 3682, 3682, 3683, 3683,
4252      3683,    0,    0,    0, 3683, 3684, 3684, 3684, 3684,    0,
4253         0, 3684, 3684, 3685, 3685, 3685,    0,    0,    0, 3685,
4254      3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687, 3687,
4255
4256      3687,    0,    0,    0, 3687, 3688, 3688, 3688, 3688,    0,
4257         0, 3688, 3688, 3689, 3689, 3689, 3689,    0,    0, 3689,
4258      3689, 3690, 3690, 3690,    0,    0,    0, 3690, 3691, 3691,
4259      3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692,    0,
4260         0,    0, 3692, 3693, 3693, 3693, 3693,    0,    0, 3693,
4261      3693, 3694, 3694, 3694, 3694,    0,    0, 3694, 3694, 3695,
4262      3695, 3695, 3695,    0, 3695,    0, 3695, 3696, 3696, 3696,
4263      3696,    0,    0, 3696, 3696, 3697, 3697, 3697,    0,    0,
4264         0, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698,
4265      3699, 3699, 3699, 3699,    0, 3699,    0, 3699, 3700, 3700,
4266
4267      3700, 3700,    0,    0, 3700, 3700, 3701, 3701, 3701, 3701,
4268         0, 3701,    0, 3701, 3702, 3702, 3702, 3702,    0,    0,
4269      3702, 3702, 3703, 3703, 3703,    0,    0,    0, 3703, 3704,
4270      3704, 3704, 3704,    0,    0, 3704, 3704, 3705, 3705, 3705,
4271         0,    0,    0, 3705, 3706, 3706, 3706, 3706,    0,    0,
4272      3706, 3706, 3707, 3707, 3707,    0,    0,    0, 3707, 3708,
4273      3708, 3708, 3708,    0,    0, 3708, 3708, 3709, 3709, 3709,
4274      3709,    0, 3709,    0, 3709, 3710, 3710, 3710, 3710,    0,
4275         0, 3710, 3710, 3711, 3711, 3711, 3711,    0, 3711,    0,
4276      3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712, 3713,
4277
4278      3713, 3713,    0,    0,    0, 3713, 3714, 3714, 3714, 3714,
4279         0,    0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0,
4280      3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
4281      3717, 3717,    0,    0,    0, 3717, 3718, 3718, 3718, 3718,
4282         0,    0, 3718, 3718, 3719, 3719, 3719,    0,    0,    0,
4283      3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721,
4284      3721, 3721,    0,    0,    0, 3721, 3722, 3722, 3722, 3722,
4285         0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,    0,
4286      3723, 3724, 3724, 3724, 3724,    0,    0, 3724, 3724, 3725,
4287      3725, 3725,    0,    0,    0, 3725, 3726, 3726, 3726, 3726,
4288
4289         0,    0, 3726, 3726, 3727, 3727, 3727,    0,    0,    0,
4290      3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728, 3729,
4291      3729, 3729,    0,    0,    0, 3729, 3730, 3730, 3730, 3730,
4292         0,    0, 3730, 3730, 3731, 3731, 3731, 3731,    0, 3731,
4293         0, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732, 3732,
4294      3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734, 3734,
4295      3734,    0,    0, 3734, 3734, 3735, 3735, 3735, 3735, 3735,
4296      3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736, 3736, 3736,
4297      3736, 3736, 3736, 3737, 3737, 3737,    0,    0,    0, 3737,
4298      3738, 3738, 3738,    0,    0,    0, 3738, 3739, 3739, 3739,
4299
4300      3739,    0,    0, 3739, 3739, 3740, 3740, 3740, 3740,    0,
4301      3740,    0, 3740, 3741, 3741, 3741, 3741,    0,    0, 3741,
4302      3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743, 3743,
4303      3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,    0,
4304         0,    0, 3744, 3745, 3745, 3745, 3745,    0,    0, 3745,
4305      3745, 3746, 3746, 3746, 3746,    0,    0, 3746, 3746, 3747,
4306      3747, 3747, 3747,    0, 3747,    0, 3747, 3748, 3748, 3748,
4307      3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,    0,
4308         0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750,
4309      3751, 3751, 3751, 3751,    0,    0, 3751, 3751, 3752, 3752,
4310
4311      3752, 3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,
4312         0,    0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754,
4313      3754, 3755, 3755, 3755, 3755,    0,    0, 3755, 3755, 3756,
4314      3756, 3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757,
4315         0,    0,    0, 3757, 3758, 3758, 3758, 3758,    0,    0,
4316      3758, 3758, 3759, 3759, 3759,    0,    0,    0, 3759, 3760,
4317      3760, 3760, 3760,    0,    0, 3760, 3760, 3761, 3761, 3761,
4318      3761,    0, 3761,    0, 3761, 3762, 3762, 3762, 3762,    0,
4319         0, 3762, 3762, 3763, 3763, 3763,    0,    0,    0, 3763,
4320      3764, 3764, 3764, 3764,    0,    0, 3764, 3764, 3765, 3765,
4321
4322      3765,    0,    0,    0, 3765, 3766, 3766, 3766, 3766,    0,
4323         0, 3766, 3766, 3767, 3767, 3767,    0,    0,    0, 3767,
4324      3768, 3768, 3768, 3768,    0,    0, 3768, 3768, 3769, 3769,
4325      3769,    0,    0,    0, 3769, 3770, 3770, 3770, 3770,    0,
4326         0, 3770, 3770, 3771, 3771, 3771,    0,    0,    0, 3771,
4327      3772, 3772, 3772, 3772,    0,    0, 3772, 3772, 3773, 3773,
4328      3773, 3773,    0, 3773,    0, 3773, 3774, 3774, 3774, 3774,
4329         0,    0, 3774, 3774, 3775, 3775, 3775,    0,    0,    0,
4330      3775, 3776, 3776, 3776, 3776,    0,    0, 3776, 3776, 3777,
4331      3777, 3777,    0,    0,    0, 3777, 3778, 3778, 3778, 3778,
4332
4333         0,    0, 3778, 3778, 3779, 3779, 3779,    0,    0,    0,
4334      3779, 3780, 3780, 3780, 3780,    0,    0, 3780, 3780, 3781,
4335      3781, 3781,    0,    0,    0, 3781, 3782, 3782, 3782, 3782,
4336         0,    0, 3782, 3782, 3783, 3783, 3783,    0,    0,    0,
4337      3783, 3784, 3784, 3784, 3784,    0,    0, 3784, 3784, 3785,
4338      3785, 3785,    0,    0,    0, 3785, 3786, 3786, 3786, 3786,
4339         0,    0, 3786, 3786, 3787, 3787, 3787,    0,    0,    0,
4340      3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
4341      3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3790, 3790,
4342      3790, 3790, 3790, 3790, 3790, 3790, 3790, 3791, 3791, 3791,
4343
4344         0,    0,    0, 3791, 3792, 3792, 3792, 3792,    0, 3792,
4345         0, 3792, 3793, 3793, 3793, 3793,    0,    0, 3793, 3793,
4346      3794, 3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795,
4347      3795,    0,    0,    0, 3795, 3796, 3796, 3796, 3796,    0,
4348         0, 3796, 3796, 3797, 3797, 3797, 3797,    0, 3797,    0,
4349      3797, 3798, 3798, 3798, 3798,    0,    0, 3798, 3798, 3799,
4350      3799, 3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800,
4351      3800,    0, 3800,    0, 3800, 3801, 3801, 3801, 3801,    0,
4352         0, 3801, 3801, 3802, 3802, 3802,    0,    0,    0, 3802,
4353      3803, 3803, 3803, 3803,    0,    0, 3803, 3803, 3804, 3804,
4354
4355      3804, 3804,    0,    0, 3804, 3804, 3805, 3805, 3805,    0,
4356         0,    0, 3805, 3806, 3806, 3806, 3806,    0,    0, 3806,
4357      3806, 3807, 3807, 3807, 3807,    0,    0, 3807, 3807, 3808,
4358      3808, 3808, 3808,    0,    0, 3808, 3808, 3809, 3809, 3809,
4359         0,    0,    0, 3809, 3810, 3810, 3810, 3810,    0,    0,
4360      3810, 3810, 3811, 3811, 3811,    0,    0,    0, 3811, 3812,
4361      3812, 3812, 3812,    0,    0, 3812, 3812, 3813, 3813, 3813,
4362      3813,    0,    0, 3813, 3813, 3814, 3814, 3814,    0,    0,
4363         0, 3814, 3815, 3815, 3815, 3815,    0,    0, 3815, 3815,
4364      3816, 3816, 3816, 3816,    0, 3816,    0, 3816, 3817, 3817,
4365
4366      3817, 3817,    0,    0, 3817, 3817, 3818, 3818, 3818,    0,
4367         0,    0, 3818, 3819, 3819, 3819, 3819,    0,    0, 3819,
4368      3819, 3820, 3820, 3820,    0,    0,    0, 3820, 3821, 3821,
4369      3821, 3821,    0,    0, 3821, 3821, 3822, 3822, 3822,    0,
4370         0,    0, 3822, 3823, 3823, 3823, 3823,    0,    0, 3823,
4371      3823, 3824, 3824, 3824, 3824,    0,    0, 3824, 3824, 3825,
4372      3825, 3825,    0,    0,    0, 3825, 3826, 3826, 3826, 3826,
4373         0,    0, 3826, 3826, 3827, 3827, 3827,    0,    0,    0,
4374      3827, 3828, 3828, 3828, 3828,    0,    0, 3828, 3828, 3829,
4375      3829, 3829,    0,    0,    0, 3829, 3830, 3830, 3830, 3830,
4376
4377         0,    0, 3830, 3830, 3831, 3831, 3831, 3831,    0, 3831,
4378         0, 3831, 3832, 3832, 3832, 3832,    0,    0, 3832, 3832,
4379      3833, 3833, 3833,    0,    0,    0, 3833, 3834, 3834, 3834,
4380      3834,    0,    0, 3834, 3834, 3835, 3835, 3835,    0,    0,
4381         0, 3835, 3836, 3836, 3836, 3836,    0,    0, 3836, 3836,
4382      3837, 3837, 3837,    0,    0,    0, 3837, 3838, 3838, 3838,
4383      3838,    0,    0, 3838, 3838, 3839, 3839, 3839, 3839, 3839,
4384      3839, 3839, 3839, 3839, 3840, 3840, 3840, 3840, 3840, 3840,
4385      3840, 3840, 3840, 3841, 3841, 3841, 3841,    0, 3841,    0,
4386      3841, 3842, 3842, 3842,    0,    0,    0, 3842, 3843, 3843,
4387
4388      3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844, 3844,
4389         0,    0, 3844, 3844, 3845, 3845, 3845,    0,    0,    0,
4390      3845, 3846, 3846, 3846, 3846,    0,    0, 3846, 3846, 3847,
4391      3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848, 3848,
4392      3848,    0,    0, 3848, 3848, 3849, 3849, 3849, 3849,    0,
4393      3849,    0, 3849, 3850, 3850, 3850, 3850,    0,    0, 3850,
4394      3850, 3851, 3851, 3851,    0,    0,    0, 3851, 3852, 3852,
4395      3852, 3852,    0,    0, 3852, 3852, 3853, 3853, 3853, 3853,
4396         0,    0, 3853, 3853, 3854, 3854, 3854,    0,    0,    0,
4397      3854, 3855, 3855, 3855, 3855,    0,    0, 3855, 3855, 3856,
4398
4399      3856, 3856, 3856,    0,    0, 3856, 3856, 3857, 3857, 3857,
4400         0,    0,    0, 3857, 3858, 3858, 3858,    0,    0,    0,
4401      3858, 3859, 3859, 3859, 3859,    0,    0, 3859, 3859, 3860,
4402      3860, 3860, 3860,    0,    0, 3860, 3860, 3861, 3861, 3861,
4403         0,    0,    0, 3861, 3862, 3862, 3862, 3862,    0,    0,
4404      3862, 3862, 3863, 3863, 3863, 3863,    0,    0, 3863, 3863,
4405      3864, 3864, 3864,    0,    0,    0, 3864, 3865, 3865, 3865,
4406      3865,    0, 3865,    0, 3865, 3866, 3866, 3866, 3866,    0,
4407         0, 3866, 3866, 3867, 3867, 3867,    0,    0,    0, 3867,
4408      3868, 3868, 3868, 3868,    0,    0, 3868, 3868, 3869, 3869,
4409
4410      3869,    0,    0,    0, 3869, 3870, 3870, 3870, 3870,    0,
4411         0, 3870, 3870, 3871, 3871, 3871,    0,    0,    0, 3871,
4412      3872, 3872, 3872, 3872,    0,    0, 3872, 3872, 3873, 3873,
4413      3873,    0,    0,    0, 3873, 3874, 3874, 3874, 3874,    0,
4414         0, 3874, 3874, 3875, 3875, 3875, 3875,    0, 3875,    0,
4415      3875, 3876, 3876, 3876, 3876,    0,    0, 3876, 3876, 3877,
4416      3877, 3877, 3877,    0, 3877,    0, 3877, 3878, 3878, 3878,
4417      3878,    0,    0, 3878, 3878, 3879, 3879, 3879,    0,    0,
4418         0, 3879, 3880, 3880, 3880, 3880,    0,    0, 3880, 3880,
4419      3881, 3881, 3881, 3881,    0, 3881,    0, 3881, 3882, 3882,
4420
4421      3882, 3882,    0,    0, 3882, 3882, 3883, 3883, 3883, 3883,
4422      3883, 3883, 3883, 3883, 3883, 3884, 3884, 3884, 3884, 3884,
4423      3884, 3884, 3884, 3884, 3885, 3885, 3885,    0,    0,    0,
4424      3885, 3886, 3886, 3886, 3886,    0,    0, 3886, 3886, 3887,
4425      3887, 3887, 3887,    0,    0, 3887, 3887, 3888, 3888, 3888,
4426         0,    0,    0, 3888, 3889, 3889, 3889, 3889,    0,    0,
4427      3889, 3889, 3890, 3890, 3890, 3890,    0,    0, 3890, 3890,
4428      3891, 3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892,
4429      3892, 3892,    0,    0, 3892, 3892, 3893, 3893, 3893,    0,
4430         0,    0, 3893, 3894, 3894, 3894, 3894,    0,    0, 3894,
4431
4432      3894, 3895, 3895, 3895, 3895,    0,    0, 3895, 3895, 3896,
4433      3896, 3896,    0,    0,    0, 3896, 3897, 3897, 3897, 3897,
4434         0,    0, 3897, 3897, 3898, 3898, 3898, 3898,    0,    0,
4435      3898, 3898, 3899, 3899, 3899,    0,    0,    0, 3899, 3900,
4436      3900, 3900,    0,    0,    0, 3900, 3901, 3901, 3901, 3901,
4437         0,    0, 3901, 3901, 3902, 3902, 3902, 3902,    0,    0,
4438      3902, 3902, 3903, 3903, 3903,    0,    0,    0, 3903, 3904,
4439      3904, 3904, 3904,    0,    0, 3904, 3904, 3905, 3905, 3905,
4440         0,    0,    0, 3905, 3906, 3906, 3906, 3906,    0,    0,
4441      3906, 3906, 3907, 3907, 3907, 3907,    0, 3907,    0, 3907,
4442
4443      3908, 3908, 3908, 3908,    0,    0, 3908, 3908, 3909, 3909,
4444      3909,    0,    0,    0, 3909, 3910, 3910, 3910, 3910,    0,
4445         0, 3910, 3910, 3911, 3911, 3911,    0,    0,    0, 3911,
4446      3912, 3912, 3912,    0,    0,    0, 3912, 3913, 3913, 3913,
4447      3913,    0,    0, 3913, 3913, 3914, 3914, 3914,    0,    0,
4448         0, 3914, 3915, 3915, 3915, 3915,    0,    0, 3915, 3915,
4449      3916, 3916, 3916,    0,    0,    0, 3916, 3917, 3917, 3917,
4450      3917,    0,    0, 3917, 3917, 3918, 3918, 3918,    0,    0,
4451         0, 3918, 3919, 3919, 3919, 3919,    0,    0, 3919, 3919,
4452      3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3921,
4453
4454      3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3922, 3922,
4455      3922,    0,    0,    0, 3922, 3923, 3923, 3923, 3923,    0,
4456         0, 3923, 3923, 3924, 3924, 3924, 3924,    0,    0, 3924,
4457      3924, 3925, 3925, 3925, 3925,    0, 3925,    0, 3925, 3926,
4458      3926, 3926, 3926,    0,    0, 3926, 3926, 3927, 3927, 3927,
4459      3927,    0,    0, 3927, 3927, 3928, 3928, 3928, 3928,    0,
4460         0, 3928, 3928, 3929, 3929, 3929, 3929,    0,    0, 3929,
4461      3929, 3930, 3930, 3930,    0,    0,    0, 3930, 3931, 3931,
4462      3931, 3931,    0,    0, 3931, 3931, 3932, 3932, 3932,    0,
4463         0,    0, 3932, 3933, 3933, 3933, 3933,    0,    0, 3933,
4464
4465      3933, 3934, 3934, 3934, 3934,    0,    0, 3934, 3934, 3935,
4466      3935, 3935, 3935,    0, 3935,    0, 3935, 3936, 3936, 3936,
4467      3936,    0, 3936,    0, 3936, 3937, 3937, 3937, 3937,    0,
4468         0, 3937, 3937, 3938, 3938, 3938, 3938,    0,    0, 3938,
4469      3938, 3939, 3939, 3939, 3939,    0, 3939,    0, 3939, 3940,
4470      3940, 3940, 3940,    0,    0, 3940, 3940, 3941, 3941, 3941,
4471         0,    0,    0, 3941, 3942, 3942, 3942, 3942,    0,    0,
4472      3942, 3942, 3943, 3943, 3943, 3943,    0, 3943,    0, 3943,
4473      3944, 3944, 3944, 3944,    0,    0, 3944, 3944, 3945, 3945,
4474      3945, 3945,    0, 3945,    0, 3945, 3946, 3946, 3946,    0,
4475
4476         0,    0, 3946, 3947, 3947, 3947,    0,    0,    0, 3947,
4477      3948, 3948, 3948,    0,    0,    0, 3948, 3949, 3949, 3949,
4478      3949,    0,    0, 3949, 3949, 3950, 3950, 3950,    0,    0,
4479         0, 3950, 3951, 3951, 3951, 3951,    0,    0, 3951, 3951,
4480      3952, 3952, 3952,    0,    0,    0, 3952, 3953, 3953, 3953,
4481      3953,    0,    0, 3953, 3953, 3954, 3954, 3954, 3954, 3954,
4482      3954, 3954, 3954, 3954, 3955, 3955, 3955, 3955, 3955, 3955,
4483      3955, 3955, 3955, 3956, 3956, 3956,    0,    0,    0, 3956,
4484      3957, 3957, 3957, 3957,    0,    0, 3957, 3957, 3958, 3958,
4485      3958, 3958,    0,    0, 3958, 3958, 3959, 3959, 3959, 3959,
4486
4487         0,    0, 3959, 3959, 3960, 3960, 3960, 3960,    0,    0,
4488      3960, 3960, 3961, 3961, 3961,    0,    0,    0, 3961, 3962,
4489      3962, 3962,    0,    0,    0, 3962, 3963, 3963, 3963, 3963,
4490         0,    0, 3963, 3963, 3964, 3964, 3964,    0,    0,    0,
4491      3964, 3965, 3965, 3965, 3965,    0,    0, 3965, 3965, 3966,
4492      3966, 3966, 3966,    0,    0, 3966, 3966, 3967, 3967, 3967,
4493      3967, 3967, 3967, 3967, 3967, 3967, 3968, 3968, 3968, 3968,
4494      3968, 3968, 3968, 3968, 3968, 3969, 3969, 3969, 3969, 3969,
4495      3969, 3969, 3969, 3969, 3970, 3970, 3970, 3970, 3970, 3970,
4496      3970, 3970, 3970, 3971, 3971, 3971, 3971, 3971, 3971, 3971,
4497
4498      3971, 3971, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972,
4499      3972, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4500      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4501      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4502      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4503      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4504      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4505      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4506      3465, 3465, 3465, 3465, 3465, 3465
4507     } ;
4508
4509 /* Table of booleans, true if rule could match eol. */
4510 static yyconst flex_int32_t yy_rule_can_match_eol[596] =
4511     {   0,
4512 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4513     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4514     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4515     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4516     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4517     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4518     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4519     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4520     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4521     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4522     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4523     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4524     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4525     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4526     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4527     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4528     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4529     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4530     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4531     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4532     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4533     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4534     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4535     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4536     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4537     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4538     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4539     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4540     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
4541     0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4542
4543 static yy_state_type yy_last_accepting_state;
4544 static char *yy_last_accepting_cpos;
4545
4546 extern int surf_parse__flex_debug;
4547 int surf_parse__flex_debug = 0;
4548
4549 /* The intent behind this definition is that it'll catch
4550  * any uses of REJECT which flex missed.
4551  */
4552 #define REJECT reject_used_but_not_detected
4553 #define yymore() yymore_used_but_not_detected
4554 #define YY_MORE_ADJ 0
4555 #define YY_RESTORE_YY_MORE_OFFSET
4556 char *surf_parse_text;
4557 /* Validating XML processor for src/surf/simgrid.dtd.
4558  *
4559  * This program was generated with the FleXML XML processor generator.
4560  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4561  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4562  * (1.9.6).
4563  * 
4564  * There are two, intertwined parts to this program, part A and part B.
4565  *
4566  * Part A
4567  * ------
4568  * 
4569  * Some parts, here collectively called "Part A", are found in the 
4570  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4571  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4572  *
4573  * You can redistribute, use, perform, display and/or modify "Part A"
4574  * provided the following two conditions hold:
4575  *
4576  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4577  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4578  *    FITNESS FOR A PARTICULAR PURPOSE.
4579  *
4580  * 2. The program distribution conditions do not in any way affect the
4581  *    distribution conditions of the FleXML system used to generate this
4582  *    file or any version of FleXML derived from that system.
4583  *
4584  * Notice that these are explicit rights granted to you for files
4585  * generated by the FleXML system.  For your rights in connection with
4586  * the FleXML system itself please consult the GNU General Public License.
4587  * 
4588  * Part B
4589  * ------
4590  * 
4591  * The other parts, here collectively called "Part B", and which came 
4592  * from the DTD used by FleXML to generate this program, can be 
4593  * distributed (or not, as the case may be) under the terms of whoever
4594  * wrote them, provided these terms respect and obey the two conditions 
4595  * above under the heading "Part A".
4596  *
4597  * The author of and contributors to FleXML specifically disclaim
4598  * any copyright interest in "Part B", unless "Part B" was written 
4599  * by the author of or contributors to FleXML.
4600  * 
4601  */
4602
4603 /* Version strings. */
4604 const char surfxml_flexml_version[] = "1.9.6";
4605
4606 /* ANSI headers. */
4607 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4608 #include <stdio.h>
4609 #include <string.h>
4610 #include <assert.h>
4611 #include <stdarg.h>
4612 #include <ctype.h>
4613      
4614 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4615 # ifndef __STRICT_ANSI__
4616 #  include <io.h>
4617 #  include <process.h>
4618 # endif
4619 #else
4620 # include <unistd.h>
4621 #endif
4622      
4623 #ifndef FLEXML_INDEXSTACKSIZE
4624 #define FLEXML_INDEXSTACKSIZE 1000
4625 #endif
4626
4627 /* Generated definitions. */
4628 #define FLEXML_yylineno
4629 #ifndef FLEXML_BUFFERSTACKSIZE
4630 #define FLEXML_BUFFERSTACKSIZE 1000000
4631 #endif
4632 #define FLEXML_NEED_BUFFERLIT
4633
4634 /* XML processor api. */
4635 /* FleXML-provided data. */
4636 int surfxml_pcdata_ix;
4637 extern char *surfxml_bufferstack;
4638 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4639 AT_surfxml_AS_id AX_surfxml_AS_id;
4640 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4641 short int surfxml_AS_id_isset;
4642 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4643 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4644 short int surfxml_AS_routing_isset;
4645 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4646 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4647 short int surfxml_ASroute_dst_isset;
4648 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4649 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4650 short int surfxml_ASroute_gw___dst_isset;
4651 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4652 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4653 short int surfxml_ASroute_gw___src_isset;
4654 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4655 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4656 short int surfxml_ASroute_src_isset;
4657 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4658 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4659 short int surfxml_ASroute_symmetrical_isset;
4660 AT_surfxml_argument_value AX_surfxml_argument_value;
4661 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4662 short int surfxml_argument_value_isset;
4663 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4664 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4665 short int surfxml_backbone_bandwidth_isset;
4666 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4667 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4668 short int surfxml_backbone_id_isset;
4669 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4670 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4671 short int surfxml_backbone_latency_isset;
4672 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4673 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4674 short int surfxml_bypassASroute_dst_isset;
4675 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4676 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4677 short int surfxml_bypassASroute_gw___dst_isset;
4678 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4679 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4680 short int surfxml_bypassASroute_gw___src_isset;
4681 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4682 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4683 short int surfxml_bypassASroute_src_isset;
4684 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4685 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4686 short int surfxml_bypassRoute_dst_isset;
4687 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4688 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4689 short int surfxml_bypassRoute_src_isset;
4690 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4691 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4692 short int surfxml_cabinet_bw_isset;
4693 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4694 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4695 short int surfxml_cabinet_id_isset;
4696 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4697 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4698 short int surfxml_cabinet_lat_isset;
4699 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4700 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4701 short int surfxml_cabinet_power_isset;
4702 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4703 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4704 short int surfxml_cabinet_prefix_isset;
4705 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4706 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4707 short int surfxml_cabinet_radical_isset;
4708 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4709 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4710 short int surfxml_cabinet_suffix_isset;
4711 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4712 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4713 short int surfxml_cluster_availability___file_isset;
4714 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4715 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4716 short int surfxml_cluster_bb___bw_isset;
4717 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4718 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4719 short int surfxml_cluster_bb___lat_isset;
4720 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4721 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4722 short int surfxml_cluster_bb___sharing___policy_isset;
4723 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4724 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4725 short int surfxml_cluster_bw_isset;
4726 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4727 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4728 short int surfxml_cluster_core_isset;
4729 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4730 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4731 short int surfxml_cluster_id_isset;
4732 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4733 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4734 short int surfxml_cluster_lat_isset;
4735 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4736 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4737 short int surfxml_cluster_limiter___link_isset;
4738 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4739 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4740 short int surfxml_cluster_loopback___bw_isset;
4741 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4742 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4743 short int surfxml_cluster_loopback___lat_isset;
4744 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4745 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4746 short int surfxml_cluster_power_isset;
4747 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4748 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4749 short int surfxml_cluster_prefix_isset;
4750 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4751 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4752 short int surfxml_cluster_radical_isset;
4753 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4754 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4755 short int surfxml_cluster_router___id_isset;
4756 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4757 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4758 short int surfxml_cluster_sharing___policy_isset;
4759 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4760 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4761 short int surfxml_cluster_state___file_isset;
4762 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4763 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4764 short int surfxml_cluster_suffix_isset;
4765 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4766 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4767 short int surfxml_cluster_topo___parameters_isset;
4768 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4769 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4770 short int surfxml_cluster_topology_isset;
4771 AT_surfxml_config_id AX_surfxml_config_id;
4772 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4773 short int surfxml_config_id_isset;
4774 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4775 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4776 short int surfxml_gpu_name_isset;
4777 AT_surfxml_host_availability AX_surfxml_host_availability;
4778 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4779 short int surfxml_host_availability_isset;
4780 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4781 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4782 short int surfxml_host_availability___file_isset;
4783 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4784 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4785 short int surfxml_host_coordinates_isset;
4786 AT_surfxml_host_core AX_surfxml_host_core;
4787 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4788 short int surfxml_host_core_isset;
4789 AT_surfxml_host_id AX_surfxml_host_id;
4790 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4791 short int surfxml_host_id_isset;
4792 AT_surfxml_host_power AX_surfxml_host_power;
4793 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4794 short int surfxml_host_power_isset;
4795 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4796 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4797 short int surfxml_host_pstate_isset;
4798 AT_surfxml_host_state AX_surfxml_host_state;
4799 #define A_surfxml_host_state AX_surfxml_host_state
4800 short int surfxml_host_state_isset;
4801 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4802 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4803 short int surfxml_host_state___file_isset;
4804 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4805 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4806 short int surfxml_host___link_down_isset;
4807 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4808 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4809 short int surfxml_host___link_id_isset;
4810 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4811 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4812 short int surfxml_host___link_up_isset;
4813 AT_surfxml_include_file AX_surfxml_include_file;
4814 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4815 short int surfxml_include_file_isset;
4816 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4817 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4818 short int surfxml_link_bandwidth_isset;
4819 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4820 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4821 short int surfxml_link_bandwidth___file_isset;
4822 AT_surfxml_link_id AX_surfxml_link_id;
4823 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4824 short int surfxml_link_id_isset;
4825 AT_surfxml_link_latency AX_surfxml_link_latency;
4826 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4827 short int surfxml_link_latency_isset;
4828 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4829 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4830 short int surfxml_link_latency___file_isset;
4831 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4832 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4833 short int surfxml_link_sharing___policy_isset;
4834 AT_surfxml_link_state AX_surfxml_link_state;
4835 #define A_surfxml_link_state AX_surfxml_link_state
4836 short int surfxml_link_state_isset;
4837 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4838 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4839 short int surfxml_link_state___file_isset;
4840 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4841 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4842 short int surfxml_link___ctn_direction_isset;
4843 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4844 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4845 short int surfxml_link___ctn_id_isset;
4846 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4847 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4848 short int surfxml_model___prop_id_isset;
4849 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4850 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4851 short int surfxml_model___prop_value_isset;
4852 AT_surfxml_mount_name AX_surfxml_mount_name;
4853 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4854 short int surfxml_mount_name_isset;
4855 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4856 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4857 short int surfxml_mount_storageId_isset;
4858 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4859 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4860 short int surfxml_mstorage_name_isset;
4861 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4862 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4863 short int surfxml_mstorage_typeId_isset;
4864 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4865 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4866 short int surfxml_peer_availability___file_isset;
4867 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4868 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4869 short int surfxml_peer_bw___in_isset;
4870 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4871 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4872 short int surfxml_peer_bw___out_isset;
4873 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4874 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4875 short int surfxml_peer_coordinates_isset;
4876 AT_surfxml_peer_id AX_surfxml_peer_id;
4877 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4878 short int surfxml_peer_id_isset;
4879 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4880 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4881 short int surfxml_peer_lat_isset;
4882 AT_surfxml_peer_power AX_surfxml_peer_power;
4883 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4884 short int surfxml_peer_power_isset;
4885 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4886 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4887 short int surfxml_peer_state___file_isset;
4888 AT_surfxml_platform_version AX_surfxml_platform_version;
4889 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4890 short int surfxml_platform_version_isset;
4891 AT_surfxml_process_function AX_surfxml_process_function;
4892 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4893 short int surfxml_process_function_isset;
4894 AT_surfxml_process_host AX_surfxml_process_host;
4895 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4896 short int surfxml_process_host_isset;
4897 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4898 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4899 short int surfxml_process_kill___time_isset;
4900 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4901 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4902 short int surfxml_process_on___failure_isset;
4903 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4904 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4905 short int surfxml_process_start___time_isset;
4906 AT_surfxml_prop_id AX_surfxml_prop_id;
4907 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4908 short int surfxml_prop_id_isset;
4909 AT_surfxml_prop_value AX_surfxml_prop_value;
4910 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4911 short int surfxml_prop_value_isset;
4912 AT_surfxml_random_generator AX_surfxml_random_generator;
4913 #define A_surfxml_random_generator AX_surfxml_random_generator
4914 short int surfxml_random_generator_isset;
4915 AT_surfxml_random_id AX_surfxml_random_id;
4916 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4917 short int surfxml_random_id_isset;
4918 AT_surfxml_random_max AX_surfxml_random_max;
4919 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4920 short int surfxml_random_max_isset;
4921 AT_surfxml_random_mean AX_surfxml_random_mean;
4922 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4923 short int surfxml_random_mean_isset;
4924 AT_surfxml_random_min AX_surfxml_random_min;
4925 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4926 short int surfxml_random_min_isset;
4927 AT_surfxml_random_radical AX_surfxml_random_radical;
4928 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4929 short int surfxml_random_radical_isset;
4930 AT_surfxml_random_seed AX_surfxml_random_seed;
4931 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4932 short int surfxml_random_seed_isset;
4933 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4934 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4935 short int surfxml_random_std___deviation_isset;
4936 AT_surfxml_route_dst AX_surfxml_route_dst;
4937 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4938 short int surfxml_route_dst_isset;
4939 AT_surfxml_route_src AX_surfxml_route_src;
4940 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4941 short int surfxml_route_src_isset;
4942 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4943 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4944 short int surfxml_route_symmetrical_isset;
4945 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4946 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4947 short int surfxml_router_coordinates_isset;
4948 AT_surfxml_router_id AX_surfxml_router_id;
4949 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4950 short int surfxml_router_id_isset;
4951 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4952 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4953 short int surfxml_storage_attach_isset;
4954 AT_surfxml_storage_content AX_surfxml_storage_content;
4955 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4956 short int surfxml_storage_content_isset;
4957 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4958 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4959 short int surfxml_storage_content___type_isset;
4960 AT_surfxml_storage_id AX_surfxml_storage_id;
4961 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4962 short int surfxml_storage_id_isset;
4963 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4964 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4965 short int surfxml_storage_typeId_isset;
4966 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4967 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4968 short int surfxml_storage___type_content_isset;
4969 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4970 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4971 short int surfxml_storage___type_content___type_isset;
4972 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4973 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4974 short int surfxml_storage___type_id_isset;
4975 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4976 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4977 short int surfxml_storage___type_model_isset;
4978 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4979 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4980 short int surfxml_storage___type_size_isset;
4981 AT_surfxml_trace_file AX_surfxml_trace_file;
4982 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4983 short int surfxml_trace_file_isset;
4984 AT_surfxml_trace_id AX_surfxml_trace_id;
4985 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4986 short int surfxml_trace_id_isset;
4987 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4988 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4989 short int surfxml_trace_periodicity_isset;
4990 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4991 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4992 short int surfxml_trace___connect_element_isset;
4993 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4994 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4995 short int surfxml_trace___connect_kind_isset;
4996 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4997 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4998 short int surfxml_trace___connect_trace_isset;
4999
5000 /* XML state. */
5001 #ifdef FLEX_DEBUG
5002 # define ENTER(state)   debug_enter(state,#state)
5003 # define LEAVE          debug_leave()
5004 # define SET(state)     debug_set(state,#state)
5005   static void debug_enter(int, const char*);
5006   static void debug_leave(void);
5007   static void debug_set(int, const char*);
5008 #else
5009 # define ENTER(state)   (yy_push_state(state))
5010 # define LEAVE          (yy_pop_state())
5011 # define SET(state)     BEGIN(state)
5012 #endif
5013
5014 /* Generic actions. */
5015 #define SKIP    /*skip*/
5016 #define SUCCEED        CLEANUP; return 0
5017
5018 #define FAIL    return fail
5019 static int fail(const char*, ...);
5020
5021 enum {flexml_max_err_msg_size = 512};
5022 static char flexml_err_msg[flexml_max_err_msg_size];
5023 const char * surfxml_parse_err_msg()
5024 {
5025     return flexml_err_msg;
5026 }
5027 static void reset_surfxml_parse_err_msg()
5028 {
5029     flexml_err_msg[0] = '\0';
5030 }
5031
5032 /* Cleanup */
5033 static void cleanup(void);
5034 #define CLEANUP  cleanup()
5035
5036 /* Text buffer stack handling. */
5037 char *surfxml_bufferstack = NULL;
5038 static int blimit = FLEXML_BUFFERSTACKSIZE;
5039 static int bnext = 1;
5040
5041 static int *indexstack = NULL;
5042 static int ilimit = FLEXML_INDEXSTACKSIZE;
5043 static int inext = 1;
5044
5045 #define BUFFERSET(P)  (P = bnext)
5046 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5047 #define BUFFERDONE    (BUFFERPUTC('\0'))
5048
5049 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5050
5051 /* after this is called, there are at least 2 slots left in the stack */
5052 static int ck_blimit()
5053 {
5054      if (bnext >= blimit) {
5055          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5056          {
5057              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5058              assert(temp);
5059              surfxml_bufferstack = temp;
5060          }
5061      }
5062      return 0;
5063 }
5064
5065 /* after this is called, there are at least 2 slots left in the stack */
5066 static int ck_ilimit()
5067 {
5068      if (inext >= ilimit) {
5069          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5070          {
5071              int *temp = (int *) realloc(indexstack, ilimit);
5072              assert(temp);
5073              indexstack = temp;
5074          }
5075      }
5076      return 0;
5077 }
5078
5079 #ifdef FLEXML_NEED_BUFFERLIT
5080 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5081 {
5082    BUFFERSET(*pp);
5083    if (c) {
5084       const char *s = strchr(text, c), *e = strrchr(text, c);
5085       assert(s && e && s <= e);
5086       ++s;
5087       while (s < e) {
5088          if (isspace(*s)) {
5089             BUFFERPUTC(' ');
5090             do ++s; while (s < e && isspace(*s));
5091          } else
5092            BUFFERPUTC(*s++);
5093       }
5094    } else {
5095       const char *s = text;
5096       while (*s)
5097         BUFFERPUTC(*s++);
5098    }
5099    BUFFERDONE;
5100 }
5101 #endif
5102
5103 static void pushbuffer(int p)
5104 {
5105     ck_ilimit();
5106     indexstack[inext++] = p;
5107     indexstack[inext++] = bnext;    
5108 }
5109
5110 static int popbuffer(void)
5111 {
5112     assert(inext >= 2);
5113     bnext = indexstack[--inext];
5114     return indexstack[--inext];
5115 }
5116
5117 /* General internal entities are `unput' back onto the input stream... */
5118 #define ENTITYTEXT(T) \
5119   { char *s = (T), *e = s+strlen(s);\
5120     while (--e >= s) { unput(*e); }}
5121
5122 /* Flex standard options. */
5123 #define YY_NO_INPUT 1
5124 /* Flex user-requested options. */
5125 /* XML character classes (currently restricted to ASCII). */
5126 /* "Common syntactic structures." */
5127 /* "Names and Tokens." */
5128 /* Miscellaneous. */
5129 /* Parser states (flex `exclusive start conditions'):
5130  *
5131  * PROLOG       the XML prolog of the document before <?xml...>
5132  * DOCTYPE      the XML prolog of the document after <?xml...>
5133  * EPILOG       after the root element
5134  * INCOMMENT    inside an XML comment <!--....-->
5135  * INPI         inside an XML PI <?...?>
5136  * VALUE1       inside a '...'-delimited literal
5137  * VALUE2       inside a "..."-delimited literal
5138  * CDATA        inside a <![CDATA[...] ]> section.
5139  * ROOT_<tag>   expect root element <tag>
5140  * AL_<tag>     inside the attribute list for <tag>
5141  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5142  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5143  */
5144
5145 /* State names. */
5146 const char* *surfxml_statenames=NULL;
5147
5148 #define INITIAL 0
5149 #define PROLOG 1
5150 #define DOCTYPE 2
5151 #define EPILOG 3
5152 #define INCOMMENT 4
5153 #define INPI 5
5154 #define VALUE1 6
5155 #define VALUE2 7
5156 #define CDATA 8
5157 #define AL_surfxml_AS 9
5158 #define S_surfxml_AS 10
5159 #define S_surfxml_AS_1 11
5160 #define S_surfxml_AS_2 12
5161 #define S_surfxml_AS_3 13
5162 #define S_surfxml_AS_4 14
5163 #define S_surfxml_AS_5 15
5164 #define S_surfxml_AS_6 16
5165 #define S_surfxml_AS_7 17
5166 #define S_surfxml_AS_8 18
5167 #define E_surfxml_AS 19
5168 #define AL_surfxml_ASroute 20
5169 #define S_surfxml_ASroute 21
5170 #define S_surfxml_ASroute_1 22
5171 #define S_surfxml_ASroute_2 23
5172 #define E_surfxml_ASroute 24
5173 #define AL_surfxml_argument 25
5174 #define E_surfxml_argument 26
5175 #define AL_surfxml_backbone 27
5176 #define E_surfxml_backbone 28
5177 #define AL_surfxml_bypassASroute 29
5178 #define S_surfxml_bypassASroute 30
5179 #define S_surfxml_bypassASroute_1 31
5180 #define S_surfxml_bypassASroute_2 32
5181 #define E_surfxml_bypassASroute 33
5182 #define AL_surfxml_bypassRoute 34
5183 #define S_surfxml_bypassRoute 35
5184 #define S_surfxml_bypassRoute_1 36
5185 #define S_surfxml_bypassRoute_2 37
5186 #define E_surfxml_bypassRoute 38
5187 #define AL_surfxml_cabinet 39
5188 #define E_surfxml_cabinet 40
5189 #define AL_surfxml_cluster 41
5190 #define S_surfxml_cluster 42
5191 #define S_surfxml_cluster_1 43
5192 #define S_surfxml_cluster_2 44
5193 #define E_surfxml_cluster 45
5194 #define AL_surfxml_config 46
5195 #define S_surfxml_config 47
5196 #define S_surfxml_config_1 48
5197 #define S_surfxml_config_2 49
5198 #define E_surfxml_config 50
5199 #define AL_surfxml_gpu 51
5200 #define E_surfxml_gpu 52
5201 #define AL_surfxml_host 53
5202 #define S_surfxml_host 54
5203 #define S_surfxml_host_1 55
5204 #define S_surfxml_host_2 56
5205 #define E_surfxml_host 57
5206 #define AL_surfxml_host___link 58
5207 #define E_surfxml_host___link 59
5208 #define AL_surfxml_include 60
5209 #define S_surfxml_include 61
5210 #define S_surfxml_include_1 62
5211 #define S_surfxml_include_2 63
5212 #define E_surfxml_include 64
5213 #define AL_surfxml_link 65
5214 #define S_surfxml_link 66
5215 #define S_surfxml_link_1 67
5216 #define S_surfxml_link_2 68
5217 #define E_surfxml_link 69
5218 #define AL_surfxml_link___ctn 70
5219 #define E_surfxml_link___ctn 71
5220 #define AL_surfxml_model___prop 72
5221 #define E_surfxml_model___prop 73
5222 #define AL_surfxml_mount 74
5223 #define E_surfxml_mount 75
5224 #define AL_surfxml_mstorage 76
5225 #define E_surfxml_mstorage 77
5226 #define AL_surfxml_peer 78
5227 #define E_surfxml_peer 79
5228 #define ROOT_surfxml_platform 80
5229 #define AL_surfxml_platform 81
5230 #define S_surfxml_platform 82
5231 #define S_surfxml_platform_1 83
5232 #define S_surfxml_platform_2 84
5233 #define S_surfxml_platform_3 85
5234 #define S_surfxml_platform_4 86
5235 #define S_surfxml_platform_5 87
5236 #define S_surfxml_platform_6 88
5237 #define S_surfxml_platform_7 89
5238 #define S_surfxml_platform_8 90
5239 #define E_surfxml_platform 91
5240 #define AL_surfxml_process 92
5241 #define S_surfxml_process 93
5242 #define S_surfxml_process_1 94
5243 #define S_surfxml_process_2 95
5244 #define E_surfxml_process 96
5245 #define AL_surfxml_prop 97
5246 #define E_surfxml_prop 98
5247 #define AL_surfxml_random 99
5248 #define E_surfxml_random 100
5249 #define AL_surfxml_route 101
5250 #define S_surfxml_route 102
5251 #define S_surfxml_route_1 103
5252 #define S_surfxml_route_2 104
5253 #define E_surfxml_route 105
5254 #define AL_surfxml_router 106
5255 #define E_surfxml_router 107
5256 #define AL_surfxml_storage 108
5257 #define S_surfxml_storage 109
5258 #define S_surfxml_storage_1 110
5259 #define S_surfxml_storage_2 111
5260 #define E_surfxml_storage 112
5261 #define AL_surfxml_storage___type 113
5262 #define S_surfxml_storage___type 114
5263 #define S_surfxml_storage___type_1 115
5264 #define S_surfxml_storage___type_2 116
5265 #define E_surfxml_storage___type 117
5266 #define AL_surfxml_trace 118
5267 #define IN_trace 119
5268 #define AL_surfxml_trace___connect 120
5269 #define E_surfxml_trace___connect 121
5270 #define IMPOSSIBLE 122
5271
5272 #ifndef YY_NO_UNISTD_H
5273 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5274  * down here because we want the user's section 1 to have been scanned first.
5275  * The user has a chance to override it with an option.
5276  */
5277 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5278 #  ifndef __STRICT_ANSI__
5279 #    include <io.h>
5280 #    include <process.h>
5281 #  endif
5282 #else
5283 #  include <unistd.h>
5284 #endif
5285 #endif
5286
5287 #ifndef YY_EXTRA_TYPE
5288 #define YY_EXTRA_TYPE void *
5289 #endif
5290
5291 static int yy_init_globals (void );
5292
5293 /* Accessor methods to globals.
5294    These are made visible to non-reentrant scanners for convenience. */
5295
5296 int surf_parse_lex_destroy (void );
5297
5298 int surf_parse_get_debug (void );
5299
5300 void surf_parse_set_debug (int debug_flag  );
5301
5302 YY_EXTRA_TYPE surf_parse_get_extra (void );
5303
5304 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5305
5306 FILE *surf_parse_get_in (void );
5307
5308 void surf_parse_set_in  (FILE * in_str  );
5309
5310 FILE *surf_parse_get_out (void );
5311
5312 void surf_parse_set_out  (FILE * out_str  );
5313
5314 yy_size_t surf_parse_get_leng (void );
5315
5316 char *surf_parse_get_text (void );
5317
5318 int surf_parse_get_lineno (void );
5319
5320 void surf_parse_set_lineno (int line_number  );
5321
5322 /* Macros after this point can all be overridden by user definitions in
5323  * section 1.
5324  */
5325
5326 #ifndef YY_SKIP_YYWRAP
5327 #ifdef __cplusplus
5328 extern "C" int surf_parse_wrap (void );
5329 #else
5330 extern int surf_parse_wrap (void );
5331 #endif
5332 #endif
5333
5334 #ifndef yytext_ptr
5335 static void yy_flex_strncpy (char *,yyconst char *,int );
5336 #endif
5337
5338 #ifdef YY_NEED_STRLEN
5339 static int yy_flex_strlen (yyconst char * );
5340 #endif
5341
5342 #ifndef YY_NO_INPUT
5343
5344 #ifdef __cplusplus
5345 static int yyinput (void );
5346 #else
5347 static int input (void );
5348 #endif
5349
5350 #endif
5351
5352         static int yy_start_stack_ptr = 0;
5353         static int yy_start_stack_depth = 0;
5354         static int *yy_start_stack = NULL;
5355     
5356     static void yy_push_state (int new_state );
5357     
5358     static void yy_pop_state (void );
5359     
5360 /* Amount of stuff to slurp up with each read. */
5361 #ifndef YY_READ_BUF_SIZE
5362 #ifdef __ia64__
5363 /* On IA-64, the buffer size is 16k, not 8k */
5364 #define YY_READ_BUF_SIZE 16384
5365 #else
5366 #define YY_READ_BUF_SIZE 8192
5367 #endif /* __ia64__ */
5368 #endif
5369
5370 /* Copy whatever the last rule matched to the standard output. */
5371 #ifndef ECHO
5372 /* This used to be an fputs(), but since the string might contain NUL's,
5373  * we now use fwrite().
5374  */
5375 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5376 #endif
5377
5378 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5379  * is returned in "result".
5380  */
5381 #ifndef YY_INPUT
5382 #define YY_INPUT(buf,result,max_size) \
5383         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5384                 { \
5385                 int c = '*'; \
5386                 size_t n; \
5387                 for ( n = 0; n < max_size && \
5388                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5389                         buf[n] = (char) c; \
5390                 if ( c == '\n' ) \
5391                         buf[n++] = (char) c; \
5392                 if ( c == EOF && ferror( surf_parse_in ) ) \
5393                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5394                 result = n; \
5395                 } \
5396         else \
5397                 { \
5398                 errno=0; \
5399                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5400                         { \
5401                         if( errno != EINTR) \
5402                                 { \
5403                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5404                                 break; \
5405                                 } \
5406                         errno=0; \
5407                         clearerr(surf_parse_in); \
5408                         } \
5409                 }\
5410 \
5411
5412 #endif
5413
5414 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5415  * we don't want an extra ';' after the "return" because that will cause
5416  * some compilers to complain about unreachable statements.
5417  */
5418 #ifndef yyterminate
5419 #define yyterminate() return YY_NULL
5420 #endif
5421
5422 /* Number of entries by which start-condition stack grows. */
5423 #ifndef YY_START_STACK_INCR
5424 #define YY_START_STACK_INCR 25
5425 #endif
5426
5427 /* Report a fatal error. */
5428 #ifndef YY_FATAL_ERROR
5429 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5430 #endif
5431
5432 /* end tables serialization structures and prototypes */
5433
5434 /* Default declaration of generated scanner - a define so the user can
5435  * easily add parameters.
5436  */
5437 #ifndef YY_DECL
5438 #define YY_DECL_IS_OURS 1
5439
5440 extern int surf_parse_lex (void);
5441
5442 #define YY_DECL int surf_parse_lex (void)
5443 #endif /* !YY_DECL */
5444
5445 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5446  * have been set up.
5447  */
5448 #ifndef YY_USER_ACTION
5449 #define YY_USER_ACTION
5450 #endif
5451
5452 /* Code executed at the end of each rule. */
5453 #ifndef YY_BREAK
5454 #define YY_BREAK break;
5455 #endif
5456
5457 #define YY_RULE_SETUP \
5458         YY_USER_ACTION
5459
5460 /** The main scanner function which does all the work.
5461  */
5462 YY_DECL
5463 {
5464         yy_state_type yy_current_state;
5465         char *yy_cp, *yy_bp;
5466         int yy_act;
5467     
5468         if ( !(yy_init) )
5469                 {
5470                 (yy_init) = 1;
5471
5472 #ifdef YY_USER_INIT
5473                 YY_USER_INIT;
5474 #endif
5475
5476                 if ( ! (yy_start) )
5477                         (yy_start) = 1; /* first start state */
5478
5479                 if ( ! surf_parse_in )
5480                         surf_parse_in = stdin;
5481
5482                 if ( ! surf_parse_out )
5483                         surf_parse_out = stdout;
5484
5485                 if ( ! YY_CURRENT_BUFFER ) {
5486                         surf_parse_ensure_buffer_stack ();
5487                         YY_CURRENT_BUFFER_LVALUE =
5488                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5489                 }
5490
5491                 surf_parse__load_buffer_state( );
5492                 }
5493
5494         {
5495
5496  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5497  SET(PROLOG);
5498  reset_surfxml_parse_err_msg();
5499  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5500  assert(surfxml_bufferstack);
5501  #ifdef FLEX_DEBUG
5502  {
5503      int i;
5504      for (i = 0; i < blimit; i++) {
5505          surfxml_bufferstack[i] = '\377';
5506      }
5507  }
5508  #endif
5509  surfxml_bufferstack[0] = '\0';
5510  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5511  assert(indexstack);
5512  indexstack[0] = 0;
5513
5514   /* FleXML_init */
5515   bnext = inext = 1;
5516   surfxml_bufferliteral('\0', &bnext, "0.0");
5517   surfxml_bufferliteral('\0', &bnext, "2147483647");
5518   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5519   surfxml_bufferliteral('\0', &bnext, "1");
5520   surfxml_bufferliteral('\0', &bnext, "1.0");
5521   surfxml_bufferliteral('\0', &bnext, "0.0");
5522   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5523   surfxml_bufferliteral('\0', &bnext, "1");
5524   surfxml_bufferliteral('\0', &bnext, "0.0");
5525   surfxml_bufferliteral('\0', &bnext, "-1.0");
5526   surfxml_bufferliteral('\0', &bnext, "-1.0");
5527   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5528   surfxml_statenames[PROLOG] = NULL;
5529   surfxml_statenames[DOCTYPE] = NULL;
5530   surfxml_statenames[EPILOG] = NULL;
5531   surfxml_statenames[INCOMMENT] = NULL;
5532   surfxml_statenames[INPI] = NULL;
5533   surfxml_statenames[VALUE1] = NULL;
5534   surfxml_statenames[VALUE2] = NULL;
5535   surfxml_statenames[CDATA] = NULL;
5536   surfxml_statenames[AL_surfxml_AS] = NULL;
5537   surfxml_statenames[S_surfxml_AS] = "AS";
5538   surfxml_statenames[S_surfxml_AS_1] = "AS";
5539   surfxml_statenames[S_surfxml_AS_2] = "AS";
5540   surfxml_statenames[S_surfxml_AS_3] = "AS";
5541   surfxml_statenames[S_surfxml_AS_4] = "AS";
5542   surfxml_statenames[S_surfxml_AS_5] = "AS";
5543   surfxml_statenames[S_surfxml_AS_6] = "AS";
5544   surfxml_statenames[S_surfxml_AS_7] = "AS";
5545   surfxml_statenames[S_surfxml_AS_8] = "AS";
5546   surfxml_statenames[E_surfxml_AS] = "AS";
5547   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5548   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5549   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5550   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5551   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5552   surfxml_statenames[AL_surfxml_argument] = NULL;
5553   surfxml_statenames[E_surfxml_argument] = "argument";
5554   surfxml_statenames[AL_surfxml_backbone] = NULL;
5555   surfxml_statenames[E_surfxml_backbone] = "backbone";
5556   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5557   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5558   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5559   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5560   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5561   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5562   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5563   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5564   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5565   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5566   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5567   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5568   surfxml_statenames[AL_surfxml_cluster] = NULL;
5569   surfxml_statenames[S_surfxml_cluster] = "cluster";
5570   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5571   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5572   surfxml_statenames[E_surfxml_cluster] = "cluster";
5573   surfxml_statenames[AL_surfxml_config] = NULL;
5574   surfxml_statenames[S_surfxml_config] = "config";
5575   surfxml_statenames[S_surfxml_config_1] = "config";
5576   surfxml_statenames[S_surfxml_config_2] = "config";
5577   surfxml_statenames[E_surfxml_config] = "config";
5578   surfxml_statenames[AL_surfxml_gpu] = NULL;
5579   surfxml_statenames[E_surfxml_gpu] = "gpu";
5580   surfxml_statenames[AL_surfxml_host] = NULL;
5581   surfxml_statenames[S_surfxml_host] = "host";
5582   surfxml_statenames[S_surfxml_host_1] = "host";
5583   surfxml_statenames[S_surfxml_host_2] = "host";
5584   surfxml_statenames[E_surfxml_host] = "host";
5585   surfxml_statenames[AL_surfxml_host___link] = NULL;
5586   surfxml_statenames[E_surfxml_host___link] = "host_link";
5587   surfxml_statenames[AL_surfxml_include] = NULL;
5588   surfxml_statenames[S_surfxml_include] = "include";
5589   surfxml_statenames[S_surfxml_include_1] = "include";
5590   surfxml_statenames[S_surfxml_include_2] = "include";
5591   surfxml_statenames[E_surfxml_include] = "include";
5592   surfxml_statenames[AL_surfxml_link] = NULL;
5593   surfxml_statenames[S_surfxml_link] = "link";
5594   surfxml_statenames[S_surfxml_link_1] = "link";
5595   surfxml_statenames[S_surfxml_link_2] = "link";
5596   surfxml_statenames[E_surfxml_link] = "link";
5597   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5598   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5599   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5600   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5601   surfxml_statenames[AL_surfxml_mount] = NULL;
5602   surfxml_statenames[E_surfxml_mount] = "mount";
5603   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5604   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5605   surfxml_statenames[AL_surfxml_peer] = NULL;
5606   surfxml_statenames[E_surfxml_peer] = "peer";
5607   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5608   surfxml_statenames[AL_surfxml_platform] = NULL;
5609   surfxml_statenames[S_surfxml_platform] = "platform";
5610   surfxml_statenames[S_surfxml_platform_1] = "platform";
5611   surfxml_statenames[S_surfxml_platform_2] = "platform";
5612   surfxml_statenames[S_surfxml_platform_3] = "platform";
5613   surfxml_statenames[S_surfxml_platform_4] = "platform";
5614   surfxml_statenames[S_surfxml_platform_5] = "platform";
5615   surfxml_statenames[S_surfxml_platform_6] = "platform";
5616   surfxml_statenames[S_surfxml_platform_7] = "platform";
5617   surfxml_statenames[S_surfxml_platform_8] = "platform";
5618   surfxml_statenames[E_surfxml_platform] = "platform";
5619   surfxml_statenames[AL_surfxml_process] = NULL;
5620   surfxml_statenames[S_surfxml_process] = "process";
5621   surfxml_statenames[S_surfxml_process_1] = "process";
5622   surfxml_statenames[S_surfxml_process_2] = "process";
5623   surfxml_statenames[E_surfxml_process] = "process";
5624   surfxml_statenames[AL_surfxml_prop] = NULL;
5625   surfxml_statenames[E_surfxml_prop] = "prop";
5626   surfxml_statenames[AL_surfxml_random] = NULL;
5627   surfxml_statenames[E_surfxml_random] = "random";
5628   surfxml_statenames[AL_surfxml_route] = NULL;
5629   surfxml_statenames[S_surfxml_route] = "route";
5630   surfxml_statenames[S_surfxml_route_1] = "route";
5631   surfxml_statenames[S_surfxml_route_2] = "route";
5632   surfxml_statenames[E_surfxml_route] = "route";
5633   surfxml_statenames[AL_surfxml_router] = NULL;
5634   surfxml_statenames[E_surfxml_router] = "router";
5635   surfxml_statenames[AL_surfxml_storage] = NULL;
5636   surfxml_statenames[S_surfxml_storage] = "storage";
5637   surfxml_statenames[S_surfxml_storage_1] = "storage";
5638   surfxml_statenames[S_surfxml_storage_2] = "storage";
5639   surfxml_statenames[E_surfxml_storage] = "storage";
5640   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5641   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5642   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5643   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5644   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5645   surfxml_statenames[AL_surfxml_trace] = NULL;
5646   surfxml_statenames[IN_trace] = "trace";
5647   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5648   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5649   }
5650
5651  /* COMMENTS and PIs: handled uniformly for efficiency. */
5652
5653         while ( 1 )             /* loops until end-of-file is reached */
5654                 {
5655                 yy_cp = (yy_c_buf_p);
5656
5657                 /* Support of surf_parse_text. */
5658                 *yy_cp = (yy_hold_char);
5659
5660                 /* yy_bp points to the position in yy_ch_buf of the start of
5661                  * the current run.
5662                  */
5663                 yy_bp = yy_cp;
5664
5665                 yy_current_state = (yy_start);
5666 yy_match:
5667                 do
5668                         {
5669                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5670                         if ( yy_accept[yy_current_state] )
5671                                 {
5672                                 (yy_last_accepting_state) = yy_current_state;
5673                                 (yy_last_accepting_cpos) = yy_cp;
5674                                 }
5675                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5676                                 {
5677                                 yy_current_state = (int) yy_def[yy_current_state];
5678                                 if ( yy_current_state >= 3466 )
5679                                         yy_c = yy_meta[(unsigned int) yy_c];
5680                                 }
5681                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5682                         ++yy_cp;
5683                         }
5684                 while ( yy_base[yy_current_state] != 12512 );
5685
5686 yy_find_action:
5687                 yy_act = yy_accept[yy_current_state];
5688                 if ( yy_act == 0 )
5689                         { /* have to back up */
5690                         yy_cp = (yy_last_accepting_cpos);
5691                         yy_current_state = (yy_last_accepting_state);
5692                         yy_act = yy_accept[yy_current_state];
5693                         }
5694
5695                 YY_DO_BEFORE_ACTION;
5696
5697                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5698                         {
5699                         yy_size_t yyl;
5700                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5701                                 if ( surf_parse_text[yyl] == '\n' )
5702                                            
5703     surf_parse_lineno++;
5704 ;
5705                         }
5706
5707 do_action:      /* This label is used only to access EOF actions. */
5708
5709                 switch ( yy_act )
5710         { /* beginning of action switch */
5711                         case 0: /* must back up */
5712                         /* undo the effects of YY_DO_BEFORE_ACTION */
5713                         *yy_cp = (yy_hold_char);
5714                         yy_cp = (yy_last_accepting_cpos);
5715                         yy_current_state = (yy_last_accepting_state);
5716                         goto yy_find_action;
5717
5718 case 1:
5719 YY_RULE_SETUP
5720 ENTER(INCOMMENT);
5721         YY_BREAK
5722 case 2:
5723 YY_RULE_SETUP
5724 ENTER(INPI);
5725         YY_BREAK
5726
5727 case 3:
5728 YY_RULE_SETUP
5729 LEAVE;
5730         YY_BREAK
5731 case 4:
5732 case 5:
5733 case 6:
5734 /* rule 6 can match eol */
5735 YY_RULE_SETUP
5736 SKIP;
5737         YY_BREAK
5738 case YY_STATE_EOF(INCOMMENT):
5739 FAIL("EOF in comment.");
5740         YY_BREAK
5741
5742 case 7:
5743 YY_RULE_SETUP
5744 LEAVE;
5745         YY_BREAK
5746 case 8:
5747 case 9:
5748 /* rule 9 can match eol */
5749 YY_RULE_SETUP
5750 SKIP;
5751         YY_BREAK
5752 case YY_STATE_EOF(INPI):
5753 FAIL("EOF in PI (processing instruction).");
5754         YY_BREAK
5755
5756 /* SPACES: skipped uniformly */
5757 case 10:
5758 /* rule 10 can match eol */
5759 YY_RULE_SETUP
5760 SKIP;
5761         YY_BREAK
5762 /* PROLOG: determine root element and process it. */
5763
5764 case 11:
5765 /* rule 11 can match eol */
5766 YY_RULE_SETUP
5767 SET(DOCTYPE); 
5768         YY_BREAK
5769 case 12:
5770 /* rule 12 can match eol */
5771 YY_RULE_SETUP
5772 FAIL("Bad declaration %s.",surf_parse_text);
5773         YY_BREAK
5774
5775 case 13:
5776 /* rule 13 can match eol */
5777 YY_RULE_SETUP
5778 SET(ROOT_surfxml_platform);
5779         YY_BREAK
5780 case 14:
5781 /* rule 14 can match eol */
5782 YY_RULE_SETUP
5783 FAIL("Bad declaration %s.",surf_parse_text);
5784         YY_BREAK
5785 case 15:
5786 YY_RULE_SETUP
5787 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5788         YY_BREAK
5789 case YY_STATE_EOF(PROLOG):
5790 case YY_STATE_EOF(DOCTYPE):
5791 FAIL("EOF in prolog.");
5792         YY_BREAK
5793
5794 /* RULES DERIVED FROM DTD. */
5795 case 16:
5796 /* rule 16 can match eol */
5797 YY_RULE_SETUP
5798 FAIL("Starting tag <AS> is not allowed here.");
5799         YY_BREAK
5800 case 17:
5801 /* rule 17 can match eol */
5802 YY_RULE_SETUP
5803 {
5804   AX_surfxml_AS_id = 0;
5805   surfxml_AS_id_isset = 0;
5806   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5807   surfxml_AS_routing_isset = 0;
5808   ENTER(AL_surfxml_AS); pushbuffer(0);
5809   }
5810         YY_BREAK
5811
5812 case 18:
5813 /* rule 18 can match eol */
5814 YY_RULE_SETUP
5815 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5816         YY_BREAK
5817 case 19:
5818 /* rule 19 can match eol */
5819 YY_RULE_SETUP
5820 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5821         YY_BREAK
5822 case 20:
5823 /* rule 20 can match eol */
5824 case 21:
5825 /* rule 21 can match eol */
5826 YY_RULE_SETUP
5827 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5828         YY_BREAK
5829 case 22:
5830 /* rule 22 can match eol */
5831 case 23:
5832 /* rule 23 can match eol */
5833 YY_RULE_SETUP
5834 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5835         YY_BREAK
5836 case 24:
5837 /* rule 24 can match eol */
5838 case 25:
5839 /* rule 25 can match eol */
5840 YY_RULE_SETUP
5841 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5842         YY_BREAK
5843 case 26:
5844 /* rule 26 can match eol */
5845 case 27:
5846 /* rule 27 can match eol */
5847 YY_RULE_SETUP
5848 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5849         YY_BREAK
5850 case 28:
5851 /* rule 28 can match eol */
5852 case 29:
5853 /* rule 29 can match eol */
5854 YY_RULE_SETUP
5855 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5856         YY_BREAK
5857 case 30:
5858 /* rule 30 can match eol */
5859 case 31:
5860 /* rule 31 can match eol */
5861 YY_RULE_SETUP
5862 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5863         YY_BREAK
5864 case 32:
5865 /* rule 32 can match eol */
5866 case 33:
5867 /* rule 33 can match eol */
5868 YY_RULE_SETUP
5869 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5870         YY_BREAK
5871 case 34:
5872 /* rule 34 can match eol */
5873 case 35:
5874 /* rule 35 can match eol */
5875 YY_RULE_SETUP
5876 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
5877         YY_BREAK
5878 case 36:
5879 /* rule 36 can match eol */
5880 case 37:
5881 /* rule 37 can match eol */
5882 YY_RULE_SETUP
5883 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___fat___tree;
5884         YY_BREAK
5885 case 38:
5886 YY_RULE_SETUP
5887 {
5888   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5889   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5890   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5891  }
5892         YY_BREAK
5893 case 39:
5894 YY_RULE_SETUP
5895 {
5896   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5897   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5898   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5899   switch (YY_START) {
5900    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5901    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5902    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5903   }
5904  }
5905         YY_BREAK
5906 case 40:
5907 YY_RULE_SETUP
5908 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5909         YY_BREAK
5910 case 41:
5911 YY_RULE_SETUP
5912 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5913         YY_BREAK
5914 case YY_STATE_EOF(AL_surfxml_AS):
5915 FAIL("EOF in attribute list of `AS' element.");
5916         YY_BREAK
5917
5918 case 42:
5919 /* rule 42 can match eol */
5920 YY_RULE_SETUP
5921 {
5922   LEAVE;
5923   ETag_surfxml_AS();
5924   popbuffer(); /* attribute */
5925   switch (YY_START) {
5926    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5927    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5928    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5929   }
5930  }
5931         YY_BREAK
5932 case 43:
5933 /* rule 43 can match eol */
5934 YY_RULE_SETUP
5935 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5936         YY_BREAK
5937 case 44:
5938 YY_RULE_SETUP
5939 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5940         YY_BREAK
5941 case YY_STATE_EOF(E_surfxml_AS):
5942 case YY_STATE_EOF(S_surfxml_AS):
5943 case YY_STATE_EOF(S_surfxml_AS_1):
5944 case YY_STATE_EOF(S_surfxml_AS_3):
5945 case YY_STATE_EOF(S_surfxml_AS_4):
5946 case YY_STATE_EOF(S_surfxml_AS_6):
5947 case YY_STATE_EOF(S_surfxml_AS_8):
5948 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5949         YY_BREAK
5950
5951 case 45:
5952 /* rule 45 can match eol */
5953 YY_RULE_SETUP
5954 FAIL("Starting tag <ASroute> is not allowed here.");
5955         YY_BREAK
5956 case 46:
5957 /* rule 46 can match eol */
5958 YY_RULE_SETUP
5959 {
5960   AX_surfxml_ASroute_dst = 0;
5961   surfxml_ASroute_dst_isset = 0;
5962   AX_surfxml_ASroute_gw___dst = 0;
5963   surfxml_ASroute_gw___dst_isset = 0;
5964   AX_surfxml_ASroute_gw___src = 0;
5965   surfxml_ASroute_gw___src_isset = 0;
5966   AX_surfxml_ASroute_src = 0;
5967   surfxml_ASroute_src_isset = 0;
5968   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5969   surfxml_ASroute_symmetrical_isset = 0;
5970   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5971   }
5972         YY_BREAK
5973
5974 case 47:
5975 /* rule 47 can match eol */
5976 YY_RULE_SETUP
5977 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
5978         YY_BREAK
5979 case 48:
5980 /* rule 48 can match eol */
5981 YY_RULE_SETUP
5982 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
5983         YY_BREAK
5984 case 49:
5985 /* rule 49 can match eol */
5986 YY_RULE_SETUP
5987 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
5988         YY_BREAK
5989 case 50:
5990 /* rule 50 can match eol */
5991 YY_RULE_SETUP
5992 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
5993         YY_BREAK
5994 case 51:
5995 /* rule 51 can match eol */
5996 YY_RULE_SETUP
5997 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
5998         YY_BREAK
5999 case 52:
6000 /* rule 52 can match eol */
6001 YY_RULE_SETUP
6002 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
6003         YY_BREAK
6004 case 53:
6005 /* rule 53 can match eol */
6006 YY_RULE_SETUP
6007 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
6008         YY_BREAK
6009 case 54:
6010 /* rule 54 can match eol */
6011 YY_RULE_SETUP
6012 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
6013         YY_BREAK
6014 case 55:
6015 /* rule 55 can match eol */
6016 case 56:
6017 /* rule 56 can match eol */
6018 YY_RULE_SETUP
6019 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6020         YY_BREAK
6021 case 57:
6022 /* rule 57 can match eol */
6023 case 58:
6024 /* rule 58 can match eol */
6025 YY_RULE_SETUP
6026 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6027         YY_BREAK
6028 case 59:
6029 YY_RULE_SETUP
6030 {
6031   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6032   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6033   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6034   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6035   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6036  }
6037         YY_BREAK
6038 case 60:
6039 YY_RULE_SETUP
6040 {
6041   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6042   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6043   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6044   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6045   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6046   switch (YY_START) {
6047    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6048    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6049   }
6050  }
6051         YY_BREAK
6052 case 61:
6053 YY_RULE_SETUP
6054 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6055         YY_BREAK
6056 case 62:
6057 YY_RULE_SETUP
6058 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6059         YY_BREAK
6060 case YY_STATE_EOF(AL_surfxml_ASroute):
6061 FAIL("EOF in attribute list of `ASroute' element.");
6062         YY_BREAK
6063
6064 case 63:
6065 /* rule 63 can match eol */
6066 YY_RULE_SETUP
6067 {
6068   LEAVE;
6069   ETag_surfxml_ASroute();
6070   popbuffer(); /* attribute */
6071   switch (YY_START) {
6072    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6073    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6074   }
6075  }
6076         YY_BREAK
6077 case 64:
6078 /* rule 64 can match eol */
6079 YY_RULE_SETUP
6080 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6081         YY_BREAK
6082 case 65:
6083 YY_RULE_SETUP
6084 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6085         YY_BREAK
6086 case YY_STATE_EOF(E_surfxml_ASroute):
6087 case YY_STATE_EOF(S_surfxml_ASroute):
6088 case YY_STATE_EOF(S_surfxml_ASroute_2):
6089 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6090         YY_BREAK
6091
6092 case 66:
6093 /* rule 66 can match eol */
6094 YY_RULE_SETUP
6095 FAIL("Starting tag <argument> is not allowed here.");
6096         YY_BREAK
6097 case 67:
6098 /* rule 67 can match eol */
6099 YY_RULE_SETUP
6100 {
6101   AX_surfxml_argument_value = 0;
6102   surfxml_argument_value_isset = 0;
6103   ENTER(AL_surfxml_argument); pushbuffer(0);
6104   }
6105         YY_BREAK
6106
6107 case 68:
6108 /* rule 68 can match eol */
6109 YY_RULE_SETUP
6110 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
6111         YY_BREAK
6112 case 69:
6113 /* rule 69 can match eol */
6114 YY_RULE_SETUP
6115 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
6116         YY_BREAK
6117 case 70:
6118 YY_RULE_SETUP
6119 {
6120   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6121   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6122  }
6123         YY_BREAK
6124 case 71:
6125 YY_RULE_SETUP
6126 {
6127   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6128   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6129   switch (YY_START) {
6130    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6131   }
6132  }
6133         YY_BREAK
6134 case 72:
6135 YY_RULE_SETUP
6136 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6137         YY_BREAK
6138 case 73:
6139 YY_RULE_SETUP
6140 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6141         YY_BREAK
6142 case YY_STATE_EOF(AL_surfxml_argument):
6143 FAIL("EOF in attribute list of `argument' element.");
6144         YY_BREAK
6145
6146 case 74:
6147 /* rule 74 can match eol */
6148 YY_RULE_SETUP
6149 {
6150   LEAVE;
6151   ETag_surfxml_argument();
6152   popbuffer(); /* attribute */
6153   switch (YY_START) {
6154    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6155   }
6156  }
6157         YY_BREAK
6158 case 75:
6159 /* rule 75 can match eol */
6160 YY_RULE_SETUP
6161 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6162         YY_BREAK
6163 case 76:
6164 YY_RULE_SETUP
6165 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6166         YY_BREAK
6167 case YY_STATE_EOF(E_surfxml_argument):
6168 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6169         YY_BREAK
6170
6171 case 77:
6172 /* rule 77 can match eol */
6173 YY_RULE_SETUP
6174 FAIL("Starting tag <backbone> is not allowed here.");
6175         YY_BREAK
6176 case 78:
6177 /* rule 78 can match eol */
6178 YY_RULE_SETUP
6179 {
6180   AX_surfxml_backbone_bandwidth = 0;
6181   surfxml_backbone_bandwidth_isset = 0;
6182   AX_surfxml_backbone_id = 0;
6183   surfxml_backbone_id_isset = 0;
6184   AX_surfxml_backbone_latency = 0;
6185   surfxml_backbone_latency_isset = 0;
6186   ENTER(AL_surfxml_backbone); pushbuffer(0);
6187   }
6188         YY_BREAK
6189
6190 case 79:
6191 /* rule 79 can match eol */
6192 YY_RULE_SETUP
6193 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
6194         YY_BREAK
6195 case 80:
6196 /* rule 80 can match eol */
6197 YY_RULE_SETUP
6198 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
6199         YY_BREAK
6200 case 81:
6201 /* rule 81 can match eol */
6202 YY_RULE_SETUP
6203 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
6204         YY_BREAK
6205 case 82:
6206 /* rule 82 can match eol */
6207 YY_RULE_SETUP
6208 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
6209         YY_BREAK
6210 case 83:
6211 /* rule 83 can match eol */
6212 YY_RULE_SETUP
6213 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
6214         YY_BREAK
6215 case 84:
6216 /* rule 84 can match eol */
6217 YY_RULE_SETUP
6218 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
6219         YY_BREAK
6220 case 85:
6221 YY_RULE_SETUP
6222 {
6223   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6224   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6225   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6226   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6227  }
6228         YY_BREAK
6229 case 86:
6230 YY_RULE_SETUP
6231 {
6232   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6233   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6234   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6235   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6236   switch (YY_START) {
6237    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6238   }
6239  }
6240         YY_BREAK
6241 case 87:
6242 YY_RULE_SETUP
6243 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6244         YY_BREAK
6245 case 88:
6246 YY_RULE_SETUP
6247 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6248         YY_BREAK
6249 case YY_STATE_EOF(AL_surfxml_backbone):
6250 FAIL("EOF in attribute list of `backbone' element.");
6251         YY_BREAK
6252
6253 case 89:
6254 /* rule 89 can match eol */
6255 YY_RULE_SETUP
6256 {
6257   LEAVE;
6258   ETag_surfxml_backbone();
6259   popbuffer(); /* attribute */
6260   switch (YY_START) {
6261    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6262   }
6263  }
6264         YY_BREAK
6265 case 90:
6266 /* rule 90 can match eol */
6267 YY_RULE_SETUP
6268 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6269         YY_BREAK
6270 case 91:
6271 YY_RULE_SETUP
6272 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6273         YY_BREAK
6274 case YY_STATE_EOF(E_surfxml_backbone):
6275 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6276         YY_BREAK
6277
6278 case 92:
6279 /* rule 92 can match eol */
6280 YY_RULE_SETUP
6281 FAIL("Starting tag <bypassASroute> is not allowed here.");
6282         YY_BREAK
6283 case 93:
6284 /* rule 93 can match eol */
6285 YY_RULE_SETUP
6286 {
6287   AX_surfxml_bypassASroute_dst = 0;
6288   surfxml_bypassASroute_dst_isset = 0;
6289   AX_surfxml_bypassASroute_gw___dst = 0;
6290   surfxml_bypassASroute_gw___dst_isset = 0;
6291   AX_surfxml_bypassASroute_gw___src = 0;
6292   surfxml_bypassASroute_gw___src_isset = 0;
6293   AX_surfxml_bypassASroute_src = 0;
6294   surfxml_bypassASroute_src_isset = 0;
6295   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6296   }
6297         YY_BREAK
6298
6299 case 94:
6300 /* rule 94 can match eol */
6301 YY_RULE_SETUP
6302 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
6303         YY_BREAK
6304 case 95:
6305 /* rule 95 can match eol */
6306 YY_RULE_SETUP
6307 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
6308         YY_BREAK
6309 case 96:
6310 /* rule 96 can match eol */
6311 YY_RULE_SETUP
6312 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
6313         YY_BREAK
6314 case 97:
6315 /* rule 97 can match eol */
6316 YY_RULE_SETUP
6317 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
6318         YY_BREAK
6319 case 98:
6320 /* rule 98 can match eol */
6321 YY_RULE_SETUP
6322 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
6323         YY_BREAK
6324 case 99:
6325 /* rule 99 can match eol */
6326 YY_RULE_SETUP
6327 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
6328         YY_BREAK
6329 case 100:
6330 /* rule 100 can match eol */
6331 YY_RULE_SETUP
6332 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
6333         YY_BREAK
6334 case 101:
6335 /* rule 101 can match eol */
6336 YY_RULE_SETUP
6337 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
6338         YY_BREAK
6339 case 102:
6340 YY_RULE_SETUP
6341 {
6342   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6343   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6344   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6345   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6346   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6347  }
6348         YY_BREAK
6349 case 103:
6350 YY_RULE_SETUP
6351 {
6352   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6353   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6354   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6355   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6356   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6357   switch (YY_START) {
6358    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6359   }
6360  }
6361         YY_BREAK
6362 case 104:
6363 YY_RULE_SETUP
6364 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6365         YY_BREAK
6366 case 105:
6367 YY_RULE_SETUP
6368 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6369         YY_BREAK
6370 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6371 FAIL("EOF in attribute list of `bypassASroute' element.");
6372         YY_BREAK
6373
6374 case 106:
6375 /* rule 106 can match eol */
6376 YY_RULE_SETUP
6377 {
6378   LEAVE;
6379   ETag_surfxml_bypassASroute();
6380   popbuffer(); /* attribute */
6381   switch (YY_START) {
6382    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6383   }
6384  }
6385         YY_BREAK
6386 case 107:
6387 /* rule 107 can match eol */
6388 YY_RULE_SETUP
6389 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6390         YY_BREAK
6391 case 108:
6392 YY_RULE_SETUP
6393 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6394         YY_BREAK
6395 case YY_STATE_EOF(E_surfxml_bypassASroute):
6396 case YY_STATE_EOF(S_surfxml_bypassASroute):
6397 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6398 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6399         YY_BREAK
6400
6401 case 109:
6402 /* rule 109 can match eol */
6403 YY_RULE_SETUP
6404 FAIL("Starting tag <bypassRoute> is not allowed here.");
6405         YY_BREAK
6406 case 110:
6407 /* rule 110 can match eol */
6408 YY_RULE_SETUP
6409 {
6410   AX_surfxml_bypassRoute_dst = 0;
6411   surfxml_bypassRoute_dst_isset = 0;
6412   AX_surfxml_bypassRoute_src = 0;
6413   surfxml_bypassRoute_src_isset = 0;
6414   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6415   }
6416         YY_BREAK
6417
6418 case 111:
6419 /* rule 111 can match eol */
6420 YY_RULE_SETUP
6421 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
6422         YY_BREAK
6423 case 112:
6424 /* rule 112 can match eol */
6425 YY_RULE_SETUP
6426 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
6427         YY_BREAK
6428 case 113:
6429 /* rule 113 can match eol */
6430 YY_RULE_SETUP
6431 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
6432         YY_BREAK
6433 case 114:
6434 /* rule 114 can match eol */
6435 YY_RULE_SETUP
6436 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
6437         YY_BREAK
6438 case 115:
6439 YY_RULE_SETUP
6440 {
6441   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6442   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6443   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6444  }
6445         YY_BREAK
6446 case 116:
6447 YY_RULE_SETUP
6448 {
6449   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6450   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6451   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6452   switch (YY_START) {
6453    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6454   }
6455  }
6456         YY_BREAK
6457 case 117:
6458 YY_RULE_SETUP
6459 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6460         YY_BREAK
6461 case 118:
6462 YY_RULE_SETUP
6463 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6464         YY_BREAK
6465 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6466 FAIL("EOF in attribute list of `bypassRoute' element.");
6467         YY_BREAK
6468
6469 case 119:
6470 /* rule 119 can match eol */
6471 YY_RULE_SETUP
6472 {
6473   LEAVE;
6474   ETag_surfxml_bypassRoute();
6475   popbuffer(); /* attribute */
6476   switch (YY_START) {
6477    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6478   }
6479  }
6480         YY_BREAK
6481 case 120:
6482 /* rule 120 can match eol */
6483 YY_RULE_SETUP
6484 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6485         YY_BREAK
6486 case 121:
6487 YY_RULE_SETUP
6488 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6489         YY_BREAK
6490 case YY_STATE_EOF(E_surfxml_bypassRoute):
6491 case YY_STATE_EOF(S_surfxml_bypassRoute):
6492 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6493 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6494         YY_BREAK
6495
6496 case 122:
6497 /* rule 122 can match eol */
6498 YY_RULE_SETUP
6499 FAIL("Starting tag <cabinet> is not allowed here.");
6500         YY_BREAK
6501 case 123:
6502 /* rule 123 can match eol */
6503 YY_RULE_SETUP
6504 {
6505   AX_surfxml_cabinet_bw = 0;
6506   surfxml_cabinet_bw_isset = 0;
6507   AX_surfxml_cabinet_id = 0;
6508   surfxml_cabinet_id_isset = 0;
6509   AX_surfxml_cabinet_lat = 0;
6510   surfxml_cabinet_lat_isset = 0;
6511   AX_surfxml_cabinet_power = 0;
6512   surfxml_cabinet_power_isset = 0;
6513   AX_surfxml_cabinet_prefix = 0;
6514   surfxml_cabinet_prefix_isset = 0;
6515   AX_surfxml_cabinet_radical = 0;
6516   surfxml_cabinet_radical_isset = 0;
6517   AX_surfxml_cabinet_suffix = 0;
6518   surfxml_cabinet_suffix_isset = 0;
6519   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6520   }
6521         YY_BREAK
6522
6523 case 124:
6524 /* rule 124 can match eol */
6525 YY_RULE_SETUP
6526 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
6527         YY_BREAK
6528 case 125:
6529 /* rule 125 can match eol */
6530 YY_RULE_SETUP
6531 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
6532         YY_BREAK
6533 case 126:
6534 /* rule 126 can match eol */
6535 YY_RULE_SETUP
6536 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
6537         YY_BREAK
6538 case 127:
6539 /* rule 127 can match eol */
6540 YY_RULE_SETUP
6541 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
6542         YY_BREAK
6543 case 128:
6544 /* rule 128 can match eol */
6545 YY_RULE_SETUP
6546 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
6547         YY_BREAK
6548 case 129:
6549 /* rule 129 can match eol */
6550 YY_RULE_SETUP
6551 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
6552         YY_BREAK
6553 case 130:
6554 /* rule 130 can match eol */
6555 YY_RULE_SETUP
6556 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
6557         YY_BREAK
6558 case 131:
6559 /* rule 131 can match eol */
6560 YY_RULE_SETUP
6561 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
6562         YY_BREAK
6563 case 132:
6564 /* rule 132 can match eol */
6565 YY_RULE_SETUP
6566 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
6567         YY_BREAK
6568 case 133:
6569 /* rule 133 can match eol */
6570 YY_RULE_SETUP
6571 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
6572         YY_BREAK
6573 case 134:
6574 /* rule 134 can match eol */
6575 YY_RULE_SETUP
6576 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
6577         YY_BREAK
6578 case 135:
6579 /* rule 135 can match eol */
6580 YY_RULE_SETUP
6581 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
6582         YY_BREAK
6583 case 136:
6584 /* rule 136 can match eol */
6585 YY_RULE_SETUP
6586 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
6587         YY_BREAK
6588 case 137:
6589 /* rule 137 can match eol */
6590 YY_RULE_SETUP
6591 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
6592         YY_BREAK
6593 case 138:
6594 YY_RULE_SETUP
6595 {
6596   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6597   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6598   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6599   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
6600   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6601   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6602   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6603   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6604  }
6605         YY_BREAK
6606 case 139:
6607 YY_RULE_SETUP
6608 {
6609   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6610   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6611   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6612   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
6613   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6614   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6615   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6616   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6617   switch (YY_START) {
6618    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6619    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6620    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6621   }
6622  }
6623         YY_BREAK
6624 case 140:
6625 YY_RULE_SETUP
6626 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6627         YY_BREAK
6628 case 141:
6629 YY_RULE_SETUP
6630 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6631         YY_BREAK
6632 case YY_STATE_EOF(AL_surfxml_cabinet):
6633 FAIL("EOF in attribute list of `cabinet' element.");
6634         YY_BREAK
6635
6636 case 142:
6637 /* rule 142 can match eol */
6638 YY_RULE_SETUP
6639 {
6640   LEAVE;
6641   ETag_surfxml_cabinet();
6642   popbuffer(); /* attribute */
6643   switch (YY_START) {
6644    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6645    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6646    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6647   }
6648  }
6649         YY_BREAK
6650 case 143:
6651 /* rule 143 can match eol */
6652 YY_RULE_SETUP
6653 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6654         YY_BREAK
6655 case 144:
6656 YY_RULE_SETUP
6657 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6658         YY_BREAK
6659 case YY_STATE_EOF(E_surfxml_cabinet):
6660 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6661         YY_BREAK
6662
6663 case 145:
6664 /* rule 145 can match eol */
6665 YY_RULE_SETUP
6666 FAIL("Starting tag <cluster> is not allowed here.");
6667         YY_BREAK
6668 case 146:
6669 /* rule 146 can match eol */
6670 YY_RULE_SETUP
6671 {
6672   AX_surfxml_cluster_availability___file = 0;
6673   surfxml_cluster_availability___file_isset = 0;
6674   AX_surfxml_cluster_bb___bw = 0;
6675   surfxml_cluster_bb___bw_isset = 0;
6676   AX_surfxml_cluster_bb___lat = 0;
6677   surfxml_cluster_bb___lat_isset = 0;
6678   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6679   surfxml_cluster_bb___sharing___policy_isset = 0;
6680   AX_surfxml_cluster_bw = 0;
6681   surfxml_cluster_bw_isset = 0;
6682   AX_surfxml_cluster_core = 44;
6683   surfxml_cluster_core_isset = 0;
6684   AX_surfxml_cluster_id = 0;
6685   surfxml_cluster_id_isset = 0;
6686   AX_surfxml_cluster_lat = 0;
6687   surfxml_cluster_lat_isset = 0;
6688   AX_surfxml_cluster_limiter___link = 0;
6689   surfxml_cluster_limiter___link_isset = 0;
6690   AX_surfxml_cluster_loopback___bw = 0;
6691   surfxml_cluster_loopback___bw_isset = 0;
6692   AX_surfxml_cluster_loopback___lat = 0;
6693   surfxml_cluster_loopback___lat_isset = 0;
6694   AX_surfxml_cluster_power = 0;
6695   surfxml_cluster_power_isset = 0;
6696   AX_surfxml_cluster_prefix = 0;
6697   surfxml_cluster_prefix_isset = 0;
6698   AX_surfxml_cluster_radical = 0;
6699   surfxml_cluster_radical_isset = 0;
6700   AX_surfxml_cluster_router___id = 0;
6701   surfxml_cluster_router___id_isset = 0;
6702   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6703   surfxml_cluster_sharing___policy_isset = 0;
6704   AX_surfxml_cluster_state___file = 0;
6705   surfxml_cluster_state___file_isset = 0;
6706   AX_surfxml_cluster_suffix = 0;
6707   surfxml_cluster_suffix_isset = 0;
6708   AX_surfxml_cluster_topo___parameters = 0;
6709   surfxml_cluster_topo___parameters_isset = 0;
6710   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6711   surfxml_cluster_topology_isset = 0;
6712   ENTER(AL_surfxml_cluster); pushbuffer(0);
6713   }
6714         YY_BREAK
6715
6716 case 147:
6717 /* rule 147 can match eol */
6718 YY_RULE_SETUP
6719 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
6720         YY_BREAK
6721 case 148:
6722 /* rule 148 can match eol */
6723 YY_RULE_SETUP
6724 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
6725         YY_BREAK
6726 case 149:
6727 /* rule 149 can match eol */
6728 YY_RULE_SETUP
6729 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
6730         YY_BREAK
6731 case 150:
6732 /* rule 150 can match eol */
6733 YY_RULE_SETUP
6734 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
6735         YY_BREAK
6736 case 151:
6737 /* rule 151 can match eol */
6738 YY_RULE_SETUP
6739 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
6740         YY_BREAK
6741 case 152:
6742 /* rule 152 can match eol */
6743 YY_RULE_SETUP
6744 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
6745         YY_BREAK
6746 case 153:
6747 /* rule 153 can match eol */
6748 case 154:
6749 /* rule 154 can match eol */
6750 YY_RULE_SETUP
6751 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6752         YY_BREAK
6753 case 155:
6754 /* rule 155 can match eol */
6755 case 156:
6756 /* rule 156 can match eol */
6757 YY_RULE_SETUP
6758 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6759         YY_BREAK
6760 case 157:
6761 /* rule 157 can match eol */
6762 YY_RULE_SETUP
6763 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6764         YY_BREAK
6765 case 158:
6766 /* rule 158 can match eol */
6767 YY_RULE_SETUP
6768 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6769         YY_BREAK
6770 case 159:
6771 /* rule 159 can match eol */
6772 YY_RULE_SETUP
6773 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6774         YY_BREAK
6775 case 160:
6776 /* rule 160 can match eol */
6777 YY_RULE_SETUP
6778 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6779         YY_BREAK
6780 case 161:
6781 /* rule 161 can match eol */
6782 YY_RULE_SETUP
6783 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6784         YY_BREAK
6785 case 162:
6786 /* rule 162 can match eol */
6787 YY_RULE_SETUP
6788 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6789         YY_BREAK
6790 case 163:
6791 /* rule 163 can match eol */
6792 YY_RULE_SETUP
6793 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6794         YY_BREAK
6795 case 164:
6796 /* rule 164 can match eol */
6797 YY_RULE_SETUP
6798 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6799         YY_BREAK
6800 case 165:
6801 /* rule 165 can match eol */
6802 YY_RULE_SETUP
6803 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
6804         YY_BREAK
6805 case 166:
6806 /* rule 166 can match eol */
6807 YY_RULE_SETUP
6808 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
6809         YY_BREAK
6810 case 167:
6811 /* rule 167 can match eol */
6812 YY_RULE_SETUP
6813 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
6814         YY_BREAK
6815 case 168:
6816 /* rule 168 can match eol */
6817 YY_RULE_SETUP
6818 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
6819         YY_BREAK
6820 case 169:
6821 /* rule 169 can match eol */
6822 YY_RULE_SETUP
6823 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
6824         YY_BREAK
6825 case 170:
6826 /* rule 170 can match eol */
6827 YY_RULE_SETUP
6828 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
6829         YY_BREAK
6830 case 171:
6831 /* rule 171 can match eol */
6832 YY_RULE_SETUP
6833 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6834         YY_BREAK
6835 case 172:
6836 /* rule 172 can match eol */
6837 YY_RULE_SETUP
6838 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6839         YY_BREAK
6840 case 173:
6841 /* rule 173 can match eol */
6842 YY_RULE_SETUP
6843 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6844         YY_BREAK
6845 case 174:
6846 /* rule 174 can match eol */
6847 YY_RULE_SETUP
6848 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6849         YY_BREAK
6850 case 175:
6851 /* rule 175 can match eol */
6852 YY_RULE_SETUP
6853 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6854         YY_BREAK
6855 case 176:
6856 /* rule 176 can match eol */
6857 YY_RULE_SETUP
6858 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6859         YY_BREAK
6860 case 177:
6861 /* rule 177 can match eol */
6862 YY_RULE_SETUP
6863 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
6864         YY_BREAK
6865 case 178:
6866 /* rule 178 can match eol */
6867 YY_RULE_SETUP
6868 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
6869         YY_BREAK
6870 case 179:
6871 /* rule 179 can match eol */
6872 case 180:
6873 /* rule 180 can match eol */
6874 YY_RULE_SETUP
6875 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6876         YY_BREAK
6877 case 181:
6878 /* rule 181 can match eol */
6879 case 182:
6880 /* rule 182 can match eol */
6881 YY_RULE_SETUP
6882 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6883         YY_BREAK
6884 case 183:
6885 /* rule 183 can match eol */
6886 case 184:
6887 /* rule 184 can match eol */
6888 YY_RULE_SETUP
6889 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6890         YY_BREAK
6891 case 185:
6892 /* rule 185 can match eol */
6893 YY_RULE_SETUP
6894 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
6895         YY_BREAK
6896 case 186:
6897 /* rule 186 can match eol */
6898 YY_RULE_SETUP
6899 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
6900         YY_BREAK
6901 case 187:
6902 /* rule 187 can match eol */
6903 YY_RULE_SETUP
6904 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6905         YY_BREAK
6906 case 188:
6907 /* rule 188 can match eol */
6908 YY_RULE_SETUP
6909 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6910         YY_BREAK
6911 case 189:
6912 /* rule 189 can match eol */
6913 YY_RULE_SETUP
6914 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
6915         YY_BREAK
6916 case 190:
6917 /* rule 190 can match eol */
6918 YY_RULE_SETUP
6919 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
6920         YY_BREAK
6921 case 191:
6922 /* rule 191 can match eol */
6923 case 192:
6924 /* rule 192 can match eol */
6925 YY_RULE_SETUP
6926 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6927         YY_BREAK
6928 case 193:
6929 /* rule 193 can match eol */
6930 case 194:
6931 /* rule 194 can match eol */
6932 YY_RULE_SETUP
6933 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6934         YY_BREAK
6935 case 195:
6936 /* rule 195 can match eol */
6937 case 196:
6938 /* rule 196 can match eol */
6939 YY_RULE_SETUP
6940 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6941         YY_BREAK
6942 case 197:
6943 YY_RULE_SETUP
6944 {
6945   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6946   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6947   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6948   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6949   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6950   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6951   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6952   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6953  }
6954         YY_BREAK
6955 case 198:
6956 YY_RULE_SETUP
6957 {
6958   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6959   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6960   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6961   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6962   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6963   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6964   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6965   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6966   switch (YY_START) {
6967    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6968    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6969    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6970   }
6971  }
6972         YY_BREAK
6973 case 199:
6974 YY_RULE_SETUP
6975 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6976         YY_BREAK
6977 case 200:
6978 YY_RULE_SETUP
6979 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6980         YY_BREAK
6981 case YY_STATE_EOF(AL_surfxml_cluster):
6982 FAIL("EOF in attribute list of `cluster' element.");
6983         YY_BREAK
6984
6985 case 201:
6986 /* rule 201 can match eol */
6987 YY_RULE_SETUP
6988 {
6989   LEAVE;
6990   ETag_surfxml_cluster();
6991   popbuffer(); /* attribute */
6992   switch (YY_START) {
6993    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6994    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6995    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6996   }
6997  }
6998         YY_BREAK
6999 case 202:
7000 /* rule 202 can match eol */
7001 YY_RULE_SETUP
7002 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7003         YY_BREAK
7004 case 203:
7005 YY_RULE_SETUP
7006 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7007         YY_BREAK
7008 case YY_STATE_EOF(E_surfxml_cluster):
7009 case YY_STATE_EOF(S_surfxml_cluster):
7010 case YY_STATE_EOF(S_surfxml_cluster_2):
7011 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7012         YY_BREAK
7013
7014 case 204:
7015 /* rule 204 can match eol */
7016 YY_RULE_SETUP
7017 FAIL("Starting tag <config> is not allowed here.");
7018         YY_BREAK
7019 case 205:
7020 /* rule 205 can match eol */
7021 YY_RULE_SETUP
7022 {
7023   AX_surfxml_config_id = 0;
7024   surfxml_config_id_isset = 0;
7025   ENTER(AL_surfxml_config); pushbuffer(0);
7026   }
7027         YY_BREAK
7028
7029 case 206:
7030 /* rule 206 can match eol */
7031 YY_RULE_SETUP
7032 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
7033         YY_BREAK
7034 case 207:
7035 /* rule 207 can match eol */
7036 YY_RULE_SETUP
7037 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
7038         YY_BREAK
7039 case 208:
7040 YY_RULE_SETUP
7041 {
7042   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7043  }
7044         YY_BREAK
7045 case 209:
7046 YY_RULE_SETUP
7047 {
7048   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7049   switch (YY_START) {
7050    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7051   }
7052  }
7053         YY_BREAK
7054 case 210:
7055 YY_RULE_SETUP
7056 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7057         YY_BREAK
7058 case 211:
7059 YY_RULE_SETUP
7060 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7061         YY_BREAK
7062 case YY_STATE_EOF(AL_surfxml_config):
7063 FAIL("EOF in attribute list of `config' element.");
7064         YY_BREAK
7065
7066 case 212:
7067 /* rule 212 can match eol */
7068 YY_RULE_SETUP
7069 {
7070   LEAVE;
7071   ETag_surfxml_config();
7072   popbuffer(); /* attribute */
7073   switch (YY_START) {
7074    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7075   }
7076  }
7077         YY_BREAK
7078 case 213:
7079 /* rule 213 can match eol */
7080 YY_RULE_SETUP
7081 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7082         YY_BREAK
7083 case 214:
7084 YY_RULE_SETUP
7085 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7086         YY_BREAK
7087 case YY_STATE_EOF(E_surfxml_config):
7088 case YY_STATE_EOF(S_surfxml_config):
7089 case YY_STATE_EOF(S_surfxml_config_2):
7090 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7091         YY_BREAK
7092
7093 case 215:
7094 /* rule 215 can match eol */
7095 YY_RULE_SETUP
7096 FAIL("Starting tag <gpu> is not allowed here.");
7097         YY_BREAK
7098 case 216:
7099 /* rule 216 can match eol */
7100 YY_RULE_SETUP
7101 {
7102   AX_surfxml_gpu_name = 0;
7103   surfxml_gpu_name_isset = 0;
7104   ENTER(AL_surfxml_gpu); pushbuffer(0);
7105   }
7106         YY_BREAK
7107
7108 case 217:
7109 /* rule 217 can match eol */
7110 YY_RULE_SETUP
7111 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7112         YY_BREAK
7113 case 218:
7114 /* rule 218 can match eol */
7115 YY_RULE_SETUP
7116 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7117         YY_BREAK
7118 case 219:
7119 YY_RULE_SETUP
7120 {
7121   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7122   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7123  }
7124         YY_BREAK
7125 case 220:
7126 YY_RULE_SETUP
7127 {
7128   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7129   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7130   switch (YY_START) {
7131    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7132   }
7133  }
7134         YY_BREAK
7135 case 221:
7136 YY_RULE_SETUP
7137 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7138         YY_BREAK
7139 case 222:
7140 YY_RULE_SETUP
7141 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7142         YY_BREAK
7143 case YY_STATE_EOF(AL_surfxml_gpu):
7144 FAIL("EOF in attribute list of `gpu' element.");
7145         YY_BREAK
7146
7147 case 223:
7148 /* rule 223 can match eol */
7149 YY_RULE_SETUP
7150 {
7151   LEAVE;
7152   ETag_surfxml_gpu();
7153   popbuffer(); /* attribute */
7154   switch (YY_START) {
7155    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7156   }
7157  }
7158         YY_BREAK
7159 case 224:
7160 /* rule 224 can match eol */
7161 YY_RULE_SETUP
7162 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7163         YY_BREAK
7164 case 225:
7165 YY_RULE_SETUP
7166 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7167         YY_BREAK
7168 case YY_STATE_EOF(E_surfxml_gpu):
7169 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7170         YY_BREAK
7171
7172 case 226:
7173 /* rule 226 can match eol */
7174 YY_RULE_SETUP
7175 FAIL("Starting tag <host> is not allowed here.");
7176         YY_BREAK
7177 case 227:
7178 /* rule 227 can match eol */
7179 YY_RULE_SETUP
7180 {
7181   AX_surfxml_host_availability = 27;
7182   surfxml_host_availability_isset = 0;
7183   AX_surfxml_host_availability___file = 0;
7184   surfxml_host_availability___file_isset = 0;
7185   AX_surfxml_host_coordinates = 0;
7186   surfxml_host_coordinates_isset = 0;
7187   AX_surfxml_host_core = 25;
7188   surfxml_host_core_isset = 0;
7189   AX_surfxml_host_id = 0;
7190   surfxml_host_id_isset = 0;
7191   AX_surfxml_host_power = 0;
7192   surfxml_host_power_isset = 0;
7193   AX_surfxml_host_pstate = 31;
7194   surfxml_host_pstate_isset = 0;
7195   AX_surfxml_host_state = A_surfxml_host_state_ON;
7196   surfxml_host_state_isset = 0;
7197   AX_surfxml_host_state___file = 0;
7198   surfxml_host_state___file_isset = 0;
7199   ENTER(AL_surfxml_host); pushbuffer(0);
7200   }
7201         YY_BREAK
7202
7203 case 228:
7204 /* rule 228 can match eol */
7205 YY_RULE_SETUP
7206 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
7207         YY_BREAK
7208 case 229:
7209 /* rule 229 can match eol */
7210 YY_RULE_SETUP
7211 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
7212         YY_BREAK
7213 case 230:
7214 /* rule 230 can match eol */
7215 YY_RULE_SETUP
7216 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
7217         YY_BREAK
7218 case 231:
7219 /* rule 231 can match eol */
7220 YY_RULE_SETUP
7221 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
7222         YY_BREAK
7223 case 232:
7224 /* rule 232 can match eol */
7225 YY_RULE_SETUP
7226 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
7227         YY_BREAK
7228 case 233:
7229 /* rule 233 can match eol */
7230 YY_RULE_SETUP
7231 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
7232         YY_BREAK
7233 case 234:
7234 /* rule 234 can match eol */
7235 YY_RULE_SETUP
7236 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
7237         YY_BREAK
7238 case 235:
7239 /* rule 235 can match eol */
7240 YY_RULE_SETUP
7241 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
7242         YY_BREAK
7243 case 236:
7244 /* rule 236 can match eol */
7245 YY_RULE_SETUP
7246 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
7247         YY_BREAK
7248 case 237:
7249 /* rule 237 can match eol */
7250 YY_RULE_SETUP
7251 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
7252         YY_BREAK
7253 case 238:
7254 /* rule 238 can match eol */
7255 YY_RULE_SETUP
7256 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
7257         YY_BREAK
7258 case 239:
7259 /* rule 239 can match eol */
7260 YY_RULE_SETUP
7261 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
7262         YY_BREAK
7263 case 240:
7264 /* rule 240 can match eol */
7265 YY_RULE_SETUP
7266 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7267         YY_BREAK
7268 case 241:
7269 /* rule 241 can match eol */
7270 YY_RULE_SETUP
7271 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7272         YY_BREAK
7273 case 242:
7274 /* rule 242 can match eol */
7275 case 243:
7276 /* rule 243 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_host_state = A_surfxml_host_state_ON;
7279         YY_BREAK
7280 case 244:
7281 /* rule 244 can match eol */
7282 case 245:
7283 /* rule 245 can match eol */
7284 YY_RULE_SETUP
7285 A_surfxml_host_state = A_surfxml_host_state_OFF;
7286         YY_BREAK
7287 case 246:
7288 /* rule 246 can match eol */
7289 YY_RULE_SETUP
7290 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
7291         YY_BREAK
7292 case 247:
7293 /* rule 247 can match eol */
7294 YY_RULE_SETUP
7295 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
7296         YY_BREAK
7297 case 248:
7298 YY_RULE_SETUP
7299 {
7300   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7301   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7302   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7303  }
7304         YY_BREAK
7305 case 249:
7306 YY_RULE_SETUP
7307 {
7308   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7309   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7310   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7311   switch (YY_START) {
7312    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7313   }
7314  }
7315         YY_BREAK
7316 case 250:
7317 YY_RULE_SETUP
7318 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7319         YY_BREAK
7320 case 251:
7321 YY_RULE_SETUP
7322 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7323         YY_BREAK
7324 case YY_STATE_EOF(AL_surfxml_host):
7325 FAIL("EOF in attribute list of `host' element.");
7326         YY_BREAK
7327
7328 case 252:
7329 /* rule 252 can match eol */
7330 YY_RULE_SETUP
7331 {
7332   LEAVE;
7333   ETag_surfxml_host();
7334   popbuffer(); /* attribute */
7335   switch (YY_START) {
7336    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7337   }
7338  }
7339         YY_BREAK
7340 case 253:
7341 /* rule 253 can match eol */
7342 YY_RULE_SETUP
7343 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7344         YY_BREAK
7345 case 254:
7346 YY_RULE_SETUP
7347 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7348         YY_BREAK
7349 case YY_STATE_EOF(E_surfxml_host):
7350 case YY_STATE_EOF(S_surfxml_host):
7351 case YY_STATE_EOF(S_surfxml_host_2):
7352 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7353         YY_BREAK
7354
7355 case 255:
7356 /* rule 255 can match eol */
7357 YY_RULE_SETUP
7358 FAIL("Starting tag <host_link> is not allowed here.");
7359         YY_BREAK
7360 case 256:
7361 /* rule 256 can match eol */
7362 YY_RULE_SETUP
7363 {
7364   AX_surfxml_host___link_down = 0;
7365   surfxml_host___link_down_isset = 0;
7366   AX_surfxml_host___link_id = 0;
7367   surfxml_host___link_id_isset = 0;
7368   AX_surfxml_host___link_up = 0;
7369   surfxml_host___link_up_isset = 0;
7370   ENTER(AL_surfxml_host___link); pushbuffer(0);
7371   }
7372         YY_BREAK
7373
7374 case 257:
7375 /* rule 257 can match eol */
7376 YY_RULE_SETUP
7377 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7378         YY_BREAK
7379 case 258:
7380 /* rule 258 can match eol */
7381 YY_RULE_SETUP
7382 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7383         YY_BREAK
7384 case 259:
7385 /* rule 259 can match eol */
7386 YY_RULE_SETUP
7387 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7388         YY_BREAK
7389 case 260:
7390 /* rule 260 can match eol */
7391 YY_RULE_SETUP
7392 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7393         YY_BREAK
7394 case 261:
7395 /* rule 261 can match eol */
7396 YY_RULE_SETUP
7397 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7398         YY_BREAK
7399 case 262:
7400 /* rule 262 can match eol */
7401 YY_RULE_SETUP
7402 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7403         YY_BREAK
7404 case 263:
7405 YY_RULE_SETUP
7406 {
7407   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7408   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7409   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7410   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7411  }
7412         YY_BREAK
7413 case 264:
7414 YY_RULE_SETUP
7415 {
7416   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7417   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7418   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7419   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7420   switch (YY_START) {
7421    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7422   }
7423  }
7424         YY_BREAK
7425 case 265:
7426 YY_RULE_SETUP
7427 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7428         YY_BREAK
7429 case 266:
7430 YY_RULE_SETUP
7431 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7432         YY_BREAK
7433 case YY_STATE_EOF(AL_surfxml_host___link):
7434 FAIL("EOF in attribute list of `host_link' element.");
7435         YY_BREAK
7436
7437 case 267:
7438 /* rule 267 can match eol */
7439 YY_RULE_SETUP
7440 {
7441   LEAVE;
7442   ETag_surfxml_host___link();
7443   popbuffer(); /* attribute */
7444   switch (YY_START) {
7445    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7446   }
7447  }
7448         YY_BREAK
7449 case 268:
7450 /* rule 268 can match eol */
7451 YY_RULE_SETUP
7452 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7453         YY_BREAK
7454 case 269:
7455 YY_RULE_SETUP
7456 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7457         YY_BREAK
7458 case YY_STATE_EOF(E_surfxml_host___link):
7459 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7460         YY_BREAK
7461
7462 case 270:
7463 /* rule 270 can match eol */
7464 YY_RULE_SETUP
7465 FAIL("Starting tag <include> is not allowed here.");
7466         YY_BREAK
7467 case 271:
7468 /* rule 271 can match eol */
7469 YY_RULE_SETUP
7470 {
7471   AX_surfxml_include_file = 0;
7472   surfxml_include_file_isset = 0;
7473   ENTER(AL_surfxml_include); pushbuffer(0);
7474   }
7475         YY_BREAK
7476
7477 case 272:
7478 /* rule 272 can match eol */
7479 YY_RULE_SETUP
7480 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
7481         YY_BREAK
7482 case 273:
7483 /* rule 273 can match eol */
7484 YY_RULE_SETUP
7485 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
7486         YY_BREAK
7487 case 274:
7488 YY_RULE_SETUP
7489 {
7490   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7491   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7492  }
7493         YY_BREAK
7494 case 275:
7495 YY_RULE_SETUP
7496 {
7497   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7498   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7499   switch (YY_START) {
7500    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7501    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7502    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7503   }
7504  }
7505         YY_BREAK
7506 case 276:
7507 YY_RULE_SETUP
7508 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7509         YY_BREAK
7510 case 277:
7511 YY_RULE_SETUP
7512 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7513         YY_BREAK
7514 case YY_STATE_EOF(AL_surfxml_include):
7515 FAIL("EOF in attribute list of `include' element.");
7516         YY_BREAK
7517
7518 case 278:
7519 /* rule 278 can match eol */
7520 YY_RULE_SETUP
7521 {
7522   LEAVE;
7523   ETag_surfxml_include();
7524   popbuffer(); /* attribute */
7525   switch (YY_START) {
7526    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7527    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7528    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7529   }
7530  }
7531         YY_BREAK
7532 case 279:
7533 /* rule 279 can match eol */
7534 YY_RULE_SETUP
7535 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7536         YY_BREAK
7537 case 280:
7538 YY_RULE_SETUP
7539 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7540         YY_BREAK
7541 case YY_STATE_EOF(E_surfxml_include):
7542 case YY_STATE_EOF(S_surfxml_include):
7543 case YY_STATE_EOF(S_surfxml_include_2):
7544 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7545         YY_BREAK
7546
7547 case 281:
7548 /* rule 281 can match eol */
7549 YY_RULE_SETUP
7550 FAIL("Starting tag <link> is not allowed here.");
7551         YY_BREAK
7552 case 282:
7553 /* rule 282 can match eol */
7554 YY_RULE_SETUP
7555 {
7556   AX_surfxml_link_bandwidth = 0;
7557   surfxml_link_bandwidth_isset = 0;
7558   AX_surfxml_link_bandwidth___file = 0;
7559   surfxml_link_bandwidth___file_isset = 0;
7560   AX_surfxml_link_id = 0;
7561   surfxml_link_id_isset = 0;
7562   AX_surfxml_link_latency = 46;
7563   surfxml_link_latency_isset = 0;
7564   AX_surfxml_link_latency___file = 0;
7565   surfxml_link_latency___file_isset = 0;
7566   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7567   surfxml_link_sharing___policy_isset = 0;
7568   AX_surfxml_link_state = A_surfxml_link_state_ON;
7569   surfxml_link_state_isset = 0;
7570   AX_surfxml_link_state___file = 0;
7571   surfxml_link_state___file_isset = 0;
7572   ENTER(AL_surfxml_link); pushbuffer(0);
7573   }
7574         YY_BREAK
7575
7576 case 283:
7577 /* rule 283 can match eol */
7578 YY_RULE_SETUP
7579 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7580         YY_BREAK
7581 case 284:
7582 /* rule 284 can match eol */
7583 YY_RULE_SETUP
7584 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7585         YY_BREAK
7586 case 285:
7587 /* rule 285 can match eol */
7588 YY_RULE_SETUP
7589 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
7590         YY_BREAK
7591 case 286:
7592 /* rule 286 can match eol */
7593 YY_RULE_SETUP
7594 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
7595         YY_BREAK
7596 case 287:
7597 /* rule 287 can match eol */
7598 YY_RULE_SETUP
7599 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7600         YY_BREAK
7601 case 288:
7602 /* rule 288 can match eol */
7603 YY_RULE_SETUP
7604 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7605         YY_BREAK
7606 case 289:
7607 /* rule 289 can match eol */
7608 YY_RULE_SETUP
7609 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7610         YY_BREAK
7611 case 290:
7612 /* rule 290 can match eol */
7613 YY_RULE_SETUP
7614 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7615         YY_BREAK
7616 case 291:
7617 /* rule 291 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
7620         YY_BREAK
7621 case 292:
7622 /* rule 292 can match eol */
7623 YY_RULE_SETUP
7624 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
7625         YY_BREAK
7626 case 293:
7627 /* rule 293 can match eol */
7628 case 294:
7629 /* rule 294 can match eol */
7630 YY_RULE_SETUP
7631 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7632         YY_BREAK
7633 case 295:
7634 /* rule 295 can match eol */
7635 case 296:
7636 /* rule 296 can match eol */
7637 YY_RULE_SETUP
7638 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7639         YY_BREAK
7640 case 297:
7641 /* rule 297 can match eol */
7642 case 298:
7643 /* rule 298 can match eol */
7644 YY_RULE_SETUP
7645 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7646         YY_BREAK
7647 case 299:
7648 /* rule 299 can match eol */
7649 case 300:
7650 /* rule 300 can match eol */
7651 YY_RULE_SETUP
7652 A_surfxml_link_state = A_surfxml_link_state_ON;
7653         YY_BREAK
7654 case 301:
7655 /* rule 301 can match eol */
7656 case 302:
7657 /* rule 302 can match eol */
7658 YY_RULE_SETUP
7659 A_surfxml_link_state = A_surfxml_link_state_OFF;
7660         YY_BREAK
7661 case 303:
7662 /* rule 303 can match eol */
7663 YY_RULE_SETUP
7664 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
7665         YY_BREAK
7666 case 304:
7667 /* rule 304 can match eol */
7668 YY_RULE_SETUP
7669 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
7670         YY_BREAK
7671 case 305:
7672 YY_RULE_SETUP
7673 {
7674   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7675   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7676   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7677  }
7678         YY_BREAK
7679 case 306:
7680 YY_RULE_SETUP
7681 {
7682   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7683   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7684   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7685   switch (YY_START) {
7686    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7687   }
7688  }
7689         YY_BREAK
7690 case 307:
7691 YY_RULE_SETUP
7692 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7693         YY_BREAK
7694 case 308:
7695 YY_RULE_SETUP
7696 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7697         YY_BREAK
7698 case YY_STATE_EOF(AL_surfxml_link):
7699 FAIL("EOF in attribute list of `link' element.");
7700         YY_BREAK
7701
7702 case 309:
7703 /* rule 309 can match eol */
7704 YY_RULE_SETUP
7705 {
7706   LEAVE;
7707   ETag_surfxml_link();
7708   popbuffer(); /* attribute */
7709   switch (YY_START) {
7710    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7711   }
7712  }
7713         YY_BREAK
7714 case 310:
7715 /* rule 310 can match eol */
7716 YY_RULE_SETUP
7717 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7718         YY_BREAK
7719 case 311:
7720 YY_RULE_SETUP
7721 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7722         YY_BREAK
7723 case YY_STATE_EOF(E_surfxml_link):
7724 case YY_STATE_EOF(S_surfxml_link):
7725 case YY_STATE_EOF(S_surfxml_link_2):
7726 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7727         YY_BREAK
7728
7729 case 312:
7730 /* rule 312 can match eol */
7731 YY_RULE_SETUP
7732 FAIL("Starting tag <link_ctn> is not allowed here.");
7733         YY_BREAK
7734 case 313:
7735 /* rule 313 can match eol */
7736 YY_RULE_SETUP
7737 {
7738   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7739   surfxml_link___ctn_direction_isset = 0;
7740   AX_surfxml_link___ctn_id = 0;
7741   surfxml_link___ctn_id_isset = 0;
7742   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7743   }
7744         YY_BREAK
7745
7746 case 314:
7747 /* rule 314 can match eol */
7748 case 315:
7749 /* rule 315 can match eol */
7750 YY_RULE_SETUP
7751 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7752         YY_BREAK
7753 case 316:
7754 /* rule 316 can match eol */
7755 case 317:
7756 /* rule 317 can match eol */
7757 YY_RULE_SETUP
7758 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7759         YY_BREAK
7760 case 318:
7761 /* rule 318 can match eol */
7762 case 319:
7763 /* rule 319 can match eol */
7764 YY_RULE_SETUP
7765 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7766         YY_BREAK
7767 case 320:
7768 /* rule 320 can match eol */
7769 YY_RULE_SETUP
7770 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
7771         YY_BREAK
7772 case 321:
7773 /* rule 321 can match eol */
7774 YY_RULE_SETUP
7775 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
7776         YY_BREAK
7777 case 322:
7778 YY_RULE_SETUP
7779 {
7780   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7781   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7782  }
7783         YY_BREAK
7784 case 323:
7785 YY_RULE_SETUP
7786 {
7787   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7788   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7789   switch (YY_START) {
7790    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7791    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7792    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7793    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7794   }
7795  }
7796         YY_BREAK
7797 case 324:
7798 YY_RULE_SETUP
7799 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7800         YY_BREAK
7801 case 325:
7802 YY_RULE_SETUP
7803 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7804         YY_BREAK
7805 case YY_STATE_EOF(AL_surfxml_link___ctn):
7806 FAIL("EOF in attribute list of `link_ctn' element.");
7807         YY_BREAK
7808
7809 case 326:
7810 /* rule 326 can match eol */
7811 YY_RULE_SETUP
7812 {
7813   LEAVE;
7814   ETag_surfxml_link___ctn();
7815   popbuffer(); /* attribute */
7816   switch (YY_START) {
7817    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7818    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7819    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7820    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7821   }
7822  }
7823         YY_BREAK
7824 case 327:
7825 /* rule 327 can match eol */
7826 YY_RULE_SETUP
7827 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7828         YY_BREAK
7829 case 328:
7830 YY_RULE_SETUP
7831 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7832         YY_BREAK
7833 case YY_STATE_EOF(E_surfxml_link___ctn):
7834 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7835         YY_BREAK
7836
7837 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7838   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7839 case 329:
7840 /* rule 329 can match eol */
7841 YY_RULE_SETUP
7842 FAIL("Starting tag <model_prop> is not allowed here.");
7843         YY_BREAK
7844 case 330:
7845 /* rule 330 can match eol */
7846 YY_RULE_SETUP
7847 {
7848   AX_surfxml_model___prop_id = 0;
7849   surfxml_model___prop_id_isset = 0;
7850   AX_surfxml_model___prop_value = 0;
7851   surfxml_model___prop_value_isset = 0;
7852   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7853   }
7854         YY_BREAK
7855
7856 case 331:
7857 /* rule 331 can match eol */
7858 YY_RULE_SETUP
7859 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
7860         YY_BREAK
7861 case 332:
7862 /* rule 332 can match eol */
7863 YY_RULE_SETUP
7864 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
7865         YY_BREAK
7866 case 333:
7867 /* rule 333 can match eol */
7868 YY_RULE_SETUP
7869 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
7870         YY_BREAK
7871 case 334:
7872 /* rule 334 can match eol */
7873 YY_RULE_SETUP
7874 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
7875         YY_BREAK
7876 case 335:
7877 YY_RULE_SETUP
7878 {
7879   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7880   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7881   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7882  }
7883         YY_BREAK
7884 case 336:
7885 YY_RULE_SETUP
7886 {
7887   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7888   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7889   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7890   switch (YY_START) {
7891    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7892   }
7893  }
7894         YY_BREAK
7895 case 337:
7896 YY_RULE_SETUP
7897 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7898         YY_BREAK
7899 case 338:
7900 YY_RULE_SETUP
7901 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7902         YY_BREAK
7903 case YY_STATE_EOF(AL_surfxml_model___prop):
7904 FAIL("EOF in attribute list of `model_prop' element.");
7905         YY_BREAK
7906
7907 case 339:
7908 /* rule 339 can match eol */
7909 YY_RULE_SETUP
7910 {
7911   LEAVE;
7912   ETag_surfxml_model___prop();
7913   popbuffer(); /* attribute */
7914   switch (YY_START) {
7915    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7916   }
7917  }
7918         YY_BREAK
7919 case 340:
7920 /* rule 340 can match eol */
7921 YY_RULE_SETUP
7922 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7923         YY_BREAK
7924 case 341:
7925 YY_RULE_SETUP
7926 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7927         YY_BREAK
7928 case YY_STATE_EOF(E_surfxml_model___prop):
7929 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7930         YY_BREAK
7931
7932 case 342:
7933 /* rule 342 can match eol */
7934 YY_RULE_SETUP
7935 FAIL("Starting tag <mount> is not allowed here.");
7936         YY_BREAK
7937 case 343:
7938 /* rule 343 can match eol */
7939 YY_RULE_SETUP
7940 {
7941   AX_surfxml_mount_name = 0;
7942   surfxml_mount_name_isset = 0;
7943   AX_surfxml_mount_storageId = 0;
7944   surfxml_mount_storageId_isset = 0;
7945   ENTER(AL_surfxml_mount); pushbuffer(0);
7946   }
7947         YY_BREAK
7948
7949 case 344:
7950 /* rule 344 can match eol */
7951 YY_RULE_SETUP
7952 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
7953         YY_BREAK
7954 case 345:
7955 /* rule 345 can match eol */
7956 YY_RULE_SETUP
7957 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
7958         YY_BREAK
7959 case 346:
7960 /* rule 346 can match eol */
7961 YY_RULE_SETUP
7962 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
7963         YY_BREAK
7964 case 347:
7965 /* rule 347 can match eol */
7966 YY_RULE_SETUP
7967 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
7968         YY_BREAK
7969 case 348:
7970 YY_RULE_SETUP
7971 {
7972   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7973   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7974   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7975  }
7976         YY_BREAK
7977 case 349:
7978 YY_RULE_SETUP
7979 {
7980   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7981   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7982   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7983   switch (YY_START) {
7984    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7985   }
7986  }
7987         YY_BREAK
7988 case 350:
7989 YY_RULE_SETUP
7990 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7991         YY_BREAK
7992 case 351:
7993 YY_RULE_SETUP
7994 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7995         YY_BREAK
7996 case YY_STATE_EOF(AL_surfxml_mount):
7997 FAIL("EOF in attribute list of `mount' element.");
7998         YY_BREAK
7999
8000 case 352:
8001 /* rule 352 can match eol */
8002 YY_RULE_SETUP
8003 {
8004   LEAVE;
8005   ETag_surfxml_mount();
8006   popbuffer(); /* attribute */
8007   switch (YY_START) {
8008    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8009   }
8010  }
8011         YY_BREAK
8012 case 353:
8013 /* rule 353 can match eol */
8014 YY_RULE_SETUP
8015 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
8016         YY_BREAK
8017 case 354:
8018 YY_RULE_SETUP
8019 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
8020         YY_BREAK
8021 case YY_STATE_EOF(E_surfxml_mount):
8022 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
8023         YY_BREAK
8024
8025 case 355:
8026 /* rule 355 can match eol */
8027 YY_RULE_SETUP
8028 FAIL("Starting tag <mstorage> is not allowed here.");
8029         YY_BREAK
8030 case 356:
8031 /* rule 356 can match eol */
8032 YY_RULE_SETUP
8033 {
8034   AX_surfxml_mstorage_name = 0;
8035   surfxml_mstorage_name_isset = 0;
8036   AX_surfxml_mstorage_typeId = 0;
8037   surfxml_mstorage_typeId_isset = 0;
8038   ENTER(AL_surfxml_mstorage); pushbuffer(0);
8039   }
8040         YY_BREAK
8041
8042 case 357:
8043 /* rule 357 can match eol */
8044 YY_RULE_SETUP
8045 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
8046         YY_BREAK
8047 case 358:
8048 /* rule 358 can match eol */
8049 YY_RULE_SETUP
8050 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
8051         YY_BREAK
8052 case 359:
8053 /* rule 359 can match eol */
8054 YY_RULE_SETUP
8055 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
8056         YY_BREAK
8057 case 360:
8058 /* rule 360 can match eol */
8059 YY_RULE_SETUP
8060 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
8061         YY_BREAK
8062 case 361:
8063 YY_RULE_SETUP
8064 {
8065   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8066   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8067   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
8068  }
8069         YY_BREAK
8070 case 362:
8071 YY_RULE_SETUP
8072 {
8073   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
8074   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
8075   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
8076   switch (YY_START) {
8077    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8078   }
8079  }
8080         YY_BREAK
8081 case 363:
8082 YY_RULE_SETUP
8083 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
8084         YY_BREAK
8085 case 364:
8086 YY_RULE_SETUP
8087 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
8088         YY_BREAK
8089 case YY_STATE_EOF(AL_surfxml_mstorage):
8090 FAIL("EOF in attribute list of `mstorage' element.");
8091         YY_BREAK
8092
8093 case 365:
8094 /* rule 365 can match eol */
8095 YY_RULE_SETUP
8096 {
8097   LEAVE;
8098   ETag_surfxml_mstorage();
8099   popbuffer(); /* attribute */
8100   switch (YY_START) {
8101    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8102   }
8103  }
8104         YY_BREAK
8105 case 366:
8106 /* rule 366 can match eol */
8107 YY_RULE_SETUP
8108 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
8109         YY_BREAK
8110 case 367:
8111 YY_RULE_SETUP
8112 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
8113         YY_BREAK
8114 case YY_STATE_EOF(E_surfxml_mstorage):
8115 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
8116         YY_BREAK
8117
8118 case 368:
8119 /* rule 368 can match eol */
8120 YY_RULE_SETUP
8121 FAIL("Starting tag <peer> is not allowed here.");
8122         YY_BREAK
8123 case 369:
8124 /* rule 369 can match eol */
8125 YY_RULE_SETUP
8126 {
8127   AX_surfxml_peer_availability___file = 0;
8128   surfxml_peer_availability___file_isset = 0;
8129   AX_surfxml_peer_bw___in = 0;
8130   surfxml_peer_bw___in_isset = 0;
8131   AX_surfxml_peer_bw___out = 0;
8132   surfxml_peer_bw___out_isset = 0;
8133   AX_surfxml_peer_coordinates = 0;
8134   surfxml_peer_coordinates_isset = 0;
8135   AX_surfxml_peer_id = 0;
8136   surfxml_peer_id_isset = 0;
8137   AX_surfxml_peer_lat = 0;
8138   surfxml_peer_lat_isset = 0;
8139   AX_surfxml_peer_power = 0;
8140   surfxml_peer_power_isset = 0;
8141   AX_surfxml_peer_state___file = 0;
8142   surfxml_peer_state___file_isset = 0;
8143   ENTER(AL_surfxml_peer); pushbuffer(0);
8144   }
8145         YY_BREAK
8146
8147 case 370:
8148 /* rule 370 can match eol */
8149 YY_RULE_SETUP
8150 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
8151         YY_BREAK
8152 case 371:
8153 /* rule 371 can match eol */
8154 YY_RULE_SETUP
8155 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
8156         YY_BREAK
8157 case 372:
8158 /* rule 372 can match eol */
8159 YY_RULE_SETUP
8160 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
8161         YY_BREAK
8162 case 373:
8163 /* rule 373 can match eol */
8164 YY_RULE_SETUP
8165 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
8166         YY_BREAK
8167 case 374:
8168 /* rule 374 can match eol */
8169 YY_RULE_SETUP
8170 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
8171         YY_BREAK
8172 case 375:
8173 /* rule 375 can match eol */
8174 YY_RULE_SETUP
8175 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
8176         YY_BREAK
8177 case 376:
8178 /* rule 376 can match eol */
8179 YY_RULE_SETUP
8180 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
8181         YY_BREAK
8182 case 377:
8183 /* rule 377 can match eol */
8184 YY_RULE_SETUP
8185 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
8186         YY_BREAK
8187 case 378:
8188 /* rule 378 can match eol */
8189 YY_RULE_SETUP
8190 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
8191         YY_BREAK
8192 case 379:
8193 /* rule 379 can match eol */
8194 YY_RULE_SETUP
8195 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
8196         YY_BREAK
8197 case 380:
8198 /* rule 380 can match eol */
8199 YY_RULE_SETUP
8200 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
8201         YY_BREAK
8202 case 381:
8203 /* rule 381 can match eol */
8204 YY_RULE_SETUP
8205 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
8206         YY_BREAK
8207 case 382:
8208 /* rule 382 can match eol */
8209 YY_RULE_SETUP
8210 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
8211         YY_BREAK
8212 case 383:
8213 /* rule 383 can match eol */
8214 YY_RULE_SETUP
8215 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
8216         YY_BREAK
8217 case 384:
8218 /* rule 384 can match eol */
8219 YY_RULE_SETUP
8220 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
8221         YY_BREAK
8222 case 385:
8223 /* rule 385 can match eol */
8224 YY_RULE_SETUP
8225 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
8226         YY_BREAK
8227 case 386:
8228 YY_RULE_SETUP
8229 {
8230   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8231   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8232   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8233   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8234   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8235   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8236  }
8237         YY_BREAK
8238 case 387:
8239 YY_RULE_SETUP
8240 {
8241   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8242   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8243   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8244   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8245   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8246   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8247   switch (YY_START) {
8248    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8249    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8250    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8251   }
8252  }
8253         YY_BREAK
8254 case 388:
8255 YY_RULE_SETUP
8256 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8257         YY_BREAK
8258 case 389:
8259 YY_RULE_SETUP
8260 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8261         YY_BREAK
8262 case YY_STATE_EOF(AL_surfxml_peer):
8263 FAIL("EOF in attribute list of `peer' element.");
8264         YY_BREAK
8265
8266 case 390:
8267 /* rule 390 can match eol */
8268 YY_RULE_SETUP
8269 {
8270   LEAVE;
8271   ETag_surfxml_peer();
8272   popbuffer(); /* attribute */
8273   switch (YY_START) {
8274    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8275    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8276    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8277   }
8278  }
8279         YY_BREAK
8280 case 391:
8281 /* rule 391 can match eol */
8282 YY_RULE_SETUP
8283 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8284         YY_BREAK
8285 case 392:
8286 YY_RULE_SETUP
8287 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8288         YY_BREAK
8289 case YY_STATE_EOF(E_surfxml_peer):
8290 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8291         YY_BREAK
8292
8293 /* <!-- Small DTD for SURF based tools. -->  */
8294 case 393:
8295 /* rule 393 can match eol */
8296 YY_RULE_SETUP
8297 FAIL("Starting tag <platform> is not allowed here.");
8298         YY_BREAK
8299 case 394:
8300 /* rule 394 can match eol */
8301 YY_RULE_SETUP
8302 {
8303   AX_surfxml_platform_version = 1;
8304   surfxml_platform_version_isset = 0;
8305   ENTER(AL_surfxml_platform); pushbuffer(0);
8306   }
8307         YY_BREAK
8308
8309 case 395:
8310 /* rule 395 can match eol */
8311 YY_RULE_SETUP
8312 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
8313         YY_BREAK
8314 case 396:
8315 /* rule 396 can match eol */
8316 YY_RULE_SETUP
8317 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
8318         YY_BREAK
8319 case 397:
8320 YY_RULE_SETUP
8321 {
8322   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8323  }
8324         YY_BREAK
8325 case 398:
8326 YY_RULE_SETUP
8327 {
8328   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8329   switch (YY_START) {
8330    case ROOT_surfxml_platform: SET(EPILOG); break;
8331   }
8332  }
8333         YY_BREAK
8334 case 399:
8335 YY_RULE_SETUP
8336 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8337         YY_BREAK
8338 case 400:
8339 YY_RULE_SETUP
8340 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8341         YY_BREAK
8342 case YY_STATE_EOF(AL_surfxml_platform):
8343 FAIL("EOF in attribute list of `platform' element.");
8344         YY_BREAK
8345
8346 case 401:
8347 /* rule 401 can match eol */
8348 YY_RULE_SETUP
8349 {
8350   LEAVE;
8351   ETag_surfxml_platform();
8352   popbuffer(); /* attribute */
8353   switch (YY_START) {
8354    case ROOT_surfxml_platform: SET(EPILOG); break;
8355   }
8356  }
8357         YY_BREAK
8358 case 402:
8359 /* rule 402 can match eol */
8360 YY_RULE_SETUP
8361 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
8362         YY_BREAK
8363 case 403:
8364 YY_RULE_SETUP
8365 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
8366         YY_BREAK
8367 case YY_STATE_EOF(E_surfxml_platform):
8368 case YY_STATE_EOF(S_surfxml_platform):
8369 case YY_STATE_EOF(S_surfxml_platform_1):
8370 case YY_STATE_EOF(S_surfxml_platform_3):
8371 case YY_STATE_EOF(S_surfxml_platform_4):
8372 case YY_STATE_EOF(S_surfxml_platform_6):
8373 case YY_STATE_EOF(S_surfxml_platform_8):
8374 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
8375         YY_BREAK
8376
8377 case 404:
8378 /* rule 404 can match eol */
8379 YY_RULE_SETUP
8380 FAIL("Starting tag <process> is not allowed here.");
8381         YY_BREAK
8382 case 405:
8383 /* rule 405 can match eol */
8384 YY_RULE_SETUP
8385 {
8386   AX_surfxml_process_function = 0;
8387   surfxml_process_function_isset = 0;
8388   AX_surfxml_process_host = 0;
8389   surfxml_process_host_isset = 0;
8390   AX_surfxml_process_kill___time = 55;
8391   surfxml_process_kill___time_isset = 0;
8392   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8393   surfxml_process_on___failure_isset = 0;
8394   AX_surfxml_process_start___time = 50;
8395   surfxml_process_start___time_isset = 0;
8396   ENTER(AL_surfxml_process); pushbuffer(0);
8397   }
8398         YY_BREAK
8399
8400 case 406:
8401 /* rule 406 can match eol */
8402 YY_RULE_SETUP
8403 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8404         YY_BREAK
8405 case 407:
8406 /* rule 407 can match eol */
8407 YY_RULE_SETUP
8408 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8409         YY_BREAK
8410 case 408:
8411 /* rule 408 can match eol */
8412 YY_RULE_SETUP
8413 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8414         YY_BREAK
8415 case 409:
8416 /* rule 409 can match eol */
8417 YY_RULE_SETUP
8418 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8419         YY_BREAK
8420 case 410:
8421 /* rule 410 can match eol */
8422 YY_RULE_SETUP
8423 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
8424         YY_BREAK
8425 case 411:
8426 /* rule 411 can match eol */
8427 YY_RULE_SETUP
8428 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
8429         YY_BREAK
8430 case 412:
8431 /* rule 412 can match eol */
8432 case 413:
8433 /* rule 413 can match eol */
8434 YY_RULE_SETUP
8435 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8436         YY_BREAK
8437 case 414:
8438 /* rule 414 can match eol */
8439 case 415:
8440 /* rule 415 can match eol */
8441 YY_RULE_SETUP
8442 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8443         YY_BREAK
8444 case 416:
8445 /* rule 416 can match eol */
8446 YY_RULE_SETUP
8447 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
8448         YY_BREAK
8449 case 417:
8450 /* rule 417 can match eol */
8451 YY_RULE_SETUP
8452 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
8453         YY_BREAK
8454 case 418:
8455 YY_RULE_SETUP
8456 {
8457   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8458   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8459   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8460  }
8461         YY_BREAK
8462 case 419:
8463 YY_RULE_SETUP
8464 {
8465   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8466   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8467   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8468   switch (YY_START) {
8469    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8470   }
8471  }
8472         YY_BREAK
8473 case 420:
8474 YY_RULE_SETUP
8475 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8476         YY_BREAK
8477 case 421:
8478 YY_RULE_SETUP
8479 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8480         YY_BREAK
8481 case YY_STATE_EOF(AL_surfxml_process):
8482 FAIL("EOF in attribute list of `process' element.");
8483         YY_BREAK
8484
8485 case 422:
8486 /* rule 422 can match eol */
8487 YY_RULE_SETUP
8488 {
8489   LEAVE;
8490   ETag_surfxml_process();
8491   popbuffer(); /* attribute */
8492   switch (YY_START) {
8493    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8494   }
8495  }
8496         YY_BREAK
8497 case 423:
8498 /* rule 423 can match eol */
8499 YY_RULE_SETUP
8500 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8501         YY_BREAK
8502 case 424:
8503 YY_RULE_SETUP
8504 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8505         YY_BREAK
8506 case YY_STATE_EOF(E_surfxml_process):
8507 case YY_STATE_EOF(S_surfxml_process):
8508 case YY_STATE_EOF(S_surfxml_process_2):
8509 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8510         YY_BREAK
8511
8512 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8513   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8514 case 425:
8515 /* rule 425 can match eol */
8516 YY_RULE_SETUP
8517 FAIL("Starting tag <prop> is not allowed here.");
8518         YY_BREAK
8519 case 426:
8520 /* rule 426 can match eol */
8521 YY_RULE_SETUP
8522 {
8523   AX_surfxml_prop_id = 0;
8524   surfxml_prop_id_isset = 0;
8525   AX_surfxml_prop_value = 0;
8526   surfxml_prop_value_isset = 0;
8527   ENTER(AL_surfxml_prop); pushbuffer(0);
8528   }
8529         YY_BREAK
8530
8531 case 427:
8532 /* rule 427 can match eol */
8533 YY_RULE_SETUP
8534 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8535         YY_BREAK
8536 case 428:
8537 /* rule 428 can match eol */
8538 YY_RULE_SETUP
8539 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8540         YY_BREAK
8541 case 429:
8542 /* rule 429 can match eol */
8543 YY_RULE_SETUP
8544 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8545         YY_BREAK
8546 case 430:
8547 /* rule 430 can match eol */
8548 YY_RULE_SETUP
8549 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8550         YY_BREAK
8551 case 431:
8552 YY_RULE_SETUP
8553 {
8554   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8555   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8556   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8557  }
8558         YY_BREAK
8559 case 432:
8560 YY_RULE_SETUP
8561 {
8562   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8563   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8564   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8565   switch (YY_START) {
8566    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8567    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8568    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8569    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8570    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8571    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8572    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8573    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8574   }
8575  }
8576         YY_BREAK
8577 case 433:
8578 YY_RULE_SETUP
8579 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8580         YY_BREAK
8581 case 434:
8582 YY_RULE_SETUP
8583 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8584         YY_BREAK
8585 case YY_STATE_EOF(AL_surfxml_prop):
8586 FAIL("EOF in attribute list of `prop' element.");
8587         YY_BREAK
8588
8589 case 435:
8590 /* rule 435 can match eol */
8591 YY_RULE_SETUP
8592 {
8593   LEAVE;
8594   ETag_surfxml_prop();
8595   popbuffer(); /* attribute */
8596   switch (YY_START) {
8597    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8598    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8599    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8600    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8601    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8602    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8603    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8604    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8605   }
8606  }
8607         YY_BREAK
8608 case 436:
8609 /* rule 436 can match eol */
8610 YY_RULE_SETUP
8611 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8612         YY_BREAK
8613 case 437:
8614 YY_RULE_SETUP
8615 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8616         YY_BREAK
8617 case YY_STATE_EOF(E_surfxml_prop):
8618 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8619         YY_BREAK
8620
8621 case 438:
8622 /* rule 438 can match eol */
8623 YY_RULE_SETUP
8624 FAIL("Starting tag <random> is not allowed here.");
8625         YY_BREAK
8626 case 439:
8627 /* rule 439 can match eol */
8628 YY_RULE_SETUP
8629 {
8630   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8631   surfxml_random_generator_isset = 0;
8632   AX_surfxml_random_id = 0;
8633   surfxml_random_id_isset = 0;
8634   AX_surfxml_random_max = 0;
8635   surfxml_random_max_isset = 0;
8636   AX_surfxml_random_mean = 0;
8637   surfxml_random_mean_isset = 0;
8638   AX_surfxml_random_min = 0;
8639   surfxml_random_min_isset = 0;
8640   AX_surfxml_random_radical = 0;
8641   surfxml_random_radical_isset = 0;
8642   AX_surfxml_random_seed = 5;
8643   surfxml_random_seed_isset = 0;
8644   AX_surfxml_random_std___deviation = 0;
8645   surfxml_random_std___deviation_isset = 0;
8646   ENTER(AL_surfxml_random); pushbuffer(0);
8647   }
8648         YY_BREAK
8649
8650 case 440:
8651 /* rule 440 can match eol */
8652 case 441:
8653 /* rule 441 can match eol */
8654 YY_RULE_SETUP
8655 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8656         YY_BREAK
8657 case 442:
8658 /* rule 442 can match eol */
8659 case 443:
8660 /* rule 443 can match eol */
8661 YY_RULE_SETUP
8662 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8663         YY_BREAK
8664 case 444:
8665 /* rule 444 can match eol */
8666 case 445:
8667 /* rule 445 can match eol */
8668 YY_RULE_SETUP
8669 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8670         YY_BREAK
8671 case 446:
8672 /* rule 446 can match eol */
8673 case 447:
8674 /* rule 447 can match eol */
8675 YY_RULE_SETUP
8676 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8677         YY_BREAK
8678 case 448:
8679 /* rule 448 can match eol */
8680 YY_RULE_SETUP
8681 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
8682         YY_BREAK
8683 case 449:
8684 /* rule 449 can match eol */
8685 YY_RULE_SETUP
8686 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
8687         YY_BREAK
8688 case 450:
8689 /* rule 450 can match eol */
8690 YY_RULE_SETUP
8691 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
8692         YY_BREAK
8693 case 451:
8694 /* rule 451 can match eol */
8695 YY_RULE_SETUP
8696 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
8697         YY_BREAK
8698 case 452:
8699 /* rule 452 can match eol */
8700 YY_RULE_SETUP
8701 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
8702         YY_BREAK
8703 case 453:
8704 /* rule 453 can match eol */
8705 YY_RULE_SETUP
8706 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
8707         YY_BREAK
8708 case 454:
8709 /* rule 454 can match eol */
8710 YY_RULE_SETUP
8711 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
8712         YY_BREAK
8713 case 455:
8714 /* rule 455 can match eol */
8715 YY_RULE_SETUP
8716 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
8717         YY_BREAK
8718 case 456:
8719 /* rule 456 can match eol */
8720 YY_RULE_SETUP
8721 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
8722         YY_BREAK
8723 case 457:
8724 /* rule 457 can match eol */
8725 YY_RULE_SETUP
8726 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
8727         YY_BREAK
8728 case 458:
8729 /* rule 458 can match eol */
8730 YY_RULE_SETUP
8731 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
8732         YY_BREAK
8733 case 459:
8734 /* rule 459 can match eol */
8735 YY_RULE_SETUP
8736 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
8737         YY_BREAK
8738 case 460:
8739 /* rule 460 can match eol */
8740 YY_RULE_SETUP
8741 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
8742         YY_BREAK
8743 case 461:
8744 /* rule 461 can match eol */
8745 YY_RULE_SETUP
8746 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
8747         YY_BREAK
8748 case 462:
8749 YY_RULE_SETUP
8750 {
8751   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8752   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8753   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8754   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8755   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8756   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8757  }
8758         YY_BREAK
8759 case 463:
8760 YY_RULE_SETUP
8761 {
8762   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8763   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8764   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8765   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8766   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8767   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8768   switch (YY_START) {
8769    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8770   }
8771  }
8772         YY_BREAK
8773 case 464:
8774 YY_RULE_SETUP
8775 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8776         YY_BREAK
8777 case 465:
8778 YY_RULE_SETUP
8779 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8780         YY_BREAK
8781 case YY_STATE_EOF(AL_surfxml_random):
8782 FAIL("EOF in attribute list of `random' element.");
8783         YY_BREAK
8784
8785 case 466:
8786 /* rule 466 can match eol */
8787 YY_RULE_SETUP
8788 {
8789   LEAVE;
8790   ETag_surfxml_random();
8791   popbuffer(); /* attribute */
8792   switch (YY_START) {
8793    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8794   }
8795  }
8796         YY_BREAK
8797 case 467:
8798 /* rule 467 can match eol */
8799 YY_RULE_SETUP
8800 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8801         YY_BREAK
8802 case 468:
8803 YY_RULE_SETUP
8804 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8805         YY_BREAK
8806 case YY_STATE_EOF(E_surfxml_random):
8807 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8808         YY_BREAK
8809
8810 case 469:
8811 /* rule 469 can match eol */
8812 YY_RULE_SETUP
8813 FAIL("Starting tag <route> is not allowed here.");
8814         YY_BREAK
8815 case 470:
8816 /* rule 470 can match eol */
8817 YY_RULE_SETUP
8818 {
8819   AX_surfxml_route_dst = 0;
8820   surfxml_route_dst_isset = 0;
8821   AX_surfxml_route_src = 0;
8822   surfxml_route_src_isset = 0;
8823   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8824   surfxml_route_symmetrical_isset = 0;
8825   ENTER(AL_surfxml_route); pushbuffer(0);
8826   }
8827         YY_BREAK
8828
8829 case 471:
8830 /* rule 471 can match eol */
8831 YY_RULE_SETUP
8832 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
8833         YY_BREAK
8834 case 472:
8835 /* rule 472 can match eol */
8836 YY_RULE_SETUP
8837 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
8838         YY_BREAK
8839 case 473:
8840 /* rule 473 can match eol */
8841 YY_RULE_SETUP
8842 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
8843         YY_BREAK
8844 case 474:
8845 /* rule 474 can match eol */
8846 YY_RULE_SETUP
8847 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
8848         YY_BREAK
8849 case 475:
8850 /* rule 475 can match eol */
8851 case 476:
8852 /* rule 476 can match eol */
8853 YY_RULE_SETUP
8854 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8855         YY_BREAK
8856 case 477:
8857 /* rule 477 can match eol */
8858 case 478:
8859 /* rule 478 can match eol */
8860 YY_RULE_SETUP
8861 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8862         YY_BREAK
8863 case 479:
8864 YY_RULE_SETUP
8865 {
8866   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8867   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8868   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8869  }
8870         YY_BREAK
8871 case 480:
8872 YY_RULE_SETUP
8873 {
8874   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8875   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8876   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8877   switch (YY_START) {
8878    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8879   }
8880  }
8881         YY_BREAK
8882 case 481:
8883 YY_RULE_SETUP
8884 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8885         YY_BREAK
8886 case 482:
8887 YY_RULE_SETUP
8888 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8889         YY_BREAK
8890 case YY_STATE_EOF(AL_surfxml_route):
8891 FAIL("EOF in attribute list of `route' element.");
8892         YY_BREAK
8893
8894 case 483:
8895 /* rule 483 can match eol */
8896 YY_RULE_SETUP
8897 {
8898   LEAVE;
8899   ETag_surfxml_route();
8900   popbuffer(); /* attribute */
8901   switch (YY_START) {
8902    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8903   }
8904  }
8905         YY_BREAK
8906 case 484:
8907 /* rule 484 can match eol */
8908 YY_RULE_SETUP
8909 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8910         YY_BREAK
8911 case 485:
8912 YY_RULE_SETUP
8913 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8914         YY_BREAK
8915 case YY_STATE_EOF(E_surfxml_route):
8916 case YY_STATE_EOF(S_surfxml_route):
8917 case YY_STATE_EOF(S_surfxml_route_2):
8918 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8919         YY_BREAK
8920
8921 case 486:
8922 /* rule 486 can match eol */
8923 YY_RULE_SETUP
8924 FAIL("Starting tag <router> is not allowed here.");
8925         YY_BREAK
8926 case 487:
8927 /* rule 487 can match eol */
8928 YY_RULE_SETUP
8929 {
8930   AX_surfxml_router_coordinates = 0;
8931   surfxml_router_coordinates_isset = 0;
8932   AX_surfxml_router_id = 0;
8933   surfxml_router_id_isset = 0;
8934   ENTER(AL_surfxml_router); pushbuffer(0);
8935   }
8936         YY_BREAK
8937
8938 case 488:
8939 /* rule 488 can match eol */
8940 YY_RULE_SETUP
8941 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
8942         YY_BREAK
8943 case 489:
8944 /* rule 489 can match eol */
8945 YY_RULE_SETUP
8946 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
8947         YY_BREAK
8948 case 490:
8949 /* rule 490 can match eol */
8950 YY_RULE_SETUP
8951 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
8952         YY_BREAK
8953 case 491:
8954 /* rule 491 can match eol */
8955 YY_RULE_SETUP
8956 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
8957         YY_BREAK
8958 case 492:
8959 YY_RULE_SETUP
8960 {
8961   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8962   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8963  }
8964         YY_BREAK
8965 case 493:
8966 YY_RULE_SETUP
8967 {
8968   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8969   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8970   switch (YY_START) {
8971    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8972   }
8973  }
8974         YY_BREAK
8975 case 494:
8976 YY_RULE_SETUP
8977 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8978         YY_BREAK
8979 case 495:
8980 YY_RULE_SETUP
8981 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8982         YY_BREAK
8983 case YY_STATE_EOF(AL_surfxml_router):
8984 FAIL("EOF in attribute list of `router' element.");
8985         YY_BREAK
8986
8987 case 496:
8988 /* rule 496 can match eol */
8989 YY_RULE_SETUP
8990 {
8991   LEAVE;
8992   ETag_surfxml_router();
8993   popbuffer(); /* attribute */
8994   switch (YY_START) {
8995    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8996   }
8997  }
8998         YY_BREAK
8999 case 497:
9000 /* rule 497 can match eol */
9001 YY_RULE_SETUP
9002 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
9003         YY_BREAK
9004 case 498:
9005 YY_RULE_SETUP
9006 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
9007         YY_BREAK
9008 case YY_STATE_EOF(E_surfxml_router):
9009 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
9010         YY_BREAK
9011
9012 case 499:
9013 /* rule 499 can match eol */
9014 YY_RULE_SETUP
9015 FAIL("Starting tag <storage> is not allowed here.");
9016         YY_BREAK
9017 case 500:
9018 /* rule 500 can match eol */
9019 YY_RULE_SETUP
9020 {
9021   AX_surfxml_storage_attach = 0;
9022   surfxml_storage_attach_isset = 0;
9023   AX_surfxml_storage_content = 0;
9024   surfxml_storage_content_isset = 0;
9025   AX_surfxml_storage_content___type = 35;
9026   surfxml_storage_content___type_isset = 0;
9027   AX_surfxml_storage_id = 0;
9028   surfxml_storage_id_isset = 0;
9029   AX_surfxml_storage_typeId = 0;
9030   surfxml_storage_typeId_isset = 0;
9031   ENTER(AL_surfxml_storage); pushbuffer(0);
9032   }
9033         YY_BREAK
9034
9035 case 501:
9036 /* rule 501 can match eol */
9037 YY_RULE_SETUP
9038 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
9039         YY_BREAK
9040 case 502:
9041 /* rule 502 can match eol */
9042 YY_RULE_SETUP
9043 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
9044         YY_BREAK
9045 case 503:
9046 /* rule 503 can match eol */
9047 YY_RULE_SETUP
9048 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
9049         YY_BREAK
9050 case 504:
9051 /* rule 504 can match eol */
9052 YY_RULE_SETUP
9053 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
9054         YY_BREAK
9055 case 505:
9056 /* rule 505 can match eol */
9057 YY_RULE_SETUP
9058 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
9059         YY_BREAK
9060 case 506:
9061 /* rule 506 can match eol */
9062 YY_RULE_SETUP
9063 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
9064         YY_BREAK
9065 case 507:
9066 /* rule 507 can match eol */
9067 YY_RULE_SETUP
9068 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
9069         YY_BREAK
9070 case 508:
9071 /* rule 508 can match eol */
9072 YY_RULE_SETUP
9073 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
9074         YY_BREAK
9075 case 509:
9076 /* rule 509 can match eol */
9077 YY_RULE_SETUP
9078 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
9079         YY_BREAK
9080 case 510:
9081 /* rule 510 can match eol */
9082 YY_RULE_SETUP
9083 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
9084         YY_BREAK
9085 case 511:
9086 YY_RULE_SETUP
9087 {
9088   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9089   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9090   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9091   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9092  }
9093         YY_BREAK
9094 case 512:
9095 YY_RULE_SETUP
9096 {
9097   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9098   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9099   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9100   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9101   switch (YY_START) {
9102    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9103   }
9104  }
9105         YY_BREAK
9106 case 513:
9107 YY_RULE_SETUP
9108 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9109         YY_BREAK
9110 case 514:
9111 YY_RULE_SETUP
9112 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9113         YY_BREAK
9114 case YY_STATE_EOF(AL_surfxml_storage):
9115 FAIL("EOF in attribute list of `storage' element.");
9116         YY_BREAK
9117
9118 case 515:
9119 /* rule 515 can match eol */
9120 YY_RULE_SETUP
9121 {
9122   LEAVE;
9123   ETag_surfxml_storage();
9124   popbuffer(); /* attribute */
9125   switch (YY_START) {
9126    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9127   }
9128  }
9129         YY_BREAK
9130 case 516:
9131 /* rule 516 can match eol */
9132 YY_RULE_SETUP
9133 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9134         YY_BREAK
9135 case 517:
9136 YY_RULE_SETUP
9137 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9138         YY_BREAK
9139 case YY_STATE_EOF(E_surfxml_storage):
9140 case YY_STATE_EOF(S_surfxml_storage):
9141 case YY_STATE_EOF(S_surfxml_storage_2):
9142 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
9143         YY_BREAK
9144
9145 case 518:
9146 /* rule 518 can match eol */
9147 YY_RULE_SETUP
9148 FAIL("Starting tag <storage_type> is not allowed here.");
9149         YY_BREAK
9150 case 519:
9151 /* rule 519 can match eol */
9152 YY_RULE_SETUP
9153 {
9154   AX_surfxml_storage___type_content = 0;
9155   surfxml_storage___type_content_isset = 0;
9156   AX_surfxml_storage___type_content___type = 16;
9157   surfxml_storage___type_content___type_isset = 0;
9158   AX_surfxml_storage___type_id = 0;
9159   surfxml_storage___type_id_isset = 0;
9160   AX_surfxml_storage___type_model = 0;
9161   surfxml_storage___type_model_isset = 0;
9162   AX_surfxml_storage___type_size = 0;
9163   surfxml_storage___type_size_isset = 0;
9164   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9165   }
9166         YY_BREAK
9167
9168 case 520:
9169 /* rule 520 can match eol */
9170 YY_RULE_SETUP
9171 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
9172         YY_BREAK
9173 case 521:
9174 /* rule 521 can match eol */
9175 YY_RULE_SETUP
9176 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
9177         YY_BREAK
9178 case 522:
9179 /* rule 522 can match eol */
9180 YY_RULE_SETUP
9181 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
9182         YY_BREAK
9183 case 523:
9184 /* rule 523 can match eol */
9185 YY_RULE_SETUP
9186 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
9187         YY_BREAK
9188 case 524:
9189 /* rule 524 can match eol */
9190 YY_RULE_SETUP
9191 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
9192         YY_BREAK
9193 case 525:
9194 /* rule 525 can match eol */
9195 YY_RULE_SETUP
9196 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
9197         YY_BREAK
9198 case 526:
9199 /* rule 526 can match eol */
9200 YY_RULE_SETUP
9201 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
9202         YY_BREAK
9203 case 527:
9204 /* rule 527 can match eol */
9205 YY_RULE_SETUP
9206 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
9207         YY_BREAK
9208 case 528:
9209 /* rule 528 can match eol */
9210 YY_RULE_SETUP
9211 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
9212         YY_BREAK
9213 case 529:
9214 /* rule 529 can match eol */
9215 YY_RULE_SETUP
9216 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
9217         YY_BREAK
9218 case 530:
9219 YY_RULE_SETUP
9220 {
9221   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9222   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9223   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9224   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9225  }
9226         YY_BREAK
9227 case 531:
9228 YY_RULE_SETUP
9229 {
9230   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9231   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9232   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9233   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9234   switch (YY_START) {
9235    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9236   }
9237  }
9238         YY_BREAK
9239 case 532:
9240 YY_RULE_SETUP
9241 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9242         YY_BREAK
9243 case 533:
9244 YY_RULE_SETUP
9245 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9246         YY_BREAK
9247 case YY_STATE_EOF(AL_surfxml_storage___type):
9248 FAIL("EOF in attribute list of `storage_type' element.");
9249         YY_BREAK
9250
9251 case 534:
9252 /* rule 534 can match eol */
9253 YY_RULE_SETUP
9254 {
9255   LEAVE;
9256   ETag_surfxml_storage___type();
9257   popbuffer(); /* attribute */
9258   switch (YY_START) {
9259    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9260   }
9261  }
9262         YY_BREAK
9263 case 535:
9264 /* rule 535 can match eol */
9265 YY_RULE_SETUP
9266 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9267         YY_BREAK
9268 case 536:
9269 YY_RULE_SETUP
9270 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9271         YY_BREAK
9272 case YY_STATE_EOF(E_surfxml_storage___type):
9273 case YY_STATE_EOF(S_surfxml_storage___type):
9274 case YY_STATE_EOF(S_surfxml_storage___type_2):
9275 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9276         YY_BREAK
9277
9278 case 537:
9279 /* rule 537 can match eol */
9280 YY_RULE_SETUP
9281 FAIL("Starting tag <trace> is not allowed here.");
9282         YY_BREAK
9283 case 538:
9284 /* rule 538 can match eol */
9285 YY_RULE_SETUP
9286 {
9287   AX_surfxml_trace_file = 0;
9288   surfxml_trace_file_isset = 0;
9289   AX_surfxml_trace_id = 0;
9290   surfxml_trace_id_isset = 0;
9291   AX_surfxml_trace_periodicity = 0;
9292   surfxml_trace_periodicity_isset = 0;
9293   ENTER(AL_surfxml_trace); pushbuffer(0);
9294   }
9295         YY_BREAK
9296
9297 case 539:
9298 /* rule 539 can match eol */
9299 YY_RULE_SETUP
9300 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
9301         YY_BREAK
9302 case 540:
9303 /* rule 540 can match eol */
9304 YY_RULE_SETUP
9305 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
9306         YY_BREAK
9307 case 541:
9308 /* rule 541 can match eol */
9309 YY_RULE_SETUP
9310 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
9311         YY_BREAK
9312 case 542:
9313 /* rule 542 can match eol */
9314 YY_RULE_SETUP
9315 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
9316         YY_BREAK
9317 case 543:
9318 /* rule 543 can match eol */
9319 YY_RULE_SETUP
9320 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
9321         YY_BREAK
9322 case 544:
9323 /* rule 544 can match eol */
9324 YY_RULE_SETUP
9325 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
9326         YY_BREAK
9327 case 545:
9328 YY_RULE_SETUP
9329 {
9330   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9331   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9332   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9333  }
9334         YY_BREAK
9335 case 546:
9336 YY_RULE_SETUP
9337 {
9338   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9339   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9340   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9341   switch (YY_START) {
9342    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9343    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9344    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9345   }
9346  }
9347         YY_BREAK
9348 case 547:
9349 YY_RULE_SETUP
9350 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9351         YY_BREAK
9352 case 548:
9353 YY_RULE_SETUP
9354 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9355         YY_BREAK
9356 case YY_STATE_EOF(AL_surfxml_trace):
9357 FAIL("EOF in attribute list of `trace' element.");
9358         YY_BREAK
9359
9360 case 549:
9361 /* rule 549 can match eol */
9362 YY_RULE_SETUP
9363 {
9364   LEAVE;
9365   BUFFERDONE;
9366   ETag_surfxml_trace();
9367   surfxml_pcdata_ix = popbuffer();
9368   popbuffer(); /* attribute */
9369   switch (YY_START) {
9370    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9371    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9372    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9373   }
9374  }
9375         YY_BREAK
9376 case 550:
9377 /* rule 550 can match eol */
9378 YY_RULE_SETUP
9379 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
9380         YY_BREAK
9381 case YY_STATE_EOF(IN_trace):
9382 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
9383         YY_BREAK
9384
9385 case 551:
9386 /* rule 551 can match eol */
9387 YY_RULE_SETUP
9388 FAIL("Starting tag <trace_connect> is not allowed here.");
9389         YY_BREAK
9390 case 552:
9391 /* rule 552 can match eol */
9392 YY_RULE_SETUP
9393 {
9394   AX_surfxml_trace___connect_element = 0;
9395   surfxml_trace___connect_element_isset = 0;
9396   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9397   surfxml_trace___connect_kind_isset = 0;
9398   AX_surfxml_trace___connect_trace = 0;
9399   surfxml_trace___connect_trace_isset = 0;
9400   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
9401   }
9402         YY_BREAK
9403
9404 case 553:
9405 /* rule 553 can match eol */
9406 YY_RULE_SETUP
9407 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
9408         YY_BREAK
9409 case 554:
9410 /* rule 554 can match eol */
9411 YY_RULE_SETUP
9412 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
9413         YY_BREAK
9414 case 555:
9415 /* rule 555 can match eol */
9416 case 556:
9417 /* rule 556 can match eol */
9418 YY_RULE_SETUP
9419 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9420         YY_BREAK
9421 case 557:
9422 /* rule 557 can match eol */
9423 case 558:
9424 /* rule 558 can match eol */
9425 YY_RULE_SETUP
9426 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
9427         YY_BREAK
9428 case 559:
9429 /* rule 559 can match eol */
9430 case 560:
9431 /* rule 560 can match eol */
9432 YY_RULE_SETUP
9433 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9434         YY_BREAK
9435 case 561:
9436 /* rule 561 can match eol */
9437 case 562:
9438 /* rule 562 can match eol */
9439 YY_RULE_SETUP
9440 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9441         YY_BREAK
9442 case 563:
9443 /* rule 563 can match eol */
9444 case 564:
9445 /* rule 564 can match eol */
9446 YY_RULE_SETUP
9447 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9448         YY_BREAK
9449 case 565:
9450 /* rule 565 can match eol */
9451 YY_RULE_SETUP
9452 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
9453         YY_BREAK
9454 case 566:
9455 /* rule 566 can match eol */
9456 YY_RULE_SETUP
9457 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
9458         YY_BREAK
9459 case 567:
9460 YY_RULE_SETUP
9461 {
9462   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9463   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9464   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9465  }
9466         YY_BREAK
9467 case 568:
9468 YY_RULE_SETUP
9469 {
9470   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9471   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9472   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9473   switch (YY_START) {
9474    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9475    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9476    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9477   }
9478  }
9479         YY_BREAK
9480 case 569:
9481 YY_RULE_SETUP
9482 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9483         YY_BREAK
9484 case 570:
9485 YY_RULE_SETUP
9486 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9487         YY_BREAK
9488 case YY_STATE_EOF(AL_surfxml_trace___connect):
9489 FAIL("EOF in attribute list of `trace_connect' element.");
9490         YY_BREAK
9491
9492 case 571:
9493 /* rule 571 can match eol */
9494 YY_RULE_SETUP
9495 {
9496   LEAVE;
9497   ETag_surfxml_trace___connect();
9498   popbuffer(); /* attribute */
9499   switch (YY_START) {
9500    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9501    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9502    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9503   }
9504  }
9505         YY_BREAK
9506 case 572:
9507 /* rule 572 can match eol */
9508 YY_RULE_SETUP
9509 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9510         YY_BREAK
9511 case 573:
9512 YY_RULE_SETUP
9513 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9514         YY_BREAK
9515 case YY_STATE_EOF(E_surfxml_trace___connect):
9516 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9517         YY_BREAK
9518
9519 /* EPILOG: after the root element. */
9520
9521 case 574:
9522 YY_RULE_SETUP
9523 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9524         YY_BREAK
9525 case YY_STATE_EOF(EPILOG):
9526 SUCCEED;
9527         YY_BREAK
9528
9529 /* CHARACTER DATA. */
9530
9531 /* Non-defined standard entities... */
9532 case 575:
9533 YY_RULE_SETUP
9534 BUFFERPUTC('&');
9535         YY_BREAK
9536 case 576:
9537 YY_RULE_SETUP
9538 BUFFERPUTC('<');
9539         YY_BREAK
9540 case 577:
9541 YY_RULE_SETUP
9542 BUFFERPUTC('>');
9543         YY_BREAK
9544 case 578:
9545 YY_RULE_SETUP
9546 BUFFERPUTC('\'');
9547         YY_BREAK
9548 case 579:
9549 YY_RULE_SETUP
9550 BUFFERPUTC('"');
9551         YY_BREAK
9552 /* Character entities. */
9553 case 580:
9554 YY_RULE_SETUP
9555 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9556         YY_BREAK
9557 case 581:
9558 YY_RULE_SETUP
9559 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9560         YY_BREAK
9561
9562 case 582:
9563 /* rule 582 can match eol */
9564 case 583:
9565 /* rule 583 can match eol */
9566 case 584:
9567 /* rule 584 can match eol */
9568 case 585:
9569 /* rule 585 can match eol */
9570 YY_RULE_SETUP
9571 BUFFERPUTC('\n');
9572         YY_BREAK
9573
9574 case 586:
9575 YY_RULE_SETUP
9576 ENTER(CDATA);
9577         YY_BREAK
9578 case 587:
9579 YY_RULE_SETUP
9580 FAIL("Unexpected `]""]>' in character data.");
9581         YY_BREAK
9582
9583 case 588:
9584 YY_RULE_SETUP
9585 BUFFERDONE; LEAVE;
9586         YY_BREAK
9587 case YY_STATE_EOF(VALUE1):
9588 FAIL("EOF in literal (\"'\" expected).");
9589         YY_BREAK
9590
9591 case 589:
9592 YY_RULE_SETUP
9593 BUFFERDONE; LEAVE;
9594         YY_BREAK
9595 case YY_STATE_EOF(VALUE2):
9596 FAIL("EOF in literal (`\"' expected).");
9597         YY_BREAK
9598
9599 case 590:
9600 /* rule 590 can match eol */
9601 YY_RULE_SETUP
9602 BUFFERPUTC(surf_parse_text[0]);
9603         YY_BREAK
9604 case 591:
9605 YY_RULE_SETUP
9606 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9607         YY_BREAK
9608
9609 case 592:
9610 YY_RULE_SETUP
9611 LEAVE;
9612         YY_BREAK
9613 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9614 case 593:
9615 YY_RULE_SETUP
9616 BUFFERPUTC(surf_parse_text[0]);
9617         YY_BREAK
9618 case YY_STATE_EOF(CDATA):
9619 FAIL("EOF in CDATA section.");
9620         YY_BREAK
9621
9622 /* Impossible rules to avoid warnings from flex(1). */
9623 /* Ideally, this should be replaced by code in flexml.pl that
9624     generates just the states not covered by other rules. */
9625
9626 case 594:
9627 /* rule 594 can match eol */
9628 YY_RULE_SETUP
9629 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9630         YY_BREAK
9631
9632 case 595:
9633 YY_RULE_SETUP
9634 ECHO;
9635         YY_BREAK
9636 case YY_STATE_EOF(INITIAL):
9637 case YY_STATE_EOF(S_surfxml_AS_2):
9638 case YY_STATE_EOF(S_surfxml_AS_5):
9639 case YY_STATE_EOF(S_surfxml_AS_7):
9640 case YY_STATE_EOF(S_surfxml_ASroute_1):
9641 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9642 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9643 case YY_STATE_EOF(S_surfxml_cluster_1):
9644 case YY_STATE_EOF(S_surfxml_config_1):
9645 case YY_STATE_EOF(S_surfxml_host_1):
9646 case YY_STATE_EOF(S_surfxml_include_1):
9647 case YY_STATE_EOF(S_surfxml_link_1):
9648 case YY_STATE_EOF(ROOT_surfxml_platform):
9649 case YY_STATE_EOF(S_surfxml_platform_2):
9650 case YY_STATE_EOF(S_surfxml_platform_5):
9651 case YY_STATE_EOF(S_surfxml_platform_7):
9652 case YY_STATE_EOF(S_surfxml_process_1):
9653 case YY_STATE_EOF(S_surfxml_route_1):
9654 case YY_STATE_EOF(S_surfxml_storage_1):
9655 case YY_STATE_EOF(S_surfxml_storage___type_1):
9656 case YY_STATE_EOF(IMPOSSIBLE):
9657         yyterminate();
9658
9659         case YY_END_OF_BUFFER:
9660                 {
9661                 /* Amount of text matched not including the EOB char. */
9662                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9663
9664                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9665                 *yy_cp = (yy_hold_char);
9666                 YY_RESTORE_YY_MORE_OFFSET
9667
9668                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9669                         {
9670                         /* We're scanning a new file or input source.  It's
9671                          * possible that this happened because the user
9672                          * just pointed surf_parse_in at a new source and called
9673                          * surf_parse_lex().  If so, then we have to assure
9674                          * consistency between YY_CURRENT_BUFFER and our
9675                          * globals.  Here is the right place to do so, because
9676                          * this is the first action (other than possibly a
9677                          * back-up) that will match for the new input source.
9678                          */
9679                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9680                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9681                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9682                         }
9683
9684                 /* Note that here we test for yy_c_buf_p "<=" to the position
9685                  * of the first EOB in the buffer, since yy_c_buf_p will
9686                  * already have been incremented past the NUL character
9687                  * (since all states make transitions on EOB to the
9688                  * end-of-buffer state).  Contrast this with the test
9689                  * in input().
9690                  */
9691                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9692                         { /* This was really a NUL. */
9693                         yy_state_type yy_next_state;
9694
9695                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9696
9697                         yy_current_state = yy_get_previous_state(  );
9698
9699                         /* Okay, we're now positioned to make the NUL
9700                          * transition.  We couldn't have
9701                          * yy_get_previous_state() go ahead and do it
9702                          * for us because it doesn't know how to deal
9703                          * with the possibility of jamming (and we don't
9704                          * want to build jamming into it because then it
9705                          * will run more slowly).
9706                          */
9707
9708                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9709
9710                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9711
9712                         if ( yy_next_state )
9713                                 {
9714                                 /* Consume the NUL. */
9715                                 yy_cp = ++(yy_c_buf_p);
9716                                 yy_current_state = yy_next_state;
9717                                 goto yy_match;
9718                                 }
9719
9720                         else
9721                                 {
9722                                 yy_cp = (yy_c_buf_p);
9723                                 goto yy_find_action;
9724                                 }
9725                         }
9726
9727                 else switch ( yy_get_next_buffer(  ) )
9728                         {
9729                         case EOB_ACT_END_OF_FILE:
9730                                 {
9731                                 (yy_did_buffer_switch_on_eof) = 0;
9732
9733                                 if ( surf_parse_wrap( ) )
9734                                         {
9735                                         /* Note: because we've taken care in
9736                                          * yy_get_next_buffer() to have set up
9737                                          * surf_parse_text, we can now set up
9738                                          * yy_c_buf_p so that if some total
9739                                          * hoser (like flex itself) wants to
9740                                          * call the scanner after we return the
9741                                          * YY_NULL, it'll still work - another
9742                                          * YY_NULL will get returned.
9743                                          */
9744                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9745
9746                                         yy_act = YY_STATE_EOF(YY_START);
9747                                         goto do_action;
9748                                         }
9749
9750                                 else
9751                                         {
9752                                         if ( ! (yy_did_buffer_switch_on_eof) )
9753                                                 YY_NEW_FILE;
9754                                         }
9755                                 break;
9756                                 }
9757
9758                         case EOB_ACT_CONTINUE_SCAN:
9759                                 (yy_c_buf_p) =
9760                                         (yytext_ptr) + yy_amount_of_matched_text;
9761
9762                                 yy_current_state = yy_get_previous_state(  );
9763
9764                                 yy_cp = (yy_c_buf_p);
9765                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9766                                 goto yy_match;
9767
9768                         case EOB_ACT_LAST_MATCH:
9769                                 (yy_c_buf_p) =
9770                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9771
9772                                 yy_current_state = yy_get_previous_state(  );
9773
9774                                 yy_cp = (yy_c_buf_p);
9775                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9776                                 goto yy_find_action;
9777                         }
9778                 break;
9779                 }
9780
9781         default:
9782                 YY_FATAL_ERROR(
9783                         "fatal flex scanner internal error--no action found" );
9784         } /* end of action switch */
9785                 } /* end of scanning one token */
9786         } /* end of user's declarations */
9787 } /* end of surf_parse_lex */
9788
9789 /* yy_get_next_buffer - try to read in a new buffer
9790  *
9791  * Returns a code representing an action:
9792  *      EOB_ACT_LAST_MATCH -
9793  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9794  *      EOB_ACT_END_OF_FILE - end of file
9795  */
9796 static int yy_get_next_buffer (void)
9797 {
9798         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9799         char *source = (yytext_ptr);
9800         int number_to_move, i;
9801         int ret_val;
9802
9803         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9804                 YY_FATAL_ERROR(
9805                 "fatal flex scanner internal error--end of buffer missed" );
9806
9807         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9808                 { /* Don't try to fill the buffer, so this is an EOF. */
9809                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9810                         {
9811                         /* We matched a single character, the EOB, so
9812                          * treat this as a final EOF.
9813                          */
9814                         return EOB_ACT_END_OF_FILE;
9815                         }
9816
9817                 else
9818                         {
9819                         /* We matched some text prior to the EOB, first
9820                          * process it.
9821                          */
9822                         return EOB_ACT_LAST_MATCH;
9823                         }
9824                 }
9825
9826         /* Try to read more data. */
9827
9828         /* First move last chars to start of buffer. */
9829         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9830
9831         for ( i = 0; i < number_to_move; ++i )
9832                 *(dest++) = *(source++);
9833
9834         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9835                 /* don't do the read, it's not guaranteed to return an EOF,
9836                  * just force an EOF
9837                  */
9838                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9839
9840         else
9841                 {
9842                         yy_size_t num_to_read =
9843                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9844
9845                 while ( num_to_read <= 0 )
9846                         { /* Not enough room in the buffer - grow it. */
9847
9848                         /* just a shorter name for the current buffer */
9849                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9850
9851                         int yy_c_buf_p_offset =
9852                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9853
9854                         if ( b->yy_is_our_buffer )
9855                                 {
9856                                 yy_size_t new_size = b->yy_buf_size * 2;
9857
9858                                 if ( new_size <= 0 )
9859                                         b->yy_buf_size += b->yy_buf_size / 8;
9860                                 else
9861                                         b->yy_buf_size *= 2;
9862
9863                                 b->yy_ch_buf = (char *)
9864                                         /* Include room in for 2 EOB chars. */
9865                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9866                                 }
9867                         else
9868                                 /* Can't grow it, we don't own it. */
9869                                 b->yy_ch_buf = 0;
9870
9871                         if ( ! b->yy_ch_buf )
9872                                 YY_FATAL_ERROR(
9873                                 "fatal error - scanner input buffer overflow" );
9874
9875                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9876
9877                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9878                                                 number_to_move - 1;
9879
9880                         }
9881
9882                 if ( num_to_read > YY_READ_BUF_SIZE )
9883                         num_to_read = YY_READ_BUF_SIZE;
9884
9885                 /* Read in more data. */
9886                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9887                         (yy_n_chars), num_to_read );
9888
9889                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9890                 }
9891
9892         if ( (yy_n_chars) == 0 )
9893                 {
9894                 if ( number_to_move == YY_MORE_ADJ )
9895                         {
9896                         ret_val = EOB_ACT_END_OF_FILE;
9897                         surf_parse_restart(surf_parse_in  );
9898                         }
9899
9900                 else
9901                         {
9902                         ret_val = EOB_ACT_LAST_MATCH;
9903                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9904                                 YY_BUFFER_EOF_PENDING;
9905                         }
9906                 }
9907
9908         else
9909                 ret_val = EOB_ACT_CONTINUE_SCAN;
9910
9911         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9912                 /* Extend the array by 50%, plus the number we really need. */
9913                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9914                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9915                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9916                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9917         }
9918
9919         (yy_n_chars) += number_to_move;
9920         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9921         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9922
9923         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9924
9925         return ret_val;
9926 }
9927
9928 /* yy_get_previous_state - get the state just before the EOB char was reached */
9929
9930     static yy_state_type yy_get_previous_state (void)
9931 {
9932         yy_state_type yy_current_state;
9933         char *yy_cp;
9934     
9935         yy_current_state = (yy_start);
9936
9937         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9938                 {
9939                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9940                 if ( yy_accept[yy_current_state] )
9941                         {
9942                         (yy_last_accepting_state) = yy_current_state;
9943                         (yy_last_accepting_cpos) = yy_cp;
9944                         }
9945                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9946                         {
9947                         yy_current_state = (int) yy_def[yy_current_state];
9948                         if ( yy_current_state >= 3466 )
9949                                 yy_c = yy_meta[(unsigned int) yy_c];
9950                         }
9951                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9952                 }
9953
9954         return yy_current_state;
9955 }
9956
9957 /* yy_try_NUL_trans - try to make a transition on the NUL character
9958  *
9959  * synopsis
9960  *      next_state = yy_try_NUL_trans( current_state );
9961  */
9962     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9963 {
9964         int yy_is_jam;
9965         char *yy_cp = (yy_c_buf_p);
9966
9967         YY_CHAR yy_c = 1;
9968         if ( yy_accept[yy_current_state] )
9969                 {
9970                 (yy_last_accepting_state) = yy_current_state;
9971                 (yy_last_accepting_cpos) = yy_cp;
9972                 }
9973         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9974                 {
9975                 yy_current_state = (int) yy_def[yy_current_state];
9976                 if ( yy_current_state >= 3466 )
9977                         yy_c = yy_meta[(unsigned int) yy_c];
9978                 }
9979         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9980         yy_is_jam = (yy_current_state == 3465);
9981
9982                 return yy_is_jam ? 0 : yy_current_state;
9983 }
9984
9985 #ifndef YY_NO_INPUT
9986 #ifdef __cplusplus
9987     static int yyinput (void)
9988 #else
9989     static int input  (void)
9990 #endif
9991
9992 {
9993         int c;
9994     
9995         *(yy_c_buf_p) = (yy_hold_char);
9996
9997         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9998                 {
9999                 /* yy_c_buf_p now points to the character we want to return.
10000                  * If this occurs *before* the EOB characters, then it's a
10001                  * valid NUL; if not, then we've hit the end of the buffer.
10002                  */
10003                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10004                         /* This was really a NUL. */
10005                         *(yy_c_buf_p) = '\0';
10006
10007                 else
10008                         { /* need more input */
10009                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
10010                         ++(yy_c_buf_p);
10011
10012                         switch ( yy_get_next_buffer(  ) )
10013                                 {
10014                                 case EOB_ACT_LAST_MATCH:
10015                                         /* This happens because yy_g_n_b()
10016                                          * sees that we've accumulated a
10017                                          * token and flags that we need to
10018                                          * try matching the token before
10019                                          * proceeding.  But for input(),
10020                                          * there's no matching to consider.
10021                                          * So convert the EOB_ACT_LAST_MATCH
10022                                          * to EOB_ACT_END_OF_FILE.
10023                                          */
10024
10025                                         /* Reset buffer status. */
10026                                         surf_parse_restart(surf_parse_in );
10027
10028                                         /*FALLTHROUGH*/
10029
10030                                 case EOB_ACT_END_OF_FILE:
10031                                         {
10032                                         if ( surf_parse_wrap( ) )
10033                                                 return EOF;
10034
10035                                         if ( ! (yy_did_buffer_switch_on_eof) )
10036                                                 YY_NEW_FILE;
10037 #ifdef __cplusplus
10038                                         return yyinput();
10039 #else
10040                                         return input();
10041 #endif
10042                                         }
10043
10044                                 case EOB_ACT_CONTINUE_SCAN:
10045                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10046                                         break;
10047                                 }
10048                         }
10049                 }
10050
10051         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10052         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10053         (yy_hold_char) = *++(yy_c_buf_p);
10054
10055         if ( c == '\n' )
10056                    
10057     surf_parse_lineno++;
10058 ;
10059
10060         return c;
10061 }
10062 #endif  /* ifndef YY_NO_INPUT */
10063
10064 /** Immediately switch to a different input stream.
10065  * @param input_file A readable stream.
10066  * 
10067  * @note This function does not reset the start condition to @c INITIAL .
10068  */
10069     void surf_parse_restart  (FILE * input_file )
10070 {
10071     
10072         if ( ! YY_CURRENT_BUFFER ){
10073         surf_parse_ensure_buffer_stack ();
10074                 YY_CURRENT_BUFFER_LVALUE =
10075             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10076         }
10077
10078         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10079         surf_parse__load_buffer_state( );
10080 }
10081
10082 /** Switch to a different input buffer.
10083  * @param new_buffer The new input buffer.
10084  * 
10085  */
10086     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10087 {
10088     
10089         /* TODO. We should be able to replace this entire function body
10090          * with
10091          *              surf_parse_pop_buffer_state();
10092          *              surf_parse_push_buffer_state(new_buffer);
10093      */
10094         surf_parse_ensure_buffer_stack ();
10095         if ( YY_CURRENT_BUFFER == new_buffer )
10096                 return;
10097
10098         if ( YY_CURRENT_BUFFER )
10099                 {
10100                 /* Flush out information for old buffer. */
10101                 *(yy_c_buf_p) = (yy_hold_char);
10102                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10103                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10104                 }
10105
10106         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10107         surf_parse__load_buffer_state( );
10108
10109         /* We don't actually know whether we did this switch during
10110          * EOF (surf_parse_wrap()) processing, but the only time this flag
10111          * is looked at is after surf_parse_wrap() is called, so it's safe
10112          * to go ahead and always set it.
10113          */
10114         (yy_did_buffer_switch_on_eof) = 1;
10115 }
10116
10117 static void surf_parse__load_buffer_state  (void)
10118 {
10119         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10120         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10121         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10122         (yy_hold_char) = *(yy_c_buf_p);
10123 }
10124
10125 /** Allocate and initialize an input buffer state.
10126  * @param file A readable stream.
10127  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10128  * 
10129  * @return the allocated buffer state.
10130  */
10131     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10132 {
10133         YY_BUFFER_STATE b;
10134     
10135         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10136         if ( ! b )
10137                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10138
10139         b->yy_buf_size = size;
10140
10141         /* yy_ch_buf has to be 2 characters longer than the size given because
10142          * we need to put in 2 end-of-buffer characters.
10143          */
10144         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10145         if ( ! b->yy_ch_buf )
10146                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10147
10148         b->yy_is_our_buffer = 1;
10149
10150         surf_parse__init_buffer(b,file );
10151
10152         return b;
10153 }
10154
10155 /** Destroy the buffer.
10156  * @param b a buffer created with surf_parse__create_buffer()
10157  * 
10158  */
10159     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10160 {
10161     
10162         if ( ! b )
10163                 return;
10164
10165         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10166                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10167
10168         if ( b->yy_is_our_buffer )
10169                 surf_parse_free((void *) b->yy_ch_buf  );
10170
10171         surf_parse_free((void *) b  );
10172 }
10173
10174 /* Initializes or reinitializes a buffer.
10175  * This function is sometimes called more than once on the same buffer,
10176  * such as during a surf_parse_restart() or at EOF.
10177  */
10178     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10179
10180 {
10181         int oerrno = errno;
10182     
10183         surf_parse__flush_buffer(b );
10184
10185         b->yy_input_file = file;
10186         b->yy_fill_buffer = 1;
10187
10188     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10189      * called from surf_parse_restart() or through yy_get_next_buffer.
10190      * In that case, we don't want to reset the lineno or column.
10191      */
10192     if (b != YY_CURRENT_BUFFER){
10193         b->yy_bs_lineno = 1;
10194         b->yy_bs_column = 0;
10195     }
10196
10197         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10198     
10199         errno = oerrno;
10200 }
10201
10202 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10203  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10204  * 
10205  */
10206     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10207 {
10208         if ( ! b )
10209                 return;
10210
10211         b->yy_n_chars = 0;
10212
10213         /* We always need two end-of-buffer characters.  The first causes
10214          * a transition to the end-of-buffer state.  The second causes
10215          * a jam in that state.
10216          */
10217         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10218         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10219
10220         b->yy_buf_pos = &b->yy_ch_buf[0];
10221
10222         b->yy_at_bol = 1;
10223         b->yy_buffer_status = YY_BUFFER_NEW;
10224
10225         if ( b == YY_CURRENT_BUFFER )
10226                 surf_parse__load_buffer_state( );
10227 }
10228
10229 /** Pushes the new state onto the stack. The new state becomes
10230  *  the current state. This function will allocate the stack
10231  *  if necessary.
10232  *  @param new_buffer The new state.
10233  *  
10234  */
10235 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10236 {
10237         if (new_buffer == NULL)
10238                 return;
10239
10240         surf_parse_ensure_buffer_stack();
10241
10242         /* This block is copied from surf_parse__switch_to_buffer. */
10243         if ( YY_CURRENT_BUFFER )
10244                 {
10245                 /* Flush out information for old buffer. */
10246                 *(yy_c_buf_p) = (yy_hold_char);
10247                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10248                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10249                 }
10250
10251         /* Only push if top exists. Otherwise, replace top. */
10252         if (YY_CURRENT_BUFFER)
10253                 (yy_buffer_stack_top)++;
10254         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10255
10256         /* copied from surf_parse__switch_to_buffer. */
10257         surf_parse__load_buffer_state( );
10258         (yy_did_buffer_switch_on_eof) = 1;
10259 }
10260
10261 /** Removes and deletes the top of the stack, if present.
10262  *  The next element becomes the new top.
10263  *  
10264  */
10265 void surf_parse_pop_buffer_state (void)
10266 {
10267         if (!YY_CURRENT_BUFFER)
10268                 return;
10269
10270         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10271         YY_CURRENT_BUFFER_LVALUE = NULL;
10272         if ((yy_buffer_stack_top) > 0)
10273                 --(yy_buffer_stack_top);
10274
10275         if (YY_CURRENT_BUFFER) {
10276                 surf_parse__load_buffer_state( );
10277                 (yy_did_buffer_switch_on_eof) = 1;
10278         }
10279 }
10280
10281 /* Allocates the stack if it does not exist.
10282  *  Guarantees space for at least one push.
10283  */
10284 static void surf_parse_ensure_buffer_stack (void)
10285 {
10286         yy_size_t num_to_alloc;
10287     
10288         if (!(yy_buffer_stack)) {
10289
10290                 /* First allocation is just for 2 elements, since we don't know if this
10291                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10292                  * immediate realloc on the next call.
10293          */
10294                 num_to_alloc = 1;
10295                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10296                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10297                                                                 );
10298                 if ( ! (yy_buffer_stack) )
10299                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10300                                                                   
10301                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10302                                 
10303                 (yy_buffer_stack_max) = num_to_alloc;
10304                 (yy_buffer_stack_top) = 0;
10305                 return;
10306         }
10307
10308         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10309
10310                 /* Increase the buffer to prepare for a possible push. */
10311                 int grow_size = 8 /* arbitrary grow size */;
10312
10313                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10314                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10315                                                                 ((yy_buffer_stack),
10316                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10317                                                                 );
10318                 if ( ! (yy_buffer_stack) )
10319                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10320
10321                 /* zero only the new slots.*/
10322                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10323                 (yy_buffer_stack_max) = num_to_alloc;
10324         }
10325 }
10326
10327 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10328  * @param base the character buffer
10329  * @param size the size in bytes of the character buffer
10330  * 
10331  * @return the newly allocated buffer state object. 
10332  */
10333 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10334 {
10335         YY_BUFFER_STATE b;
10336     
10337         if ( size < 2 ||
10338              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10339              base[size-1] != YY_END_OF_BUFFER_CHAR )
10340                 /* They forgot to leave room for the EOB's. */
10341                 return 0;
10342
10343         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10344         if ( ! b )
10345                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10346
10347         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10348         b->yy_buf_pos = b->yy_ch_buf = base;
10349         b->yy_is_our_buffer = 0;
10350         b->yy_input_file = 0;
10351         b->yy_n_chars = b->yy_buf_size;
10352         b->yy_is_interactive = 0;
10353         b->yy_at_bol = 1;
10354         b->yy_fill_buffer = 0;
10355         b->yy_buffer_status = YY_BUFFER_NEW;
10356
10357         surf_parse__switch_to_buffer(b  );
10358
10359         return b;
10360 }
10361
10362 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10363  * scan from a @e copy of @a str.
10364  * @param yystr a NUL-terminated string to scan
10365  * 
10366  * @return the newly allocated buffer state object.
10367  * @note If you want to scan bytes that may contain NUL values, then use
10368  *       surf_parse__scan_bytes() instead.
10369  */
10370 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10371 {
10372     
10373         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10374 }
10375
10376 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10377  * scan from a @e copy of @a bytes.
10378  * @param yybytes the byte buffer to scan
10379  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10380  * 
10381  * @return the newly allocated buffer state object.
10382  */
10383 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10384 {
10385         YY_BUFFER_STATE b;
10386         char *buf;
10387         yy_size_t n;
10388         yy_size_t i;
10389     
10390         /* Get memory for full buffer, including space for trailing EOB's. */
10391         n = _yybytes_len + 2;
10392         buf = (char *) surf_parse_alloc(n  );
10393         if ( ! buf )
10394                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10395
10396         for ( i = 0; i < _yybytes_len; ++i )
10397                 buf[i] = yybytes[i];
10398
10399         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10400
10401         b = surf_parse__scan_buffer(buf,n );
10402         if ( ! b )
10403                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10404
10405         /* It's okay to grow etc. this buffer, and we should throw it
10406          * away when we're done.
10407          */
10408         b->yy_is_our_buffer = 1;
10409
10410         return b;
10411 }
10412
10413     static void yy_push_state (int  new_state )
10414 {
10415         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10416                 {
10417                 yy_size_t new_size;
10418
10419                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10420                 new_size = (yy_start_stack_depth) * sizeof( int );
10421
10422                 if ( ! (yy_start_stack) )
10423                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10424
10425                 else
10426                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10427
10428                 if ( ! (yy_start_stack) )
10429                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10430                 }
10431
10432         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10433
10434         BEGIN(new_state);
10435 }
10436
10437     static void yy_pop_state  (void)
10438 {
10439         if ( --(yy_start_stack_ptr) < 0 )
10440                 YY_FATAL_ERROR( "start-condition stack underflow" );
10441
10442         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10443 }
10444
10445 #ifndef YY_EXIT_FAILURE
10446 #define YY_EXIT_FAILURE 2
10447 #endif
10448
10449 static void yy_fatal_error (yyconst char* msg )
10450 {
10451         (void) fprintf( stderr, "%s\n", msg );
10452         exit( YY_EXIT_FAILURE );
10453 }
10454
10455 /* Redefine yyless() so it works in section 3 code. */
10456
10457 #undef yyless
10458 #define yyless(n) \
10459         do \
10460                 { \
10461                 /* Undo effects of setting up surf_parse_text. */ \
10462         int yyless_macro_arg = (n); \
10463         YY_LESS_LINENO(yyless_macro_arg);\
10464                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10465                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10466                 (yy_hold_char) = *(yy_c_buf_p); \
10467                 *(yy_c_buf_p) = '\0'; \
10468                 surf_parse_leng = yyless_macro_arg; \
10469                 } \
10470         while ( 0 )
10471
10472 /* Accessor  methods (get/set functions) to struct members. */
10473
10474 /** Get the current line number.
10475  * 
10476  */
10477 int surf_parse_get_lineno  (void)
10478 {
10479         
10480     return surf_parse_lineno;
10481 }
10482
10483 /** Get the input stream.
10484  * 
10485  */
10486 FILE *surf_parse_get_in  (void)
10487 {
10488         return surf_parse_in;
10489 }
10490
10491 /** Get the output stream.
10492  * 
10493  */
10494 FILE *surf_parse_get_out  (void)
10495 {
10496         return surf_parse_out;
10497 }
10498
10499 /** Get the length of the current token.
10500  * 
10501  */
10502 yy_size_t surf_parse_get_leng  (void)
10503 {
10504         return surf_parse_leng;
10505 }
10506
10507 /** Get the current token.
10508  * 
10509  */
10510
10511 char *surf_parse_get_text  (void)
10512 {
10513         return surf_parse_text;
10514 }
10515
10516 /** Set the current line number.
10517  * @param line_number
10518  * 
10519  */
10520 void surf_parse_set_lineno (int  line_number )
10521 {
10522     
10523     surf_parse_lineno = line_number;
10524 }
10525
10526 /** Set the input stream. This does not discard the current
10527  * input buffer.
10528  * @param in_str A readable stream.
10529  * 
10530  * @see surf_parse__switch_to_buffer
10531  */
10532 void surf_parse_set_in (FILE *  in_str )
10533 {
10534         surf_parse_in = in_str ;
10535 }
10536
10537 void surf_parse_set_out (FILE *  out_str )
10538 {
10539         surf_parse_out = out_str ;
10540 }
10541
10542 int surf_parse_get_debug  (void)
10543 {
10544         return surf_parse__flex_debug;
10545 }
10546
10547 void surf_parse_set_debug (int  bdebug )
10548 {
10549         surf_parse__flex_debug = bdebug ;
10550 }
10551
10552 static int yy_init_globals (void)
10553 {
10554         /* Initialization is the same as for the non-reentrant scanner.
10555      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10556      */
10557
10558     /* We do not touch surf_parse_lineno unless the option is enabled. */
10559     surf_parse_lineno =  1;
10560     
10561     (yy_buffer_stack) = 0;
10562     (yy_buffer_stack_top) = 0;
10563     (yy_buffer_stack_max) = 0;
10564     (yy_c_buf_p) = (char *) 0;
10565     (yy_init) = 0;
10566     (yy_start) = 0;
10567
10568     (yy_start_stack_ptr) = 0;
10569     (yy_start_stack_depth) = 0;
10570     (yy_start_stack) =  NULL;
10571
10572 /* Defined in main.c */
10573 #ifdef YY_STDINIT
10574     surf_parse_in = stdin;
10575     surf_parse_out = stdout;
10576 #else
10577     surf_parse_in = (FILE *) 0;
10578     surf_parse_out = (FILE *) 0;
10579 #endif
10580
10581     /* For future reference: Set errno on error, since we are called by
10582      * surf_parse_lex_init()
10583      */
10584     return 0;
10585 }
10586
10587 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10588 int surf_parse_lex_destroy  (void)
10589 {
10590     
10591     /* Pop the buffer stack, destroying each element. */
10592         while(YY_CURRENT_BUFFER){
10593                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10594                 YY_CURRENT_BUFFER_LVALUE = NULL;
10595                 surf_parse_pop_buffer_state();
10596         }
10597
10598         /* Destroy the stack itself. */
10599         surf_parse_free((yy_buffer_stack) );
10600         (yy_buffer_stack) = NULL;
10601
10602     /* Destroy the start condition stack. */
10603         surf_parse_free((yy_start_stack)  );
10604         (yy_start_stack) = NULL;
10605
10606     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10607      * surf_parse_lex() is called, initialization will occur. */
10608     yy_init_globals( );
10609
10610     return 0;
10611 }
10612
10613 /*
10614  * Internal utility routines.
10615  */
10616
10617 #ifndef yytext_ptr
10618 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10619 {
10620         int i;
10621         for ( i = 0; i < n; ++i )
10622                 s1[i] = s2[i];
10623 }
10624 #endif
10625
10626 #ifdef YY_NEED_STRLEN
10627 static int yy_flex_strlen (yyconst char * s )
10628 {
10629         int n;
10630         for ( n = 0; s[n]; ++n )
10631                 ;
10632
10633         return n;
10634 }
10635 #endif
10636
10637 void *surf_parse_alloc (yy_size_t  size )
10638 {
10639         return (void *) malloc( size );
10640 }
10641
10642 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10643 {
10644         /* The cast to (char *) in the following accommodates both
10645          * implementations that use char* generic pointers, and those
10646          * that use void* generic pointers.  It works with the latter
10647          * because both ANSI C and C++ allow castless assignment from
10648          * any pointer type to void*, and deal with argument conversions
10649          * as though doing an assignment.
10650          */
10651         return (void *) realloc( (char *) ptr, size );
10652 }
10653
10654 void surf_parse_free (void * ptr )
10655 {
10656         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10657 }
10658
10659 #define YYTABLES_NAME "yytables"
10660
10661 /* Element context stack lookup. */
10662 int surfxml_element_context(int i)
10663 {
10664   return (0<i && i<yy_start_stack_depth
10665           ? yy_start_stack[yy_start_stack_ptr - i]
10666           : 0);
10667 }
10668
10669 #ifdef FLEX_DEBUG
10670 void print_yy_stack(char* fmt, ...)
10671 {
10672   int i = 0; va_list ap; va_start(ap, fmt);
10673   vfprintf(stderr, fmt, ap);
10674   if (surfxml_statenames) {
10675       for (i=1; i<yy_start_stack_ptr; i++) {
10676           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10677       }
10678       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10679   }
10680   va_end(ap);
10681 }
10682
10683 void print_surfxml_bufferstack()
10684 {
10685     int i;
10686     fputs("Buffer: ", stderr);
10687     for (i = 0; i < blimit; i++) {
10688        if ( surfxml_bufferstack[i] == '\377' ) break;
10689          putc(surfxml_bufferstack[i], stderr);
10690     }
10691     putc('\n', stderr);
10692 }
10693
10694 static void debug_enter(int state, const char* statename) {
10695   yy_push_state(state);
10696   if (surf_parse__flex_debug) {
10697        print_yy_stack("--ENTER(%s) : ",statename);
10698        print_surfxml_bufferstack();
10699   }
10700 }
10701
10702 static void debug_leave(void) {
10703     if (surf_parse__flex_debug) {
10704         print_yy_stack("--LEAVE : ");
10705         print_surfxml_bufferstack();
10706     }
10707   yy_pop_state();
10708 }
10709
10710 static void debug_set(int state, const char* statename) {
10711   BEGIN(state);
10712   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10713 }
10714 #endif
10715
10716 static void cleanup(void)
10717 {
10718     if (surfxml_statenames) {
10719         free(surfxml_statenames);
10720         surfxml_statenames = NULL;
10721     }
10722     free(surfxml_bufferstack);
10723     surfxml_bufferstack = NULL;
10724
10725     free(indexstack);
10726     indexstack = NULL;
10727 }
10728
10729 static int fail(const char* fmt, ...)
10730 {
10731     int chars_left, used;
10732     va_list ap; va_start(ap, fmt);
10733 #ifdef FLEXML_yylineno
10734     used = sprintf(flexml_err_msg,
10735                    "Invalid XML (XML input line %d, state %d): ",
10736                    surf_parse_lineno, YY_START);
10737 #else
10738     used = sprintf(flexml_err_msg,
10739                    "Invalid XML (state %d): ",
10740                    YY_START);
10741 #endif
10742     chars_left = flexml_max_err_msg_size - used - 1;
10743     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10744     va_end(ap);
10745
10746 #ifndef FLEXML_quiet_parser
10747     /* print directly to sdterr */
10748     fprintf(stderr, "%s\n", flexml_err_msg);
10749     flexml_err_msg[0] = '\0';
10750 #endif
10751
10752     cleanup();
10753
10754     return 1;
10755 }
10756