Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Properties available for cluster tag
[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 35
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 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 562
407 #define YY_END_OF_BUFFER 563
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3286] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
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,  563,  561,
445        15,   10,   10,   15,   15,  541,   10,  541,    5,    6,
446         5,    8,    9,    8,  557,  549,  550,  558,  555,  558,
447       556,  560,  549,  550,  560,  561,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  561,   26,  561,
449
450       561,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  558,  557,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       126,   10,  126,  126,  126,  124,  126,  126,  130,   10,
456       130,  130,  561,  130,  561,  130,  130,  561,  561,  130,
457       561,  130,  561,  130,  143,   10,  143,  143,  143,  141,
458       143,  143,  143,  143,  147,   10,  147,  147,  158,   10,
459       158,  158,  158,  156,  158,  158,  158,  162,   10,  162,
460
461       162,  171,   10,  171,  171,  171,  169,  171,  171,  175,
462        10,  175,  184,   10,  184,  184,  184,  182,  184,  184,
463       188,   10,  188,  211,   10,  211,  211,  211,  209,  211,
464       211,  211,  211,  211,  215,   10,  215,  561,  215,  222,
465        10,  222,  222,  222,  220,  222,  226,   10,  226,  237,
466        10,  237,  237,  237,  235,  237,  237,  237,  241,   10,
467       241,  288,   10,  288,  288,  288,  286,  288,  288,  288,
468       288,  288,  288,  288,  288,  292,   10,  292,  292,  311,
469        10,  311,  311,  311,  309,  311,  311,  311,  311,  311,
470       311,  315,   10,  315,  336,   10,  336,  336,  336,  334,
471
472       336,  336,  336,  336,  336,  336,  336,  340,   10,  340,
473       349,   10,  349,  349,  349,  347,  349,  349,  353,   10,
474       353,  364,   10,  364,  364,  364,  362,  364,  364,  364,
475       368,   10,  368,  395,   10,  395,  395,  395,  393,  395,
476       395,  395,  395,  399,   10,  399,  399,  412,   10,  412,
477       412,  412,  410,  412,  412,  416,   10,  416,  561,  416,
478       433,   10,  433,  433,  433,  431,  433,  433,  433,  437,
479        10,  437,  437,  450,   10,  450,  450,  450,  448,  450,
480       450,  454,   10,  454,  463,   10,  463,  463,  463,  461,
481       463,  463,  467,   10,  467,  467,  480,   10,  480,  480,
482
483       480,  478,  480,  480,  480,  484,   10,  484,  484,  501,
484        10,  501,  501,  501,  499,  501,  501,  501,  501,  501,
485       505,   10,  505,  561,  505,  512,   10,  512,  512,  512,
486       510,  512,  516,   10,  516,  523,   10,  523,  523,  523,
487       521,  523,  527,   10,  527,  527,  536,   10,  536,  536,
488       536,  534,  536,  536,  540,   10,  540,   10,    0,    2,
489         2,    0,    4,    7,  552,  551,    0,    0,    0,    0,
490         0,    0,    0,   21,   23,   23,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494        32,   34,   34,    0,   47,   49,   49,   49,   49,    0,
495         0,    0,   77,   79,   79,   79,   79,   79,   79,   79,
496        79,   79,    0,  100,  102,  102,  102,  102,    0,  125,
497       127,  127,  127,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,  142,  144,  144,  144,  144,  144,    0,  157,
500       159,  159,  159,  159,    0,  170,  172,  172,  172,    0,
501       183,  185,  185,  185,    0,  210,  212,  212,  212,  212,
502       212,  212,    0,    0,  221,  223,  223,    0,  236,  238,
503       238,  238,  238,    0,  287,  289,  289,  289,  289,  289,
504
505       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
506       289,    0,  310,  312,  312,  312,  312,  312,  312,  312,
507       312,    0,  335,  337,  337,  337,  337,  337,  337,  337,
508       337,    0,  348,  350,  350,  350,    0,  363,  365,  365,
509       365,  365,    0,  394,  396,  396,  396,  396,  396,  396,
510         0,  411,  413,  413,  413,  413,    0,    0,  432,  434,
511       434,  434,  434,  434,    0,  449,  451,  451,  451,    0,
512       462,  464,  464,  464,    0,  479,  481,  481,  481,  481,
513         0,  500,  502,  502,  502,  502,  502,  502,    0,    0,
514       511,  513,  513,    0,  522,  524,  524,    0,  535,  537,
515
516       537,  537,    0,    0,    0,    0,    0,    3,    0,    0,
517         0,    0,    0,    0,    0,  559,    0,   23,    0,    0,
518       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,  106,    0,    0,    0,    0,    0,    0,   34,
521         0,    0,   49,    0,    0,   49,    0,    0,    0,  554,
522        79,    0,    0,   79,   79,   79,   79,   79,   79,    0,
523         0,  102,  102,  102,    0,    0,    0,    0,  127,    0,
524         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
525       106,    0,    0,    0,    0,  144,    0,    0,  144,  144,
526
527         0,    0,  159,    0,    0,  159,    0,    0,    0,    0,
528       172,    0,    0,  185,  185,    0,    0,  212,  212,  212,
529         0,    0,  212,  212,    0,    0,    0,    0,  223,    0,
530         0,  238,    0,    0,    0,    0,    0,    0,  289,  289,
531         0,    0,  289,    0,    0,  289,  289,  289,  289,  289,
532       289,  289,  289,  289,  289,    0,    0,    0,    0,    0,
533         0,  312,  312,  312,  312,  312,    0,    0,  337,  337,
534       337,    0,    0,  337,  337,  337,    0,    0,  350,    0,
535         0,    0,    0,  365,    0,    0,  365,    0,    0,  396,
536         0,    0,  396,  396,  396,    0,    0,  413,  413,  413,
537
538         0,    0,    0,  434,  434,  434,  434,    0,    0,  451,
539         0,    0,    0,    0,  464,  464,    0,    0,  481,  481,
540       481,    0,    0,  502,  502,  502,  502,  502,    0,    0,
541         0,  513,    0,    0,    0,    0,    0,    0,    0,    0,
542       537,    0,    0,    0,   14,    1,    0,    0,  547,    0,
543         0,    0,  544,  543,    0,    0,   23,    0,    0,   25,
544         0,  107,    0,    0,    0,    0,    0,    0,    0,  216,
545         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,  106,    0,    0,    0,    0,    0,
547         0,   34,    0,    0,   36,    0,   49,    0,   41,   40,
548
549        49,    0,    0,    0,   51,    0,   79,    0,   55,   54,
550         0,    0,   79,    0,    0,   79,   79,   79,    0,    0,
551        81,    0,  102,  102,  102,    0,    0,  104,    0,    0,
552       109,  108,  127,    0,    0,  129,    0,    0,    0,    0,
553       217,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554       144,    0,  134,  133,  144,  144,    0,    0,  146,    0,
555       159,    0,  151,  150,  159,    0,    0,  161,    0,    0,
556       166,  165,  172,    0,    0,  174,    0,  185,  185,    0,
557         0,  187,    0,  212,  212,  212,    0,  192,  191,  212,
558       212,    0,    0,  214,    0,    0,    0,  223,    0,    0,
559
560       225,    0,  238,    0,  230,  229,    0,  232,  231,    0,
561         0,  240,    0,  289,  289,  289,  289,    0,  257,  256,
562       289,    0,  245,  244,    0,    0,  289,  289,  289,  289,
563       289,  289,  289,  289,  289,    0,    0,  291,    0,    0,
564       306,  305,    0,  296,  295,    0,    0,  312,  312,  312,
565       312,    0,    0,  314,    0,  337,  337,  337,  337,    0,
566       319,  318,    0,    0,  337,  337,    0,    0,  339,    0,
567       350,    0,  344,  343,    0,    0,  352,    0,  365,    0,
568       357,  356,  365,    0,    0,  367,    0,  396,    0,  372,
569       371,  396,  396,  396,    0,    0,  398,    0,    0,    0,
570
571         0,    0,  413,    0,    0,  415,    0,    0,    0,    0,
572       434,  434,    0,    0,  434,    0,    0,  436,    0,  451,
573         0,  441,  440,    0,    0,  453,    0,    0,    0,    0,
574         0,    0,    0,  466,    0,    0,    0,  481,  481,    0,
575         0,    0,    0,  483,    0,  502,  502,  502,  502,  502,
576         0,    0,  504,    0,    0,  513,    0,    0,  515,    0,
577         0,  520,  519,    0,    0,  526,    0,    0,  531,  530,
578       537,    0,    0,  539,    0,    0,    0,  548,  542,    0,
579         0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
580         0,  216,  189,    0,  369,    0,    0,  317,    0,    0,
581
582       528,    0,    0,    0,    0,    0,    0,    0,    0,    0,
583       316,    0,    0,    0,    0,    0,    0,    0,   49,    0,
584         0,   79,    0,   59,   58,    0,    0,    0,   57,   56,
585        79,    0,    0,   79,    0,  102,    0,    0,  102,    0,
586       127,    0,  128,    0,    0,    0,  217,  190,  370,  529,
587         0,    0,    0,    0,    0,    0,  144,  144,    0,    0,
588         0,  159,  159,    0,    0,    0,    0,    0,    0,  185,
589         0,  212,  212,    0,    0,  212,  212,    0,    0,    0,
590         0,    0,    0,    0,    0,    0,  289,  289,  289,  289,
591         0,    0,    0,  259,  258,  289,  289,  289,  289,  289,
592
593       289,  289,  289,  289,    0,    0,  308,  307,  312,  312,
594       312,  312,    0,  337,  337,  337,  337,    0,  327,  326,
595       337,  337,    0,  350,    0,  365,  365,    0,  396,  396,
596       396,  396,    0,    0,  405,  404,    0,  403,  402,  413,
597         0,  369,    0,  422,  421,  434,  434,    0,  420,  419,
598       434,    0,  451,    0,    0,  460,  459,    0,  458,  457,
599         0,    0,  473,  472,  481,  481,    0,  471,  470,    0,
600       502,    0,    0,  502,  502,  502,    0,    0,  513,    0,
601         0,  537,    0,    0,    0,    0,   12,    0,  545,  546,
602         0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
603
604       189,    0,    0,  369,    0,  163,    0,  317,    0,    0,
605       528,    0,  400,    0,   39,    0,    0,    0,    0,    0,
606       316,    0,   38,    0,   30,   29,    0,    0,   43,   42,
607        49,    0,    0,   79,    0,   61,   60,   79,    0,   65,
608        64,   79,    0,  102,    0,    0,    0,    0,    0,    0,
609       127,    0,    0,    0,  190,    0,  370,  529,  401,    0,
610         0,    0,  401,  400,  144,    0,    0,    0,  138,  137,
611         0,  159,  159,    0,    0,  168,  167,    0,    0,  181,
612       180,  185,    0,  212,  212,    0,  196,  195,    0,    0,
613         0,    0,  212,    0,  164,    0,    0,  219,  218,    0,
614
615       224,    0,  234,  233,    0,  289,    0,    0,  289,  289,
616         0,  255,  254,  289,  289,    0,    0,  289,  289,  289,
617       289,  289,  289,    0,    0,    0,  312,  312,  312,    0,
618       337,    0,    0,  337,  337,    0,    0,  337,    0,  350,
619         0,  365,  365,    0,  396,  396,  396,    0,    0,  396,
620         0,  413,    0,    0,  434,  434,  434,    0,  451,    0,
621         0,  481,  481,    0,  502,    0,  488,  487,  502,  502,
622       502,    0,    0,    0,    0,    0,    0,    0,    0,    0,
623         0,    0,    0,   11,    0,   23,    0,    0,    0,    0,
624         0,    0,    0,  518,    0,    0,    0,  163,    0,    0,
625
626         0,   53,  400,  341,    0,   39,    0,  517,   52,    0,
627         0,    0,    0,   38,    0,    0,   49,    0,    0,   79,
628        79,   79,    0,  102,    0,    0,    0,    0,    0,    0,
629         0,    0,    0,   96,   95,    0,  127,    0,    0,    0,
630         0,  401,  342,    0,    0,    0,  144,    0,  136,  135,
631         0,  159,    0,    0,    0,    0,    0,    0,    0,  212,
632       212,    0,  194,  193,    0,    0,    0,  212,    0,  213,
633       164,    0,    0,  289,    0,  267,  266,    0,    0,  289,
634       289,  289,    0,  253,  252,    0,    0,  289,  289,  289,
635       289,    0,    0,    0,    0,  304,  303,    0,    0,  312,
636
637         0,    0,    0,  337,    0,  323,  322,    0,    0,  337,
638         0,  321,  320,  337,    0,  338,  350,    0,  365,  365,
639         0,  396,  396,  396,    0,    0,    0,  396,    0,  397,
640       413,    0,    0,    0,    0,    0,    0,  434,    0,  451,
641         0,    0,    0,    0,    0,    0,    0,  502,  502,  502,
642       502,    0,    0,    0,  509,  508,    0,    0,    0,  533,
643       532,    0,  538,    0,    0,    0,    0,    0,    0,    0,
644       417,    0,    0,    0,    0,  294,  243,  518,    0,   28,
645         0,    0,    0,  486,   53,  341,  148,    0,  517,   52,
646       293,  242,   27,  485,    0,    0,   49,    0,    0,   50,
647
648        79,    0,    0,   79,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650       418,    0,    0,    0,    0,  342,  149,    0,    0,    0,
651         0,    0,    0,  153,  152,    0,    0,  173,    0,  179,
652       178,    0,  212,  212,    0,    0,  212,    0,    0,  289,
653         0,  269,  268,  289,  289,  289,    0,  247,  246,    0,
654         0,  289,  289,  289,    0,  249,  248,    0,    0,  298,
655       297,    0,    0,    0,  300,  299,    0,  337,    0,  325,
656       324,  337,  337,  350,    0,  365,    0,    0,    0,  396,
657         0,    0,  396,  396,    0,    0,  396,  413,    0,  414,
658
659         0,    0,  426,  425,    0,  424,  423,  434,    0,  451,
660         0,    0,    0,  477,  476,    0,  475,  474,    0,  502,
661       502,  502,  502,    0,    0,    0,    0,    0,    0,    0,
662        17,    0,   19,   18,    0,  417,  506,  354,    0,    0,
663       294,  243,    0,   28,  438,  176,   16,  486,  148,    0,
664         0,  293,  242,   27,  485,    0,    0,   49,  553,   79,
665         0,   67,   66,   79,    0,   80,    0,   98,   97,    0,
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,  418,  355,    0,    0,    0,  149,    0,
668         0,  140,  139,    0,    0,  155,  154,    0,    0,  212,
669
670       212,    0,    0,    0,    0,  212,  177,    0,  289,  289,
671       289,  289,    0,  251,  250,  289,  289,  289,    0,    0,
672       302,  301,    0,  337,  337,  337,  350,    0,  351,  365,
673         0,  361,  360,    0,  396,    0,  378,  377,  396,  396,
674         0,    0,    0,    0,  396,  413,  439,  434,    0,  451,
675         0,    0,    0,    0,    0,  502,  502,  502,    0,  507,
676         0,    0,  525,    0,    0,    0,   17,    0,  506,  354,
677         0,    0,  227,  438,  176,   16,    0,    0,    0,    0,
678        35,   49,    0,    0,   79,    0,    0,    0,    0,    0,
679         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
680
681         0,    0,    0,    0,    0,    0,  355,    0,    0,  228,
682         0,    0,    0,  160,    0,  212,  212,    0,  202,    0,
683       201,  212,  177,    0,  289,  289,  289,  289,  289,    0,
684         0,  289,  289,    0,  290,    0,  313,  337,  337,  337,
685       350,    0,    0,    0,    0,    0,  396,  396,  396,    0,
686       382,    0,  381,  396,  413,  439,  434,    0,  435,    0,
687         0,    0,    0,    0,    0,  490,  489,    0,    0,  502,
688       502,    0,  503,  507,    0,    0,    0,    0,    0,   24,
689         0,    0,  227,    0,    0,    0,   49,    0,    0,    0,
690        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,    0,  228,    0,    0,    0,
694       186,  212,  212,  204,  203,    0,    0,    0,  289,  289,
695       289,  289,  289,    0,  279,  278,  289,    0,    0,  337,
696       337,    0,    0,  350,    0,  359,  358,    0,  366,    0,
697       374,  373,  396,  396,  396,  384,  383,    0,    0,  413,
698       434,    0,    0,    0,    0,  452,    0,    0,    0,  494,
699       493,    0,    0,    0,    0,    0,  514,    0,    0,    0,
700         0,  455,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,   79,    0,    0,    0,    0,   88,    0,
702
703         0,    0,    0,   87,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,  456,    0,
705         0,  212,    0,    0,    0,  206,  205,    0,  239,  289,
706       289,  289,    0,    0,  289,  289,    0,  277,  276,  337,
707         0,    0,    0,  333,  332,    0,    0,  396,  396,  396,
708         0,  386,  385,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,  492,
710       491,    0,    0,    0,    0,  455,  131,    0,    0,    0,
711        45,   44,    0,    0,    0,    0,    0,    0,    0,    0,
712        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,  456,  132,    0,    0,    0,  212,    0,
716       208,  207,  289,  289,    0,    0,    0,  283,  282,    0,
717         0,  289,  337,    0,  329,  328,    0,  346,  345,  396,
718         0,    0,  396,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,  468,  131,   84,   83,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,   94,    0,    0,    0,   93,    0,    0,    0,    0,
723         0,  111,  119,    0,    0,    0,    0,  110,  118,    0,
724
725       469,  132,    0,    0,  198,  197,  212,  289,  289,    0,
726       281,  280,    0,  285,  284,  289,  337,  396,    0,  380,
727       379,  396,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,  443,    0,    0,  442,    0,  465,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,  468,
730        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,   63,   62,    0,    0,    0,    0,    0,    0,    0,
732         0,    0,  113,    0,    0,    0,  112,    0,  469,    0,
733       145,  212,  289,  289,    0,    0,  337,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,   75,   71,    0,    0,   74,
738        70,    0,   92,    0,    0,   91,    0,    0,    0,  103,
739         0,    0,    0,    0,    0,    0,  212,  289,  289,    0,
740         0,    0,  337,    0,  376,  375,    0,    0,    0,  409,
741         0,  408,    0,  430,    0,  429,    0,  445,  447,  444,
742       446,    0,  482,  496,    0,  495,    0,    0,    0,    0,
743        12,    0,   12,    0,    0,    0,    0,    0,   86,   90,
744        85,   89,  123,    0,  121,  122,    0,  120,  212,  289,
745       289,    0,    0,    0,    0,  337,    0,    0,    0,    0,
746
747       407,  406,  428,  427,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,    0,    0,  115,    0,  114,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,   69,    0,   68,    0,    0,    0,    0,
752       200,  199,    0,  275,  274,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,  331,  330,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,   11,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,  498,  497,    0,
757
758        73,   72,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762       117,  116,    0,    0,    0,    0,    0,    0,  261,    0,
763         0,  260,    0,    0,  388,    0,    0,  387,    0,    0,
764         0,    0,    0,  265,    0,  264,    0,  390,    0,  389,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,  271,    0,  270,    0,    0,    0,    0,    0,
767         0,  273,  272,  263,  262,  392,  391,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,   13,    0
778     } ;
779
780 static yyconst flex_int32_t yy_ec[256] =
781     {   0,
782         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
783         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
784         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
785         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
786         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
787        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
788        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
789        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
790        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
791        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
792
793        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
794        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
795        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1
810     } ;
811
812 static yyconst flex_int32_t yy_meta[75] =
813     {   0,
814         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
815         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
816         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
817         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
818         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
819         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
820         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
821         5,    5,    5,    5
822     } ;
823
824 static yyconst flex_int16_t yy_base[3766] =
825     {   0,
826         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
827        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
828       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
829       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
830       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
831       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
832       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
833       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
834       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
835       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
836
837       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
838      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
839      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
840      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
841      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
842      1406, 1409, 1413, 1416, 1471, 1474, 1477, 1481, 1921, 1988,
843      1538, 1541, 2055, 2122, 1544, 1548, 2189, 2246, 1605, 1608,
844      2303, 2363, 1611, 1615, 2423, 2490, 1618, 1667, 1670, 1673,
845      1677, 1680, 1729, 1732, 2557, 2624, 1735, 1739, 1742, 1798,
846      1801, 1804, 1808, 1811, 2691, 2758, 1941, 1944, 1947, 1951,
847
848      1954, 2008, 2011, 2014, 2825, 2882, 2018, 2021, 2939, 3006,
849      2075, 2078, 2081, 2085, 2142, 2145, 2148, 2152, 3073, 3140,
850      2209, 2212, 2215, 2219, 2266, 2269, 2272, 2276, 3207, 3274,
851      2323, 2326, 2329, 2333, 2336, 2383, 2386, 2389, 3341, 3411,
852      2393, 2396, 3481, 3538, 2443, 2446, 2449, 2453, 2456, 2510,
853      2513, 2516, 3595, 3665, 2520, 2523,    0,    0, 8394,12107,
854     12107,   95,  100,   29,   41,12107,  103,   51,12107,12107,
855      8379,12107,12107, 8368,12107, 8382, 8378,  202,12107,12107,
856     12107,12107, 8376, 8370, 8324,  153,12107,  161, 8350,    0,
857       145,12107, 8315,12107,  165, 3731,   73, 2530,  315,  357,
858
859      8343, 8290,12107,  168, 8332,    0,  152,12107, 8287,12107,
860       261, 8331,   31,12107,  266, 8321,    0,  245,12107, 8283,
861      8286, 8280,  421, 8285,12107,  269, 8306,    0,  340,12107,
862      8272, 8271,  271, 8262,  238,12107,  441,  484,12107,  504,
863      8290,    0,  401,12107, 8246, 8248, 8237,12107,  561,  548,
864     12107,  571, 8282,    0,  481,12107, 8226, 8210,12107,  628,
865      3795, 8208,  163, 2532,  567,  206,   38, 8247,  954, 2523,
866       639,  907,  437,   79,12107,  634, 8238,    0,  546,12107,
867      8193, 8199, 8187, 8191,12107,  638,  313,  368,12107,  697,
868      8223,    0,  549,12107, 8179, 8188, 8158,12107,  704,  426,
869
870       497,12107,  707, 8210,    0,  747,12107, 8177, 8177,12107,
871       767,  753,12107,  773, 8205,    0,  757,12107, 8165, 8140,
872     12107,  831,  818,12107,  838, 8188,    0,  758,12107, 8137,
873      8142, 8151, 8139, 8132,12107,  841,  559,  825,  530,12107,
874       906, 8174,    0,  815,12107, 8137,12107,  914,  891,12107,
875       977, 8165,    0,  953,12107, 8120, 8125, 8112,12107,  981,
876       965,12107, 1021, 8154,    0,  966,12107, 8095,  203, 8097,
877      8094,  378,   85,  311,  972,12107, 1040,  564,  814,12107,
878      1044, 8120,    0, 1032,12107, 8068, 8085, 8069,  157, 8064,
879      8043,12107, 1048, 1086,12107, 1106, 8080,    0, 1033,12107,
880
881      8029, 8022, 8022, 8032, 8033, 8014, 8008,12107, 1111, 1099,
882     12107, 1114, 8053,    0, 1100,12107, 8005, 8013,12107, 1156,
883      1160,12107, 1173, 8043,    0, 1157,12107, 8006, 8002, 7997,
884     12107, 1180, 1228,12107, 1183, 8024,    0, 1158,12107, 7994,
885      7985, 7987,   15,12107, 1186,  899,  963,12107, 1241, 8014,
886         0, 1225,12107, 7956,  181,12107, 1248, 1294,  432,  303,
887     12107, 1305, 8002,    0, 1226,12107, 7953, 7944,  299,12107,
888      1309, 1224,  350,12107, 1365, 7994,    0, 1293,12107, 7951,
889      7954,12107, 1368, 1352,12107, 1372, 7985,    0, 1360,12107,
890      7936, 7932,12107, 1376, 1426,  676,12107, 1433, 7977,    0,
891
892      1418,12107, 7925, 7920, 7913,12107, 1438, 1436,  685,12107,
893      1503, 7958,    0, 1423,12107, 7907, 7905, 7910, 7894, 7887,
894     12107, 1507, 1504,  560, 1007,12107, 1510, 7932,    0, 1428,
895     12107, 7895,12107, 1568, 1622,12107, 1574, 7914,    0, 1482,
896     12107, 7881,12107, 1577, 1229, 1291,12107, 1635, 7902,    0,
897      1496,12107, 7869, 7870,12107, 1638, 1623, 1697,  677, 7842,
898     12107, 7903, 7891,12107,12107,12107, 1690,  253, 7842, 7840,
899      7834, 7882, 7836,12107,    0, 7829, 7829, 7843, 7815,  104,
900      1037, 7815, 7811, 7809, 7809,  889, 1636, 1105, 7797, 7797,
901      1383, 1297, 7814, 1500, 7789, 1698, 7779, 1705, 1710, 1767,
902
903     12107,    0, 7783, 7778,12107,    0, 7774, 2088, 7766,  666,
904      7759, 7805,12107,    0, 7761, 2155, 7750, 7771, 7752, 7754,
905      7742, 7736, 7721,12107,    0, 7732, 7712, 7724, 7703,12107,
906         0, 2222, 7697, 7743, 7723,  172, 7696, 7692, 7696, 1768,
907      1567, 7684, 1778, 7704,  707,  724,  814,  841, 1629, 1783,
908      1710,  888,12107,    0, 7680, 2279, 7688, 7661, 7667,12107,
909         0, 7667, 2582, 7664, 7659,12107,    0, 2588, 7656, 7653,
910     12107,    0, 7651, 7644, 7635,12107,    0, 7646,  373, 2644,
911      7622, 7635, 7626,  897,12107,    0, 7616, 7621,12107,    0,
912      7603, 2647, 2650, 7610,12107,    0, 7616, 7615, 2653, 7591,
913
914      2656, 7582, 7588, 7584, 7566, 7573, 7573, 7554, 7569, 7568,
915      7561, 7562,12107,    0, 2711, 2714, 7543, 7539, 7534, 7533,
916      7530, 7530,12107,    0, 7530, 7527, 7508, 2717, 7494, 7490,
917      7510, 7487,12107,    0, 7487, 2720, 7478,12107,    0, 7479,
918      2723, 7460, 7470,12107,    0, 7457, 2778, 7445, 7462, 7458,
919      7442,12107,    0, 7433, 7443, 7420, 7407, 7415,12107,    0,
920      7402, 7414, 7410, 7398, 7436,12107,    0, 7390, 2781, 7391,
921     12107,    0, 7382, 7392, 7391,12107,    0, 7362, 7381, 7375,
922      7374,12107,    0, 7357, 7350, 7352, 7363, 7360, 7334, 7331,
923     12107,    0, 7335, 7343,12107,    0, 2784, 7338,12107,    0,
924
925      2787, 7304, 7298, 7335, 7344, 1537, 7291,12107, 1960,    0,
926      7287, 7279, 7307, 7302, 7255,12107, 7267, 7244, 2791, 2845,
927      1980, 7251, 7252, 7228, 7237, 7216, 7218, 7210, 7210, 7215,
928      7203, 7194, 7194, 7207, 7210, 7194, 7194, 7170, 7175, 7182,
929      7168, 7160, 2047, 7167, 7146, 7158, 7151, 7129, 7142, 7133,
930      2848, 2853, 7130, 2805, 2038, 7119, 7150, 2856, 2859,12107,
931      7119, 2904, 2174, 2907, 7109, 2914, 7108, 7112, 7092, 2910,
932      2917, 7075, 7079, 7079, 2959, 2967, 2970, 2353, 7060, 2973,
933      3026, 2413, 7053, 7039, 7032, 7029, 7033, 7019, 7000, 7004,
934      2473, 7001, 6996, 6980, 6979, 6969, 2978, 2608, 6980, 6979,
935
936      3034, 3037, 6953, 3040, 2675, 6966, 3046, 3094, 3097, 2745,
937      6965, 3104, 3107, 6961, 6960, 3119, 3162, 6951, 6941, 6952,
938      3165, 2812, 6934, 6914, 3169, 3173, 6911, 6911, 6924, 3176,
939      3235, 6907, 3228, 2992, 3231, 3058, 3238, 3242, 6905, 2050,
940      3294, 3127, 6906, 3298, 3195, 3304, 6897, 6885, 6887, 6884,
941      6873, 6861, 6861, 6853, 6865, 3307, 3312, 3361, 3364, 3372,
942      3375, 3390, 3444, 3449, 3452, 3457, 3502, 3511, 6856,   37,
943      6836, 3431, 3393, 3514, 6847, 6831, 3517, 3566, 6828, 3559,
944      3401, 3562, 3569, 6841, 3572, 3434, 6838, 3618, 3641, 6831,
945      3621, 3463, 6829, 6785, 6781, 3626, 3631, 3645, 3689, 3694,
946
947      3697, 3700, 6783, 3712, 3722, 3725, 3735, 3703, 3730, 6787,
948      3743, 3471, 3755, 3763, 3774, 3799, 3802, 3806, 3809, 3821,
949      3828, 3833, 3862, 6787, 6765, 6772, 6776, 6747, 3865, 3872,
950      6757, 6722, 3887, 3891, 3839, 3651, 3894, 3897, 3868, 3900,
951      6711, 3916, 3919, 6759,12107,12107, 1070, 6717,12107, 6755,
952      6754, 6693,12107,12107, 6691, 6684, 6669, 3922, 3925,12107,
953      3928, 1704, 6662, 6650, 6658, 6659, 6650, 6636, 6644, 1837,
954      6629, 6631, 6629, 6624, 6622, 6617, 6607,  446, 6619, 6601,
955      6602, 6615, 6602, 6603, 2240, 6596, 6581, 6583, 6575, 1510,
956      6589, 3947, 3950, 3959,12107, 3969, 3965, 3972,12107,12107,
957
958      3984, 6613, 3988, 3991,12107, 3994, 6561, 3998,12107,12107,
959      4013, 4019, 4027, 4031, 4035, 6574, 4049, 6571, 4052, 4055,
960     12107, 4058, 6569, 4061, 6567, 4067, 4079,12107, 4082, 4086,
961     12107,12107, 6562, 4094, 4101,12107, 4104, 6554, 6553, 6555,
962      2297, 6535, 6542, 1772, 6524, 6524, 6536, 6535, 6505, 6503,
963      6509, 4107,12107,12107, 6501, 4115, 4123, 4126,12107, 4133,
964      6502, 4136,12107,12107, 6523, 4145, 4148,12107, 4152, 4155,
965     12107,12107, 4167, 4171, 4174,12107, 4177, 4180, 4186, 4198,
966      4204,12107, 4207, 6492, 6498, 4210, 4217,12107,12107, 6479,
967      6487, 4228, 4231,12107, 4234, 6477, 6470, 4237, 4240, 4259,
968
969     12107, 4262, 4255, 4267,12107,12107, 4281,12107,12107, 4289,
970      4292,12107, 4295, 6471, 6459, 6479, 6471, 4301,12107,12107,
971      4314, 4317,12107,12107, 4325, 4332, 6457, 6462, 6445, 6452,
972      6457, 6453, 6442, 6440, 6435, 4343, 4346,12107, 4349, 4352,
973     12107,12107, 4368,12107,12107, 4376, 4379, 6424, 6428, 6432,
974      6425, 4387, 4390,12107, 4394, 6420, 6417, 6408, 6412, 4397,
975     12107,12107, 4409, 4413, 6397, 6408, 4421, 4427,12107, 4430,
976      6391, 4433,12107,12107, 4449, 4452,12107, 4455, 6369, 4458,
977     12107,12107, 6373, 4474, 4477,12107, 4482, 6363, 4486,12107,
978     12107, 6367, 6370, 6369, 4496, 4501,12107, 4505, 4508, 4511,
979
980      4526, 4532, 6368, 4540, 4544,12107, 4548, 6360, 4551, 4569,
981      6340, 6339, 4555, 4577, 6351, 4585, 4588,12107, 4591, 6350,
982      4594,12107,12107, 4610, 4616,12107, 4619, 4622, 4625, 4640,
983      4643, 4651, 4658,12107, 4662, 4665, 4670, 6333, 6332, 4683,
984      4686, 4694, 4697,12107, 4701, 6323, 4704, 6335, 6293, 6268,
985      4707, 4716,12107, 4726, 6262, 6275, 4729, 4735,12107, 4738,
986      4741,12107,12107, 4749, 4757,12107, 4760, 4764,12107,12107,
987      6265, 4772, 4779,12107, 4782, 1099, 4792,12107,12107, 6286,
988      6285, 6246, 6157, 4801, 6137, 6143, 6151, 6131, 6079, 6071,
989      6028, 2482, 2485, 6015, 2616, 6002, 5976, 2619, 5880, 5856,
990
991      2683, 5844, 5798, 5799, 5794, 5766, 5707, 5705, 5663, 5607,
992      2686, 5544, 5517, 4804, 4822, 4807, 4813, 4831, 5466, 5491,
993      4839, 5441, 4844,12107,12107, 4852, 4859, 4870,12107,12107,
994        17, 4878, 4882,   36, 4890,  132, 4896, 4899, 4909, 4914,
995       256, 4816,12107,  313,  349,  338, 2753, 3067, 3532, 3000,
996       393,  429,  432,  460,  497,  503,  556, 4917, 4920, 4923,
997      4941,  581,  632, 4944, 4947, 4950, 4965, 4968, 4971,  633,
998      4979,  680,  698, 4986, 4989, 4998, 5009, 5012,  699,  746,
999      5016, 5020, 5034, 5037, 5041, 5049,  772, 5056,  756,  782,
1000      5059, 5062, 5070,12107,12107,  793,  843, 5079,  825,  853,
1001
1002       854,  968,  983,  961, 5082, 5085,12107,12107, 5093, 5097,
1003      5101, 5104, 5107, 1043, 5111, 1027, 1065, 5122,12107,12107,
1004      5132, 1118, 5135, 1116, 5138, 1150, 1171, 5141, 1177, 1218,
1005      1233, 5144, 5150, 5169,12107,12107, 5177,12107,12107, 1228,
1006      5164, 4559, 5185,12107,12107, 1234, 1254, 5193,12107,12107,
1007      1263, 5201, 1314, 5208, 5211,12107,12107, 5220,12107,12107,
1008      5231, 5234,12107,12107, 1331, 1363, 5243,12107,12107, 5251,
1009      1365, 5254, 5257, 1357, 1369, 1399, 5266, 1389, 5272, 5275,
1010      5279, 5285, 5290, 1538, 1447, 5294,12107, 1462,12107,12107,
1011      1425, 1428, 5299, 1423, 1440, 1471, 1487, 1502, 1531, 1546,
1012
1013      3100, 1564, 1573, 3265, 1594, 3269, 1597, 3322, 1600, 1619,
1014      3332, 1626, 3521, 1635, 5303, 1642, 1664, 1687, 1695, 1697,
1015      3336, 1685, 5309, 5318,12107,12107, 5326, 5332,12107,12107,
1016      1710, 1729, 5346, 1703, 5356,12107,12107, 1712, 5365,12107,
1017     12107, 1704, 5373, 1707, 5376, 2841, 2955, 5384, 5388, 5398,
1018      1722, 1726, 1746, 1750, 3590, 1758, 3768, 5402, 5405, 1782,
1019      1775, 1778, 5408, 5411, 1869, 5418, 5421, 5429,12107,12107,
1020      5437, 1884, 5440, 5443, 5446,12107,12107, 5458, 5463,12107,
1021     12107, 5477, 5480, 1910, 1899, 5485,12107,12107, 5495, 5499,
1022      5508, 5513, 1909, 5521, 5526, 1915, 5529,12107,12107, 5540,
1023
1024     12107, 5545,12107,12107, 5553, 1916, 5559, 5562, 5572, 1904,
1025      5577,12107,12107, 1910, 1928, 5585, 5590, 5603, 1920, 1938,
1026      1949, 1965, 5606, 5609, 5612, 5615, 5624, 5630, 5633, 5636,
1027      1977, 5642, 5651, 5660, 1966, 5663, 5666, 1976, 5681, 1969,
1028      5684, 1981, 1964, 5689, 1991, 1980, 2016, 5692, 5704, 2032,
1029      5712, 2028, 5715, 2044, 5719, 5722, 5725, 5743, 2040, 5746,
1030      5749, 5752, 5755, 5758, 2035, 5773,12107,12107, 2051, 2049,
1031      2043, 5781, 2061, 5784, 5793, 5802, 5807, 5811, 5815, 5829,
1032      2101, 2100, 2167,12107, 2050, 5833, 5836, 2065, 2091, 2099,
1033      2143, 2096, 2101, 5839, 2118, 2131, 2117, 5842, 2133, 2139,
1034
1035      2161, 5851, 5855, 5858, 2176, 5863, 2180, 5866, 5869, 2164,
1036      2168, 2185, 2172, 5872, 2194, 5875, 2211, 2255, 5878, 2222,
1037      5881, 2229, 5884, 5887, 2266, 2253, 2312, 2255, 2273, 2260,
1038      2372, 2266, 5899,12107,12107, 5890, 5909, 2266, 2281, 2323,
1039      2289, 5912, 5915, 2295, 2381, 2383, 5918, 5927,12107,12107,
1040      5921, 5940, 5944, 5947, 5958, 5962, 5965, 5968, 5977, 2295,
1041      2309, 5983,12107,12107, 5992, 2343, 2370, 2351, 6000,12107,
1042      6003, 2357, 6007, 2361, 6012,12107,12107, 6020, 6026, 2365,
1043      2391, 2395, 6034,12107,12107, 6042, 6045, 6053, 2405, 2415,
1044      2408, 6056, 6060, 6074, 6077,12107,12107, 6085, 6089, 6097,
1045
1046      6103, 6106, 6115, 2409, 6122,12107,12107, 6130, 6134, 2419,
1047      6142,12107,12107, 2415, 6150,12107, 2429, 6153, 2413, 6156,
1048      6159, 2414, 6162, 2458, 6174, 2485, 2493, 2473, 6182,12107,
1049      2475, 6185, 2467, 6188, 6191, 6209, 6212, 2486, 6221, 2483,
1050      6227, 6230, 6233, 6236, 6251, 6254, 6262, 2486, 2488, 2482,
1051      2496, 6265, 2493, 6270,12107,12107, 6284, 6288, 6292,12107,
1052     12107, 6303,12107, 2573, 2772, 2536, 2518, 6307, 6310, 6318,
1053      6331, 2512, 2530, 2549, 2532, 6337, 6342, 6345, 2535, 6348,
1054      2543, 2553, 2547, 6351, 6354, 6357, 6360, 2550, 6363, 6366,
1055      6369, 6372, 6375, 6378, 2552, 6383, 2559, 2594, 6386,12107,
1056
1057      2595, 6390, 6393, 2613, 6408, 6411, 6414, 2630, 2628, 2628,
1058      2638, 2631, 2645, 2643, 2643, 2672, 2685, 6422, 6429, 6435,
1059      6443, 2676, 2692, 2669, 2672, 6447, 6450, 6453, 6456, 6464,
1060      6467, 6472, 6485,12107,12107, 6493, 6498,12107, 6501,12107,
1061     12107, 6512, 2675, 2672, 2717, 2718, 2681, 2697, 6517, 2714,
1062      6520,12107,12107, 2734, 2738, 2751, 6532,12107,12107, 6540,
1063      6545, 2749, 2738, 2752, 6554,12107,12107, 6562, 6566,12107,
1064     12107, 6574, 6577, 6585,12107,12107, 6593, 2757, 6596,12107,
1065     12107, 2751, 2760, 2754, 6604, 2785, 6607, 6612, 6627, 2797,
1066      6630, 6633, 2800, 2802, 2840, 2897, 2809, 2829, 6642,12107,
1067
1068      2819, 6648,12107,12107, 6661,12107,12107, 2847, 6656, 2842,
1069      6670, 6675, 6678,12107,12107, 6690,12107,12107, 6698, 6702,
1070      6708, 6712, 6720, 6726, 2854, 6730, 6733, 6738, 3069, 2916,
1071      6741, 6745,12107,12107, 6753, 6760, 6763, 6766, 2861, 2862,
1072      6772, 6780, 2876, 6783, 6786, 6792, 6795, 6798, 6801, 2870,
1073      2893, 6804, 6807, 6813, 6816, 2902, 6819, 2897,12107, 6822,
1074      6825,12107,12107, 6833, 6840,12107, 6844,12107,12107, 2942,
1075      2928, 2964, 2967, 2974, 2980, 2982, 3005, 3000, 3008, 6852,
1076      6855, 5765, 6838, 6864, 6867, 2969, 2976, 2988, 6872, 2983,
1077      6875,12107,12107, 6883, 6886,12107,12107, 6894, 6902, 2998,
1078
1079      3003, 3036, 3062, 3045, 3086, 3059, 6905, 6908, 3056, 3062,
1080      3061, 3131, 6914,12107,12107, 6922, 3063, 3081, 6930, 6933,
1081     12107,12107, 6941, 3078, 3084, 3085, 3103, 6944,12107, 6949,
1082      6954,12107,12107, 6963, 6969, 6972,12107,12107, 6982, 6987,
1083      3136, 3168, 3156, 3176, 6990, 3139, 6993, 3141, 7000, 6996,
1084      7008, 7020, 7027, 7023, 7032, 7042, 7049, 7052, 7055, 7060,
1085      7070, 7074,12107, 7077, 3270, 3186, 7082, 7089, 7085, 7096,
1086      3131, 3132, 7104, 7108, 7111, 7114, 3129, 3141, 3143, 7117,
1087     12107, 3150, 7120, 7123, 3191, 3206, 3203, 3217, 3208, 3219,
1088      3216, 3212, 3229, 3217, 3265, 7131, 3244, 3255, 3329, 3255,
1089
1090      3262, 3269, 3274, 3410, 3294, 3312, 7140, 3308, 3314, 7143,
1091      3310, 7146, 7150,12107, 7153, 3317, 3319, 3384,12107, 3391,
1092     12107, 7156, 7159, 7165, 3333, 3358, 3346, 3356, 3390, 7175,
1093      7178, 3381, 7186, 7193,12107, 7196,12107, 3374, 3377, 7199,
1094      3378, 7204, 7223, 7208, 7217, 7231, 7239, 7242, 7245, 3443,
1095     12107, 3453,12107, 7248, 3404, 7251, 3418, 7266,12107, 7269,
1096      7272, 7280, 7287, 7292, 7295,12107,12107, 7306, 7311, 7319,
1097      7324, 7327,12107, 7330, 7333, 3557, 3510, 3563, 7337,12107,
1098      3438, 3455, 7342, 3446, 3459, 3473, 7346, 7357, 3726, 3908,
1099      3466, 3502, 3532, 3555, 3559, 3582, 3560, 3589, 3594, 3605,
1100
1101      3622, 7365, 3567, 3579, 3576, 3590, 3594, 3588, 3590, 3604,
1102      3600, 3621, 3625, 3619, 3625, 3642, 7368, 3645, 7371, 7374,
1103     12107, 3637, 7377,12107,12107, 7380, 7384, 7398, 3645, 3655,
1104      3662, 7401, 3662, 7404,12107,12107, 3683, 7412, 7419, 3669,
1105      7430, 7433, 7436, 7444, 7451,12107,12107, 7462,12107, 7465,
1106     12107,12107, 7473, 7476, 7481,12107,12107, 7484, 7487, 7495,
1107      7502, 7506, 3813, 4001, 7514,12107, 7520, 7523, 7533,12107,
1108     12107, 7529, 7543, 7551, 7554, 7562,12107, 3736, 3728, 3753,
1109      3681, 7565, 3707, 3717, 3728, 7570, 7574, 3746, 3758, 3792,
1110      3781, 3785, 3912, 3767, 3808, 3792, 3794, 3807,12107, 3832,
1111
1112      3818, 3832, 3836,12107, 7588, 3813, 3822, 3810, 3824, 3833,
1113      3856, 3841, 3851, 3839, 3853, 3862, 3867, 3869, 7591, 3887,
1114      7594, 7597, 7600, 7603, 7618,12107,12107, 7626,12107, 3893,
1115      3881, 7629, 7632, 7650, 7636, 3904, 7658,12107,12107, 3908,
1116      7666, 7669, 7677,12107,12107, 7685, 7688, 7696, 7699, 7703,
1117      7707,12107,12107, 7717, 7721, 7729, 7735, 3922, 3923, 3927,
1118      3929, 3944, 3945, 7743, 7747, 7755, 3974, 3980, 7766,12107,
1119     12107, 3999, 3990, 7774, 3930, 7640, 7777, 3938, 3941, 7780,
1120     12107,12107, 3991, 3989, 3992, 4012, 4026, 4014, 4031, 4045,
1121      7788, 4034, 4054, 4071, 4057, 4051, 4071, 4085, 4078, 7795,
1122
1123      4033, 4045, 4063, 4116, 4117, 4072, 4065, 4074, 4092, 4151,
1124      4153, 4103, 4113, 7798, 7801, 7806, 7809, 7815, 4113, 7827,
1125     12107,12107, 4131, 4127, 7835, 7838, 7846,12107,12107, 7854,
1126      7858, 4119, 4139, 7866,12107,12107, 7874,12107,12107, 7882,
1127      7885, 7888, 7896, 7903, 4210, 4232, 7914, 4233, 4279, 4152,
1128      4163, 4197, 4161, 4182, 4213, 7922, 7925, 4195, 4202, 4217,
1129      4223, 4232, 7928, 7934, 7937, 7947, 7956, 7959, 7962, 4215,
1130      4227, 4247, 4241, 4246, 4262, 4264, 4261, 7968, 7971, 4273,
1131      4276,12107, 4278, 4282, 4283,12107, 4292, 7979, 4272, 4262,
1132      4326,12107,12107, 4285, 4286, 4272, 4333,12107,12107, 4291,
1133
1134      7982, 7986, 7992, 7998,12107,12107, 4300, 4302, 4303, 8007,
1135     12107,12107, 8015,12107,12107, 8023, 4307, 8026, 8029,12107,
1136     12107, 8037, 4329, 4341, 4332, 4347, 4339, 4350, 4348, 4360,
1137      4352, 4376,12107, 4369, 4379,12107, 8046,12107, 8049, 4382,
1138      4370, 4394, 4382, 4407, 8055, 8058, 8077, 8102, 8149, 8068,
1139      8085, 8088, 4401, 4432, 4434, 4403, 4420, 4437, 4439, 4409,
1140      8092,12107,12107, 4457, 4432, 4433, 4459, 4438, 4440, 8113,
1141      4408, 4416,12107, 4430, 4425, 4427,12107, 4439, 8122, 8125,
1142     12107, 4441, 4446, 4467, 8128, 8132, 4459, 8140, 8169, 8160,
1143      8178, 4516, 4484, 4517, 4492, 4526, 4498, 4530, 4501, 4543,
1144
1145      4550, 4556, 4557, 8186, 4563, 4536, 4568, 4542, 4582, 8195,
1146      4579, 4595, 8215, 8262, 4570,12107,12107, 4563, 4592,12107,
1147     12107, 4571,12107, 4604, 4610,12107, 4623, 4624, 8189,12107,
1148      4629, 4588, 4632, 4631, 4601, 4642, 4603, 4605, 4590, 8235,
1149      4685, 4686, 4617, 8243,12107,12107, 8251, 4695, 4751,12107,
1150      4669,12107, 4668,12107, 4674,12107, 4674,12107,12107,12107,
1151     12107, 8208,12107,12107, 4669,12107, 4671, 4674, 4751, 4695,
1152      4742, 4778, 4745, 8273, 4741, 4746, 4764, 4762,12107,12107,
1153     12107,12107,12107, 4833,12107,12107, 4805,12107, 8282, 8285,
1154      8288, 4808, 4762, 4829, 4768, 8293, 4836, 4771, 4842, 4772,
1155
1156     12107,12107,12107,12107, 4800, 4806, 8296, 4846, 4839, 4857,
1157      8311, 4869, 4856, 4878, 4867,12107, 4846,12107, 4847, 8315,
1158      8318, 8326, 8333, 8344, 8347, 4864, 4873, 4885, 4869, 4881,
1159      4908, 8355, 8363, 4891, 4900, 4913, 4897, 4905, 4918, 4901,
1160      4915, 8358, 4937,12107, 4924,12107, 4926, 4911, 4912, 8373,
1161     12107,12107, 8381,12107,12107, 8389, 4957, 4967, 4939, 4945,
1162      4941, 4949, 4964, 4965, 8397,12107,12107, 4967, 4975, 4971,
1163      4984, 4992, 4992, 5025, 5024, 5047,12107, 5028, 5037, 4992,
1164      4993, 5033, 5041, 5055, 5061, 5063, 5093, 5093, 5091, 5097,
1165      5103, 5102, 5108, 5130, 5127, 5134, 5134,12107,12107, 5154,
1166
1167     12107,12107, 5109, 5112, 5137, 5160, 5145, 5168, 5161, 5166,
1168      5183, 5179, 5177, 5194, 5188, 5186, 5205, 5194, 5198, 5216,
1169      5222, 5238, 5239, 5213, 5227, 5235, 5246, 5259, 5253, 5302,
1170      5283, 5278, 5307, 5292, 5286, 5319, 5300, 5294, 5323, 5317,
1171     12107,12107, 5309, 5314, 5312, 5319, 5346, 5322,12107, 5347,
1172      5328,12107, 5357, 5337,12107, 5363, 5340,12107, 5364, 5344,
1173      5358, 5352, 5371,12107, 5390,12107, 5391,12107, 5393,12107,
1174      5400, 8405, 5402, 5423, 5408, 5444, 5410, 5412, 5414, 5420,
1175      8408, 5462,12107, 5461,12107, 5467, 5466, 5470, 5476, 5484,
1176      5489,12107,12107,12107,12107,12107,12107, 5501, 5514, 5516,
1177
1178      5517, 5475, 5486, 5582, 5631, 5547, 5583, 5630, 5661, 5533,
1179      5638, 5621, 5677, 5610, 5628, 5710, 5753, 5557, 5654, 5679,
1180      5683, 5500, 5538, 5722, 5761, 5773, 5877, 5744, 5919, 5639,
1181      5680, 5760, 5830, 5920, 5935, 5938, 5980, 5809, 5915, 5968,
1182      6011, 5937, 5988, 5999, 6054, 6014, 6033, 5934, 5992, 6062,
1183      6091, 6076, 6093, 6101, 6103, 6130, 6162, 6176, 6179, 6151,
1184      6152, 5932, 6183, 5997, 6206, 6251, 6261, 6242, 6273, 5660,
1185      6077, 6264, 6304, 6197, 6207, 5552, 6257, 6228, 6231, 5487,
1186      6094, 8416, 8419,12107,12107, 8439, 8448, 8457, 8466, 8475,
1187      8484, 8493, 8502, 8511, 8520, 8529, 8538, 8547, 8556, 8565,
1188
1189      8574, 8583, 8592, 8601, 8610, 8619, 8628, 8637, 8646, 8655,
1190      8664, 8673, 8682, 8691, 8700, 8709, 8718, 8727, 8736, 8745,
1191      8754, 8763, 8772, 8781, 8790, 8799, 8808, 8817, 8826, 8835,
1192      8844, 8853, 8862, 8871, 8880, 8889, 8898, 8907, 8916, 8925,
1193      8934, 8943, 8952, 8961, 8970, 8979, 8986, 8993, 9000, 9007,
1194      9014, 9021, 9028, 9035, 9042, 9049, 9056, 9063, 9070, 9077,
1195      9084, 9091, 9098, 9105, 9112, 9119, 9126, 9133, 9140, 9147,
1196      9154, 9161, 9168, 9175, 9184, 9191, 9196, 9203, 9208, 9215,
1197      9220, 9227, 9232, 9239, 9244, 9251, 9256, 9263, 9268, 9275,
1198      9280, 9287, 9292, 9299, 9304, 9311, 9316, 9323, 9328, 9335,
1199
1200      9340, 9347, 9352, 9359, 9364, 9371, 9376, 9383, 9388, 9395,
1201      9400, 9407, 9412, 9419, 9424, 9431, 9436, 9443, 9448, 9455,
1202      9460, 9467, 9472, 9479, 9484, 9491, 9496, 9503, 9508, 9515,
1203      9520, 9529, 9535, 9542, 9550, 9557, 9565, 9572, 9580, 9587,
1204      9595, 9602, 9610, 9617, 9625, 9632, 9640, 9647, 9655, 9662,
1205      9670, 9677, 9685, 9692, 9700, 9707, 9715, 9722, 9730, 9737,
1206      9745, 9753, 9761, 9768, 9776, 9783, 9791, 9798, 9806, 9813,
1207      9821, 9829, 9837, 9845, 9853, 9860, 9868, 9876, 9884, 9892,
1208      9900, 9907, 9915, 9922, 9930, 9938, 9945, 9953, 9962, 9968,
1209      9975, 9983, 9991, 9999,10007,10015,10022,10030,10037,10045,
1210
1211     10052,10060,10067,10075,10082,10090,10098,10106,10114,10122,
1212     10129,10137,10145,10153,10161,10169,10176,10184,10191,10199,
1213     10206,10214,10221,10229,10236,10244,10251,10259,10266,10274,
1214     10281,10289,10296,10304,10312,10319,10327,10334,10342,10349,
1215     10357,10365,10372,10380,10389,10398,10405,10413,10421,10428,
1216     10436,10443,10451,10458,10466,10473,10480,10488,10495,10503,
1217     10511,10518,10526,10533,10541,10549,10557,10564,10572,10580,
1218     10588,10595,10603,10610,10618,10625,10633,10640,10648,10655,
1219     10663,10670,10678,10685,10693,10701,10708,10716,10723,10731,
1220     10739,10747,10755,10763,10771,10780,10789,10796,10804,10812,
1221
1222     10819,10827,10834,10842,10849,10857,10864,10871,10879,10886,
1223     10894,10902,10910,10918,10925,10933,10941,10948,10956,10964,
1224     10972,10979,10987,10994,11002,11009,11017,11024,11032,11039,
1225     11047,11055,11063,11070,11078,11086,11094,11102,11109,11117,
1226     11125,11133,11141,11150,11159,11167,11175,11183,11190,11198,
1227     11205,11213,11221,11229,11237,11245,11253,11261,11269,11277,
1228     11285,11292,11300,11307,11315,11323,11331,11338,11345,11353,
1229     11360,11368,11375,11382,11390,11397,11405,11412,11420,11428,
1230     11436,11443,11451,11459,11467,11476,11485,11493,11501,11508,
1231     11515,11523,11531,11539,11547,11555,11562,11570,11577,11585,
1232
1233     11593,11600,11607,11615,11622,11630,11637,11644,11651,11659,
1234     11666,11674,11682,11690,11698,11706,11714,11722,11731,11740,
1235     11748,11756,11763,11771,11779,11787,11795,11803,11810,11818,
1236     11825,11833,11841,11848,11855,11863,11871,11879,11886,11893,
1237     11901,11909,11917,11925,11933,11941,11949,11957,11966,11975,
1238     11983,11990,11997,12005,12013,12021,12028,12036,12043,12052,
1239     12061,12070,12079,12088,12097
1240     } ;
1241
1242 static yyconst flex_int16_t yy_def[3766] =
1243     {   0,
1244      3286, 3286, 3287, 3287, 3287, 3287, 3288, 3288, 3289, 3289,
1245      3290, 3290, 3291, 3291, 3291, 3291, 3292, 3292, 3286, 3286,
1246      3293, 3293, 3294, 3294, 3294, 3294, 3286, 3286, 3294, 3294,
1247      3294, 3294, 3286, 3286, 3294, 3294, 3286, 3286, 3294, 3294,
1248      3294, 3294, 3295, 3295, 3296, 3296, 3286, 3286, 3296, 3296,
1249      3296, 3296, 3297, 3297, 3291, 3291, 3298, 3298, 3299, 3299,
1250      3300, 3300, 3301, 3301, 3302, 3302, 3303, 3303, 3303, 3303,
1251      3286, 3286, 3303, 3303, 3303, 3303, 3286, 3286, 3303, 3303,
1252      3303, 3303, 3286, 3286, 3303, 3303, 3286, 3286, 3303, 3303,
1253      3303, 3303, 3286, 3286, 3303, 3303, 3286, 3286, 3303, 3303,
1254
1255      3303, 3303, 3304, 3304, 3305, 3305, 3286, 3286, 3305, 3305,
1256      3305, 3305, 3306, 3306, 3307, 3307, 3286, 3286, 3307, 3307,
1257      3307, 3307, 3308, 3308, 3309, 3309, 3310, 3310, 3311, 3311,
1258      3312, 3312, 3313, 3313, 3286, 3286, 3313, 3313, 3313, 3313,
1259      3314, 3314, 3315, 3315, 3316, 3316, 3317, 3317, 3285,  149,
1260      3318, 3318, 3286, 3286, 3318, 3318, 3318, 3318, 3319, 3319,
1261      3320, 3320, 3321, 3321, 3322, 3322, 3323, 3323, 3324, 3324,
1262      3325, 3325, 3326, 3326, 3327, 3327, 3328, 3328, 3286, 3286,
1263      3328, 3328, 3328, 3328, 3329, 3329, 3330, 3330, 3286, 3286,
1264      3330, 3330, 3330, 3330, 3331, 3331, 3332, 3332, 3286, 3286,
1265
1266      3332, 3332, 3332, 3332, 3333, 3333, 3334, 3334, 3335, 3335,
1267      3336, 3336, 3286, 3286, 3336, 3336, 3336, 3336, 3337, 3337,
1268      3338, 3338, 3286, 3286, 3338, 3338, 3338, 3338, 3339, 3339,
1269      3340, 3340, 3286, 3286, 3340, 3340, 3340, 3340, 3341, 3341,
1270      3342, 3342, 3343, 3343, 3344, 3344, 3286, 3286, 3344, 3344,
1271      3344, 3344, 3345, 3345, 3346, 3346, 3286, 3286, 3285, 3285,
1272      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1273      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1274      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3347,
1275      3285, 3285, 3347, 3285, 3285, 3285,  296,  296,  298,  296,
1276
1277       299,  299, 3285, 3285, 3285, 3348, 3285, 3285, 3348, 3285,
1278      3285,  300,  299, 3285, 3285, 3285, 3349, 3285, 3285, 3349,
1279      3349, 3349, 3285, 3285, 3285, 3285, 3285, 3350, 3285, 3285,
1280      3350, 3350, 3350, 3350, 3350, 3285, 3285, 3285, 3285, 3285,
1281      3285, 3351, 3285, 3285, 3351, 3351, 3351, 3285, 3285, 3285,
1282      3285, 3285, 3285, 3352, 3285, 3285, 3352, 3352, 3285, 3285,
1283      3285,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1284       365,  371,  369,  369, 3285, 3285, 3285, 3353, 3285, 3285,
1285      3353, 3353, 3353, 3353, 3285, 3285,  299,  299, 3285, 3285,
1286      3285, 3354, 3285, 3285, 3354, 3354, 3354, 3285, 3285,  299,
1287
1288       299, 3285, 3285, 3285, 3355, 3285, 3285, 3355, 3355, 3285,
1289      3285, 3285, 3285, 3285, 3285, 3356, 3285, 3285, 3356, 3356,
1290      3285, 3285, 3285, 3285, 3285, 3285, 3357, 3285, 3285, 3357,
1291      3357, 3357, 3357, 3357, 3285, 3285,  299,  299,  299, 3285,
1292      3285, 3285, 3358, 3285, 3285, 3358, 3285, 3285, 3285, 3285,
1293      3285, 3285, 3359, 3285, 3285, 3359, 3359, 3359, 3285, 3285,
1294      3285, 3285, 3285, 3285, 3360, 3285, 3285, 3360, 3360, 3360,
1295      3360, 3360, 3360, 3360, 3360, 3285, 3285,  299,  299, 3285,
1296      3285, 3285, 3361, 3285, 3285, 3361, 3361, 3361, 3361, 3361,
1297      3361, 3285, 3285, 3285, 3285, 3285, 3285, 3362, 3285, 3285,
1298
1299      3362, 3362, 3362, 3362, 3362, 3362, 3362, 3285, 3285, 3285,
1300      3285, 3285, 3285, 3363, 3285, 3285, 3363, 3363, 3285, 3285,
1301      3285, 3285, 3285, 3285, 3364, 3285, 3285, 3364, 3364, 3364,
1302      3285, 3285, 3285, 3285, 3285, 3285, 3365, 3285, 3285, 3365,
1303      3365, 3365, 3365, 3285, 3285,  299,  299, 3285, 3285, 3285,
1304      3366, 3285, 3285, 3366, 3366, 3285, 3285,  299,  369,  369,
1305      3285, 3285, 3285, 3367, 3285, 3285, 3367, 3367, 3367, 3285,
1306      3285,  369,  369, 3285, 3285, 3285, 3368, 3285, 3285, 3368,
1307      3368, 3285, 3285, 3285, 3285, 3285, 3285, 3369, 3285, 3285,
1308      3369, 3369, 3285, 3285,  369,  369, 3285, 3285, 3285, 3370,
1309
1310      3285, 3285, 3370, 3370, 3370, 3285, 3285,  369,  369, 3285,
1311      3285, 3285, 3371, 3285, 3285, 3371, 3371, 3371, 3371, 3371,
1312      3285, 3285,  299,  438,  299, 3285, 3285, 3285, 3372, 3285,
1313      3285, 3372, 3285, 3285, 3285, 3285, 3285, 3285, 3373, 3285,
1314      3285, 3373, 3285, 3285,  299,  299, 3285, 3285, 3285, 3374,
1315      3285, 3285, 3374, 3374, 3285, 3285, 3285, 3285, 3375, 3285,
1316      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1317      3285, 3285, 3285, 3285, 3376, 3376, 3377, 3285, 3285, 3285,
1318      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1319      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1320
1321      3285, 3378, 3378, 3379, 3285, 3380, 3380, 3380, 3380, 3285,
1322      3381, 3285, 3285, 3382, 3382, 3382, 3382, 3382, 3382, 3382,
1323      3382, 3382, 3383, 3285, 3384, 3384, 3384, 3384, 3385, 3285,
1324      3386, 3386, 3386, 3387, 3285, 3285, 3285, 3285, 3285, 3285,
1325      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1326      3285, 3285, 3285, 3388, 3388, 3388, 3388, 3388, 3389, 3285,
1327      3390, 3390, 3390, 3390, 3391, 3285, 3392, 3392, 3392, 3393,
1328      3285, 3394, 3394, 3394, 3395, 3285, 3396, 3396, 3396, 3396,
1329      3396, 3396, 3397, 3285, 3285, 3398, 3398, 3399, 3285, 3400,
1330      3400, 3400, 3400, 3401, 3285, 3402, 3402, 3402, 3402, 3402,
1331
1332      3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402, 3402,
1333      3402, 3403, 3285, 3404, 3404, 3404, 3404, 3404, 3404, 3404,
1334      3404, 3405, 3285, 3406, 3406, 3406, 3406, 3406, 3406, 3406,
1335      3406, 3407, 3285, 3408, 3408, 3408, 3409, 3285, 3410, 3410,
1336      3410, 3410, 3411, 3285, 3412, 3412, 3412, 3412, 3412, 3412,
1337      3413, 3285, 3414, 3414, 3414, 3414, 3415, 3285, 3285, 3416,
1338      3416, 3416, 3416, 3416, 3417, 3285, 3418, 3418, 3418, 3419,
1339      3285, 3420, 3420, 3420, 3421, 3285, 3422, 3422, 3422, 3422,
1340      3423, 3285, 3424, 3424, 3424, 3424, 3424, 3424, 3425, 3285,
1341      3285, 3426, 3426, 3427, 3285, 3428, 3428, 3429, 3285, 3430,
1342
1343      3430, 3430, 3431, 3432, 3285, 3432, 3285, 3285, 3285, 3433,
1344      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3434, 3435, 3435,
1345      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1346      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1347      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3436,
1348      3437, 3437, 3438, 3285, 3285, 3438, 3285, 3439, 3439, 3285,
1349      3440, 3285, 3285, 3440, 3440, 3440, 3440, 3440, 3440, 3441,
1350      3441, 3442, 3442, 3442, 3443, 3443, 3285, 3285, 3444, 3445,
1351      3445, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1352      3285, 3285, 3285, 3285, 3285, 3446, 3285, 3285, 3446, 3446,
1353
1354      3447, 3447, 3448, 3285, 3285, 3448, 3449, 3449, 3285, 3285,
1355      3450, 3451, 3451, 3452, 3452, 3453, 3453, 3454, 3454, 3454,
1356      3285, 3285, 3454, 3454, 3455, 3455, 3285, 3285, 3456, 3457,
1357      3457, 3458, 3285, 3285, 3285, 3285, 3459, 3459, 3460, 3460,
1358      3285, 3285, 3460, 3285, 3285, 3460, 3460, 3460, 3460, 3460,
1359      3460, 3460, 3460, 3460, 3460, 3461, 3461, 3285, 3285, 3285,
1360      3285, 3462, 3462, 3462, 3462, 3462, 3463, 3463, 3464, 3464,
1361      3464, 3285, 3285, 3464, 3464, 3464, 3465, 3465, 3466, 3285,
1362      3285, 3467, 3467, 3468, 3285, 3285, 3468, 3469, 3469, 3470,
1363      3285, 3285, 3470, 3470, 3470, 3471, 3471, 3472, 3472, 3472,
1364
1365      3473, 3473, 3285, 3474, 3474, 3474, 3474, 3475, 3475, 3476,
1366      3285, 3285, 3477, 3477, 3478, 3478, 3479, 3479, 3480, 3480,
1367      3480, 3481, 3481, 3482, 3482, 3482, 3482, 3482, 3483, 3483,
1368      3285, 3484, 3485, 3485, 3285, 3285, 3486, 3486, 3285, 3285,
1369      3487, 3488, 3488, 3489, 3285, 3285, 3489, 3285, 3285, 3490,
1370      3285, 3285, 3285, 3285, 3285, 3285, 3491, 3285, 3492, 3285,
1371      3492, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1372      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1373      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1374      3285, 3493, 3285, 3494, 3285, 3494, 3495, 3285, 3285, 3285,
1375
1376      3495, 3285, 3285, 3496, 3285, 3496, 3497, 3285, 3285, 3285,
1377      3285, 3285, 3497, 3285, 3285, 3497, 3497, 3497, 3285, 3498,
1378      3285, 3498, 3499, 3499, 3499, 3285, 3500, 3285, 3500, 3285,
1379      3285, 3285, 3501, 3285, 3502, 3285, 3502, 3285, 3285, 3285,
1380      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1381      3503, 3285, 3285, 3285, 3503, 3503, 3285, 3504, 3285, 3504,
1382      3505, 3285, 3285, 3285, 3505, 3285, 3506, 3285, 3506, 3285,
1383      3285, 3285, 3507, 3285, 3508, 3285, 3508, 3509, 3509, 3285,
1384      3510, 3285, 3510, 3511, 3511, 3511, 3285, 3285, 3285, 3511,
1385      3511, 3285, 3512, 3285, 3512, 3285, 3285, 3513, 3285, 3514,
1386
1387      3285, 3514, 3515, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1388      3516, 3285, 3516, 3517, 3517, 3517, 3517, 3285, 3285, 3285,
1389      3517, 3285, 3285, 3285, 3285, 3285, 3517, 3517, 3517, 3517,
1390      3517, 3517, 3517, 3517, 3517, 3285, 3518, 3285, 3518, 3285,
1391      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3519, 3519, 3519,
1392      3519, 3285, 3520, 3285, 3520, 3521, 3521, 3521, 3521, 3285,
1393      3285, 3285, 3285, 3285, 3521, 3521, 3285, 3522, 3285, 3522,
1394      3523, 3285, 3285, 3285, 3285, 3524, 3285, 3524, 3525, 3285,
1395      3285, 3285, 3525, 3285, 3526, 3285, 3526, 3527, 3285, 3285,
1396      3285, 3527, 3527, 3527, 3285, 3528, 3285, 3528, 3285, 3285,
1397
1398      3285, 3285, 3529, 3285, 3530, 3285, 3530, 3285, 3285, 3285,
1399      3531, 3531, 3285, 3285, 3531, 3285, 3532, 3285, 3532, 3533,
1400      3285, 3285, 3285, 3285, 3534, 3285, 3534, 3285, 3285, 3285,
1401      3285, 3285, 3535, 3285, 3535, 3285, 3285, 3536, 3536, 3285,
1402      3285, 3285, 3537, 3285, 3537, 3538, 3538, 3538, 3538, 3538,
1403      3285, 3539, 3285, 3539, 3285, 3540, 3285, 3541, 3285, 3541,
1404      3285, 3285, 3285, 3285, 3542, 3285, 3542, 3285, 3285, 3285,
1405      3543, 3285, 3544, 3285, 3544, 3545, 3546, 3285, 3285, 3285,
1406      3285, 3285, 3547, 3548, 3285, 3285, 3285, 3285, 3285, 3285,
1407      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1408
1409      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1410      3285, 3285, 3285, 3285, 3285, 3549, 3285, 3285, 3550, 3285,
1411      3551, 3552, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1412      3552, 3285, 3285, 3552, 3553, 3554, 3285, 3285, 3554, 3555,
1413      3556, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1414      3285, 3285, 3285, 3285, 3285, 3285, 3557, 3557, 3285, 3285,
1415      3558, 3559, 3559, 3560, 3285, 3285, 3561, 3285, 3285, 3562,
1416      3563, 3564, 3564, 3285, 3285, 3564, 3564, 3565, 3285, 3285,
1417      3285, 3285, 3566, 3285, 3285, 3567, 3568, 3568, 3568, 3568,
1418      3285, 3285, 3285, 3285, 3285, 3568, 3568, 3568, 3568, 3568,
1419
1420      3568, 3568, 3568, 3568, 3569, 3285, 3285, 3285, 3570, 3570,
1421      3570, 3570, 3571, 3572, 3572, 3572, 3572, 3285, 3285, 3285,
1422      3572, 3572, 3573, 3574, 3575, 3576, 3576, 3577, 3578, 3578,
1423      3578, 3578, 3579, 3285, 3285, 3285, 3285, 3285, 3285, 3580,
1424      3581, 3285, 3285, 3285, 3285, 3582, 3582, 3285, 3285, 3285,
1425      3582, 3583, 3584, 3585, 3285, 3285, 3285, 3285, 3285, 3285,
1426      3586, 3285, 3285, 3285, 3587, 3587, 3285, 3285, 3285, 3588,
1427      3589, 3285, 3285, 3589, 3589, 3589, 3590, 3285, 3591, 3592,
1428      3593, 3594, 3595, 3596, 3597, 3597, 3285, 3597, 3285, 3285,
1429      3285, 3598, 3599, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1430
1431      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1432      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1433      3285, 3285, 3285, 3285, 3285, 3285, 3600, 3285, 3285, 3285,
1434      3601, 3285, 3602, 3603, 3285, 3285, 3285, 3603, 3285, 3285,
1435      3285, 3603, 3604, 3605, 3285, 3285, 3285, 3285, 3285, 3606,
1436      3607, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1437      3285, 3285, 3285, 3285, 3608, 3285, 3285, 3285, 3285, 3285,
1438      3609, 3610, 3610, 3611, 3285, 3285, 3285, 3612, 3285, 3285,
1439      3285, 3613, 3614, 3615, 3615, 3285, 3285, 3285, 3285, 3285,
1440      3285, 3285, 3615, 3616, 3285, 3285, 3285, 3285, 3285, 3285,
1441
1442      3285, 3285, 3285, 3285, 3617, 3618, 3285, 3285, 3618, 3618,
1443      3285, 3285, 3285, 3618, 3618, 3285, 3285, 3618, 3618, 3618,
1444      3618, 3618, 3618, 3619, 3285, 3285, 3620, 3620, 3620, 3621,
1445      3622, 3285, 3285, 3622, 3622, 3285, 3285, 3622, 3623, 3624,
1446      3625, 3626, 3626, 3627, 3628, 3628, 3628, 3285, 3285, 3628,
1447      3629, 3630, 3631, 3285, 3632, 3632, 3632, 3633, 3634, 3635,
1448      3636, 3637, 3637, 3638, 3639, 3285, 3285, 3285, 3639, 3639,
1449      3639, 3640, 3285, 3285, 3285, 3641, 3642, 3285, 3285, 3643,
1450      3644, 3645, 3645, 3285, 3285, 3646, 3647, 3285, 3285, 3285,
1451      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1452
1453      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1454      3285, 3285, 3285, 3285, 3285, 3648, 3649, 3285, 3650, 3651,
1455      3651, 3651, 3652, 3653, 3285, 3285, 3285, 3285, 3285, 3285,
1456      3285, 3285, 3285, 3285, 3285, 3654, 3655, 3285, 3285, 3285,
1457      3285, 3285, 3285, 3285, 3285, 3285, 3656, 3285, 3285, 3285,
1458      3657, 3658, 3285, 3285, 3659, 3660, 3285, 3285, 3661, 3662,
1459      3662, 3285, 3285, 3285, 3285, 3285, 3285, 3662, 3285, 3285,
1460      3285, 3285, 3663, 3664, 3285, 3285, 3285, 3285, 3285, 3664,
1461      3664, 3664, 3285, 3285, 3285, 3285, 3285, 3664, 3664, 3664,
1462      3664, 3285, 3285, 3665, 3285, 3285, 3285, 3285, 3285, 3666,
1463
1464      3285, 3285, 3667, 3668, 3285, 3285, 3285, 3285, 3285, 3668,
1465      3285, 3285, 3285, 3668, 3285, 3285, 3669, 3670, 3671, 3671,
1466      3672, 3673, 3673, 3673, 3285, 3285, 3285, 3673, 3285, 3285,
1467      3674, 3675, 3285, 3285, 3285, 3285, 3285, 3676, 3677, 3678,
1468      3679, 3680, 3285, 3285, 3285, 3285, 3681, 3682, 3682, 3682,
1469      3682, 3683, 3285, 3285, 3285, 3285, 3684, 3685, 3285, 3285,
1470      3285, 3285, 3285, 3686, 3687, 3687, 3285, 3285, 3285, 3688,
1471      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1472      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1473      3285, 3285, 3285, 3285, 3285, 3689, 3690, 3285, 3285, 3285,
1474
1475      3691, 3285, 3285, 3691, 3692, 3285, 3285, 3285, 3285, 3285,
1476      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3693, 3285, 3285,
1477      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3694,
1478      3285, 3285, 3285, 3285, 3285, 3695, 3285, 3285, 3285, 3285,
1479      3285, 3696, 3697, 3697, 3285, 3285, 3697, 3285, 3698, 3699,
1480      3285, 3285, 3285, 3699, 3699, 3699, 3285, 3285, 3285, 3285,
1481      3285, 3699, 3699, 3699, 3285, 3285, 3285, 3700, 3285, 3285,
1482      3285, 3285, 3285, 3285, 3285, 3285, 3701, 3702, 3285, 3285,
1483      3285, 3702, 3702, 3703, 3704, 3705, 3285, 3285, 3706, 3707,
1484      3285, 3285, 3707, 3707, 3285, 3285, 3707, 3708, 3285, 3285,
1485
1486      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3709, 3710, 3711,
1487      3712, 3713, 3285, 3285, 3285, 3285, 3285, 3285, 3714, 3715,
1488      3715, 3715, 3715, 3716, 3285, 3717, 3718, 3719, 3720, 3720,
1489      3285, 3285, 3285, 3285, 3721, 3285, 3285, 3285, 3285, 3285,
1490      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1491      3285, 3285, 3285, 3285, 3285, 3285, 3722, 3723, 3285, 3724,
1492      3285, 3285, 3285, 3724, 3285, 3285, 3285, 3285, 3285, 3285,
1493      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3725,
1494      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1495      3285, 3285, 3285, 3726, 3285, 3285, 3285, 3727, 3728, 3729,
1496
1497      3729, 3285, 3285, 3285, 3285, 3729, 3285, 3730, 3731, 3731,
1498      3731, 3731, 3285, 3285, 3285, 3731, 3731, 3731, 3732, 3285,
1499      3285, 3285, 3733, 3734, 3734, 3734, 3735, 3285, 3285, 3736,
1500      3285, 3285, 3285, 3737, 3738, 3285, 3285, 3285, 3738, 3738,
1501      3285, 3285, 3285, 3285, 3738, 3739, 3285, 3740, 3741, 3742,
1502      3743, 3744, 3745, 3285, 3285, 3746, 3746, 3746, 3747, 3285,
1503      3748, 3285, 3285, 3749, 3750, 3750, 3285, 3751, 3285, 3285,
1504      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1505      3285, 3752, 3285, 3285, 3753, 3285, 3285, 3285, 3285, 3285,
1506      3285, 3285, 3285, 3285, 3285, 3754, 3285, 3285, 3285, 3285,
1507
1508      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1509      3285, 3755, 3285, 3285, 3756, 3757, 3757, 3285, 3285, 3285,
1510      3285, 3757, 3285, 3758, 3759, 3759, 3759, 3759, 3759, 3285,
1511      3285, 3759, 3759, 3285, 3285, 3285, 3285, 3734, 3734, 3734,
1512      3735, 3285, 3285, 3737, 3285, 3285, 3738, 3738, 3738, 3285,
1513      3285, 3285, 3285, 3738, 3739, 3285, 3740, 3285, 3285, 3285,
1514      3285, 3743, 3744, 3745, 3285, 3285, 3285, 3285, 3285, 3746,
1515      3746, 3285, 3285, 3285, 3748, 3749, 3750, 3750, 3285, 3285,
1516      3285, 3285, 3285, 3285, 3285, 3285, 3752, 3285, 3285, 3285,
1517      3753, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1518
1519      3285, 3754, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1520      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3755, 3285,
1521      3285, 3757, 3757, 3285, 3285, 3285, 3285, 3758, 3759, 3759,
1522      3759, 3759, 3759, 3285, 3285, 3285, 3759, 3285, 3285, 3734,
1523      3734, 3285, 3285, 3735, 3285, 3285, 3285, 3285, 3285, 3285,
1524      3285, 3285, 3738, 3738, 3738, 3285, 3285, 3285, 3285, 3739,
1525      3740, 3285, 3285, 3285, 3285, 3285, 3744, 3745, 3285, 3285,
1526      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749, 3750, 3750,
1527      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1528      3285, 3285, 3285, 3753, 3285, 3285, 3285, 3285, 3285, 3285,
1529
1530      3285, 3285, 3285, 3285, 3754, 3285, 3285, 3285, 3285, 3285,
1531      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1532      3755, 3757, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3759,
1533      3759, 3759, 3285, 3285, 3759, 3759, 3285, 3285, 3285, 3734,
1534      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3738, 3738, 3738,
1535      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1536      3285, 3285, 3285, 3744, 3745, 3285, 3285, 3285, 3285, 3285,
1537      3285, 3749, 3750, 3750, 3285, 3285, 3285, 3285, 3285, 3285,
1538      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1539      3753, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3754,
1540
1541      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1542      3285, 3285, 3285, 3285, 3285, 3755, 3285, 3285, 3757, 3285,
1543      3285, 3285, 3759, 3759, 3285, 3285, 3285, 3285, 3285, 3285,
1544      3285, 3759, 3734, 3285, 3285, 3285, 3285, 3285, 3285, 3738,
1545      3285, 3285, 3738, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1546      3285, 3285, 3285, 3285, 3285, 3744, 3745, 3285, 3285, 3285,
1547      3285, 3749, 3750, 3750, 3750, 3285, 3285, 3285, 3285, 3285,
1548      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1549      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3754, 3285, 3285,
1550      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1551
1552      3285, 3285, 3755, 3285, 3285, 3285, 3757, 3759, 3759, 3285,
1553      3285, 3285, 3285, 3285, 3285, 3759, 3734, 3738, 3285, 3285,
1554      3285, 3738, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1555      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3745, 3285,
1556      3285, 3285, 3285, 3749, 3750, 3750, 3750, 3760, 3761, 3285,
1557      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1558      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3754,
1559      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1560      3285, 3757, 3759, 3759, 3285, 3285, 3734, 3285, 3285, 3285,
1561      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1562
1563      3285, 3285, 3285, 3745, 3285, 3285, 3285, 3285, 3749, 3750,
1564      3762, 3763, 3760, 3761, 3285, 3285, 3285, 3285, 3285, 3285,
1565      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1566      3285, 3285, 3285, 3285, 3285, 3285, 3757, 3759, 3759, 3285,
1567      3285, 3285, 3734, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1568      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1569      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749, 3762, 3750,
1570      3764, 3763, 3765, 3750, 3285, 3285, 3285, 3285, 3285, 3285,
1571      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3757, 3759,
1572      3759, 3285, 3285, 3285, 3285, 3734, 3285, 3285, 3285, 3285,
1573
1574      3285, 3285, 3285, 3285, 3285, 3285, 3749, 3764, 3285, 3765,
1575      3750, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1576      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1577      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1578      3285, 3749, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1579      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1580      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1581      3285, 3285, 3285, 3285, 3285, 3749, 3285, 3285, 3285, 3285,
1582      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1583      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749,
1584
1585      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1586      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1587      3749, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1588      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749,
1589      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1590      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749, 3285,
1591      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1592      3285, 3749, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1593      3749, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3749,
1594      3749, 3285, 3285, 3285, 3285, 3285, 3285, 3749, 3749, 3749,
1595
1596      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1597      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1598      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1599      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1600      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1601      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1602      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1603      3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
1604      3749, 3749, 3749, 3285,    0, 3285, 3285, 3285, 3285, 3285,
1605      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1606
1607      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1608      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1609      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1610      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1611      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1612      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1613      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1614      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1615      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1616      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1617
1618      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1619      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1620      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1621      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1622      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1623      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1624      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1625      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1626      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1627      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1628
1629      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1630      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1631      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1632      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1633      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1634      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1635      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1636      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1637      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1638      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1639
1640      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1641      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1642      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1643      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1644      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1645      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1646      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1647      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1648      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1649      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1650
1651      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1652      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1653      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1654      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1655      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1656      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
1657      3285, 3285, 3285, 3285, 3285
1658     } ;
1659
1660 static yyconst flex_int16_t yy_nxt[12182] =
1661     {   0,
1662      3285,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1663       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1664       264,  270, 3285,  265, 3285,  271,  265, 3285,  271,  268,
1665       267,  263,  267,  659,  274,  276,  277,  274,  276,  277,
1666       278,  279,  704,  278,  279,  659,  268,  283,  284,  660,
1667       280,  276,  277,  280,  281,  662,  278,  276,  277,  693,
1668       281,  661,  278,  283,  284, 1738,  280,  263,  263,  263,
1669       849,  661,  280,  263,  263,  263,  295,  263,  295,  295,
1670       263,  295,  850,  286,  295,  263,  295,  680, 1742,  286,
1671       734,  285,  296, 1357,  696,  296,  658,  658,  658, 1358,
1672
1673       297,  658,  658,  658,  658,  658,  658,  285,  287,  288,
1674       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1675       287,  287,  287,  691,  287,  291,  287,  292,  287,  295,
1676       263,  295,  263,  263,  263,  263,  263,  263,  692,  295,
1677       263,  295,  295,  263,  295,  297,  697,  805,  298,  662,
1678       806,  298,  923,  287,  287,  296,  662,  662,  296,  295,
1679       263,  295,  658,  658,  658,  661,  658,  658,  658,  658,
1680       658,  658,  661,  661, 3285,  299,  924,  293,  287,  288,
1681       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1682       287,  287,  287, 1744,  287,  291,  287,  292,  287,  295,
1683
1684       263,  295,  263,  263,  263,  263,  263,  263,  667,  295,
1685       263,  295,  295,  263,  295,  299,  673,  734,  300,  818,
1686       983,  300,  819,  287,  287,  297,  743,  735,  297,  263,
1687       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1688       295,  295,  263,  295,  984,  301,  855,  293,  301,  662,
1689       668,  299,  798,  856,  299,  747,  669,  302,  295,  263,
1690       295,  670,  658,  658,  658,  661,  671,  658,  658,  658,
1691       658,  658,  658,  799,  302,  303,  304,  263,  304,  303,
1692       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1693       721,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1694
1695       263,  311,  263,  263,  263,  722,  263,  263,  263,  311,
1696       263,  311,  312,  911,  857,  312,  912, 1751,  300,  717,
1697       303,  303,  300,  718,  759,  312,  677,  719,  309,  303,
1698       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1699       305,  303,  303,  303,  662,  303,  307,  303,  308,  303,
1700       311,  263,  311,  311,  263,  311,  311,  263,  311,  807,
1701       661,  865,  276,  277,  863,  698,  312,  278, 3285,  313,
1702       697,  864,  313,  808,  303,  303,  743,  323,  699,  759,
1703       692, 1752,  309,  314,  315,  263,  315,  314,  314,  314,
1704       314,  314,  314,  314,  316,  314,  314,  314, 1753,  314,
1705
1706       318,  314,  319,  314, 1754,  662,  324,  691,  337,  263,
1707       337,  337,  263,  337,  349,  263,  349,  697,  276,  277,
1708       700,  661,  692,  278,  338,  710,  802,  338,  314,  314,
1709       350,  696,  711,  323,  803, 1019,  320,  765, 1020,  321,
1710       804,  661,  658,  658,  658, 1759,  322,  314,  315,  263,
1711       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1712       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1713       349,  360,  263,  360,  360,  263,  360, 1760,  360,  263,
1714       360,  360,  263,  360,  350,  662,  748,  361,  662,  743,
1715       361,  858,  314,  314,  362,  723, 1500,  362, 1761,  697,
1716
1717       320,  661,  749,  321,  661,  658,  658,  658,  765, 1501,
1718       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1719       325,  325,  327,  325,  325,  325, 1762,  325,  329,  325,
1720       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1721       360,  783,  360,  263,  360,  360,  263,  360,  363, 1763,
1722       662,  363,  662,  662,  361, 1764,  325,  325,  361,  729,
1723       696,  364,  658,  658,  658,  331,  661,  332,  661,  661,
1724       783,  333,  658,  658,  658,  812,  334,  335,  325,  326,
1725       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1726       325,  325,  325,  696,  325,  329,  325,  330,  325,  360,
1727
1728       263,  360,  263,  263,  263,  263,  263,  263,  890,  360,
1729       263,  360,  360,  263,  360,  364,  746, 1765,  365,  784,
1730       686,  365,  743,  325,  325,  366,  739,  743,  366,  658,
1731       658,  658,  331,  742,  332,  658,  658,  658,  333,  658,
1732       658,  658, 1772,  334,  335,  339,  340,  263,  340,  339,
1733       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1734       693,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1735       263,  360,  263,  263,  263,  905,  263,  263,  263,  360,
1736       263,  360,  367, 1773, 1782,  367,  905,  875,  368,  750,
1737       339,  339,  368,  737,  738,  364,  881,  345,  658,  658,
1738
1739       658,  906,  696,  346,  751,  658,  658,  658,  658,  658,
1740       658,  957,  347,  339,  340,  263,  340,  339,  339,  339,
1741       339,  339,  339,  339,  341,  339,  339,  339, 1784,  339,
1742       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1743       263,  263,  263,  697,  360,  263,  360,  360,  263,  360,
1744       364,  662,  697,  369, 1785,  923,  369,  662,  339,  339,
1745       367,  662,  662,  367,  770,  345, 1795,  661,  658,  658,
1746       658,  346,  983,  661,  658,  658,  658,  661,  661,  992,
1747       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1748       351,  351,  353,  351,  351,  351,  924,  351,  355,  351,
1749
1750       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1751       263, 1796,  263,  263,  263,  360,  263,  360,  370,  662,
1752      1806,  370,  662, 1809,  371,  812,  351,  351,  371,  775,
1753      1810,  372,  658,  658,  658,  661, 3285,  357,  661,  658,
1754       658,  658,  658,  658,  658, 1814,  358,  351,  352,  263,
1755       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1756       351,  351,  983,  351,  355,  351,  356,  351,  360,  263,
1757       360,  263,  263,  263,  263,  263,  263,  696,  360,  263,
1758       360,  360,  263,  360,  372,  784,  992,  373,  743,  923,
1759       373, 1815,  351,  351,  370,  662, 1818,  370,  360,  263,
1760
1761       360, 1819,  788,  357,  360,  263,  360,  658,  658,  658,
1762       851,  661,  358,  993,  374,  658,  658,  658,  734, 1820,
1763       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1764       375,  375,  377,  375,  375,  375,  983,  375,  379,  375,
1765       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1766       263,  932,  263,  263,  263,  933,  752,  662,  387, 1027,
1767       993,  387,  743, 1028,  363, 3285,  375,  375,  363,  662,
1768       662,  381,  741,  661,  851,  693,  794,  382,  658,  658,
1769       658,  383,  658,  658,  658,  661,  661,  384,  375,  376,
1770       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1771
1772       375,  375,  375,  680,  375,  379,  375,  380,  375,  386,
1773       263,  386,  386,  263,  386,  386,  263,  386,  889,  386,
1774       263,  386,  658,  658,  658,  387,  696,  809,  387, 1821,
1775      1822,  388, 1823,  375,  375,  388,  662,  662,  381,  810,
1776       811,  658,  658,  658,  382,  658,  658,  658,  383,  658,
1777       658,  658,  661,  661,  384,  389,  390,  263,  390,  389,
1778       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1779       696,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1780       263,  399,  263,  263,  263,  925,  263,  263,  263, 1145,
1781       662, 1831,  400, 1476, 1834,  400,  926,  822,  363,  927,
1782
1783       389,  389,  363,  662,  662,  395,  661,  658,  658,  658,
1784       832,  396,  658,  658,  658,  658,  658,  658, 1145,  661,
1785       661, 1835,  397,  389,  390,  263,  390,  389,  389,  389,
1786       389,  389,  389,  389,  391,  389,  389,  389, 1684,  389,
1787       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1788       399,  263,  399,  937,  399,  263,  399,  658,  658,  658,
1789       400,  662,  662,  400,  662, 1838,  401,  938,  389,  389,
1790       401,  837, 1840,  395,  658,  658,  658,  661,  661,  396,
1791       661,  658,  658,  658,  658,  658,  658,  658,  658,  658,
1792       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1793
1794       402,  402,  404,  402,  402,  402, 1842,  402,  406,  402,
1795       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1796       422, 1843,  422,  263,  422,  436,  263,  436,  412,  662,
1797       662,  412,  662, 1845,  423,  865,  402,  402,  423,  843,
1798       898,  437,  658,  658,  658,  661,  661,  408,  661,  658,
1799       658,  658,  409,  402,  403,  263,  403,  402,  402,  402,
1800       402,  402,  402,  402,  404,  402,  402,  402, 1846,  402,
1801       406,  402,  407,  402,  436,  263,  436,  263,  263,  263,
1802       263,  263,  263,  858,  436,  263,  436,  436,  263,  436,
1803       437,  697,  743,  438, 1847, 1852,  438,  662,  402,  402,
1804
1805       437, 1855,  898,  437, 1856,  857,  658,  658,  658,  408,
1806       658,  658,  658,  661,  409,  413,  414,  263,  414,  413,
1807       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1808      1857,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1809       263,  436,  448,  263,  448,  942,  448,  263,  448,  460,
1810       263,  460,  439,  858,  696,  439,  662,  696,  449,  938,
1811       413,  413,  449,  870,  662,  461,  658,  658,  658,  658,
1812       658,  658,  661,  658,  658,  658,  419,  658,  658,  658,
1813       661, 1859,  420,  413,  414,  263,  414,  413,  413,  413,
1814       413,  413,  413,  413,  415,  413,  413,  413, 1862,  413,
1815
1816       417,  413,  418,  413,  460,  263,  460,  477,  263,  477,
1817       477,  263,  477, 1863,  263,  263,  263,  263,  263,  263,
1818       461, 1865,  662,  478, 1869, 1870,  478,  662,  413,  413,
1819       363,  925,  662,  363,  658,  658,  658,  875,  661,  658,
1820       658,  658,  926,  661,  419,  941, 1871,  881,  661, 1873,
1821       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1822       424,  424,  426,  424,  424,  424, 1687,  424,  428,  424,
1823       429,  424,  477,  263,  477,  477,  263,  477,  477,  263,
1824       477, 1884,  477,  263,  477,  858,  662, 1885,  478, 1886,
1825      1888,  478, 1889,  697,  479,  858,  424,  424,  479,  430,
1826
1827       662,  431,  661,  697,  658,  658,  658,  432,  658,  658,
1828       658,  658,  658,  658,  433,  889,  661,  434,  424,  425,
1829       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1830       424,  424,  424, 1890,  424,  428,  424,  429,  424,  493,
1831       263,  493,  493,  263,  493,  509,  263,  509,  944,  509,
1832       263,  509,  890, 1891, 1892,  494, 1145, 1145,  494,  945,
1833      1512,  510,  927,  424,  424,  510,  430,  743,  431,  658,
1834       658,  658, 1147, 1501,  432,  658,  658,  658,  658,  658,
1835       658,  433, 1881, 1893,  434,  440,  441,  263,  441,  440,
1836       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1837
1838      1894,  440,  444,  440,  445,  440,  520,  263,  520,  520,
1839       263,  520,  532,  263,  532,  942,  532,  263,  532,  545,
1840       263,  545,  521, 1895, 1896,  521,  662,  662,  533,  989,
1841       440,  440,  533,  894,  903,  546,  658,  658,  658,  658,
1842       658,  658,  661,  661, 1897, 1899,  446,  440,  441,  263,
1843       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1844       440,  440, 1900,  440,  444,  440,  445,  440,  545,  263,
1845       545,  263,  263,  263,  263,  263,  263,  942,  545,  263,
1846       545,  545,  263,  545,  546, 1901, 1902,  363,  934, 1905,
1847       363,  994,  440,  440,  546,  935, 1908,  546,  658,  658,
1848
1849       658,  936,  909,  909,  909, 1162, 1162, 1162,  446,  450,
1850       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1851       452,  450,  450,  450, 1909,  450,  454,  450,  455,  450,
1852       545,  263,  545,  545,  263,  545,  557,  263,  557, 1910,
1853       557,  263,  557,  263,  263,  263,  547, 1911, 1912,  547,
1854       947, 1913,  558,  944,  450,  450,  558,  935,  942,  559,
1855       456,  910,  947,  948,  945,  457, 1917,  941, 1918,  935,
1856      1920, 1921,  995, 1922, 1924,  936, 1937,  458,  450,  451,
1857       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1858       450,  450,  450, 1938,  450,  454,  450,  455,  450,  263,
1859
1860       263,  263,  557,  263,  557,  557,  263,  557, 1939,  557,
1861       263,  557,  557,  263,  557,  559, 1940, 1941,  558,  934,
1862       934,  558, 1512,  450,  450,  560,  935,  935,  560,  456,
1863       947,  925,  948,  988,  457, 1550, 1944,  935, 1492, 1492,
1864      1492, 1945,  945,  988, 1946,  941,  458,  462,  463,  263,
1865       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1866       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1867       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1868       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1869       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1870
1871       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1872       473,  465,  474,  475,  465,  465,  465,  465,  465,  465,
1873       465,  480,  481,  263,  481,  480,  480,  480,  480,  480,
1874       480,  480,  482,  480,  480,  480, 1947,  480,  484,  480,
1875       485,  480,  571,  263,  571,  571,  263,  571,  263,  263,
1876       263, 1952,  263,  263,  263,  571,  263,  571,  572, 1960,
1877      1961,  572, 1968, 1972,  559, 1974,  480,  480,  559, 1980,
1878       486,  572,  909,  909,  909, 1981, 1149,  487, 1982, 1988,
1879       488, 1162, 1162, 1162,  489, 1989,  490,  491,  480,  481,
1880       263,  481,  480,  480,  480,  480,  480,  480,  480,  482,
1881
1882       480,  480,  480, 1990,  480,  484,  480,  485,  480,  571,
1883       263,  571,  571,  263,  571,  571,  263,  571, 1991,  583,
1884       263,  583,  583,  263,  583,  572, 2004, 2010,  573, 2014,
1885      2017,  573, 2019,  480,  480,  584, 2020,  486,  584, 1198,
1886      1198, 1198, 2022, 1199,  487, 1163, 1200,  488, 1185, 1185,
1887      1185,  489, 2023,  490,  491,  495,  496,  263,  496,  495,
1888       495,  495,  495,  495,  495,  495,  497,  495,  495,  495,
1889      2024,  495,  499,  495,  500,  495,  594,  263,  594,  594,
1890       263,  594,  263,  263,  263, 2028,  263,  263,  263,  954,
1891       954,  954,  595, 2031, 2033,  595, 2040, 2048,  559, 1315,
1892
1893       495,  495,  559,  501,  502,  503,  955, 2049, 2050, 1316,
1894      2051,  504, 1163, 2053,  505, 2067, 1317, 2071,  506, 1687,
1895      1145,  507,  495,  496,  263,  496,  495,  495,  495,  495,
1896       495,  495,  495,  497,  495,  495,  495, 2064,  495,  499,
1897       495,  500,  495,  594,  263,  594,  594,  263,  594,  594,
1898       263,  594, 2072,  594,  263,  594,  962,  962,  962,  595,
1899      2073, 2065,  595, 2076, 2074,  596, 2077,  495,  495,  596,
1900       501,  502,  503,  963, 2079, 1208, 1208, 1208,  504, 1209,
1901      2075,  505, 1210, 2080, 2081,  506, 1687, 2082,  507,  511,
1902       512,  263,  512,  511,  511,  511,  511,  511,  511,  511,
1903
1904       513,  511,  511,  511, 2083,  511,  515,  511,  516,  511,
1905       607,  263,  607,  607,  263,  607,  263,  263,  263, 2066,
1906       263,  263,  263,  977,  977,  977,  608, 2084, 2087,  608,
1907      2088, 2091,  559, 2092,  511,  511,  559, 2093, 2094,  517,
1908       978, 1185, 1185, 1185, 2095,  518,  511,  512,  263,  512,
1909       511,  511,  511,  511,  511,  511,  511,  513,  511,  511,
1910       511, 2097,  511,  515,  511,  516,  511,  607,  263,  607,
1911       607,  263,  607,  607,  263,  607, 2098,  607,  263,  607,
1912       997,  997,  997,  608, 2101, 2104,  608, 2108, 2109,  609,
1913      2112,  511,  511,  609, 2113, 2114,  517,  998, 1547, 1547,
1914
1915      1547, 2117,  518,  522,  523,  263,  523,  522,  522,  522,
1916       522,  522,  522,  522,  524,  522,  522,  522, 2121,  522,
1917       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1918       263,  263,  263, 2110,  263,  263,  263,  622,  263,  622,
1919       623, 2111, 2122,  623, 2123, 2125,  624, 2127,  522,  522,
1920       624, 2143,  528,  623, 1230, 1230, 1230, 2144, 1231,  529,
1921      2124, 1232,  530,  522,  523,  263,  523,  522,  522,  522,
1922       522,  522,  522,  522,  524,  522,  522,  522, 2145,  522,
1923       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1924       622,  263,  622, 2115,  634,  263,  634,  634,  263,  634,
1925
1926       623, 2116, 2123,  625, 2074, 2146,  625, 2147,  522,  522,
1927       635, 2148,  528,  635, 1162, 1162, 1162, 2150, 2075,  529,
1928      2124, 2154,  530,  534,  535,  263,  535,  534,  534,  534,
1929       534,  534,  534,  534,  536,  534,  534,  534, 2155,  534,
1930       538,  534,  539,  534,  644,  263,  644,  644,  263,  644,
1931       263,  263,  263, 2156,  263,  263,  263,  644,  263,  644,
1932       645, 2162, 2163,  645, 2164, 2178,  363, 2182,  534,  534,
1933       363, 2183,  540,  645, 1185, 1185, 1185, 2184, 1238,  541,
1934      2186, 2190,  542, 1492, 1492, 1492, 1701, 1701, 1701,  543,
1935       534,  535,  263,  535,  534,  534,  534,  534,  534,  534,
1936
1937       534,  536,  534,  534,  534, 2194,  534,  538,  534,  539,
1938       534,  644,  263,  644,  644,  263,  644,  644,  263,  644,
1939      2195,  656,  263,  656,  656,  263,  656,  645, 2196, 2197,
1940       646, 2198, 1702,  646, 2201,  534,  534,  657, 1238,  540,
1941       657, 3285, 2208,  734,  693, 2210,  541, 2220, 2221,  542,
1942      2222,  693, 2223,  744, 2225, 1687,  543,  548,  549,  263,
1943       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
1944       548,  548,  748,  548,  552,  548,  553,  548, 2231, 2237,
1945       694,  745, 2238, 1004, 1004, 1004,  695, 2239,  749, 1009,
1946      1009, 1009, 1145,  696, 2240,  696, 2243,  697, 2228,  690,
1947
1948      1005, 2230,  548,  548, 2245, 2246, 1010, 2247,  554, 1252,
1949      1252, 1252, 2251, 1253, 2256, 2258, 1254, 1704, 1704, 1704,
1950      1708, 1708, 1708,  555,  548,  549,  263,  549,  548,  548,
1951       548,  548,  548,  548,  548,  550,  548,  548,  548, 2259,
1952       548,  552,  548,  553,  548, 1021, 1021, 1021, 1033, 1033,
1953      1033, 1035, 1035, 1035, 1041, 1041, 1041, 1044, 1044, 1044,
1954      2260, 2264, 1022, 1705, 2270, 1034, 2271, 2272, 1036,  548,
1955       548, 1042, 2273, 2274, 1045,  554, 1262, 1262, 1262, 2275,
1956      1263, 2276, 2277, 1264, 1711, 1711, 1711, 1721, 1721, 1721,
1957       555,  561,  562,  263,  562,  561,  561,  561,  561,  561,
1958
1959       561,  561,  563,  561,  561,  561, 2278,  561,  565,  561,
1960       566,  561, 1058, 1058, 1058, 1060, 1060, 1060, 1072, 1072,
1961      1072, 1080, 1080, 1080, 1085, 1085, 1085, 2279, 2285, 1059,
1962      2286, 2287, 1061, 2288, 2300, 1073,  561,  561, 1081, 2301,
1963      2306, 1086,  567, 2302, 2304,  568, 1270, 1270, 1270, 2307,
1964      1271, 2303, 2305, 1272, 1547, 1547, 1547,  569,  561,  562,
1965       263,  562,  561,  561,  561,  561,  561,  561,  561,  563,
1966       561,  561,  561, 2309,  561,  565,  561,  566,  561, 1091,
1967      1091, 1091, 1111, 1111, 1111, 1135, 1135, 1135, 1139, 1139,
1968      1139, 1687, 1158, 1158, 1158, 2310, 1092, 2311, 2312, 1112,
1969
1970      2316, 2317, 1136,  561,  561, 1140,  954,  954,  954,  567,
1971      1160, 2318,  568, 1287, 1287, 1287, 2324, 1288, 2325, 2326,
1972      1289, 2327, 2229,  955,  569,  574,  575,  263,  575,  574,
1973       574,  574,  574,  574,  574,  574,  576,  574,  574,  574,
1974      2330,  574,  578,  574,  579,  574, 1158, 1158, 1158, 1193,
1975      1193, 1193, 2335, 2339, 1193, 1193, 1193, 1203, 1203, 1203,
1976      1203, 1203, 1203, 1925, 1160, 2340, 2341, 1195, 2345, 1926,
1977       574,  574, 1195, 1927, 2342, 1205,  580, 1928, 1205, 2346,
1978      2347,  581,  574,  575,  263,  575,  574,  574,  574,  574,
1979       574,  574,  574,  576,  574,  574,  574, 2348,  574,  578,
1980
1981       574,  579,  574, 2350, 1161,  962,  962,  962, 1211, 1211,
1982      1211, 1219, 1219, 1219, 1196, 1214, 1214, 1214, 1219, 1219,
1983      1219, 2360,  963, 2343, 1206, 1212, 2371,  574,  574, 1221,
1984      2372, 2344, 1215,  580, 2373, 1687, 1221, 2377,  581,  585,
1985       586,  263,  586,  585,  585,  585,  585,  585,  585,  585,
1986       587,  585,  585,  585, 2378,  585,  589,  585,  590,  585,
1987      1226, 1226, 1226, 2379, 2382, 1222, 2386, 2387, 1226, 1226,
1988      1226,  977,  977,  977, 1234, 1234, 1234, 1929, 1228,  997,
1989       997,  997, 2366, 1930,  585,  585, 1228, 1931,  978, 2388,
1990       591, 1932, 1236, 1304, 1304, 1304,  998, 1305, 2389, 2390,
1991
1992      1306, 1758, 1758, 1758, 2391,  592,  585,  586,  263,  586,
1993       585,  585,  585,  585,  585,  585,  585,  587,  585,  585,
1994       585, 2392,  585,  589,  585,  590,  585, 1234, 1234, 1234,
1995      2393, 2394, 1229, 2395, 2408, 1257, 1257, 1257, 1257, 1257,
1996      1257, 1004, 1004, 1004, 2409, 1236, 2410, 1266, 1266, 1266,
1997      2411,  585,  585, 1259, 2416, 2417, 1259,  591, 1005, 1307,
1998      1307, 1307, 2418, 1308, 1237, 1268, 1309, 2419, 1755, 1755,
1999      1755, 2420,  592,  597,  598,  263,  598,  597,  597,  597,
2000       597,  597,  597,  597,  599,  597,  597,  597, 1687,  597,
2001       601,  597,  602,  597, 2421, 1266, 1266, 1266, 1009, 1009,
2002
2003      1009, 1701, 1701, 1701, 1260, 1274, 1274, 1274, 1274, 1274,
2004      1274, 2422, 2425, 1268, 1756, 1010, 2426, 2427,  597,  597,
2005      1280, 1280, 1280, 1276,  603, 2432, 1276,  604, 1318, 1318,
2006      1318, 2365, 1319, 2433, 2438, 1320, 2439, 2440, 1282,  605,
2007       597,  598,  263,  598,  597,  597,  597,  597,  597,  597,
2008       597,  599,  597,  597,  597, 2441,  597,  601,  597,  602,
2009       597, 1269, 2450, 1280, 1280, 1280, 1021, 1021, 1021, 1277,
2010      1292, 1292, 1292, 2451, 1292, 1292, 1292, 1299, 1299, 1299,
2011      2428, 1282, 2452, 1022, 2453,  597,  597, 2455, 1294, 2457,
2012      2429,  603, 1294, 2481,  604, 1301, 1322, 1322, 1322, 2482,
2013
2014      1323, 2484, 2485, 1324, 2486, 1687,  605,  610,  611,  263,
2015       611,  610,  610,  610,  610,  610,  610,  610,  612,  610,
2016       610,  610, 2487,  610,  614,  610,  615,  610, 1283, 1033,
2017      1033, 1033, 1035, 1035, 1035, 1295, 1299, 1299, 1299, 1310,
2018      1310, 1310, 2478, 1310, 1310, 1310, 1034, 2491, 2492, 1036,
2019      2493, 2494,  610,  610, 1301, 2495, 2496, 1312, 2497, 2498,
2020       616, 1312,  617, 2499, 2500,  618, 1704, 1704, 1704,  619,
2021      1898, 1898, 1898,  620,  610,  611,  263,  611,  610,  610,
2022       610,  610,  610,  610,  610,  612,  610,  610,  610, 1687,
2023       610,  614,  610,  615,  610, 1041, 1041, 1041, 1302, 1044,
2024
2025      1044, 1044, 2501, 2503, 1313, 1325, 1325, 1325, 1336, 1336,
2026      1336, 2504, 1042, 1336, 1336, 1336, 1045, 2507, 2508,  610,
2027       610, 2477, 1326, 1708, 1708, 1708, 1338,  616, 2509,  617,
2028      2510, 1338,  618, 1711, 1711, 1711,  619, 1721, 1721, 1721,
2029       620,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2030       626,  626,  628,  626,  626,  626, 2513,  626,  630,  626,
2031       631,  626, 1058, 1058, 1058, 1340, 1340, 1340, 2514, 1341,
2032      2515, 1339, 1342, 1060, 1060, 1060, 1343, 1343, 1343, 1059,
2033      1344, 2516, 2518, 1345, 2522, 2523,  626,  626, 2505, 2524,
2034      1061, 1346, 1346, 1346, 1360, 1360, 1360, 2506, 1361, 2525,
2035
2036      2529, 1362, 1372, 1372, 1372, 2530, 1373, 2531, 1347, 1374,
2037       632,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2038       626,  626,  628,  626,  626,  626, 2532,  626,  630,  626,
2039       631,  626, 1072, 1072, 1072, 1380, 1380, 1380, 2533, 1381,
2040      2537, 2540, 1382, 2541, 2544, 3285, 3285, 3285, 2556, 1073,
2041      3285, 3285, 3285, 3285, 3285, 3285,  626,  626, 3285, 3285,
2042      3285, 2557, 3285, 2560, 1389, 1389, 1389, 3285, 1390, 2511,
2043      3285, 1391, 1421, 1421, 1421, 3285, 1422, 2561, 2512, 1423,
2044       632,  636,  637,  263,  637,  636,  636,  636,  636,  636,
2045       636,  636,  638,  636,  636,  636, 1348,  636,  640,  636,
2046
2047       641,  636, 1349, 1352, 1352, 1352, 2581, 2582, 1350, 2583,
2048      1351, 2584, 1352, 1352, 1352, 1363, 1363, 1363, 1367, 1367,
2049      1367, 1354, 1903, 1903, 1903, 2585,  636,  636, 2594, 1687,
2050      1354, 2595, 1364, 1757, 1757, 1757, 1369,  642,  636,  637,
2051       263,  637,  636,  636,  636,  636,  636,  636,  636,  638,
2052       636,  636,  636, 2596,  636,  640,  636,  641,  636, 1355,
2053      1080, 1080, 1080, 1375, 1375, 1375, 2579, 1367, 1367, 1367,
2054      1375, 1375, 1375, 1085, 1085, 1085, 1145, 1081, 2597, 1705,
2055      2598, 1377, 1687,  636,  636, 1369, 1904, 2599, 1377, 2600,
2056      1086, 1755, 1755, 1755,  642,  647,  648,  263,  648,  647,
2057
2058       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2059      2601,  647,  651,  647,  652,  647, 2578, 2602, 1370, 1384,
2060      1384, 1384, 1091, 1091, 1091, 2580, 2603, 1395, 1395, 1395,
2061      2604, 1378, 1395, 1395, 1395, 2606, 2607, 1386, 2608, 1092,
2062       647,  647, 1384, 1384, 1384, 1397, 1399, 1399, 1399, 2609,
2063      1397,  653, 1461, 1461, 1461, 2610, 1462, 2611, 2612, 1463,
2064      1386, 2613, 2614, 1400,  654,  647,  648,  263,  648,  647,
2065       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2066      2615,  647,  651,  647,  652,  647, 2616, 1398, 2617, 1387,
2067      1401, 1401, 1401, 2618, 2619, 3285, 3285, 3285, 1404, 1404,
2068
2069      1404, 1404, 1404, 1404, 1416, 1416, 1416, 1402, 2620, 2622,
2070       647,  647, 3285, 1409, 1409, 1409, 1406, 2630, 2631, 1406,
2071      2632,  653, 1418, 3285, 3285, 3285, 1413, 1413, 1413, 2635,
2072      1410, 1416, 1416, 1416,  654,  662, 3285, 3285, 3285, 2636,
2073      3285, 2640,  677, 1414, 1111, 1111, 1111, 1687, 2675, 1418,
2074      2588,  661,  678, 3285, 1403, 1145, 1424, 1424, 1424, 2677,
2075      2589, 1112, 1407, 2590, 1424, 1424, 1424, 2678, 1419, 1757,
2076      1757, 1757, 1687, 1411, 1426, 1428, 1428, 1428, 2679,  679,
2077       680,  681, 1426, 2683, 2672,  682,  683,  684, 1412, 2673,
2078       685,  686, 1429, 2684,  687, 1415,  688,  689,  690,  662,
2079
2080      1430, 1430, 1430, 1432, 1432, 1432,  734, 1432, 1432, 1432,
2081      1436, 1436, 1436, 2685, 2674,  661,  735, 1431, 2687, 1427,
2082      2688, 1434, 3285, 3285, 3285, 1434, 2686, 1437, 2691, 1440,
2083      1440, 1440, 2692, 2693, 1442, 1442, 1442, 2658, 2694, 3285,
2084      1135, 1135, 1135,  679,  736,  691, 1441, 2659, 2695,  737,
2085       738,  684, 1444, 2660,  739,  686, 2696, 1136,  740, 2697,
2086       741,  742,  690, 1442, 1442, 1442, 1451, 1451, 1451, 1139,
2087      1139, 1139, 1438, 1451, 1451, 1451, 2698, 2699, 1435, 2701,
2088      2702, 1444, 2703, 2704, 1453, 2705, 1140, 1439, 1457, 1457,
2089      1457, 1453, 1457, 1457, 1457, 1464, 1464, 1464, 1464, 1464,
2090
2091      1464, 1468, 1468, 1468, 2706, 1469, 1459, 2707, 1470, 2708,
2092      1459, 2709, 2710, 1466, 2711, 2712, 1466, 1472, 1472, 1472,
2093      1472, 1472, 1472, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
2094      1158, 1158, 2591, 2689, 1445, 1474, 2713, 1454, 1474, 2715,
2095      2723, 1160, 2592, 2724, 1160, 2593, 2690, 1160, 1514, 1514,
2096      1514, 1193, 1193, 1193, 2732, 2733, 1460, 2750, 2751, 1467,
2097      1193, 1193, 1193, 2752, 2753, 1515, 1517, 1517, 1517, 1195,
2098      1193, 1193, 1193, 1198, 1198, 1198, 1484, 1199, 1195, 2754,
2099      1200, 2755, 2766, 1518, 1475, 3285, 3285, 3285, 1195, 1203,
2100      1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 2758, 1208,
2101
2102      1208, 1208, 3285, 1209, 2760, 2768, 1210, 1205, 2769, 1687,
2103      1205, 2759, 2770, 1205, 1211, 1211, 1211, 2761, 1145, 1516,
2104      1523, 1523, 1523, 2771, 1524, 2661, 2772, 1525, 1526, 1526,
2105      1526, 1212, 1214, 1214, 1214, 2662, 1528, 1528, 1528, 2773,
2106      1529, 2663, 1521, 1530, 2763, 1527, 1519, 2774, 2775, 1215,
2107      1532, 1532, 1532, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
2108      1219, 1219, 1537, 1537, 1537, 2776, 2762, 1533, 1226, 1226,
2109      1226, 1221, 2777, 2780, 1221, 2781, 2782, 1221, 2783, 1538,
2110      1226, 1226, 1226, 1226, 1226, 1226, 1228, 1230, 1230, 1230,
2111      2784, 1231, 2785, 2786, 1232, 1234, 1234, 1234, 1228, 2787,
2112
2113      2789, 1228, 1234, 1234, 1234, 1542, 1542, 1542, 1252, 1252,
2114      1252, 2790, 1253, 1236, 2791, 1254, 1559, 1559, 1559, 1535,
2115      1236, 2792, 2793, 1543, 1257, 1257, 1257, 1257, 1257, 1257,
2116      1540, 2794, 2795, 1560, 1257, 1257, 1257, 1262, 1262, 1262,
2117      2796, 1263, 1259, 2797, 1264, 1259, 1266, 1266, 1266, 1266,
2118      1266, 1266, 1259, 1266, 1266, 1266, 1270, 1270, 1270, 2798,
2119      1271, 2799, 2800, 1272, 1268, 2801, 2807, 1268, 1565, 1565,
2120      1565, 1268, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
2121      1274, 1568, 1568, 1568, 2808, 1566, 2809, 3285, 3285, 3285,
2122      1276, 2816, 2817, 1276, 2831, 1561, 1276, 2832, 1569, 1280,
2123
2124      1280, 1280, 2833, 2834, 3285, 1280, 1280, 1280, 1280, 1280,
2125      1280, 1574, 1574, 1574, 1564, 1570, 2835, 1282, 1287, 1287,
2126      1287, 2836, 1288, 1282, 2840, 1289, 1282, 2841, 1575, 1292,
2127      1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1581, 1581,
2128      1581, 1299, 1299, 1299, 2823, 1567, 2842, 1294, 2843, 2853,
2129      1294, 1145, 2854, 1294, 2824, 1582, 1584, 1584, 1584, 1301,
2130      1299, 1299, 1299, 1299, 1299, 1299, 2825, 2827, 1304, 1304,
2131      1304, 2855, 1305, 1585, 1571, 1306, 2826, 2828, 1301, 2856,
2132      2857, 1301, 1307, 1307, 1307, 2844, 1308, 2858, 2859, 1309,
2133      1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 2860,
2134
2135      1578, 2864, 1318, 1318, 1318, 2865, 1319, 2866, 1312, 1320,
2136      2867, 1312, 2868, 2829, 1312, 1591, 1591, 1591, 1322, 1322,
2137      1322, 2869, 1323, 2830, 2871, 1324, 1325, 1325, 1325, 2872,
2138      1583, 2873, 1592, 1593, 1593, 1593, 2874, 1594, 2875, 2876,
2139      1595, 2877, 2878, 1326, 1336, 1336, 1336, 1336, 1336, 1336,
2140      1336, 1336, 1336, 1340, 1340, 1340, 2882, 1341, 2883, 2884,
2141      1342, 1586, 1338, 2887, 2892, 1338, 2893, 2894, 1338, 1343,
2142      1343, 1343, 2895, 1344, 2896, 2897, 1345, 1346, 1346, 1346,
2143      1606, 1606, 1606, 2898, 1607, 2899, 2900, 1608, 1352, 1352,
2144      1352, 1352, 1352, 1352, 1347, 1352, 1352, 1352, 1360, 1360,
2145
2146      1360, 2901, 1361, 2902, 2903, 1362, 1354, 2905, 2906, 1354,
2147      1363, 1363, 1363, 1354, 1618, 1618, 1618, 1605, 1619, 2907,
2148      2908, 1620, 1367, 1367, 1367, 2915, 1145, 1364, 1367, 1367,
2149      1367, 1367, 1367, 1367, 1372, 1372, 1372, 2916, 1373, 2917,
2150      1369, 1374, 2918, 1613, 2919, 2920, 1369, 2921, 2922, 1369,
2151      1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1380,
2152      1380, 1380, 2923, 1381, 2924, 2925, 1382, 2926, 1377, 2909,
2153      2927, 1377, 2928, 2931, 1377, 1384, 1384, 1384, 1384, 1384,
2154      1384, 2932, 1623, 1384, 1384, 1384, 2933, 1389, 1389, 1389,
2155      2934, 1390, 2935, 1386, 1391, 2936, 1386, 1395, 1395, 1395,
2156
2157      2937, 1386, 1395, 1395, 1395, 2938, 1395, 1395, 1395, 1399,
2158      1399, 1399, 1634, 1634, 1634, 1397, 1635, 2939, 2943, 1636,
2159      1397, 2950, 2951, 1625, 1397, 2952, 1400, 1401, 1401, 1401,
2160      2953, 2954, 1628, 1637, 1637, 1637, 2955, 1638, 2956, 2957,
2161      1639, 1404, 1404, 1404, 1402, 1404, 1404, 1404, 2958, 1404,
2162      1404, 1404, 1409, 1409, 1409, 2959, 1413, 1413, 1413, 1406,
2163      1704, 1704, 1704, 1406, 2960, 2961, 1633, 1406, 2964, 1410,
2164      1643, 1643, 1643, 1414, 1644, 2965, 2966, 1645, 1648, 1648,
2165      1648, 2967, 1649, 2975, 2970, 1650, 1416, 1416, 1416, 1416,
2166      1416, 1416, 1416, 1416, 1416, 1421, 1421, 1421, 2971, 1422,
2167
2168      2976, 1145, 1423, 2970, 1418, 2977, 1854, 1418, 2978, 2979,
2169      1418, 1424, 1424, 1424, 2973, 2980, 1641, 1424, 1424, 1424,
2170      1424, 1424, 1424, 1428, 1428, 1428, 1655, 1655, 1655, 1426,
2171      1656, 2981, 2982, 1657, 2983, 1426, 2984, 2985, 1426, 2986,
2172      1429, 1430, 1430, 1430, 1658, 1658, 1658, 2968, 1659, 2987,
2173      2988, 1660, 1432, 1432, 1432, 2989, 1652, 2990, 1431, 1432,
2174      1432, 1432, 2991, 1432, 1432, 1432, 1436, 1436, 1436, 2996,
2175      1434, 1662, 1662, 1662, 3001, 1663, 3002, 1434, 1664, 3003,
2176      1654, 1434, 3004, 1437, 1440, 1440, 1440, 1667, 1667, 1667,
2177      3005, 1668, 3006, 1145, 1669, 1442, 1442, 1442, 1442, 1442,
2178
2179      1442, 1441, 1442, 1442, 1442, 1672, 1672, 1672, 1451, 1451,
2180      1451, 2992, 2994, 1444, 1687, 1688, 1444, 1451, 1451, 1451,
2181      1444, 2997, 1673, 2993, 2995, 1661, 1453, 1451, 1451, 1451,
2182      1457, 1457, 1457, 2998, 3007, 1453, 1457, 1457, 1457, 1457,
2183      1457, 1457, 1461, 1461, 1461, 1453, 1462, 3009, 1459, 1463,
2184      1464, 1464, 1464, 3009, 1459, 3012, 2970, 1459, 1464, 1464,
2185      1464, 1464, 1464, 1464, 1670, 1468, 1468, 1468, 1466, 1469,
2186      2971, 3013, 1470, 1472, 1472, 1472, 1466, 2999, 3014, 1466,
2187      1472, 1472, 1472, 1472, 1472, 1472, 2970, 3015, 1677, 3000,
2188      3028, 1474, 1680, 1686, 1686, 1686, 3031, 2973, 1474, 3036,
2189
2190      3039, 1474, 1158, 1158, 1158, 1514, 1514, 1514, 1193, 1193,
2191      1193, 1687, 1688, 3018, 1517, 1517, 1517, 1542, 1542, 1542,
2192      1160, 1681, 1515, 1724, 1724, 1724, 1195, 1725, 3019, 3026,
2193      1726, 1518, 1728, 1728, 1728, 1543, 1729, 3040, 3016, 1730,
2194      1203, 1203, 1203, 3041, 1683, 1523, 1523, 1523, 3027, 1524,
2195      3029, 3009, 1525, 1526, 1526, 1526, 3017, 3034, 1205, 3043,
2196      1735, 1735, 1735, 3037, 1736, 3009, 1727, 1737, 1693, 3030,
2197      1527, 1528, 1528, 1528, 3044, 1529, 3035, 3045, 1530, 1532,
2198      1532, 1532, 3038, 1739, 1739, 1739, 3046, 1740, 3047, 1733,
2199      1741, 1219, 1219, 1219, 3048, 3049, 1533, 1537, 1537, 1537,
2200
2201      1745, 1745, 1745, 3059, 1746, 3060, 3061, 1747, 3062, 1221,
2202      1748, 1748, 1748, 3063, 1538, 1226, 1226, 1226, 1766, 1766,
2203      1766, 1559, 1559, 1559, 1768, 1768, 1768, 1749, 1769, 3064,
2204      3068, 1770, 3069, 1228, 3070, 1767, 3071, 3072, 1560, 3073,
2205      3074, 1743, 1257, 1257, 1257, 1266, 1266, 1266, 1565, 1565,
2206      1565, 1775, 1775, 1775, 3075, 1776, 3077, 3078, 1777, 3079,
2207      1259, 3080, 3081, 1268, 1750, 1566, 1274, 1274, 1274, 1568,
2208      1568, 1568, 1779, 1779, 1779, 3086, 1780, 3087, 3088, 1781,
2209      1280, 1280, 1280, 3082, 1276, 3089, 1569, 1574, 1574, 1574,
2210      1786, 1786, 1786, 3084, 1787, 3083, 3090, 1788, 1282, 1789,
2211
2212      1789, 1789, 3091, 3092, 1575, 3085, 1771, 3093, 3094, 1774,
2213      1791, 1791, 1791, 1292, 1292, 1292, 1790, 1581, 1581, 1581,
2214      3095, 1797, 1797, 1797, 3096, 1798, 1778, 1792, 1799, 3097,
2215      3098, 1294, 3099, 3101, 1582, 1800, 1800, 1800, 1584, 1584,
2216      1584, 1783, 1802, 1802, 1802, 3102, 1803, 3103, 3104, 1804,
2217      1310, 1310, 1310, 1801, 3105, 1585, 1793, 1807, 1807, 1807,
2218      1591, 1591, 1591, 1811, 1811, 1811, 1145, 1812, 1312, 3106,
2219      1813, 1593, 1593, 1593, 1808, 1594, 3107, 1592, 1595, 1794,
2220      1816, 1816, 1816, 1336, 1336, 1336, 1606, 1606, 1606, 3108,
2221      1607, 3100, 3109, 1608, 1825, 1825, 1825, 1817, 3285, 3285,
2222
2223      3285, 1338, 3285, 3285, 3285, 3285, 3285, 3285, 1352, 1352,
2224      1352, 1826, 1832, 1832, 1832, 3285, 1805, 3110, 3111, 3285,
2225      3112, 3113, 3285, 1618, 1618, 1618, 1354, 1619, 3114, 1833,
2226      1620, 3115, 3116, 1836, 1836, 1836, 1367, 1367, 1367, 1375,
2227      1375, 1375, 1384, 1384, 1384, 1848, 1848, 1848, 1824, 1828,
2228      1837, 1395, 1395, 1395, 1369, 3117, 3118, 1377, 3119, 3120,
2229      1386, 3122, 1849, 1830, 3123, 1404, 1404, 1404, 1827, 1397,
2230      1634, 1634, 1634, 1145, 1635, 1829, 3124, 1636, 1637, 1637,
2231      1637, 3125, 1638, 1406, 3126, 1639, 1643, 1643, 1643, 3127,
2232      1644, 1850, 3121, 1645, 1648, 1648, 1648, 3128, 1649, 1844,
2233
2234      1839, 1650, 1416, 1416, 1416, 1841, 3129, 3130, 1851, 1424,
2235      1424, 1424, 1655, 1655, 1655, 3131, 1656, 3132, 3133, 1657,
2236      1418, 1658, 1658, 1658, 3134, 1659, 3135, 1426, 1660, 3136,
2237      3137, 1853, 1432, 1432, 1432, 1662, 1662, 1662, 3138, 1663,
2238      3139, 1145, 1664, 3141, 1667, 1667, 1667, 3142, 1668, 3143,
2239      1434, 1669, 1442, 1442, 1442, 1672, 1672, 1672, 1866, 1866,
2240      1866, 3140, 1867, 1858, 3144, 1868, 1860, 1451, 1451, 1451,
2241      1444, 3145, 1673, 1874, 1874, 1874, 1457, 1457, 1457, 1861,
2242      1464, 1464, 1464, 3146, 3147, 1453, 1878, 1878, 1878, 3148,
2243      1875, 1472, 1472, 1472, 1459, 1686, 1686, 1686, 1466, 1864,
2244
2245      1158, 1158, 1158, 1879, 1906, 1906, 1906, 3149, 3150, 1474,
2246      1914, 1914, 1914, 1687, 3151, 3152, 1872, 3153, 1160, 1724,
2247      1724, 1724, 3154, 1725, 3155, 3156, 1726, 1193, 1193, 1193,
2248      3157, 3158, 1877, 1728, 1728, 1728, 1145, 1729, 3160, 3161,
2249      1730, 3162, 3159, 1876, 3163, 1195, 1882, 1203, 1203, 1203,
2250      1907, 3164, 1887, 1880, 3165, 3166, 1915, 1735, 1735, 1735,
2251      3167, 1736, 3168, 1883, 1737, 1205, 1739, 1739, 1739, 3169,
2252      1740, 3170, 3171, 1741, 1219, 1219, 1219, 1745, 1745, 1745,
2253      3173, 1746, 3174, 1145, 1747, 1748, 1748, 1748, 3175, 1933,
2254      1933, 1933, 1221, 1934, 1916, 3176, 1935, 3172, 1919, 1226,
2255
2256      1226, 1226, 1749, 1758, 1758, 1758, 1942, 1942, 1942, 1942,
2257      1942, 1942, 1903, 1903, 1903, 3177, 3178, 1228, 3179, 1766,
2258      1766, 1766, 1948, 1948, 1948, 3180, 1949, 3182, 3183, 1950,
2259      1768, 1768, 1768, 3184, 1769, 1923, 1767, 1770, 1257, 1257,
2260      1257, 1953, 1953, 1953, 1266, 1266, 1266, 1775, 1775, 1775,
2261      1936, 1776, 3185, 3186, 1777, 3187, 1259, 3188, 1954, 1274,
2262      1274, 1274, 1268, 3189, 1779, 1779, 1779, 3192, 1780, 3193,
2263      1943, 1781, 3194, 1904, 3195, 3196, 1943, 1276, 1957, 1957,
2264      1957, 1280, 1280, 1280, 3197, 1951, 1786, 1786, 1786, 1734,
2265      1787, 1955, 3282, 1788, 1145, 1958, 1789, 1789, 1789, 1282,
2266
2267      1962, 1962, 1962, 1145, 1963, 1145, 1145, 1964, 1145, 1791,
2268      1791, 1791, 1732, 1790, 1965, 1965, 1965, 1731, 1966, 1145,
2269      1145, 1967, 1969, 1969, 1969, 1956, 1792, 1971, 1971, 1971,
2270      1797, 1797, 1797, 1145, 1798, 1145, 1145, 1799, 3204, 3198,
2271      1970, 1800, 1800, 1800, 3199, 1959, 1802, 1802, 1802, 3205,
2272      1803, 3224, 1145, 1804, 1310, 1310, 1310, 1145, 3208, 1801,
2273      1807, 1807, 1807, 1975, 1975, 1975, 1145, 1976, 3200, 1723,
2274      1977, 1145, 1312, 1978, 1978, 1978, 1145, 1808, 1811, 1811,
2275      1811, 3201, 1812, 3202, 3203, 1813, 1816, 1816, 1816, 3225,
2276      1979, 1983, 1983, 1983, 3209, 1984, 1722, 3206, 1985, 3212,
2277
2278      1973, 1145, 1145, 1817, 1986, 1986, 1986, 1992, 1992, 1992,
2279      1336, 1336, 1336, 1825, 1825, 1825, 1995, 1995, 1995, 3278,
2280      1996, 1987, 3220, 1997, 1993, 1998, 1998, 1998, 1338, 1145,
2281      1826, 3285, 3285, 3285, 2001, 2001, 2001, 1352, 1352, 1352,
2282      1145, 3210, 1999, 1832, 1832, 1832, 3207, 1145, 3285, 1145,
2283      1145, 2002, 2005, 2005, 2005, 1354, 2006, 1145, 1145, 2007,
2284      1833, 2008, 2008, 2008, 1836, 1836, 1836, 2011, 2011, 2011,
2285      3216, 2012, 3211, 1145, 2013, 1720, 1994, 3214, 2009, 1145,
2286      1145, 1837, 2015, 2015, 2015, 1375, 1375, 1375, 3217, 2000,
2287      1384, 1384, 1384, 1848, 1848, 1848, 1145, 2003, 1145, 1145,
2288
2289      2016, 3232, 1145, 1377, 3213, 2025, 2025, 2025, 1386, 2026,
2290      1849, 3272, 2027, 2029, 2029, 2029, 1404, 1404, 1404, 3221,
2291      2034, 2034, 2034, 2036, 2036, 2036, 3285, 3285, 3285, 1145,
2292      1719, 2030, 3226, 3215, 1406, 3222, 2018, 2035, 2021, 3223,
2293      2037, 1145, 3233, 3285, 1416, 1416, 1416, 1424, 1424, 1424,
2294      1432, 1432, 1432, 2043, 2043, 2043, 2045, 2045, 2045, 1442,
2295      1442, 1442, 1418, 1145, 3218, 1426, 1718, 2032, 1434, 1717,
2296      2044, 3227, 1145, 2046, 1866, 1866, 1866, 1444, 1867, 1145,
2297      1145, 1868, 1451, 1451, 1451, 1874, 1874, 1874, 2397, 2398,
2298      2038, 2399, 1145, 2041, 2054, 2054, 2054, 3230, 2055, 2400,
2299
2300      1453, 2056, 1875, 1457, 1457, 1457, 2401, 3219, 1464, 1464,
2301      1464, 2039, 1878, 1878, 1878, 2042, 2059, 2059, 2059, 3240,
2302      2060, 1459, 1716, 2061, 2047, 3234, 1466, 3228, 1145, 1879,
2303      2062, 2062, 2062, 2052, 2068, 2068, 2068, 1158, 1158, 1158,
2304      2078, 2078, 2078, 1898, 1898, 1898, 1715, 1714, 2063, 1145,
2305      1713, 2069, 2085, 2085, 2085, 1160, 1903, 1903, 1903, 2086,
2306      2086, 2086, 2057, 2058, 1906, 1906, 1906, 2089, 2089, 2089,
2307      2090, 2090, 2090, 1914, 1914, 1914, 1193, 1193, 1193, 2099,
2308      2099, 2099, 2102, 2102, 2102, 1219, 1219, 1219, 2106, 2106,
2309      2106, 1226, 1226, 1226, 1195, 3235, 1145, 2100, 2070, 2103,
2310
2311      1933, 1933, 1933, 1221, 1934, 2107, 1712, 1935, 1710, 1228,
2312      2119, 2119, 2119, 1942, 1942, 1942, 2126, 2126, 2126, 2128,
2313      2128, 2128, 1257, 1257, 1257, 3241, 2096, 2120, 1948, 1948,
2314      1948, 3229, 1949, 1709, 1145, 1950, 2129, 2118, 1145, 1145,
2315      1259, 2131, 2131, 2131, 2105, 1953, 1953, 1953, 2133, 2133,
2316      2133, 1145, 2134, 1145, 1145, 2135, 1145, 1145, 2132, 1266,
2317      1266, 1266, 1954, 2137, 2137, 2137, 1957, 1957, 1957, 2139,
2318      2139, 2139, 3231, 2140, 3236, 2130, 2141, 1268, 1280, 1280,
2319      1280, 2138, 3250, 1958, 1962, 1962, 1962, 1145, 1963, 3237,
2320      3238, 1964, 3264, 1965, 1965, 1965, 1282, 1966, 3244, 1145,
2321
2322      1967, 1969, 1969, 1969, 1971, 1971, 1971, 1145, 1310, 1310,
2323      1310, 1145, 2136, 1975, 1975, 1975, 1145, 1976, 1145, 1970,
2324      1977, 1978, 1978, 1978, 3242, 2142, 1312, 2151, 2151, 2151,
2325      1145, 2152, 3239, 1145, 2153, 1983, 1983, 1983, 1979, 1984,
2326      3251, 1707, 1985, 1986, 1986, 1986, 2157, 2157, 2157, 3245,
2327      2158, 3266, 1145, 2159, 2160, 2160, 2160, 1992, 1992, 1992,
2328      1987, 2165, 2165, 2165, 3246, 2166, 2149, 3243, 2167, 1706,
2329      3248, 2161, 3252, 1145, 1993, 1336, 1336, 1336, 1995, 1995,
2330      1995, 1145, 1996, 1703, 1700, 1997, 1998, 1998, 1998, 3249,
2331      2169, 2169, 2169, 1338, 2170, 1145, 1145, 2171, 2172, 2172,
2332
2333      2172, 3253, 3282, 1999, 2001, 2001, 2001, 2174, 2174, 2174,
2334      1145, 2175, 1145, 1145, 2176, 2173, 1352, 1352, 1352, 3247,
2335      1145, 2002, 1145, 2005, 2005, 2005, 2168, 2006, 3273, 3254,
2336      2007, 2008, 2008, 2008, 1354, 2179, 2179, 2179, 1699, 2180,
2337      1698, 3258, 2181, 2011, 2011, 2011, 3255, 2012, 2009, 1145,
2338      2013, 2015, 2015, 2015, 1375, 1375, 1375, 2187, 2187, 2187,
2339      1384, 1384, 1384, 2191, 2191, 2191, 3256, 2177, 3257, 2016,
2340      1145, 1145, 1377, 3259, 2188, 2025, 2025, 2025, 1386, 2026,
2341      2192, 1145, 2027, 2029, 2029, 2029, 2199, 2199, 2199, 2034,
2342      2034, 2034, 2202, 2202, 2202, 1145, 2203, 1697, 1145, 2204,
2343
2344      1696, 2030, 1145, 1695, 2200, 1694, 2035, 3262, 3263, 2193,
2345      2036, 2036, 2036, 2205, 2205, 2205, 1145, 2206, 2185, 1692,
2346      2207, 2189, 1416, 1416, 1416, 1145, 1145, 2037, 1424, 1424,
2347      1424, 1432, 1432, 1432, 2043, 2043, 2043, 2213, 2213, 2213,
2348      1418, 2214, 3260, 3265, 2215, 3261, 1426, 1145, 3276, 1434,
2349      1145, 2044, 2045, 2045, 2045, 2216, 2216, 2216, 3277, 2217,
2350      3267, 1145, 2218, 1442, 1442, 1442, 1451, 1451, 1451, 2046,
2351      1145, 2054, 2054, 2054, 3274, 2055, 1145, 2211, 2056, 3280,
2352      1145, 1444, 3281, 1145, 1453, 1457, 1457, 1457, 2209, 1464,
2353      1464, 1464, 1145, 2059, 2059, 2059, 2212, 2060, 3270, 1691,
2354
2355      2061, 1690, 1689, 1459, 2062, 2062, 2062, 1466, 2068, 2068,
2356      2068, 2232, 2232, 2232, 3275, 2233, 3268, 1682, 2234, 1158,
2357      1158, 1158, 2063, 1145, 3279, 2069, 3269, 1679, 2219, 3271,
2358      1678, 2224, 2236, 2236, 2236, 1676, 2226, 1160, 2241, 2241,
2359      2241, 1675, 2227, 2242, 2242, 2242, 2078, 2078, 2078, 2244,
2360      2244, 2244, 2248, 2248, 2248, 2085, 2085, 2085, 2086, 2086,
2361      2086, 2249, 2249, 2249, 2089, 2089, 2089, 2090, 2090, 2090,
2362      2252, 2252, 2252, 2253, 2253, 2253, 2254, 2254, 2254, 2255,
2363      2255, 2255, 1674, 2235, 1193, 1193, 1193, 2099, 2099, 2099,
2364      1671, 2102, 2102, 2102, 2261, 2261, 2261, 1666, 2262, 1665,
2365
2366      1653, 2263, 1195, 1651, 1647, 2100, 1646, 2250, 2103, 2265,
2367      2265, 2265, 2106, 2106, 2106, 2267, 2267, 2267, 1642, 2268,
2368      1640, 1632, 2269, 1226, 1226, 1226, 1631, 2266, 1630, 2107,
2369      2119, 2119, 2119, 1629, 1627, 2257, 2281, 2281, 2281, 1626,
2370      2282, 1228, 1624, 2283, 2284, 2284, 2284, 2120, 2126, 2126,
2371      2126, 2289, 2289, 2289, 2128, 2128, 2128, 2291, 2291, 2291,
2372      1622, 2292, 1621, 1617, 2293, 1257, 1257, 1257, 2131, 2131,
2373      2131, 2129, 2280, 2295, 2295, 2295, 1616, 2296, 1615, 1614,
2374      2297, 1612, 1611, 1259, 1610, 2132, 2133, 2133, 2133, 1609,
2375      2134, 1604, 1603, 2135, 1266, 1266, 1266, 2290, 1602, 2137,
2376
2377      2137, 2137, 2139, 2139, 2139, 1601, 2140, 1600, 1599, 2141,
2378      1598, 1597, 1268, 1280, 1280, 1280, 2294, 2138, 1310, 1310,
2379      1310, 2151, 2151, 2151, 1596, 2152, 1590, 1589, 2153, 1588,
2380      1587, 1282, 1580, 2157, 2157, 2157, 1312, 2158, 1579, 1577,
2381      2159, 2160, 2160, 2160, 1576, 2298, 2313, 2313, 2313, 1573,
2382      2314, 1572, 1563, 2315, 1562, 2165, 2165, 2165, 2161, 2166,
2383      1558, 1557, 2167, 1336, 1336, 1336, 2299, 2169, 2169, 2169,
2384      1556, 2170, 1555, 2308, 2171, 2172, 2172, 2172, 2320, 2320,
2385      2320, 1338, 2321, 1554, 1553, 2322, 2174, 2174, 2174, 1552,
2386      2175, 1551, 2173, 2176, 1352, 1352, 1352, 2179, 2179, 2179,
2387
2388      1549, 2180, 1548, 1546, 2181, 2328, 2328, 2328, 2187, 2187,
2389      2187, 1545, 1354, 2331, 2331, 2331, 1544, 2332, 1541, 1539,
2390      2333, 1536, 1534, 2329, 1531, 2188, 1522, 2319, 1384, 1384,
2391      1384, 2191, 2191, 2191, 2336, 2336, 2336, 1520, 2337, 1513,
2392      1511, 2338, 1510, 2199, 2199, 2199, 1386, 1509, 2192, 2202,
2393      2202, 2202, 1508, 2203, 1507, 1506, 2204, 1416, 1416, 1416,
2394      2323, 2200, 2205, 2205, 2205, 1505, 2206, 1504, 1503, 2207,
2395      1502, 1424, 1424, 1424, 1499, 1418, 1432, 1432, 1432, 2213,
2396      2213, 2213, 1498, 2214, 1497, 1496, 2215, 1495, 2334, 1426,
2397      1494, 2216, 2216, 2216, 1434, 2217, 1493, 1491, 2218, 1442,
2398
2399      1442, 1442, 1490, 2354, 2354, 2354, 1489, 1488, 2349, 3285,
2400      3285, 3285, 2352, 3285, 3285, 3285, 1487, 1444, 1486, 2353,
2401      2355, 3285, 3285, 3285, 1485, 1483, 3285, 1451, 1451, 1451,
2402      3285, 1457, 1457, 1457, 2362, 2362, 2362, 2351, 3285, 2364,
2403      2364, 2364, 2367, 2367, 2367, 1453, 2232, 2232, 2232, 1459,
2404      2233, 1482, 2363, 2234, 1158, 1158, 1158, 1145, 1481, 1480,
2405      2356, 2236, 2236, 2236, 2369, 2369, 2369, 2370, 2370, 2370,
2406      1479, 1478, 1160, 2241, 2241, 2241, 1477, 2357, 1145, 1471,
2407      2358, 2242, 2242, 2242, 2244, 2244, 2244, 2374, 2374, 2374,
2408      1456, 2361, 2359, 2375, 2375, 2375, 2376, 2376, 2376, 2248,
2409
2410      2248, 2248, 2249, 2249, 2249, 2252, 2252, 2252, 2253, 2253,
2411      2253, 1455, 1450, 2368, 2254, 2254, 2254, 2255, 2255, 2255,
2412      2380, 2380, 2380, 2383, 2383, 2383, 2261, 2261, 2261, 1449,
2413      2262, 1448, 1447, 2263, 3285, 3285, 3285, 1446, 2381, 1420,
2414      2384, 2265, 2265, 2265, 1408, 2267, 2267, 2267, 1394, 2268,
2415      1393, 3285, 2269, 1226, 1226, 1226, 2281, 2281, 2281, 2266,
2416      2282, 2402, 2403, 2283, 2404, 2284, 2284, 2284, 2407, 2407,
2417      2407, 1228, 2405, 2289, 2289, 2289, 2291, 2291, 2291, 2406,
2418      2292, 1392, 1388, 2293, 1257, 1257, 1257, 2295, 2295, 2295,
2419      1383, 2296, 1379, 1371, 2297, 2413, 2413, 2413, 1366, 1365,
2420
2421      2385, 1359, 1259, 1280, 1280, 1280, 2423, 2423, 2423, 1310,
2422      1310, 1310, 1356, 2414, 2396, 2313, 2313, 2313, 1335, 2314,
2423      1334, 1282, 2315, 2430, 2430, 2430, 1333, 1312, 1332, 1331,
2424      2412, 2434, 2434, 2434, 2320, 2320, 2320, 1330, 2321, 1329,
2425      2431, 2322, 2436, 2436, 2436, 2328, 2328, 2328, 1328, 2435,
2426      2442, 2442, 2442, 1327, 2415, 2331, 2331, 2331, 1321, 2332,
2427      2437, 1314, 2333, 2329, 1384, 1384, 1384, 2443, 1303, 2424,
2428      2445, 2445, 2445, 2336, 2336, 2336, 1298, 2337, 1297, 1296,
2429      2338, 1291, 1386, 3285, 3285, 3285, 1290, 2446, 3285, 3285,
2430      3285, 3285, 3285, 3285, 2456, 2456, 2456, 2460, 2460, 2460,
2431
2432      3285, 2458, 2458, 2458, 1286, 3285, 1285, 1284, 3285, 1424,
2433      1424, 1424, 1279, 1278, 2461, 2444, 2447, 1273, 1265, 2459,
2434      1261, 1432, 1432, 1432, 2354, 2354, 2354, 1426, 1442, 1442,
2435      1442, 1256, 1255, 2465, 2465, 2465, 1251, 2466, 2448, 1434,
2436      2467, 2355, 2454, 2468, 2468, 2468, 1444, 1250, 1249, 2449,
2437      3285, 3285, 3285, 3285, 3285, 3285, 2472, 2472, 2472, 1248,
2438      2469, 2474, 2474, 2474, 1247, 2464, 1246, 3285, 1245, 2462,
2439      3285, 1457, 1457, 1457, 2473, 2362, 2362, 2362, 2364, 2364,
2440      2364, 1244, 2463, 2367, 2367, 2367, 2369, 2369, 2369, 1459,
2441      2479, 2479, 2479, 2363, 1243, 1242, 1145, 2370, 2370, 2370,
2442
2443      1241, 2470, 1240, 1239, 2471, 2483, 2483, 2483, 2480, 2374,
2444      2374, 2374, 2375, 2375, 2375, 2376, 2376, 2376, 2380, 2380,
2445      2380, 2383, 2383, 2383, 2488, 2488, 2488, 1233, 2489, 1225,
2446      1224, 2490, 1226, 1226, 1226, 1223, 2381, 2475, 2384, 1218,
2447      2476, 2407, 2407, 2407, 2517, 2517, 2517, 1257, 1257, 1257,
2448      1228, 2413, 2413, 2413, 2520, 2520, 2520, 2526, 2526, 2526,
2449      2423, 2423, 2423, 1217, 1216, 1259, 1310, 1310, 1310, 2414,
2450      1213, 1207, 2521, 1202, 2527, 1201, 2430, 2430, 2430, 2534,
2451      2534, 2534, 1197, 2535, 1312, 1192, 2536, 2538, 2538, 2538,
2452      1191, 1190, 2502, 2431, 2434, 2434, 2434, 2436, 2436, 2436,
2453
2454      2542, 2542, 2542, 1189, 2539, 2442, 2442, 2442, 1188, 2548,
2455      2548, 2548, 2435, 2519, 1187, 2437, 1186, 2543, 2445, 2445,
2456      2445, 1184, 2443, 2528, 2545, 2545, 2545, 2549, 2546, 1183,
2457      1182, 2547, 2550, 2550, 2550, 2446, 2551, 1181, 1180, 2552,
2458      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 2558,
2459      2558, 2558, 2456, 2456, 2456, 1179, 1178, 3285, 1177, 1176,
2460      3285, 1175, 1174, 3285, 1173, 1172, 2559, 2458, 2458, 2458,
2461      2460, 2460, 2460, 2562, 2562, 2562, 1171, 2563, 1170, 1169,
2462      2564, 2565, 2565, 2565, 1168, 2459, 1167, 2461, 1432, 1432,
2463      1432, 1166, 2553, 1442, 1442, 1442, 2465, 2465, 2465, 2566,
2464
2465      2466, 2554, 1165, 2467, 2555, 1164, 1434, 2468, 2468, 2468,
2466      1157, 1444, 2569, 2569, 2569, 1156, 2570, 1155, 1154, 2571,
2467      2572, 2572, 2572, 1153, 2469, 2574, 2574, 2574, 2472, 2472,
2468      2472, 2474, 2474, 2474, 2576, 2576, 2576, 2573, 2479, 2479,
2469      2479, 1152, 2575, 2483, 2483, 2483, 2473, 2586, 2586, 2586,
2470      1151, 1148, 2577, 1146, 1145, 2567, 2480, 2568, 2488, 2488,
2471      2488, 1143, 2489, 1141, 2587, 2490, 1226, 1226, 1226, 2517,
2472      2517, 2517, 1257, 1257, 1257, 2520, 2520, 2520, 2623, 2623,
2473      2623, 2526, 2526, 2526, 1228, 2625, 2625, 2625, 1138, 2626,
2474      1259, 1134, 2627, 2521, 1132, 2624, 1131, 1130, 2527, 2628,
2475
2476      2628, 2628, 2633, 2633, 2633, 2534, 2534, 2534, 1128, 2535,
2477      1127, 1126, 2536, 2538, 2538, 2538, 1125, 2629, 1124, 2634,
2478      2637, 2637, 2637, 1123, 2638, 1121, 2605, 2639, 1120, 1119,
2479      2539, 2641, 2641, 2641, 2542, 2542, 2542, 2643, 2643, 2643,
2480      1118, 2644, 1116, 2621, 2645, 2646, 2646, 2646, 2642, 1115,
2481      1114, 2543, 2545, 2545, 2545, 1110, 2546, 1109, 1107, 2547,
2482      1106, 1105, 2647, 2548, 2548, 2548, 2550, 2550, 2550, 1104,
2483      2551, 1103, 1102, 2552, 3285, 3285, 3285, 3285, 3285, 3285,
2484      1100, 2549, 3285, 3285, 3285, 2558, 2558, 2558, 2651, 2651,
2485      2651, 3285, 2652, 1099, 3285, 2653, 2654, 2654, 2654, 3285,
2486
2487      1098, 1097, 2559, 2656, 2656, 2656, 1095, 2562, 2562, 2562,
2488      1094, 2563, 1093, 2655, 2564, 2565, 2565, 2565, 1090, 1089,
2489      2657, 1432, 1432, 1432, 1442, 1442, 1442, 1087, 2649, 2648,
2490      2572, 2572, 2572, 2566, 2569, 2569, 2569, 2650, 2570, 1434,
2491      1084, 2571, 1444, 1083, 2666, 2666, 2666, 2573, 2667, 1079,
2492      1078, 2668, 2574, 2574, 2574, 2669, 2669, 2669, 1076, 2670,
2493      1075, 1074, 2671, 2576, 2576, 2576, 2676, 2676, 2676, 2575,
2494      1071, 2586, 2586, 2586, 1070, 2680, 2680, 2680, 1069, 2681,
2495      1068, 2577, 2682, 1066, 1065, 2665, 1064, 2664, 2587, 1226,
2496      1226, 1226, 2714, 2714, 2714, 1257, 1257, 1257, 2717, 2717,
2497
2498      2717, 2623, 2623, 2623, 2720, 2720, 2720, 1228, 2721, 1063,
2499      1062, 2722, 1057, 1259, 1055, 2718, 1054, 1053, 2624, 2625,
2500      2625, 2625, 1052, 2626, 1051, 1050, 2627, 2628, 2628, 2628,
2501      2725, 2725, 2725, 2633, 2633, 2633, 1049, 2730, 2730, 2730,
2502      2700, 2676, 2676, 2676, 2719, 2629, 1048, 2726, 1047, 1046,
2503      2634, 2727, 2727, 2727, 2731, 2728, 1043, 2716, 2729, 2637,
2504      2637, 2637, 1040, 2638, 1039, 1038, 2639, 2641, 2641, 2641,
2505      2734, 2734, 2734, 1032, 2735, 1031, 1029, 2736, 2643, 2643,
2506      2643, 1026, 2644, 1024, 2642, 2645, 2646, 2646, 2646, 2737,
2507      2737, 2737, 1023, 2738, 1018, 1017, 2739, 3285, 3285, 3285,
2508
2509      2741, 2741, 2741, 2647, 3285, 3285, 3285, 1015, 2651, 2651,
2510      2651, 1014, 2652, 1013, 3285, 2653, 1011, 2742, 2654, 2654,
2511      2654, 3285, 2744, 2744, 2744, 1008, 2745, 1006, 1003, 2746,
2512      2656, 2656, 2656, 1002, 1000, 2655, 2747, 2747, 2747,  999,
2513      2748,  996,  991, 2749, 1432, 1432, 1432, 2657, 1442, 1442,
2514      1442,  990,  987, 2743,  986, 2740, 2666, 2666, 2666,  985,
2515      2667,  982, 1434, 2668,  981,  979, 1444, 2669, 2669, 2669,
2516       976, 2670,  974,  973, 2671, 2764, 2764, 2764, 2767, 2767,
2517      2767, 2680, 2680, 2680,  972, 2681,  971,  969, 2682, 2778,
2518      2778, 2778, 2765, 1687,  968, 2756, 1226, 1226, 1226, 2714,
2519
2520      2714, 2714, 2802, 2802, 2802,  967, 2779, 1257, 1257, 1257,
2521      2717, 2717, 2717,  966, 1228, 2757, 2804, 2804, 2804,  965,
2522      2805,  964,  961, 2806,  960, 1259,  959, 2718, 2720, 2720,
2523      2720,  956, 2721,  953,  952, 2722, 2725, 2725, 2725, 2810,
2524      2810, 2810,  950, 2811,  949, 2788, 2812, 2727, 2727, 2727,
2525       946, 2728,  943, 2726, 2729, 2730, 2730, 2730, 2803, 2813,
2526      2813, 2813,  940, 2814,  939,  931, 2815, 2734, 2734, 2734,
2527       930, 2735, 2731,  929, 2736, 2737, 2737, 2737,  928, 2738,
2528       922,  921, 2739, 3285, 3285, 3285, 2741, 2741, 2741, 2819,
2529      2819, 2819,  920, 2820,  918,  917, 2821, 3285, 3285, 3285,
2530
2531      3285,  916,  915, 2742, 2744, 2744, 2744,  914, 2745,  913,
2532       908, 2746,  905,  907, 3285, 2747, 2747, 2747,  902, 2748,
2533       901,  899, 2749, 2837, 2837, 2837, 1442, 1442, 1442, 2845,
2534      2845, 2845,  897,  895, 2818, 2764, 2764, 2764, 2847, 2847,
2535      2847, 2838, 2848,  893, 1444, 2849, 2846, 1687, 2850, 2850,
2536      2850,  891, 2765, 1687,  888,  887, 1687, 2767, 2767, 2767,
2537      2851, 2851, 2851, 2852, 2852, 2852,  886,  885, 2822, 2778,
2538      2778, 2778, 2861, 2861, 2861,  884, 2862,  882,  880, 2863,
2539      1226, 1226, 1226, 2879, 2879, 2879, 2779, 2802, 2802, 2802,
2540       879,  878, 2839, 2880, 2880, 2880,  876,  874, 1228, 2804,
2541
2542      2804, 2804,  873, 2805,  871,  869, 2806,  868, 2810, 2810,
2543      2810, 2881, 2811,  866,  862, 2812, 2813, 2813, 2813,  861,
2544      2814,  859,  854, 2815, 2885, 2885, 2885, 2888, 2888, 2888,
2545      2819, 2819, 2819,  852, 2820,  848,  847, 2821, 2890, 2890,
2546      2890, 2886,  846,  844, 2889,  842, 2870, 2837, 2837, 2837,
2547      1442, 1442, 1442,  841,  840, 2891, 2845, 2845, 2845, 2910,
2548      2910, 2910,  838, 2911,  836, 2838, 2912,  835, 1444, 2850,
2549      2850, 2850,  833, 2846, 1687,  831,  830, 1687, 2847, 2847,
2550      2847,  829, 2848,  828,  827, 2849, 2851, 2851, 2851, 2852,
2551      2852, 2852,  826, 2861, 2861, 2861, 1687, 2862,  825,  823,
2552
2553      2863, 2904, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
2554      1685,  821,  820, 1685, 2929, 2929, 2929,  817, 1685, 1685,
2555      1685, 1687, 1685, 2879, 2879, 2879, 2880, 2880, 2880, 2885,
2556      2885, 2885, 2930, 2940, 2940, 2940,  816, 2941,  815,  813,
2557      2942, 2888, 2888, 2888, 2881,  801, 2886, 1685, 1685, 1685,
2558      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 2889,  800,
2559      1685, 2890, 2890, 2890,  797, 1685, 1685, 1685, 1687, 1685,
2560      2944, 2944, 2944,  795, 2945,  793,  792, 2946, 2891, 2947,
2561      2947, 2947,  791, 2948,  789,  787, 2949, 2962, 2962, 2962,
2562      2929, 2929, 2929,  785, 1685, 1685, 2910, 2910, 2910,  782,
2563
2564      2911,  781,  780, 2912,  779, 2963,  778,  776, 2930, 2962,
2565      2962, 2962,  774,  773, 1687, 1685, 1685, 1685, 1685, 1685,
2566      2974, 1685, 1685, 1685,  771,  769, 1685, 2963,  768,  766,
2567       764, 1685, 1685, 1685, 1687, 1685, 2940, 2940, 2940,  763,
2568      2941,  762,  760, 2942, 2944, 2944, 2944,  758, 2945,  757,
2569       756, 2946, 2947, 2947, 2947,  755, 2948,  753, 3285, 2949,
2570      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,
2571      2974,  700,  733, 1685, 3011, 3011, 3011,  732, 1685, 1685,
2572      1685, 1687, 1685, 3020, 3020, 3020, 3022, 3022, 3022, 3024,
2573      3024, 3024, 1687, 1688, 3032, 3032, 3032, 3042, 3042, 3042,
2574
2575      3021,  730,  728, 3023,  727,  726, 3025, 1685, 1685,  724,
2576       720, 3033, 3011, 3011, 3011, 1145, 3020, 3020, 3020, 3050,
2577      3050, 3050,  716, 3051,  715,  713, 3052, 3022, 3022, 3022,
2578      1687,  712,  709, 3021, 3053, 3053, 3053,  708, 3054,  707,
2579       705, 3055,  704,  703, 3023, 3024, 3024, 3024, 3056, 3056,
2580      3056,  701, 3057,  696, 3285, 3058, 3032, 3032, 3032, 3042,
2581      3042, 3042, 3025, 1882, 3065, 3065, 3065,  676, 3066,  674,
2582       672, 3067,  666, 3033, 3050, 3050, 3050, 1145, 3051,  665,
2583       666, 3052, 3053, 3053, 3053,  665, 3054,  664,  663, 3055,
2584      3056, 3056, 3056, 3285, 3057, 3285, 3076, 3058, 3065, 3065,
2585
2586      3065, 3285, 3066, 3285, 3285, 3067, 3181, 3181, 3181, 3181,
2587      3181, 3181, 3285, 3190, 3285, 3285, 3191, 3283, 3283, 3283,
2588      3283, 3283, 3283, 3285, 1145, 3285, 3285, 1145, 3285, 3285,
2589      3285, 3285, 3285, 3285, 3285, 3284, 3285, 3285, 3284,  260,
2590       260,  260,  260,  260,  260,  260,  260,  260,  261,  261,
2591       261,  261,  261,  261,  261,  261,  261,  266,  266,  266,
2592       266,  266,  266,  266,  266,  266,  269,  269,  269,  269,
2593       269,  269,  269,  269,  269,  272,  272,  272,  272,  272,
2594       272,  272,  272,  272,  275,  275,  275,  275,  275,  275,
2595       275,  275,  275,  282,  282,  282,  282,  282,  282,  282,
2596
2597       282,  282,  290,  290,  290,  290,  290,  290,  290,  290,
2598       290,  294,  294,  294,  294,  294,  294,  294,  294,  294,
2599       306,  306,  306,  306,  306,  306,  306,  306,  306,  310,
2600       310,  310,  310,  310,  310,  310,  310,  310,  317,  317,
2601       317,  317,  317,  317,  317,  317,  317,  328,  328,  328,
2602       328,  328,  328,  328,  328,  328,  336,  336,  336,  336,
2603       336,  336,  336,  336,  336,  342,  342,  342,  342,  342,
2604       342,  342,  342,  342,  348,  348,  348,  348,  348,  348,
2605       348,  348,  348,  354,  354,  354,  354,  354,  354,  354,
2606       354,  354,  359,  359,  359,  359,  359,  359,  359,  359,
2607
2608       359,  378,  378,  378,  378,  378,  378,  378,  378,  378,
2609       385,  385,  385,  385,  385,  385,  385,  385,  385,  392,
2610       392,  392,  392,  392,  392,  392,  392,  392,  398,  398,
2611       398,  398,  398,  398,  398,  398,  398,  405,  405,  405,
2612       405,  405,  405,  405,  405,  405,  410,  410,  410,  410,
2613       410,  410,  410,  410,  410,  416,  416,  416,  416,  416,
2614       416,  416,  416,  416,  421,  421,  421,  421,  421,  421,
2615       421,  421,  421,  427,  427,  427,  427,  427,  427,  427,
2616       427,  427,  435,  435,  435,  435,  435,  435,  435,  435,
2617       435,  443,  443,  443,  443,  443,  443,  443,  443,  443,
2618
2619       447,  447,  447,  447,  447,  447,  447,  447,  447,  453,
2620       453,  453,  453,  453,  453,  453,  453,  453,  459,  459,
2621       459,  459,  459,  459,  459,  459,  459,  476,  476,  476,
2622       476,  476,  476,  476,  476,  476,  483,  483,  483,  483,
2623       483,  483,  483,  483,  483,  492,  492,  492,  492,  492,
2624       492,  492,  492,  492,  498,  498,  498,  498,  498,  498,
2625       498,  498,  498,  508,  508,  508,  508,  508,  508,  508,
2626       508,  508,  514,  514,  514,  514,  514,  514,  514,  514,
2627       514,  519,  519,  519,  519,  519,  519,  519,  519,  519,
2628       525,  525,  525,  525,  525,  525,  525,  525,  525,  531,
2629
2630       531,  531,  531,  531,  531,  531,  531,  531,  537,  537,
2631       537,  537,  537,  537,  537,  537,  537,  544,  544,  544,
2632       544,  544,  544,  544,  544,  544,  551,  551,  551,  551,
2633       551,  551,  551,  551,  551,  556,  556,  556,  556,  556,
2634       556,  556,  556,  556,  564,  564,  564,  564,  564,  564,
2635       564,  564,  564,  570,  570,  570,  570,  570,  570,  570,
2636       570,  570,  577,  577,  577,  577,  577,  577,  577,  577,
2637       577,  582,  582,  582,  582,  582,  582,  582,  582,  582,
2638       588,  588,  588,  588,  588,  588,  588,  588,  588,  593,
2639       593,  593,  593,  593,  593,  593,  593,  593,  600,  600,
2640
2641       600,  600,  600,  600,  600,  600,  600,  606,  606,  606,
2642       606,  606,  606,  606,  606,  606,  613,  613,  613,  613,
2643       613,  613,  613,  613,  613,  621,  621,  621,  621,  621,
2644       621,  621,  621,  621,  629,  629,  629,  629,  629,  629,
2645       629,  629,  629,  633,  633,  633,  633,  633,  633,  633,
2646       633,  633,  639,  639,  639,  639,  639,  639,  639,  639,
2647       639,  643,  643,  643,  643,  643,  643,  643,  643,  643,
2648       650,  650,  650,  650,  650,  650,  650,  650,  650,  655,
2649       655,  655,  655,  655,  655,  655,  655,  655,  675,  675,
2650       675, 3285, 3285, 3285,  675,  702,  702,  702, 3285, 3285,
2651
2652      3285,  702,  706,  706,  706, 3285, 3285, 3285,  706,  714,
2653       714,  714, 3285, 3285, 3285,  714,  725,  725,  725, 3285,
2654      3285, 3285,  725,  731,  731,  731, 3285, 3285, 3285,  731,
2655       754,  754,  754, 3285, 3285, 3285,  754,  761,  761,  761,
2656      3285, 3285, 3285,  761,  767,  767,  767, 3285, 3285, 3285,
2657       767,  772,  772,  772, 3285, 3285, 3285,  772,  777,  777,
2658       777, 3285, 3285, 3285,  777,  786,  786,  786, 3285, 3285,
2659      3285,  786,  790,  790,  790, 3285, 3285, 3285,  790,  796,
2660       796,  796, 3285, 3285, 3285,  796,  814,  814,  814, 3285,
2661      3285, 3285,  814,  824,  824,  824, 3285, 3285, 3285,  824,
2662
2663       834,  834,  834, 3285, 3285, 3285,  834,  839,  839,  839,
2664      3285, 3285, 3285,  839,  845,  845,  845, 3285, 3285, 3285,
2665       845,  853,  853,  853, 3285, 3285, 3285,  853,  860,  860,
2666       860, 3285, 3285, 3285,  860,  867,  867,  867, 3285, 3285,
2667      3285,  867,  872,  872,  872, 3285, 3285, 3285,  872,  877,
2668       877,  877, 3285, 3285, 3285,  877,  883,  883,  883, 3285,
2669      3285, 3285,  883,  892,  892,  892, 3285, 3285, 3285,  892,
2670       896,  896,  896, 3285, 3285, 3285,  896,  900,  900,  900,
2671      3285, 3285, 3285,  900,  904,  904,  904,  904,  904,  904,
2672       904, 3285,  904,  675,  675,  675, 3285, 3285, 3285,  675,
2673
2674       919, 3285, 3285, 3285,  919,  702,  702,  702, 3285, 3285,
2675      3285,  702,  951, 3285, 3285, 3285,  951,  706,  706,  706,
2676      3285, 3285, 3285,  706,  958, 3285, 3285, 3285,  958,  714,
2677       714,  714, 3285, 3285, 3285,  714,  970, 3285, 3285, 3285,
2678       970,  725,  725,  725, 3285, 3285, 3285,  725,  975, 3285,
2679      3285, 3285,  975,  731,  731,  731, 3285, 3285, 3285,  731,
2680       980, 3285, 3285, 3285,  980,  754,  754,  754, 3285, 3285,
2681      3285,  754, 1001, 3285, 3285, 3285, 1001,  761,  761,  761,
2682      3285, 3285, 3285,  761, 1007, 3285, 3285, 3285, 1007,  767,
2683       767,  767, 3285, 3285, 3285,  767, 1012, 3285, 3285, 3285,
2684
2685      1012,  772,  772,  772, 3285, 3285, 3285,  772, 1016, 3285,
2686      3285, 3285, 1016,  777,  777,  777, 3285, 3285, 3285,  777,
2687      1025, 3285, 3285, 3285, 1025,  786,  786,  786, 3285, 3285,
2688      3285,  786, 1030, 3285, 3285, 3285, 1030,  790,  790,  790,
2689      3285, 3285, 3285,  790, 1037, 3285, 3285, 3285, 1037,  796,
2690       796,  796, 3285, 3285, 3285,  796, 1056, 3285, 3285, 3285,
2691      1056,  814,  814,  814, 3285, 3285, 3285,  814, 1067, 3285,
2692      3285, 3285, 1067,  824,  824,  824, 3285, 3285, 3285,  824,
2693      1077, 3285, 3285, 3285, 1077,  834,  834,  834, 3285, 3285,
2694      3285,  834, 1082, 3285, 3285, 3285, 1082,  839,  839,  839,
2695
2696      3285, 3285, 3285,  839, 1088, 3285, 3285, 3285, 1088,  845,
2697       845,  845, 3285, 3285, 3285,  845, 1096, 3285, 3285, 3285,
2698      1096,  853,  853,  853, 3285, 3285, 3285,  853, 1101, 3285,
2699      3285, 3285, 1101,  860,  860,  860, 3285, 3285, 3285,  860,
2700      1108, 3285, 3285, 3285, 1108,  867,  867,  867, 3285, 3285,
2701      3285,  867, 1113, 3285, 3285, 3285, 1113,  872,  872,  872,
2702      3285, 3285, 3285,  872, 1117, 3285, 3285, 3285, 1117,  877,
2703       877,  877, 3285, 3285, 3285,  877, 1122, 3285, 3285, 3285,
2704      1122,  883,  883,  883, 3285, 3285, 3285,  883, 1129, 3285,
2705      3285, 3285, 1129,  892,  892,  892, 3285, 3285, 3285,  892,
2706
2707      1133, 3285, 3285, 3285, 1133,  896,  896,  896, 3285, 3285,
2708      3285,  896, 1137, 3285, 3285, 3285, 1137,  900,  900,  900,
2709      3285, 3285, 3285,  900, 1142, 3285, 3285, 3285, 1142, 1144,
2710      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1150, 3285,
2711      3285, 3285, 3285, 1150,  675,  675,  675, 3285, 3285, 3285,
2712       675, 1159, 1159, 1159, 1159, 3285, 3285, 1159, 1159,  702,
2713       702,  702, 3285, 3285, 3285,  702, 1194, 1194, 1194, 1194,
2714      3285, 3285, 1194, 1194,  706,  706,  706, 3285, 3285, 3285,
2715       706, 1204, 1204, 1204, 1204, 3285, 3285, 1204, 1204,  714,
2716       714,  714, 3285, 3285, 3285,  714, 1220, 1220, 1220, 1220,
2717
2718      3285, 3285, 1220, 1220,  725,  725,  725, 3285, 3285, 3285,
2719       725, 1227, 1227, 1227, 1227, 3285, 3285, 1227, 1227,  731,
2720       731,  731, 3285, 3285, 3285,  731, 1235, 1235, 1235, 1235,
2721      3285, 3285, 1235, 1235,  754,  754,  754, 3285, 3285, 3285,
2722       754, 1258, 1258, 1258, 1258, 3285, 3285, 1258, 1258,  761,
2723       761,  761, 3285, 3285, 3285,  761, 1267, 1267, 1267, 1267,
2724      3285, 3285, 1267, 1267,  767,  767,  767, 3285, 3285, 3285,
2725       767, 1275, 1275, 1275, 1275, 3285, 3285, 1275, 1275,  772,
2726       772,  772, 3285, 3285, 3285,  772, 1281, 1281, 1281, 1281,
2727      3285, 3285, 1281, 1281,  777,  777,  777, 3285, 3285, 3285,
2728
2729       777, 1293, 1293, 1293, 1293, 3285, 3285, 1293, 1293,  786,
2730       786,  786, 3285, 3285, 3285,  786, 1300, 1300, 1300, 1300,
2731      3285, 3285, 1300, 1300,  790,  790,  790, 3285, 3285, 3285,
2732       790, 1311, 1311, 1311, 1311, 3285, 3285, 1311, 1311,  796,
2733       796,  796, 3285, 3285, 3285,  796, 1337, 1337, 1337, 1337,
2734      3285, 3285, 1337, 1337,  814,  814,  814,  814, 3285,  814,
2735      3285,  814, 1353, 1353, 1353, 1353, 3285, 3285, 1353, 1353,
2736       824,  824,  824, 3285, 3285, 3285,  824, 1368, 1368, 1368,
2737      1368, 3285, 3285, 1368, 1368,  834,  834,  834, 3285, 3285,
2738      3285,  834, 1376, 1376, 1376, 1376, 3285, 3285, 1376, 1376,
2739
2740       839,  839,  839, 3285, 3285, 3285,  839, 1385, 1385, 1385,
2741      1385, 3285, 3285, 1385, 1385,  845,  845,  845, 3285, 3285,
2742      3285,  845, 1396, 1396, 1396, 1396, 3285, 3285, 1396, 1396,
2743       853,  853,  853,  853, 3285,  853, 3285,  853, 1405, 1405,
2744      1405, 1405, 3285, 3285, 1405, 1405,  860,  860,  860,  860,
2745      3285,  860, 3285,  860, 1417, 1417, 1417, 1417, 3285, 3285,
2746      1417, 1417,  867,  867,  867, 3285, 3285, 3285,  867, 1425,
2747      1425, 1425, 1425, 3285, 3285, 1425, 1425,  872,  872,  872,
2748       872, 3285,  872, 3285,  872, 1433, 1433, 1433, 1433, 3285,
2749      3285, 1433, 1433,  877,  877,  877,  877, 3285,  877, 3285,
2750
2751       877, 1443, 1443, 1443, 1443, 3285, 3285, 1443, 1443,  883,
2752       883,  883, 3285, 3285, 3285,  883, 1452, 1452, 1452, 1452,
2753      3285, 3285, 1452, 1452,  892,  892,  892, 3285, 3285, 3285,
2754       892, 1458, 1458, 1458, 1458, 3285, 3285, 1458, 1458, 1465,
2755      1465, 1465, 1465, 3285, 3285, 1465, 1465,  900,  900,  900,
2756      3285, 3285, 3285,  900, 1473, 1473, 1473, 1473, 3285, 3285,
2757      1473, 1473, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
2758      1144, 1150, 3285, 1150, 3285, 3285, 1150,  675,  675,  675,
2759      3285, 3285, 3285,  675, 1159, 1159, 1159, 1159, 3285, 3285,
2760      1159, 1159,  702,  702,  702,  702, 3285,  702, 3285,  702,
2761
2762      1194, 1194, 1194, 1194, 3285, 3285, 1194, 1194,  706,  706,
2763       706,  706, 3285,  706, 3285,  706, 1204, 1204, 1204, 1204,
2764      3285, 3285, 1204, 1204,  714,  714,  714, 3285, 3285, 3285,
2765       714, 1220, 1220, 1220, 1220, 3285, 3285, 1220, 1220,  725,
2766       725,  725, 3285, 3285, 3285,  725, 1227, 1227, 1227, 1227,
2767      3285, 3285, 1227, 1227,  731,  731,  731, 3285, 3285, 3285,
2768       731, 1235, 1235, 1235, 1235, 3285, 3285, 1235, 1235,  754,
2769       754,  754, 3285, 3285, 3285,  754, 1258, 1258, 1258, 1258,
2770      3285, 3285, 1258, 1258,  761,  761,  761, 3285, 3285, 3285,
2771       761, 1267, 1267, 1267, 1267, 3285, 3285, 1267, 1267,  767,
2772
2773       767,  767,  767, 3285,  767, 3285,  767, 1275, 1275, 1275,
2774      1275, 3285, 3285, 1275, 1275,  772,  772,  772,  772, 3285,
2775       772, 3285,  772, 1281, 1281, 1281, 1281, 3285, 3285, 1281,
2776      1281,  777,  777,  777, 3285, 3285, 3285,  777, 1293, 1293,
2777      1293, 1293, 3285, 3285, 1293, 1293,  786,  786,  786,  786,
2778      3285,  786, 3285,  786, 1300, 1300, 1300, 1300, 3285, 3285,
2779      1300, 1300,  790,  790,  790,  790, 3285,  790, 3285,  790,
2780      1311, 1311, 1311, 1311, 3285, 3285, 1311, 1311,  796,  796,
2781       796, 3285, 3285, 3285,  796, 1337, 1337, 1337, 1337, 3285,
2782      3285, 1337, 1337,  814,  814,  814, 3285, 3285, 3285,  814,
2783
2784      1353, 1353, 1353, 1353, 3285, 3285, 1353, 1353,  824,  824,
2785       824, 3285, 3285, 3285,  824, 1368, 1368, 1368, 1368, 3285,
2786      3285, 1368, 1368,  834,  834,  834, 3285, 3285, 3285,  834,
2787      1376, 1376, 1376, 1376, 3285, 3285, 1376, 1376,  839,  839,
2788       839, 3285, 3285, 3285,  839, 1385, 1385, 1385, 1385, 3285,
2789      3285, 1385, 1385,  845,  845,  845, 3285, 3285, 3285,  845,
2790      1396, 1396, 1396, 1396, 3285, 3285, 1396, 1396,  853,  853,
2791       853, 3285, 3285, 3285,  853, 1405, 1405, 1405, 1405, 3285,
2792      3285, 1405, 1405,  860,  860,  860, 3285, 3285, 3285,  860,
2793      1417, 1417, 1417, 1417, 3285, 3285, 1417, 1417,  867,  867,
2794
2795       867, 3285, 3285, 3285,  867, 1425, 1425, 1425, 1425, 3285,
2796      3285, 1425, 1425, 1433, 1433, 1433, 1433, 3285, 3285, 1433,
2797      1433,  877,  877,  877, 3285, 3285, 3285,  877, 1443, 1443,
2798      1443, 1443, 3285, 3285, 1443, 1443,  883,  883,  883, 3285,
2799      3285, 3285,  883, 1452, 1452, 1452, 1452, 3285, 3285, 1452,
2800      1452,  892,  892,  892, 3285, 3285, 3285,  892, 1458, 1458,
2801      1458, 1458, 3285, 3285, 1458, 1458, 1465, 1465, 1465, 1465,
2802      3285, 3285, 1465, 1465,  900,  900,  900, 3285, 3285, 3285,
2803       900, 1473, 1473, 1473, 1473, 3285, 3285, 1473, 1473, 1144,
2804      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1685, 1685,
2805
2806      1685, 1685, 1685, 1685, 1685, 1685, 1685,  675,  675,  675,
2807      3285, 3285, 3285,  675, 1159, 1159, 1159, 1159, 3285, 3285,
2808      1159, 1159, 1194, 1194, 1194, 1194, 3285, 3285, 1194, 1194,
2809       706,  706,  706, 3285, 3285, 3285,  706, 1204, 1204, 1204,
2810      1204, 3285, 3285, 1204, 1204,  714,  714,  714, 3285, 3285,
2811      3285,  714, 1220, 1220, 1220, 1220, 3285, 3285, 1220, 1220,
2812       725,  725,  725, 3285, 3285, 3285,  725, 1227, 1227, 1227,
2813      1227, 3285, 3285, 1227, 1227,  731,  731,  731, 3285, 3285,
2814      3285,  731,  754,  754,  754, 3285, 3285, 3285,  754, 1258,
2815      1258, 1258, 1258, 3285, 3285, 1258, 1258,  761,  761,  761,
2816
2817      3285, 3285, 3285,  761, 1267, 1267, 1267, 1267, 3285, 3285,
2818      1267, 1267, 1275, 1275, 1275, 1275, 3285, 3285, 1275, 1275,
2819       772,  772,  772, 3285, 3285, 3285,  772, 1281, 1281, 1281,
2820      1281, 3285, 3285, 1281, 1281,  777,  777,  777, 3285, 3285,
2821      3285,  777, 1293, 1293, 1293, 1293, 3285, 3285, 1293, 1293,
2822      1300, 1300, 1300, 1300, 3285, 3285, 1300, 1300, 1311, 1311,
2823      1311, 1311, 3285, 3285, 1311, 1311,  796,  796,  796, 3285,
2824      3285, 3285,  796, 1337, 1337, 1337, 1337, 3285, 3285, 1337,
2825      1337,  814,  814,  814,  814, 3285,  814, 3285,  814, 1353,
2826      1353, 1353, 1353, 3285, 3285, 1353, 1353,  824,  824,  824,
2827
2828      3285, 3285, 3285,  824, 1368, 1368, 1368, 1368, 3285, 3285,
2829      1368, 1368,  834,  834,  834, 3285, 3285, 3285,  834, 1376,
2830      1376, 1376, 1376, 3285, 3285, 1376, 1376,  839,  839,  839,
2831      3285, 3285, 3285,  839, 1385, 1385, 1385, 1385, 3285, 3285,
2832      1385, 1385,  845,  845,  845, 3285, 3285, 3285,  845, 1396,
2833      1396, 1396, 1396, 3285, 3285, 1396, 1396,  853,  853,  853,
2834      3285, 3285, 3285,  853, 1405, 1405, 1405, 1405, 3285, 3285,
2835      1405, 1405,  860,  860,  860, 3285, 3285, 3285,  860, 1417,
2836      1417, 1417, 1417, 3285, 3285, 1417, 1417,  867,  867,  867,
2837      3285, 3285, 3285,  867, 1425, 1425, 1425, 1425, 3285, 3285,
2838
2839      1425, 1425, 1433, 1433, 1433, 1433, 3285, 3285, 1433, 1433,
2840       877,  877,  877, 3285, 3285, 3285,  877, 1443, 1443, 1443,
2841      1443, 3285, 3285, 1443, 1443,  883,  883,  883, 3285, 3285,
2842      3285,  883, 1452, 1452, 1452, 1452, 3285, 3285, 1452, 1452,
2843       892,  892,  892,  892, 3285,  892, 3285,  892, 1458, 1458,
2844      1458, 1458, 3285, 3285, 1458, 1458, 1465, 1465, 1465, 1465,
2845      3285, 3285, 1465, 1465,  900,  900,  900,  900, 3285,  900,
2846      3285,  900, 1473, 1473, 1473, 1473, 3285, 3285, 1473, 1473,
2847      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1685,
2848      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,  675,  675,
2849
2850       675, 3285, 3285, 3285,  675, 1159, 1159, 1159, 1159, 3285,
2851      3285, 1159, 1159, 1194, 1194, 1194, 1194, 3285, 3285, 1194,
2852      1194,  706,  706,  706, 3285, 3285, 3285,  706, 1204, 1204,
2853      1204, 1204, 3285, 3285, 1204, 1204,  714,  714,  714, 3285,
2854      3285, 3285,  714, 1220, 1220, 1220, 1220, 3285, 3285, 1220,
2855      1220,  725,  725,  725, 3285, 3285, 3285,  725, 1227, 1227,
2856      1227, 1227, 3285, 3285, 1227, 1227,  731,  731,  731, 3285,
2857      3285, 3285,  731,  754,  754,  754, 3285, 3285, 3285,  754,
2858      1258, 1258, 1258, 1258, 3285, 3285, 1258, 1258,  761,  761,
2859       761, 3285, 3285, 3285,  761, 1267, 1267, 1267, 1267, 3285,
2860
2861      3285, 1267, 1267, 1275, 1275, 1275, 1275, 3285, 3285, 1275,
2862      1275,  772,  772,  772,  772, 3285,  772, 3285,  772, 1281,
2863      1281, 1281, 1281, 3285, 3285, 1281, 1281,  777,  777,  777,
2864      3285, 3285, 3285,  777, 1293, 1293, 1293, 1293, 3285, 3285,
2865      1293, 1293, 1311, 1311, 1311, 1311, 3285, 3285, 1311, 1311,
2866       796,  796,  796, 3285, 3285, 3285,  796, 1337, 1337, 1337,
2867      1337, 3285, 3285, 1337, 1337,  814,  814,  814,  814, 3285,
2868       814, 3285,  814, 1353, 1353, 1353, 1353, 3285, 3285, 1353,
2869      1353,  824,  824,  824, 3285, 3285, 3285,  824, 1368, 1368,
2870      1368, 1368, 3285, 3285, 1368, 1368,  834,  834,  834, 3285,
2871
2872      3285, 3285,  834, 1376, 1376, 1376, 1376, 3285, 3285, 1376,
2873      1376,  839,  839,  839, 3285, 3285, 3285,  839, 1385, 1385,
2874      1385, 1385, 3285, 3285, 1385, 1385,  845,  845,  845, 3285,
2875      3285, 3285,  845, 1396, 1396, 1396, 1396, 3285, 3285, 1396,
2876      1396,  853,  853,  853, 3285, 3285, 3285,  853, 1405, 1405,
2877      1405, 1405, 3285, 3285, 1405, 1405,  860,  860,  860,  860,
2878      3285,  860, 3285,  860, 1417, 1417, 1417, 1417, 3285, 3285,
2879      1417, 1417,  867,  867,  867, 3285, 3285, 3285,  867, 1425,
2880      1425, 1425, 1425, 3285, 3285, 1425, 1425, 1433, 1433, 1433,
2881      1433, 3285, 3285, 1433, 1433,  877,  877,  877,  877, 3285,
2882
2883       877, 3285,  877, 1443, 1443, 1443, 1443, 3285, 3285, 1443,
2884      1443,  883,  883,  883, 3285, 3285, 3285,  883, 1452, 1452,
2885      1452, 1452, 3285, 3285, 1452, 1452, 1458, 1458, 1458, 1458,
2886      3285, 3285, 1458, 1458, 1465, 1465, 1465, 1465, 3285, 3285,
2887      1465, 1465, 1473, 1473, 1473, 1473, 3285, 3285, 1473, 1473,
2888      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1685,
2889      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685,  675,  675,
2890       675,  675, 3285,  675, 3285,  675, 1159, 1159, 1159, 1159,
2891      3285, 3285, 1159, 1159, 1194, 1194, 1194, 1194, 3285, 3285,
2892      1194, 1194,  706,  706,  706, 3285, 3285, 3285,  706, 1204,
2893
2894      1204, 1204, 1204, 3285, 3285, 1204, 1204,  714,  714,  714,
2895      3285, 3285, 3285,  714, 1220, 1220, 1220, 1220, 3285, 3285,
2896      1220, 1220,  725,  725,  725,  725, 3285,  725, 3285,  725,
2897      1227, 1227, 1227, 1227, 3285, 3285, 1227, 1227,  731,  731,
2898       731,  731, 3285,  731, 3285,  731,  754,  754,  754,  754,
2899      3285,  754, 3285,  754, 1258, 1258, 1258, 1258, 3285, 3285,
2900      1258, 1258,  761,  761,  761,  761, 3285,  761, 3285,  761,
2901      1267, 1267, 1267, 1267, 3285, 3285, 1267, 1267, 1275, 1275,
2902      1275, 1275, 3285, 3285, 1275, 1275, 1281, 1281, 1281, 1281,
2903      3285, 3285, 1281, 1281,  777,  777,  777, 3285, 3285, 3285,
2904
2905       777, 1311, 1311, 1311, 1311, 3285, 3285, 1311, 1311,  796,
2906       796,  796, 3285, 3285, 3285,  796, 1337, 1337, 1337, 1337,
2907      3285, 3285, 1337, 1337,  814,  814,  814,  814, 3285,  814,
2908      3285,  814, 1353, 1353, 1353, 1353, 3285, 3285, 1353, 1353,
2909       824,  824,  824, 3285, 3285, 3285,  824,  834,  834,  834,
2910      3285, 3285, 3285,  834, 1376, 1376, 1376, 1376, 3285, 3285,
2911      1376, 1376,  839,  839,  839, 3285, 3285, 3285,  839, 1385,
2912      1385, 1385, 1385, 3285, 3285, 1385, 1385,  845,  845,  845,
2913      3285, 3285, 3285,  845,  853,  853,  853, 3285, 3285, 3285,
2914       853, 1405, 1405, 1405, 1405, 3285, 3285, 1405, 1405,  860,
2915
2916       860,  860, 3285, 3285, 3285,  860, 1417, 1417, 1417, 1417,
2917      3285, 3285, 1417, 1417,  867,  867,  867, 3285, 3285, 3285,
2918       867, 1425, 1425, 1425, 1425, 3285, 3285, 1425, 1425, 1433,
2919      1433, 1433, 1433, 3285, 3285, 1433, 1433, 1443, 1443, 1443,
2920      1443, 3285, 3285, 1443, 1443,  883,  883,  883, 3285, 3285,
2921      3285,  883, 1452, 1452, 1452, 1452, 3285, 3285, 1452, 1452,
2922      1458, 1458, 1458, 1458, 3285, 3285, 1458, 1458, 1465, 1465,
2923      1465, 1465, 3285, 3285, 1465, 1465, 1144, 1144, 1144, 1144,
2924      1144, 1144, 1144, 1144, 1144, 1685, 1685, 1685, 1685, 1685,
2925      1685, 1685, 1685, 1685, 1159, 1159, 1159, 1159, 3285, 3285,
2926
2927      1159, 1159, 1194, 1194, 1194, 1194, 3285, 3285, 1194, 1194,
2928       706,  706,  706, 3285, 3285, 3285,  706,  714,  714,  714,
2929      3285, 3285, 3285,  714, 1220, 1220, 1220, 1220, 3285, 3285,
2930      1220, 1220, 1227, 1227, 1227, 1227, 3285, 3285, 1227, 1227,
2931      1258, 1258, 1258, 1258, 3285, 3285, 1258, 1258, 1267, 1267,
2932      1267, 1267, 3285, 3285, 1267, 1267, 1281, 1281, 1281, 1281,
2933      3285, 3285, 1281, 1281,  777,  777,  777, 3285, 3285, 3285,
2934       777, 1311, 1311, 1311, 1311, 3285, 3285, 1311, 1311,  796,
2935       796,  796, 3285, 3285, 3285,  796, 1337, 1337, 1337, 1337,
2936      3285, 3285, 1337, 1337, 1353, 1353, 1353, 1353, 3285, 3285,
2937
2938      1353, 1353,  824,  824,  824, 3285, 3285, 3285,  824,  834,
2939       834,  834, 3285, 3285, 3285,  834, 1376, 1376, 1376, 1376,
2940      3285, 3285, 1376, 1376,  839,  839,  839, 3285, 3285, 3285,
2941       839, 1385, 1385, 1385, 1385, 3285, 3285, 1385, 1385,  845,
2942       845,  845, 3285, 3285, 3285,  845,  853,  853,  853, 3285,
2943      3285, 3285,  853,  860,  860,  860, 3285, 3285, 3285,  860,
2944      1417, 1417, 1417, 1417, 3285, 3285, 1417, 1417,  867,  867,
2945       867, 3285, 3285, 3285,  867, 1425, 1425, 1425, 1425, 3285,
2946      3285, 1425, 1425, 1433, 1433, 1433, 1433, 3285, 3285, 1433,
2947      1433, 1443, 1443, 1443, 1443, 3285, 3285, 1443, 1443,  883,
2948
2949       883,  883,  883, 3285,  883, 3285,  883, 1452, 1452, 1452,
2950      1452, 3285, 3285, 1452, 1452, 1458, 1458, 1458, 1458, 3285,
2951      3285, 1458, 1458, 1465, 1465, 1465, 1465, 3285, 3285, 1465,
2952      1465, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
2953      1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1685, 1159,
2954      1159, 1159, 1159, 3285, 3285, 1159, 1159, 1194, 1194, 1194,
2955      1194, 3285, 3285, 1194, 1194,  706,  706,  706, 3285, 3285,
2956      3285,  706,  714,  714,  714,  714, 3285,  714, 3285,  714,
2957      1227, 1227, 1227, 1227, 3285, 3285, 1227, 1227, 1258, 1258,
2958      1258, 1258, 3285, 3285, 1258, 1258, 1267, 1267, 1267, 1267,
2959
2960      3285, 3285, 1267, 1267, 1281, 1281, 1281, 1281, 3285, 3285,
2961      1281, 1281,  777,  777,  777, 3285, 3285, 3285,  777, 1311,
2962      1311, 1311, 1311, 3285, 3285, 1311, 1311,  796,  796,  796,
2963      3285, 3285, 3285,  796, 1337, 1337, 1337, 1337, 3285, 3285,
2964      1337, 1337, 1353, 1353, 1353, 1353, 3285, 3285, 1353, 1353,
2965       824,  824,  824, 3285, 3285, 3285,  824,  834,  834,  834,
2966      3285, 3285, 3285,  834,  839,  839,  839,  839, 3285,  839,
2967      3285,  839, 1385, 1385, 1385, 1385, 3285, 3285, 1385, 1385,
2968       845,  845,  845,  845, 3285,  845, 3285,  845,  853,  853,
2969       853, 3285, 3285, 3285,  853,  860,  860,  860, 3285, 3285,
2970
2971      3285,  860, 1417, 1417, 1417, 1417, 3285, 3285, 1417, 1417,
2972       867,  867,  867,  867, 3285,  867, 3285,  867, 1425, 1425,
2973      1425, 1425, 3285, 3285, 1425, 1425, 1433, 1433, 1433, 1433,
2974      3285, 3285, 1433, 1433, 1443, 1443, 1443, 1443, 3285, 3285,
2975      1443, 1443,  883,  883,  883,  883, 3285,  883, 3285,  883,
2976      1452, 1452, 1452, 1452, 3285, 3285, 1452, 1452, 1458, 1458,
2977      1458, 1458, 3285, 3285, 1458, 1458, 1144, 1144, 1144, 1144,
2978      1144, 1144, 1144, 1144, 1144, 1685, 1685, 1685, 1685, 1685,
2979      1685, 1685, 1685, 1685, 1159, 1159, 1159, 1159, 3285, 3285,
2980      1159, 1159,  706,  706,  706, 3285, 3285, 3285,  706,  714,
2981
2982       714,  714, 3285, 3285, 3285,  714, 1227, 1227, 1227, 1227,
2983      3285, 3285, 1227, 1227, 1258, 1258, 1258, 1258, 3285, 3285,
2984      1258, 1258, 1281, 1281, 1281, 1281, 3285, 3285, 1281, 1281,
2985       777,  777,  777, 3285, 3285, 3285,  777, 1311, 1311, 1311,
2986      1311, 3285, 3285, 1311, 1311,  796,  796,  796, 3285, 3285,
2987      3285,  796, 2913, 2913, 2913, 2913, 2913, 2913, 2913, 2913,
2988      2913, 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914,
2989      2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2972,
2990      2972, 2972, 2972, 2972, 2972, 2972, 2972, 2972, 3008, 3008,
2991      3008, 3008, 3008, 3008, 3008, 3008, 3008, 3010, 3010, 3010,
2992
2993      3010, 3010, 3010, 3010, 3010, 3010,  259, 3285, 3285, 3285,
2994      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
2995      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
2996      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
2997      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
2998      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
2999      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
3000      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
3001      3285
3002     } ;
3003
3004 static yyconst flex_int16_t yy_chk[12182] =
3005     {   0,
3006         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3007         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3008         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3009         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3010        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3011        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3012        16,  265,   16,   18,   18, 1531,   15,   19,   19,   19,
3013       543,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3014        24,   24,  543,   19,   25,   25,   25,  367, 1534,   20,
3015       374,   17,   23, 1070,  313,   24,  262,  262,  262, 1070,
3016
3017        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3018        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3019        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3020        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3021        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3022       473,   28,  680,   21,   21,   29,  307,  286,   30,   31,
3023        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3024       304,  304,  307,  286,  363,   31,  680,   21,   22,   22,
3025        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3026        22,   22,   22, 1536,   22,   22,   22,   22,   22,   32,
3027
3028        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3029        35,   35,   36,   36,   36,   32,  286,  366,   33,  489,
3030       736,   34,  489,   22,   22,   35,  363,  366,   36,   37,
3031        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3032        40,   41,   41,   41,  736,   37,  555,   22,   38,  318,
3033       278,   39,  469,  555,   40,  366,  278,   41,   42,   42,
3034        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3035       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3036        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3037       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3038
3039        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3040        49,   49,   45,  668,  560,   46,  668, 1541,   47,  333,
3041        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3042        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3043        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3044        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3045       329,  573,   55,   55,  569,  299,   50,   55,  300,   51,
3046       560,  569,   52,  474,   44,   44,  387,   55,  299,  388,
3047       299, 1544,   44,   53,   53,   53,   53,   53,   53,   53,
3048        53,   53,   53,   53,   53,   53,   53,   53, 1545,   53,
3049
3050        53,   53,   53,   53, 1546,  343,   55,  300,   59,   59,
3051        59,   60,   60,   60,   63,   63,   63,  573,   56,   56,
3052       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3053        63,  388,  323,   56,  472,  779,   53,  400,  779,   53,
3054       472,  323,  337,  337,  337, 1551,   53,   54,   54,   54,
3055        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3056        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3057        64,   67,   67,   67,   68,   68,   68, 1552,   69,   69,
3058        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3059        68,  559,   54,   54,   69,  338, 1178,   70, 1553,  559,
3060
3061        54,  355,  373,   54,  338,  340,  340,  340,  401, 1178,
3062        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3063        57,   57,   57,   57,   57,   57, 1554,   57,   57,   57,
3064        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3065        73,  439,   74,   74,   74,   75,   75,   75,   71, 1555,
3066       379,   72,  350,  393,   73, 1556,   57,   57,   74,  350,
3067       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3068       437,   57,  352,  352,  352,  478,   57,   57,   58,   58,
3069        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3070        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3071
3072        76,   76,   77,   77,   77,   78,   78,   78,  624,   79,
3073        79,   79,   80,   80,   80,   76,  365, 1557,   77,  437,
3074       624,   78,  437,   58,   58,   79,  365,  478,   80,  360,
3075       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3076       386,  386, 1562,   58,   58,   61,   61,   61,   61,   61,
3077        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3078       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3079        82,   82,   83,   83,   83,  710,   84,   84,   84,   85,
3080        85,   85,   81, 1563, 1570,   82,  659,  596,   83,  371,
3081        61,   61,   84,  371,  371,   85,  609,   61,  390,  390,
3082
3083       390,  659,  371,   61,  371,  399,  399,  399,  403,  403,
3084       403,  710,   61,   62,   62,   62,   62,   62,   62,   62,
3085        62,   62,   62,   62,   62,   62,   62,   62, 1572,   62,
3086        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3087        88,   88,   88,  596,   89,   89,   89,   90,   90,   90,
3088        86,  406,  609,   87, 1573,  745,   88,  412,   62,   62,
3089        89,  417,  428,   90,  412,   62, 1579,  406,  411,  411,
3090       411,   62,  746,  412,  414,  414,  414,  417,  428,  745,
3091        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3092        65,   65,   65,   65,   65,   65,  746,   65,   65,   65,
3093
3094        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3095        93, 1580,   94,   94,   94,   95,   95,   95,   91,  444,
3096      1587,   92,  423, 1589,   93,  479,   65,   65,   94,  423,
3097      1590,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3098       425,  425,  436,  436,  436, 1596,   65,   66,   66,   66,
3099        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3100        66,   66,  747,   66,   66,   66,   66,   66,   96,   96,
3101        96,   97,   97,   97,   98,   98,   98,  479,   99,   99,
3102        99,  100,  100,  100,   96,  438,  747,   97,  438,  748,
3103        98, 1597,   66,   66,   99,  449, 1599,  100,  101,  101,
3104
3105       101, 1600,  449,   66,  102,  102,  102,  441,  441,  441,
3106       546,  449,   66,  748,  101,  448,  448,  448,  372, 1601,
3107       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3108       103,  103,  103,  103,  103,  103,  752,  103,  103,  103,
3109       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3110       107,  686,  108,  108,  108,  686,  372,  454,  105,  784,
3111       752,  106,  546,  784,  107,  369,  103,  103,  108,  461,
3112       466,  103,  372,  454,  547,  369,  461,  103,  451,  451,
3113       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3114       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3115
3116       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3117       109,  109,  110,  110,  110,  111,  111,  111,  625,  112,
3118       112,  112,  463,  463,  463,  109,  547,  475,  110, 1602,
3119      1603,  111, 1604,  104,  104,  112,  484,  499,  104,  475,
3120       475,  477,  477,  477,  104,  481,  481,  481,  104,  493,
3121       493,  493,  484,  499,  104,  113,  113,  113,  113,  113,
3122       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3123       625,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3124       116,  116,  117,  117,  117,  681,  118,  118,  118, 1147,
3125       494, 1614,  115, 1147, 1616,  116,  681,  494,  117,  681,
3126
3127       113,  113,  118,  510,  515,  113,  494,  496,  496,  496,
3128       510,  113,  509,  509,  509,  512,  512,  512, 1476,  510,
3129       515, 1617,  113,  114,  114,  114,  114,  114,  114,  114,
3130       114,  114,  114,  114,  114,  114,  114,  114, 1476,  114,
3131       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3132       121,  121,  121,  688,  122,  122,  122,  520,  520,  520,
3133       119,  526,  538,  120,  521, 1622,  121,  688,  114,  114,
3134       122,  521, 1624,  114,  523,  523,  523,  526,  538,  114,
3135       521,  532,  532,  532,  535,  535,  535,  545,  545,  545,
3136       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3137
3138       123,  123,  123,  123,  123,  123, 1626,  123,  123,  123,
3139       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3140       129, 1627,  130,  130,  130,  133,  133,  133,  125,  552,
3141       565,  126,  533, 1629,  129,  572,  123,  123,  130,  533,
3142       645,  133,  549,  549,  549,  552,  565,  123,  533,  557,
3143       557,  557,  123,  124,  124,  124,  124,  124,  124,  124,
3144       124,  124,  124,  124,  124,  124,  124,  124, 1630,  124,
3145       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3146       136,  136,  136,  572,  137,  137,  137,  138,  138,  138,
3147       134,  572,  645,  135, 1631, 1640,  136,  578,  124,  124,
3148
3149       137, 1646,  646,  138, 1647,  558,  562,  562,  562,  124,
3150       571,  571,  571,  578,  124,  127,  127,  127,  127,  127,
3151       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3152      1651,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3153       140,  140,  143,  143,  143,  692,  144,  144,  144,  147,
3154       147,  147,  139,  558,  646,  140,  584,  558,  143,  692,
3155       127,  127,  144,  584,  589,  147,  575,  575,  575,  583,
3156       583,  583,  584,  586,  586,  586,  127,  594,  594,  594,
3157       589, 1653,  127,  128,  128,  128,  128,  128,  128,  128,
3158       128,  128,  128,  128,  128,  128,  128,  128, 1665,  128,
3159
3160       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3161       152,  152,  152, 1666,  153,  153,  153,  154,  154,  154,
3162       148, 1671,  601,  151, 1674, 1675,  152,  614,  128,  128,
3163       153,  691,  630,  154,  598,  598,  598,  595,  601,  607,
3164       607,  607,  691,  614,  128,  691, 1676,  608,  630, 1678,
3165       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3166       131,  131,  131,  131,  131,  131, 1685,  131,  131,  131,
3167       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3168       157, 1688,  158,  158,  158,  595,  640, 1691,  155, 1692,
3169      1694,  156, 1695,  595,  157,  608,  131,  131,  158,  131,
3170
3171       651,  131,  640,  608,  611,  611,  611,  131,  622,  622,
3172       622,  627,  627,  627,  131,  623,  651,  131,  132,  132,
3173       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3174       132,  132,  132, 1696,  132,  132,  132,  132,  132,  161,
3175       161,  161,  162,  162,  162,  165,  165,  165,  694,  166,
3176       166,  166,  623, 1697, 1698,  161,  906, 1684,  162,  694,
3177      1190,  165,  694,  132,  132,  166,  132,  623,  132,  634,
3178       634,  634,  906, 1190,  132,  637,  637,  637,  644,  644,
3179       644,  132, 1684, 1699,  132,  141,  141,  141,  141,  141,
3180       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3181
3182      1700,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3183       170,  170,  173,  173,  173,  741,  174,  174,  174,  177,
3184       177,  177,  169, 1702, 1703,  170,  635,  657,  173,  741,
3185       141,  141,  174,  635,  657,  177,  648,  648,  648,  656,
3186       656,  656,  635,  657, 1705, 1707,  141,  142,  142,  142,
3187       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3188       142,  142, 1709,  142,  142,  142,  142,  142,  178,  178,
3189       178,  179,  179,  179,  180,  180,  180,  749,  181,  181,
3190       181,  182,  182,  182,  178, 1710, 1712,  179,  687, 1714,
3191       180,  749,  142,  142,  181,  687, 1716,  182,  658,  658,
3192
3193       658,  687,  667,  667,  667, 1162, 1162, 1162,  142,  145,
3194       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3195       145,  145,  145,  145, 1717,  145,  145,  145,  145,  145,
3196       183,  183,  183,  184,  184,  184,  187,  187,  187, 1718,
3197       188,  188,  188,  189,  189,  189,  183, 1719, 1720,  184,
3198       696, 1722,  187,  698,  145,  145,  188,  696,  751,  189,
3199       145,  667,  699,  696,  698,  145, 1731,  698, 1732,  699,
3200      1734, 1738,  751, 1742, 1744,  699, 1751,  145,  146,  146,
3201       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3202       146,  146,  146, 1752,  146,  146,  146,  146,  146,  190,
3203
3204       190,  190,  191,  191,  191,  192,  192,  192, 1753,  193,
3205       193,  193,  194,  194,  194,  190, 1754, 1756,  191,  700,
3206       740,  192, 1244,  146,  146,  193,  700,  740,  194,  146,
3207       743,  750,  700,  740,  146, 1244, 1760,  743, 1170, 1170,
3208      1170, 1761,  750,  743, 1762,  750,  146,  149,  149,  149,
3209       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3210       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3211       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3212       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3213       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3214
3215       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3216       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3217       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3218       159,  159,  159,  159,  159,  159, 1765,  159,  159,  159,
3219       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3220       199, 1772,  200,  200,  200,  201,  201,  201,  197, 1784,
3221      1785,  198, 1793, 1796,  199, 1806,  159,  159,  200, 1810,
3222       159,  201,  909,  909,  909, 1814,  909,  159, 1815, 1819,
3223       159,  921,  921,  921,  159, 1820,  159,  159,  160,  160,
3224       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3225
3226       160,  160,  160, 1821,  160,  160,  160,  160,  160,  202,
3227       202,  202,  203,  203,  203,  204,  204,  204, 1822,  207,
3228       207,  207,  208,  208,  208,  202, 1831, 1835,  203, 1838,
3229      1840,  204, 1842,  160,  160,  207, 1843,  160,  208,  955,
3230       955,  955, 1845,  955,  160,  921,  955,  160,  943,  943,
3231       943,  160, 1846,  160,  160,  163,  163,  163,  163,  163,
3232       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3233      1847,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3234       212,  212,  213,  213,  213, 1850,  214,  214,  214,  708,
3235       708,  708,  211, 1852, 1854,  212, 1859, 1865,  213, 1040,
3236
3237       163,  163,  214,  163,  163,  163,  708, 1869, 1870, 1040,
3238      1871,  163,  943, 1873,  163, 1885, 1040, 1888,  163, 1882,
3239      1881,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3240       164,  164,  164,  164,  164,  164,  164, 1881,  164,  164,
3241       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3242       217,  217, 1889,  218,  218,  218,  716,  716,  716,  215,
3243      1890, 1882,  216, 1892, 1891,  217, 1893,  164,  164,  218,
3244       164,  164,  164,  716, 1895,  963,  963,  963,  164,  963,
3245      1891,  164,  963, 1896, 1897,  164, 1883, 1899,  164,  167,
3246       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3247
3248       167,  167,  167,  167, 1900,  167,  167,  167,  167,  167,
3249       221,  221,  221,  222,  222,  222,  223,  223,  223, 1883,
3250       224,  224,  224,  732,  732,  732,  221, 1901, 1905,  222,
3251      1907, 1910,  223, 1911,  167,  167,  224, 1912, 1913,  167,
3252       732, 1185, 1185, 1185, 1915,  167,  168,  168,  168,  168,
3253       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3254       168, 1917,  168,  168,  168,  168,  168,  225,  225,  225,
3255       226,  226,  226,  227,  227,  227, 1918,  228,  228,  228,
3256       756,  756,  756,  225, 1920, 1922,  226, 1925, 1926,  227,
3257      1928,  168,  168,  228, 1929, 1930,  168,  756, 1241, 1241,
3258
3259      1241, 1932,  168,  171,  171,  171,  171,  171,  171,  171,
3260       171,  171,  171,  171,  171,  171,  171,  171, 1938,  171,
3261       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3262       233,  233,  233, 1927,  234,  234,  234,  235,  235,  235,
3263       231, 1927, 1939,  232, 1940, 1941,  233, 1944,  171,  171,
3264       234, 1960,  171,  235,  978,  978,  978, 1961,  978,  171,
3265      1940,  978,  171,  172,  172,  172,  172,  172,  172,  172,
3266       172,  172,  172,  172,  172,  172,  172,  172, 1966,  172,
3267       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3268       238,  238,  238, 1931,  241,  241,  241,  242,  242,  242,
3269
3270       236, 1931, 1945,  237, 1946, 1967,  238, 1968,  172,  172,
3271       241, 1972,  172,  242,  982,  982,  982, 1974, 1945,  172,
3272      1946, 1980,  172,  175,  175,  175,  175,  175,  175,  175,
3273       175,  175,  175,  175,  175,  175,  175,  175, 1981,  175,
3274       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3275       247,  247,  247, 1982,  248,  248,  248,  249,  249,  249,
3276       245, 1989, 1990,  246, 1991, 2004,  247, 2010,  175,  175,
3277       248, 2014,  175,  249,  991,  991,  991, 2017,  982,  175,
3278      2019, 2022,  175, 1492, 1492, 1492, 1493, 1493, 1493,  175,
3279       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3280
3281       176,  176,  176,  176,  176, 2024,  176,  176,  176,  176,
3282       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3283      2026,  255,  255,  255,  256,  256,  256,  250, 2027, 2028,
3284       251, 2031, 1493,  252, 2033,  176,  176,  255,  991,  176,
3285       256,  298, 2038,  364,  370, 2040,  176, 2048, 2049,  176,
3286      2050,  298, 2051,  364, 2053, 2066,  176,  185,  185,  185,
3287       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3288       185,  185,  370,  185,  185,  185,  185,  185, 2067, 2072,
3289       298,  364, 2073,  763,  763,  763,  298, 2074,  370,  768,
3290       768,  768, 2064,  298, 2075,  364, 2079,  298, 2064,  364,
3291
3292       763, 2066,  185,  185, 2081, 2082,  768, 2083,  185,  998,
3293       998,  998, 2088,  998, 2095, 2097,  998, 1495, 1495, 1495,
3294      1498, 1498, 1498,  185,  186,  186,  186,  186,  186,  186,
3295       186,  186,  186,  186,  186,  186,  186,  186,  186, 2098,
3296       186,  186,  186,  186,  186,  780,  780,  780,  792,  792,
3297       792,  793,  793,  793,  799,  799,  799,  801,  801,  801,
3298      2101, 2104,  780, 1495, 2108,  792, 2109, 2110,  793,  186,
3299       186,  799, 2111, 2112,  801,  186, 1005, 1005, 1005, 2113,
3300      1005, 2114, 2115, 1005, 1501, 1501, 1501, 1511, 1511, 1511,
3301       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3302
3303       195,  195,  195,  195,  195,  195, 2116,  195,  195,  195,
3304       195,  195,  815,  815,  815,  816,  816,  816,  828,  828,
3305       828,  836,  836,  836,  841,  841,  841, 2117, 2122,  815,
3306      2123, 2124,  816, 2125, 2143,  828,  195,  195,  836, 2144,
3307      2147,  841,  195, 2145, 2146,  195, 1010, 1010, 1010, 2148,
3308      1010, 2145, 2146, 1010, 1547, 1547, 1547,  195,  196,  196,
3309       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3310       196,  196,  196, 2150,  196,  196,  196,  196,  196,  847,
3311       847,  847,  869,  869,  869,  897,  897,  897,  901,  901,
3312       901, 2065,  919,  919,  919, 2154,  847, 2155, 2156,  869,
3313
3314      2162, 2163,  897,  196,  196,  901,  954,  954,  954,  196,
3315       919, 2164,  196, 1022, 1022, 1022, 2178, 1022, 2182, 2183,
3316      1022, 2184, 2065,  954,  196,  205,  205,  205,  205,  205,
3317       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3318      2186,  205,  205,  205,  205,  205,  920,  920,  920,  951,
3319       951,  951, 2190, 2193,  952,  952,  952,  958,  958,  958,
3320       959,  959,  959, 1746,  920, 2194, 2195,  951, 2197, 1746,
3321       205,  205,  952, 1746, 2195,  958,  205, 1746,  959, 2198,
3322      2201,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3323       206,  206,  206,  206,  206,  206,  206, 2208,  206,  206,
3324
3325       206,  206,  206, 2210,  920,  962,  962,  962,  964,  964,
3326       964,  970,  970,  970,  952,  966,  966,  966,  971,  971,
3327       971, 2225,  962, 2196,  959,  964, 2239,  206,  206,  970,
3328      2240, 2196,  966,  206, 2243, 2230,  971, 2250,  206,  209,
3329       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3330       209,  209,  209,  209, 2251,  209,  209,  209,  209,  209,
3331       975,  975,  975, 2256, 2258,  971, 2270, 2271,  976,  976,
3332       976,  977,  977,  977,  980,  980,  980, 1747,  975,  997,
3333       997,  997, 2230, 1747,  209,  209,  976, 1747,  977, 2272,
3334       209, 1747,  980, 1034, 1034, 1034,  997, 1034, 2273, 2274,
3335
3336      1034, 1550, 1550, 1550, 2275,  209,  210,  210,  210,  210,
3337       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3338       210, 2276,  210,  210,  210,  210,  210,  981,  981,  981,
3339      2277, 2278,  976, 2279, 2286, 1001, 1001, 1001, 1002, 1002,
3340      1002, 1004, 1004, 1004, 2287,  981, 2288, 1007, 1007, 1007,
3341      2290,  210,  210, 1001, 2300, 2301, 1002,  210, 1004, 1036,
3342      1036, 1036, 2302, 1036,  981, 1007, 1036, 2303, 1548, 1548,
3343      1548, 2304,  210,  219,  219,  219,  219,  219,  219,  219,
3344       219,  219,  219,  219,  219,  219,  219,  219, 2229,  219,
3345       219,  219,  219,  219, 2305, 1008, 1008, 1008, 1009, 1009,
3346
3347      1009, 1701, 1701, 1701, 1002, 1012, 1012, 1012, 1013, 1013,
3348      1013, 2306, 2309, 1008, 1548, 1009, 2310, 2311,  219,  219,
3349      1016, 1016, 1016, 1012,  219, 2317, 1013,  219, 1042, 1042,
3350      1042, 2229, 1042, 2318, 2324, 1042, 2325, 2326, 1016,  219,
3351       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3352       220,  220,  220,  220,  220, 2327,  220,  220,  220,  220,
3353       220, 1008, 2341, 1017, 1017, 1017, 1021, 1021, 1021, 1013,
3354      1025, 1025, 1025, 2342, 1026, 1026, 1026, 1030, 1030, 1030,
3355      2312, 1017, 2343, 1021, 2344,  220,  220, 2346, 1025, 2348,
3356      2312,  220, 1026, 2371,  220, 1030, 1045, 1045, 1045, 2372,
3357
3358      1045, 2377, 2378, 1045, 2379, 2366,  220,  229,  229,  229,
3359       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3360       229,  229, 2382,  229,  229,  229,  229,  229, 1017, 1033,
3361      1033, 1033, 1035, 1035, 1035, 1026, 1031, 1031, 1031, 1037,
3362      1037, 1037, 2366, 1038, 1038, 1038, 1033, 2385, 2386, 1035,
3363      2387, 2388,  229,  229, 1031, 2389, 2390, 1037, 2391, 2392,
3364       229, 1038,  229, 2393, 2394,  229, 1704, 1704, 1704,  229,
3365      1706, 1706, 1706,  229,  230,  230,  230,  230,  230,  230,
3366       230,  230,  230,  230,  230,  230,  230,  230,  230, 2365,
3367       230,  230,  230,  230,  230, 1041, 1041, 1041, 1031, 1044,
3368
3369      1044, 1044, 2395, 2397, 1038, 1046, 1046, 1046, 1056, 1056,
3370      1056, 2398, 1041, 1057, 1057, 1057, 1044, 2400, 2401,  230,
3371       230, 2365, 1046, 1708, 1708, 1708, 1056,  230, 2402,  230,
3372      2403, 1057,  230, 1711, 1711, 1711,  230, 1721, 1721, 1721,
3373       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3374       239,  239,  239,  239,  239,  239, 2405,  239,  239,  239,
3375       239,  239, 1058, 1058, 1058, 1059, 1059, 1059, 2406, 1059,
3376      2408, 1057, 1059, 1060, 1060, 1060, 1061, 1061, 1061, 1058,
3377      1061, 2409, 2411, 1061, 2416, 2417,  239,  239, 2399, 2418,
3378      1060, 1062, 1062, 1062, 1073, 1073, 1073, 2399, 1073, 2420,
3379
3380      2425, 1073, 1081, 1081, 1081, 2426, 1081, 2427, 1062, 1081,
3381       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3382       240,  240,  240,  240,  240,  240, 2428,  240,  240,  240,
3383       240,  240, 1072, 1072, 1072, 1086, 1086, 1086, 2429, 1086,
3384      2432, 2438, 1086, 2439, 2441, 1063, 1063, 1063, 2450, 1072,
3385      1064, 1064, 1064, 1065, 1065, 1065,  240,  240, 1066, 1066,
3386      1066, 2452, 1063, 2455, 1092, 1092, 1092, 1064, 1092, 2404,
3387      1065, 1092, 1112, 1112, 1112, 1066, 1112, 2457, 2404, 1112,
3388       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3389       243,  243,  243,  243,  243,  243, 1063,  243,  243,  243,
3390
3391       243,  243, 1064, 1067, 1067, 1067, 2481, 2482, 1065, 2484,
3392      1066, 2485, 1068, 1068, 1068, 1074, 1074, 1074, 1077, 1077,
3393      1077, 1067, 1713, 1713, 1713, 2486,  243,  243, 2491, 2477,
3394      1068, 2492, 1074, 1549, 1549, 1549, 1077,  243,  244,  244,
3395       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3396       244,  244,  244, 2493,  244,  244,  244,  244,  244, 1068,
3397      1080, 1080, 1080, 1082, 1082, 1082, 2477, 1078, 1078, 1078,
3398      1083, 1083, 1083, 1085, 1085, 1085, 2476, 1080, 2494, 1549,
3399      2495, 1082, 2478,  244,  244, 1078, 1713, 2496, 1083, 2497,
3400      1085, 1755, 1755, 1755,  244,  253,  253,  253,  253,  253,
3401
3402       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3403      2498,  253,  253,  253,  253,  253, 2476, 2499, 1078, 1088,
3404      1088, 1088, 1091, 1091, 1091, 2478, 2500, 1096, 1096, 1096,
3405      2501, 1083, 1097, 1097, 1097, 2503, 2504, 1088, 2505, 1091,
3406       253,  253, 1089, 1089, 1089, 1096, 1098, 1098, 1098, 2506,
3407      1097,  253, 1136, 1136, 1136, 2507, 1136, 2508, 2509, 1136,
3408      1089, 2510, 2511, 1098,  253,  254,  254,  254,  254,  254,
3409       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3410      2512,  254,  254,  254,  254,  254, 2513, 1097, 2514, 1089,
3411      1099, 1099, 1099, 2515, 2516, 1100, 1100, 1100, 1101, 1101,
3412
3413      1101, 1102, 1102, 1102, 1108, 1108, 1108, 1099, 2518, 2522,
3414       254,  254, 1100, 1104, 1104, 1104, 1101, 2529, 2530, 1102,
3415      2531,  254, 1108, 1105, 1105, 1105, 1106, 1106, 1106, 2533,
3416      1104, 1109, 1109, 1109,  254,  296, 1107, 1107, 1107, 2537,
3417      1105, 2540,  296, 1106, 1111, 1111, 1111, 2579, 2581, 1109,
3418      2489,  296,  296, 1107, 1100, 2578, 1113, 1113, 1113, 2583,
3419      2489, 1111, 1102, 2489, 1114, 1114, 1114, 2584, 1109, 1757,
3420      1757, 1757, 2580, 1105, 1113, 1115, 1115, 1115, 2585,  296,
3421       296,  296, 1114, 2588, 2578,  296,  296,  296, 1105, 2579,
3422       296,  296, 1115, 2589,  296, 1107,  296,  296,  296,  361,
3423
3424      1116, 1116, 1116, 1117, 1117, 1117,  361, 1118, 1118, 1118,
3425      1119, 1119, 1119, 2590, 2580,  361,  361, 1116, 2591, 1114,
3426      2592, 1117, 1120, 1120, 1120, 1118, 2590, 1119, 2594, 1121,
3427      1121, 1121, 2595, 2596, 1122, 1122, 1122, 2563, 2597, 1120,
3428      1135, 1135, 1135,  361,  361,  361, 1121, 2563, 2598,  361,
3429       361,  361, 1122, 2563,  361,  361, 2600, 1135,  361, 2601,
3430       361,  361,  361, 1123, 1123, 1123, 1129, 1129, 1129, 1139,
3431      1139, 1139, 1120, 1130, 1130, 1130, 2602, 2603, 1118, 2606,
3432      2607, 1123, 2608, 2609, 1129, 2610, 1139, 1120, 1133, 1133,
3433      1133, 1130, 1134, 1134, 1134, 1137, 1137, 1137, 1138, 1138,
3434
3435      1138, 1140, 1140, 1140, 2611, 1140, 1133, 2612, 1140, 2613,
3436      1134, 2614, 2615, 1137, 2616, 2617, 1138, 1142, 1142, 1142,
3437      1143, 1143, 1143, 1158, 1158, 1158, 1159, 1159, 1159, 1161,
3438      1161, 1161, 2490, 2593, 1123, 1142, 2618, 1130, 1143, 2620,
3439      2630, 1158, 2490, 2631, 1159, 2490, 2593, 1161, 1192, 1192,
3440      1192, 1193, 1193, 1193, 2636, 2640, 1134, 2658, 2659, 1138,
3441      1194, 1194, 1194, 2660, 2661, 1192, 1197, 1197, 1197, 1193,
3442      1196, 1196, 1196, 1198, 1198, 1198, 1161, 1198, 1194, 2662,
3443      1198, 2663, 2675, 1197, 1143, 1201, 1201, 1201, 1196, 1203,
3444      1203, 1203, 1204, 1204, 1204, 1206, 1206, 1206, 2667, 1208,
3445
3446      1208, 1208, 1201, 1208, 2668, 2678, 1208, 1203, 2679, 2673,
3447      1204, 2667, 2683, 1206, 1211, 1211, 1211, 2668, 2672, 1196,
3448      1212, 1212, 1212, 2684, 1212, 2564, 2685, 1212, 1213, 1213,
3449      1213, 1211, 1214, 1214, 1214, 2564, 1215, 1215, 1215, 2686,
3450      1215, 2564, 1206, 1215, 2673, 1213, 1201, 2687, 2688, 1214,
3451      1217, 1217, 1217, 1219, 1219, 1219, 1220, 1220, 1220, 1222,
3452      1222, 1222, 1224, 1224, 1224, 2689, 2672, 1217, 1226, 1226,
3453      1226, 1219, 2690, 2692, 1220, 2693, 2694, 1222, 2695, 1224,
3454      1227, 1227, 1227, 1229, 1229, 1229, 1226, 1230, 1230, 1230,
3455      2696, 1230, 2697, 2698, 1230, 1234, 1234, 1234, 1227, 2699,
3456
3457      2701, 1229, 1235, 1235, 1235, 1237, 1237, 1237, 1252, 1252,
3458      1252, 2702, 1252, 1234, 2703, 1252, 1256, 1256, 1256, 1222,
3459      1235, 2704, 2705, 1237, 1257, 1257, 1257, 1258, 1258, 1258,
3460      1229, 2706, 2707, 1256, 1260, 1260, 1260, 1262, 1262, 1262,
3461      2708, 1262, 1257, 2709, 1262, 1258, 1266, 1266, 1266, 1267,
3462      1267, 1267, 1260, 1269, 1269, 1269, 1270, 1270, 1270, 2710,
3463      1270, 2711, 2712, 1270, 1266, 2713, 2719, 1267, 1273, 1273,
3464      1273, 1269, 1274, 1274, 1274, 1275, 1275, 1275, 1277, 1277,
3465      1277, 1278, 1278, 1278, 2723, 1273, 2724, 1279, 1279, 1279,
3466      1274, 2732, 2733, 1275, 2750, 1260, 1277, 2751, 1278, 1280,
3467
3468      1280, 1280, 2752, 2753, 1279, 1281, 1281, 1281, 1283, 1283,
3469      1283, 1286, 1286, 1286, 1269, 1279, 2754, 1280, 1287, 1287,
3470      1287, 2755, 1287, 1281, 2758, 1287, 1283, 2759, 1286, 1292,
3471      1292, 1292, 1293, 1293, 1293, 1295, 1295, 1295, 1298, 1298,
3472      1298, 1299, 1299, 1299, 2745, 1277, 2760, 1292, 2761, 2770,
3473      1293, 2762, 2771, 1295, 2745, 1298, 1303, 1303, 1303, 1299,
3474      1300, 1300, 1300, 1302, 1302, 1302, 2746, 2748, 1304, 1304,
3475      1304, 2772, 1304, 1303, 1283, 1304, 2746, 2748, 1300, 2773,
3476      2774, 1302, 1307, 1307, 1307, 2762, 1307, 2775, 2776, 1307,
3477      1310, 1310, 1310, 1311, 1311, 1311, 1313, 1313, 1313, 2777,
3478
3479      1295, 2780, 1318, 1318, 1318, 2781, 1318, 2783, 1310, 1318,
3480      2784, 1311, 2785, 2749, 1313, 1321, 1321, 1321, 1322, 1322,
3481      1322, 2787, 1322, 2749, 2789, 1322, 1325, 1325, 1325, 2790,
3482      1302, 2791, 1321, 1326, 1326, 1326, 2794, 1326, 2795, 2796,
3483      1326, 2797, 2800, 1325, 1336, 1336, 1336, 1337, 1337, 1337,
3484      1339, 1339, 1339, 1340, 1340, 1340, 2807, 1340, 2808, 2809,
3485      1340, 1313, 1336, 2817, 2823, 1337, 2824, 2825, 1339, 1343,
3486      1343, 1343, 2826, 1343, 2827, 2828, 1343, 1346, 1346, 1346,
3487      1347, 1347, 1347, 2829, 1347, 2830, 2831, 1347, 1352, 1352,
3488      1352, 1353, 1353, 1353, 1346, 1355, 1355, 1355, 1360, 1360,
3489
3490      1360, 2832, 1360, 2834, 2835, 1360, 1352, 2840, 2841, 1353,
3491      1363, 1363, 1363, 1355, 1364, 1364, 1364, 1339, 1364, 2842,
3492      2843, 1364, 1367, 1367, 1367, 2853, 2844, 1363, 1368, 1368,
3493      1368, 1370, 1370, 1370, 1372, 1372, 1372, 2854, 1372, 2855,
3494      1367, 1372, 2856, 1355, 2857, 2858, 1368, 2859, 2860, 1370,
3495      1375, 1375, 1375, 1376, 1376, 1376, 1378, 1378, 1378, 1380,
3496      1380, 1380, 2864, 1380, 2865, 2866, 1380, 2867, 1375, 2844,
3497      2868, 1376, 2869, 2871, 1378, 1384, 1384, 1384, 1385, 1385,
3498      1385, 2872, 1370, 1387, 1387, 1387, 2874, 1389, 1389, 1389,
3499      2875, 1389, 2876, 1384, 1389, 2878, 1385, 1395, 1395, 1395,
3500
3501      2882, 1387, 1396, 1396, 1396, 2883, 1398, 1398, 1398, 1399,
3502      1399, 1399, 1400, 1400, 1400, 1395, 1400, 2884, 2887, 1400,
3503      1396, 2892, 2893, 1378, 1398, 2894, 1399, 1401, 1401, 1401,
3504      2895, 2896, 1387, 1402, 1402, 1402, 2897, 1402, 2898, 2899,
3505      1402, 1404, 1404, 1404, 1401, 1405, 1405, 1405, 2900, 1407,
3506      1407, 1407, 1409, 1409, 1409, 2901, 1413, 1413, 1413, 1404,
3507      1642, 1642, 1642, 1405, 2902, 2903, 1398, 1407, 2905, 1409,
3508      1410, 1410, 1410, 1413, 1410, 2906, 2907, 1410, 1414, 1414,
3509      1414, 2908, 1414, 2915, 2911, 1414, 1416, 1416, 1416, 1417,
3510      1417, 1417, 1419, 1419, 1419, 1421, 1421, 1421, 2911, 1421,
3511
3512      2918, 2909, 1421, 2912, 1416, 2919, 1642, 1417, 2922, 2924,
3513      1419, 1424, 1424, 1424, 2912, 2925, 1407, 1425, 1425, 1425,
3514      1427, 1427, 1427, 1428, 1428, 1428, 1429, 1429, 1429, 1424,
3515      1429, 2927, 2928, 1429, 2931, 1425, 2932, 2933, 1427, 2934,
3516      1428, 1430, 1430, 1430, 1431, 1431, 1431, 2909, 1431, 2935,
3517      2936, 1431, 1432, 1432, 1432, 2937, 1419, 2938, 1430, 1433,
3518      1433, 1433, 2939, 1435, 1435, 1435, 1436, 1436, 1436, 2943,
3519      1432, 1437, 1437, 1437, 2951, 1437, 2953, 1433, 1437, 2955,
3520      1427, 1435, 2957, 1436, 1440, 1440, 1440, 1441, 1441, 1441,
3521      2965, 1441, 2967, 2968, 1441, 1442, 1442, 1442, 1443, 1443,
3522
3523      1443, 1440, 1445, 1445, 1445, 1447, 1447, 1447, 1451, 1451,
3524      1451, 2941, 2942, 1442, 2970, 2970, 1443, 1452, 1452, 1452,
3525      1445, 2948, 1447, 2941, 2942, 1435, 1451, 1454, 1454, 1454,
3526      1457, 1457, 1457, 2948, 2968, 1452, 1458, 1458, 1458, 1460,
3527      1460, 1460, 1461, 1461, 1461, 1454, 1461, 2971, 1457, 1461,
3528      1464, 1464, 1464, 2973, 1458, 2975, 2969, 1460, 1465, 1465,
3529      1465, 1467, 1467, 1467, 1445, 1468, 1468, 1468, 1464, 1468,
3530      2969, 2976, 1468, 1472, 1472, 1472, 1465, 2949, 2977, 1467,
3531      1473, 1473, 1473, 1475, 1475, 1475, 2972, 2978, 1454, 2949,
3532      2993, 1472, 1460, 1477, 1477, 1477, 2995, 2972, 1473, 2998,
3533
3534      3000, 1475, 1484, 1484, 1484, 1514, 1514, 1514, 1516, 1516,
3535      1516, 1477, 1477, 2987, 1517, 1517, 1517, 1542, 1542, 1542,
3536      1484, 1467, 1514, 1515, 1515, 1515, 1516, 1515, 2987, 2992,
3537      1515, 1517, 1518, 1518, 1518, 1542, 1518, 3005, 2984, 1518,
3538      1521, 1521, 1521, 3006, 1475, 1523, 1523, 1523, 2992, 1523,
3539      2994, 3008, 1523, 1526, 1526, 1526, 2984, 2997, 1521, 3009,
3540      1527, 1527, 1527, 2999, 1527, 3010, 1516, 1527, 1484, 2994,
3541      1526, 1528, 1528, 1528, 3012, 1528, 2997, 3013, 1528, 1532,
3542      1532, 1532, 2999, 1533, 1533, 1533, 3014, 1533, 3015, 1521,
3543      1533, 1535, 1535, 1535, 3017, 3019, 1532, 1537, 1537, 1537,
3544
3545      1538, 1538, 1538, 3026, 1538, 3027, 3028, 1538, 3029, 1535,
3546      1539, 1539, 1539, 3030, 1537, 1540, 1540, 1540, 1558, 1558,
3547      1558, 1559, 1559, 1559, 1560, 1560, 1560, 1539, 1560, 3031,
3548      3034, 1560, 3035, 1540, 3036, 1558, 3037, 3038, 1559, 3039,
3549      3040, 1535, 1561, 1561, 1561, 1564, 1564, 1564, 1565, 1565,
3550      1565, 1566, 1566, 1566, 3041, 1566, 3043, 3045, 1566, 3047,
3551      1561, 3048, 3049, 1564, 1540, 1565, 1567, 1567, 1567, 1568,
3552      1568, 1568, 1569, 1569, 1569, 3059, 1569, 3060, 3061, 1569,
3553      1571, 1571, 1571, 3057, 1567, 3062, 1568, 1574, 1574, 1574,
3554      1575, 1575, 1575, 3058, 1575, 3057, 3063, 1575, 1571, 1576,
3555
3556      1576, 1576, 3064, 3068, 1574, 3058, 1561, 3069, 3070, 1564,
3557      1577, 1577, 1577, 1578, 1578, 1578, 1576, 1581, 1581, 1581,
3558      3071, 1582, 1582, 1582, 3072, 1582, 1567, 1577, 1582, 3073,
3559      3074, 1578, 3075, 3078, 1581, 1583, 1583, 1583, 1584, 1584,
3560      1584, 1571, 1585, 1585, 1585, 3079, 1585, 3080, 3081, 1585,
3561      1586, 1586, 1586, 1583, 3082, 1584, 1577, 1588, 1588, 1588,
3562      1591, 1591, 1591, 1592, 1592, 1592, 3076, 1592, 1586, 3083,
3563      1592, 1593, 1593, 1593, 1588, 1593, 3084, 1591, 1593, 1578,
3564      1598, 1598, 1598, 1605, 1605, 1605, 1606, 1606, 1606, 3085,
3565      1606, 3076, 3086, 1606, 1609, 1609, 1609, 1598, 1610, 1610,
3566
3567      1610, 1605, 1611, 1611, 1611, 1612, 1612, 1612, 1613, 1613,
3568      1613, 1609, 1615, 1615, 1615, 1610, 1586, 3087, 3088, 1611,
3569      3089, 3090, 1612, 1618, 1618, 1618, 1613, 1618, 3091, 1615,
3570      1618, 3092, 3093, 1621, 1621, 1621, 1623, 1623, 1623, 1625,
3571      1625, 1625, 1628, 1628, 1628, 1632, 1632, 1632, 1605, 1611,
3572      1621, 1633, 1633, 1633, 1623, 3094, 3095, 1625, 3096, 3097,
3573      1628, 3103, 1632, 1613, 3104, 1641, 1641, 1641, 1610, 1633,
3574      1634, 1634, 1634, 3100, 1634, 1612, 3105, 1634, 1637, 1637,
3575      1637, 3106, 1637, 1641, 3107, 1637, 1643, 1643, 1643, 3108,
3576      1643, 1632, 3100, 1643, 1648, 1648, 1648, 3109, 1648, 1628,
3577
3578      1623, 1648, 1652, 1652, 1652, 1625, 3110, 3111, 1633, 1654,
3579      1654, 1654, 1655, 1655, 1655, 3112, 1655, 3113, 3114, 1655,
3580      1652, 1658, 1658, 1658, 3115, 1658, 3116, 1654, 1658, 3117,
3581      3118, 1641, 1661, 1661, 1661, 1662, 1662, 1662, 3119, 1662,
3582      3120, 3121, 1662, 3122, 1667, 1667, 1667, 3123, 1667, 3124,
3583      1661, 1667, 1670, 1670, 1670, 1672, 1672, 1672, 1673, 1673,
3584      1673, 3121, 1673, 1652, 3125, 1673, 1654, 1677, 1677, 1677,
3585      1670, 3126, 1672, 1679, 1679, 1679, 1680, 1680, 1680, 1661,
3586      1681, 1681, 1681, 3127, 3128, 1677, 1682, 1682, 1682, 3129,
3587      1679, 1683, 1683, 1683, 1680, 1686, 1686, 1686, 1681, 1670,
3588
3589      1693, 1693, 1693, 1682, 1715, 1715, 1715, 3130, 3131, 1683,
3590      1723, 1723, 1723, 1686, 3132, 3133, 1677, 3134, 1693, 1724,
3591      1724, 1724, 3135, 1724, 3136, 3137, 1724, 1727, 1727, 1727,
3592      3138, 3139, 1681, 1728, 1728, 1728, 3140, 1728, 3143, 3144,
3593      1728, 3145, 3140, 1680, 3146, 1727, 1686, 1733, 1733, 1733,
3594      1715, 3147, 1693, 1683, 3148, 3150, 1723, 1735, 1735, 1735,
3595      3151, 1735, 3153, 1686, 1735, 1733, 1739, 1739, 1739, 3154,
3596      1739, 3156, 3157, 1739, 1743, 1743, 1743, 1745, 1745, 1745,
3597      3160, 1745, 3161, 3159, 1745, 1748, 1748, 1748, 3162, 1749,
3598      1749, 1749, 1743, 1749, 1727, 3163, 1749, 3159, 1733, 1750,
3599
3600      1750, 1750, 1748, 1758, 1758, 1758, 1759, 1759, 1759, 1763,
3601      1763, 1763, 1764, 1764, 1764, 3165, 3167, 1750, 3169, 1766,
3602      1766, 1766, 1767, 1767, 1767, 3171, 1767, 3173, 3174, 1767,
3603      1768, 1768, 1768, 3175, 1768, 1743, 1766, 1768, 1771, 1771,
3604      1771, 1773, 1773, 1773, 1774, 1774, 1774, 1775, 1775, 1775,
3605      1750, 1775, 3176, 3177, 1775, 3178, 1771, 3179, 1773, 1778,
3606      1778, 1778, 1774, 3180, 1779, 1779, 1779, 3182, 1779, 3184,
3607      1759, 1779, 3186, 1763, 3187, 3188, 1764, 1778, 1782, 1782,
3608      1782, 1783, 1783, 1783, 3189, 1771, 1786, 1786, 1786, 1522,
3609      1786, 1774, 3280, 1786, 3202, 1782, 1789, 1789, 1789, 1783,
3610
3611      1790, 1790, 1790, 3190, 1790, 3203, 3280, 1790, 3191, 1791,
3612      1791, 1791, 1520, 1789, 1792, 1792, 1792, 1519, 1792, 3222,
3613      3198, 1792, 1794, 1794, 1794, 1778, 1791, 1795, 1795, 1795,
3614      1797, 1797, 1797, 3199, 1797, 3200, 3201, 1797, 3202, 3190,
3615      1794, 1800, 1800, 1800, 3191, 1783, 1802, 1802, 1802, 3203,
3616      1802, 3222, 3210, 1802, 1805, 1805, 1805, 3223, 3206, 1800,
3617      1807, 1807, 1807, 1808, 1808, 1808, 3206, 1808, 3198, 1513,
3618      1808, 3276, 1805, 1809, 1809, 1809, 3218, 1807, 1811, 1811,
3619      1811, 3199, 1811, 3200, 3201, 1811, 1816, 1816, 1816, 3223,
3620      1809, 1817, 1817, 1817, 3207, 1817, 1512, 3204, 1817, 3210,
3621
3622      1805, 3204, 3207, 1816, 1818, 1818, 1818, 1823, 1823, 1823,
3623      1824, 1824, 1824, 1825, 1825, 1825, 1826, 1826, 1826, 3276,
3624      1826, 1818, 3218, 1826, 1823, 1827, 1827, 1827, 1824, 3214,
3625      1825, 1828, 1828, 1828, 1829, 1829, 1829, 1830, 1830, 1830,
3626      3212, 3208, 1827, 1832, 1832, 1832, 3205, 3215, 1828, 3208,
3627      3205, 1829, 1833, 1833, 1833, 1830, 1833, 3211, 3230, 1833,
3628      1832, 1834, 1834, 1834, 1836, 1836, 1836, 1837, 1837, 1837,
3629      3214, 1837, 3209, 3219, 1837, 1510, 1824, 3212, 1834, 3270,
3630      3209, 1836, 1839, 1839, 1839, 1841, 1841, 1841, 3215, 1828,
3631      1844, 1844, 1844, 1848, 1848, 1848, 3213, 1830, 3220, 3231,
3632
3633      1839, 3230, 3221, 1841, 3211, 1849, 1849, 1849, 1844, 1849,
3634      1848, 3270, 1849, 1851, 1851, 1851, 1853, 1853, 1853, 3219,
3635      1855, 1855, 1855, 1856, 1856, 1856, 1857, 1857, 1857, 3216,
3636      1509, 1851, 3224, 3213, 1853, 3220, 1841, 1855, 1844, 3221,
3637      1856, 3224, 3231, 1857, 1858, 1858, 1858, 1860, 1860, 1860,
3638      1861, 1861, 1861, 1862, 1862, 1862, 1863, 1863, 1863, 1864,
3639      1864, 1864, 1858, 3228, 3216, 1860, 1508, 1853, 1861, 1507,
3640      1862, 3225, 3217, 1863, 1866, 1866, 1866, 1864, 1866, 3232,
3641      3225, 1866, 1872, 1872, 1872, 1874, 1874, 1874, 2282, 2282,
3642      1857, 2282, 3226, 1860, 1875, 1875, 1875, 3228, 1875, 2282,
3643
3644      1872, 1875, 1874, 1876, 1876, 1876, 2282, 3217, 1877, 1877,
3645      1877, 1858, 1878, 1878, 1878, 1861, 1879, 1879, 1879, 3238,
3646      1879, 1876, 1506, 1879, 1864, 3232, 1877, 3226, 3238, 1878,
3647      1880, 1880, 1880, 1872, 1886, 1886, 1886, 1887, 1887, 1887,
3648      1894, 1894, 1894, 1898, 1898, 1898, 1505, 1504, 1880, 3233,
3649      1503, 1886, 1902, 1902, 1902, 1887, 1903, 1903, 1903, 1904,
3650      1904, 1904, 1876, 1877, 1906, 1906, 1906, 1908, 1908, 1908,
3651      1909, 1909, 1909, 1914, 1914, 1914, 1916, 1916, 1916, 1919,
3652      1919, 1919, 1921, 1921, 1921, 1923, 1923, 1923, 1924, 1924,
3653      1924, 1936, 1936, 1936, 1916, 3233, 3227, 1919, 1887, 1921,
3654
3655      1933, 1933, 1933, 1923, 1933, 1924, 1502, 1933, 1500, 1936,
3656      1937, 1937, 1937, 1942, 1942, 1942, 1943, 1943, 1943, 1947,
3657      1947, 1947, 1951, 1951, 1951, 3239, 1916, 1937, 1948, 1948,
3658      1948, 3227, 1948, 1499, 3239, 1948, 1947, 1936, 3229, 3234,
3659      1951, 1952, 1952, 1952, 1923, 1953, 1953, 1953, 1954, 1954,
3660      1954, 3262, 1954, 3248, 3235, 1954, 3242, 3236, 1952, 1955,
3661      1955, 1955, 1953, 1956, 1956, 1956, 1957, 1957, 1957, 1958,
3662      1958, 1958, 3229, 1958, 3234, 1951, 1958, 1955, 1959, 1959,
3663      1959, 1956, 3248, 1957, 1962, 1962, 1962, 3240, 1962, 3235,
3664      3236, 1962, 3262, 1965, 1965, 1965, 1959, 1965, 3242, 3237,
3665
3666      1965, 1969, 1969, 1969, 1971, 1971, 1971, 3243, 1973, 1973,
3667      1973, 3249, 1955, 1975, 1975, 1975, 3264, 1975, 3244, 1969,
3668      1975, 1978, 1978, 1978, 3240, 1959, 1973, 1979, 1979, 1979,
3669      3241, 1979, 3237, 3246, 1979, 1983, 1983, 1983, 1978, 1983,
3670      3249, 1497, 1983, 1986, 1986, 1986, 1987, 1987, 1987, 3243,
3671      1987, 3264, 3247, 1987, 1988, 1988, 1988, 1992, 1992, 1992,
3672      1986, 1993, 1993, 1993, 3244, 1993, 1973, 3241, 1993, 1496,
3673      3246, 1988, 3250, 3245, 1992, 1994, 1994, 1994, 1995, 1995,
3674      1995, 3250, 1995, 1494, 1491, 1995, 1998, 1998, 1998, 3247,
3675      1999, 1999, 1999, 1994, 1999, 3252, 3271, 1999, 2000, 2000,
3676
3677      2000, 3251, 3281, 1998, 2001, 2001, 2001, 2002, 2002, 2002,
3678      3251, 2002, 3253, 3281, 2002, 2000, 2003, 2003, 2003, 3245,
3679      3254, 2001, 3255, 2005, 2005, 2005, 1994, 2005, 3271, 3252,
3680      2005, 2008, 2008, 2008, 2003, 2009, 2009, 2009, 1490, 2009,
3681      1489, 3256, 2009, 2011, 2011, 2011, 3253, 2011, 2008, 3256,
3682      2011, 2015, 2015, 2015, 2018, 2018, 2018, 2020, 2020, 2020,
3683      2021, 2021, 2021, 2023, 2023, 2023, 3254, 2003, 3255, 2015,
3684      3260, 3261, 2018, 3257, 2020, 2025, 2025, 2025, 2021, 2025,
3685      2023, 3257, 2025, 2029, 2029, 2029, 2032, 2032, 2032, 2034,
3686      2034, 2034, 2035, 2035, 2035, 3258, 2035, 1488, 3259, 2035,
3687
3688      1487, 2029, 3263, 1486, 2032, 1485, 2034, 3260, 3261, 2023,
3689      2036, 2036, 2036, 2037, 2037, 2037, 3274, 2037, 2018, 1483,
3690      2037, 2021, 2039, 2039, 2039, 3265, 3275, 2036, 2041, 2041,
3691      2041, 2042, 2042, 2042, 2043, 2043, 2043, 2044, 2044, 2044,
3692      2039, 2044, 3258, 3263, 2044, 3259, 2041, 3278, 3274, 2042,
3693      3279, 2043, 2045, 2045, 2045, 2046, 2046, 2046, 3275, 2046,
3694      3265, 3268, 2046, 2047, 2047, 2047, 2052, 2052, 2052, 2045,
3695      3266, 2054, 2054, 2054, 3272, 2054, 3277, 2041, 2054, 3278,
3696      3267, 2047, 3279, 3272, 2052, 2057, 2057, 2057, 2039, 2058,
3697      2058, 2058, 3269, 2059, 2059, 2059, 2042, 2059, 3268, 1482,
3698
3699      2059, 1481, 1480, 2057, 2062, 2062, 2062, 2058, 2068, 2068,
3700      2068, 2069, 2069, 2069, 3273, 2069, 3266, 1471, 2069, 2070,
3701      2070, 2070, 2062, 3273, 3277, 2068, 3267, 1456, 2047, 3269,
3702      1455, 2052, 2071, 2071, 2071, 1450, 2057, 2070, 2076, 2076,
3703      2076, 1449, 2058, 2077, 2077, 2077, 2078, 2078, 2078, 2080,
3704      2080, 2080, 2084, 2084, 2084, 2085, 2085, 2085, 2086, 2086,
3705      2086, 2087, 2087, 2087, 2089, 2089, 2089, 2090, 2090, 2090,
3706      2091, 2091, 2091, 2092, 2092, 2092, 2093, 2093, 2093, 2094,
3707      2094, 2094, 1448, 2070, 2096, 2096, 2096, 2099, 2099, 2099,
3708      1446, 2102, 2102, 2102, 2103, 2103, 2103, 1439, 2103, 1438,
3709
3710      1420, 2103, 2096, 1415, 1412, 2099, 1411, 2087, 2102, 2105,
3711      2105, 2105, 2106, 2106, 2106, 2107, 2107, 2107, 1408, 2107,
3712      1403, 1394, 2107, 2118, 2118, 2118, 1393, 2105, 1392, 2106,
3713      2119, 2119, 2119, 1388, 1383, 2096, 2120, 2120, 2120, 1379,
3714      2120, 2118, 1371, 2120, 2121, 2121, 2121, 2119, 2126, 2126,
3715      2126, 2127, 2127, 2127, 2128, 2128, 2128, 2129, 2129, 2129,
3716      1366, 2129, 1365, 1359, 2129, 2130, 2130, 2130, 2131, 2131,
3717      2131, 2128, 2118, 2132, 2132, 2132, 1358, 2132, 1357, 1356,
3718      2132, 1351, 1350, 2130, 1349, 2131, 2133, 2133, 2133, 1348,
3719      2133, 1335, 1334, 2133, 2136, 2136, 2136, 2127, 1333, 2137,
3720
3721      2137, 2137, 2139, 2139, 2139, 1332, 2139, 1331, 1330, 2139,
3722      1329, 1328, 2136, 2142, 2142, 2142, 2130, 2137, 2149, 2149,
3723      2149, 2151, 2151, 2151, 1327, 2151, 1317, 1316, 2151, 1315,
3724      1314, 2142, 1297, 2157, 2157, 2157, 2149, 2157, 1296, 1291,
3725      2157, 2160, 2160, 2160, 1290, 2136, 2161, 2161, 2161, 1285,
3726      2161, 1284, 1265, 2161, 1261, 2165, 2165, 2165, 2160, 2165,
3727      1255, 1251, 2165, 2168, 2168, 2168, 2142, 2169, 2169, 2169,
3728      1250, 2169, 1249, 2149, 2169, 2172, 2172, 2172, 2173, 2173,
3729      2173, 2168, 2173, 1248, 1247, 2173, 2174, 2174, 2174, 1246,
3730      2174, 1245, 2172, 2174, 2177, 2177, 2177, 2179, 2179, 2179,
3731
3732      1243, 2179, 1242, 1240, 2179, 2185, 2185, 2185, 2187, 2187,
3733      2187, 1239, 2177, 2188, 2188, 2188, 1238, 2188, 1233, 1225,
3734      2188, 1223, 1218, 2185, 1216, 2187, 1207, 2168, 2189, 2189,
3735      2189, 2191, 2191, 2191, 2192, 2192, 2192, 1202, 2192, 1191,
3736      1189, 2192, 1188, 2199, 2199, 2199, 2189, 1187, 2191, 2202,
3737      2202, 2202, 1186, 2202, 1184, 1183, 2202, 2209, 2209, 2209,
3738      2177, 2199, 2205, 2205, 2205, 1182, 2205, 1181, 1180, 2205,
3739      1179, 2211, 2211, 2211, 1177, 2209, 2212, 2212, 2212, 2213,
3740      2213, 2213, 1176, 2213, 1175, 1174, 2213, 1173, 2189, 2211,
3741      1172, 2216, 2216, 2216, 2212, 2216, 1171, 1169, 2216, 2219,
3742
3743      2219, 2219, 1168, 2220, 2220, 2220, 1167, 1166, 2209, 2221,
3744      2221, 2221, 2212, 2222, 2222, 2222, 1165, 2219, 1164, 2219,
3745      2220, 2223, 2223, 2223, 1163, 1157, 2221, 2224, 2224, 2224,
3746      2222, 2226, 2226, 2226, 2227, 2227, 2227, 2211, 2223, 2228,
3747      2228, 2228, 2231, 2231, 2231, 2224, 2232, 2232, 2232, 2226,
3748      2232, 1156, 2227, 2232, 2235, 2235, 2235, 2228, 1155, 1152,
3749      2221, 2236, 2236, 2236, 2237, 2237, 2237, 2238, 2238, 2238,
3750      1151, 1150, 2235, 2241, 2241, 2241, 1148, 2222, 1144, 1141,
3751      2223, 2242, 2242, 2242, 2244, 2244, 2244, 2245, 2245, 2245,
3752      1132, 2226, 2224, 2246, 2246, 2246, 2247, 2247, 2247, 2248,
3753
3754      2248, 2248, 2249, 2249, 2249, 2252, 2252, 2252, 2253, 2253,
3755      2253, 1131, 1128, 2235, 2254, 2254, 2254, 2255, 2255, 2255,
3756      2257, 2257, 2257, 2260, 2260, 2260, 2261, 2261, 2261, 1127,
3757      2261, 1126, 1125, 2261, 2264, 2264, 2264, 1124, 2257, 1110,
3758      2260, 2265, 2265, 2265, 1103, 2267, 2267, 2267, 1095, 2267,
3759      1094, 2264, 2267, 2280, 2280, 2280, 2281, 2281, 2281, 2265,
3760      2281, 2283, 2283, 2281, 2283, 2284, 2284, 2284, 2285, 2285,
3761      2285, 2280, 2283, 2289, 2289, 2289, 2291, 2291, 2291, 2283,
3762      2291, 1093, 1090, 2291, 2294, 2294, 2294, 2295, 2295, 2295,
3763      1087, 2295, 1084, 1079, 2295, 2298, 2298, 2298, 1076, 1075,
3764
3765      2264, 1071, 2294, 2299, 2299, 2299, 2307, 2307, 2307, 2308,
3766      2308, 2308, 1069, 2298, 2280, 2313, 2313, 2313, 1055, 2313,
3767      1054, 2299, 2313, 2316, 2316, 2316, 1053, 2308, 1052, 1051,
3768      2294, 2319, 2319, 2319, 2320, 2320, 2320, 1050, 2320, 1049,
3769      2316, 2320, 2323, 2323, 2323, 2328, 2328, 2328, 1048, 2319,
3770      2330, 2330, 2330, 1047, 2299, 2331, 2331, 2331, 1043, 2331,
3771      2323, 1039, 2331, 2328, 2334, 2334, 2334, 2330, 1032, 2308,
3772      2335, 2335, 2335, 2336, 2336, 2336, 1029, 2336, 1028, 1027,
3773      2336, 1024, 2334, 2339, 2339, 2339, 1023, 2335, 2340, 2340,
3774      2340, 2345, 2345, 2345, 2347, 2347, 2347, 2350, 2350, 2350,
3775
3776      2339, 2349, 2349, 2349, 1020, 2340, 1019, 1018, 2345, 2351,
3777      2351, 2351, 1015, 1014, 2350, 2334, 2335, 1011, 1006, 2349,
3778      1003, 2352, 2352, 2352, 2354, 2354, 2354, 2351, 2353, 2353,
3779      2353, 1000,  999, 2355, 2355, 2355,  996, 2355, 2339, 2352,
3780      2355, 2354, 2345, 2356, 2356, 2356, 2353,  995,  994, 2340,
3781      2357, 2357, 2357, 2358, 2358, 2358, 2359, 2359, 2359,  993,
3782      2356, 2360, 2360, 2360,  992, 2353,  990, 2357,  989, 2351,
3783      2358, 2361, 2361, 2361, 2359, 2362, 2362, 2362, 2364, 2364,
3784      2364,  988, 2352, 2367, 2367, 2367, 2369, 2369, 2369, 2361,
3785      2368, 2368, 2368, 2362,  987,  986, 2364, 2370, 2370, 2370,
3786
3787       985, 2357,  984,  983, 2358, 2373, 2373, 2373, 2368, 2374,
3788      2374, 2374, 2375, 2375, 2375, 2376, 2376, 2376, 2380, 2380,
3789      2380, 2383, 2383, 2383, 2384, 2384, 2384,  979, 2384,  974,
3790       973, 2384, 2396, 2396, 2396,  972, 2380, 2361, 2383,  969,
3791      2364, 2407, 2407, 2407, 2410, 2410, 2410, 2412, 2412, 2412,
3792      2396, 2413, 2413, 2413, 2415, 2415, 2415, 2422, 2422, 2422,
3793      2423, 2423, 2423,  968,  967, 2412, 2424, 2424, 2424, 2413,
3794       965,  961, 2415,  957, 2422,  956, 2430, 2430, 2430, 2431,
3795      2431, 2431,  953, 2431, 2424,  950, 2431, 2433, 2433, 2433,
3796       949,  948, 2396, 2430, 2434, 2434, 2434, 2436, 2436, 2436,
3797
3798      2440, 2440, 2440,  947, 2433, 2442, 2442, 2442,  946, 2444,
3799      2444, 2444, 2434, 2412,  945, 2436,  944, 2440, 2445, 2445,
3800      2445,  942, 2442, 2424, 2443, 2443, 2443, 2444, 2443,  941,
3801       940, 2443, 2446, 2446, 2446, 2445, 2446,  939,  938, 2446,
3802      2447, 2447, 2447, 2448, 2448, 2448, 2449, 2449, 2449, 2454,
3803      2454, 2454, 2456, 2456, 2456,  937,  936, 2447,  935,  934,
3804      2448,  933,  932, 2449,  931,  930, 2454, 2458, 2458, 2458,
3805      2460, 2460, 2460, 2461, 2461, 2461,  929, 2461,  928,  927,
3806      2461, 2462, 2462, 2462,  926, 2458,  925, 2460, 2463, 2463,
3807      2463,  924, 2447, 2464, 2464, 2464, 2465, 2465, 2465, 2462,
3808
3809      2465, 2448,  923, 2465, 2449,  922, 2463, 2468, 2468, 2468,
3810       918, 2464, 2469, 2469, 2469,  917, 2469,  915,  914, 2469,
3811      2470, 2470, 2470,  913, 2468, 2471, 2471, 2471, 2472, 2472,
3812      2472, 2474, 2474, 2474, 2475, 2475, 2475, 2470, 2479, 2479,
3813      2479,  912, 2471, 2483, 2483, 2483, 2472, 2487, 2487, 2487,
3814       911,  907, 2475,  905,  904, 2463, 2479, 2464, 2488, 2488,
3815      2488,  903, 2488,  902, 2487, 2488, 2502, 2502, 2502, 2517,
3816      2517, 2517, 2519, 2519, 2519, 2520, 2520, 2520, 2523, 2523,
3817      2523, 2526, 2526, 2526, 2502, 2527, 2527, 2527,  898, 2527,
3818      2519,  894, 2527, 2520,  893, 2523,  890,  889, 2526, 2528,
3819
3820      2528, 2528, 2532, 2532, 2532, 2534, 2534, 2534,  888, 2534,
3821       887,  886, 2534, 2538, 2538, 2538,  885, 2528,  884, 2532,
3822      2539, 2539, 2539,  881, 2539,  880, 2502, 2539,  879,  878,
3823      2538, 2541, 2541, 2541, 2542, 2542, 2542, 2543, 2543, 2543,
3824       875, 2543,  874, 2519, 2543, 2544, 2544, 2544, 2541,  873,
3825       870, 2542, 2545, 2545, 2545,  868, 2545,  865,  864, 2545,
3826       863,  862, 2544, 2548, 2548, 2548, 2550, 2550, 2550,  861,
3827      2550,  858,  857, 2550, 2553, 2553, 2553, 2554, 2554, 2554,
3828       856, 2548, 2555, 2555, 2555, 2558, 2558, 2558, 2559, 2559,
3829      2559, 2553, 2559,  855, 2554, 2559, 2560, 2560, 2560, 2555,
3830
3831       854,  851, 2558, 2561, 2561, 2561,  850, 2562, 2562, 2562,
3832       849, 2562,  848, 2560, 2562, 2565, 2565, 2565,  846,  843,
3833      2561, 2567, 2567, 2567, 2568, 2568, 2568,  842, 2554, 2553,
3834      2572, 2572, 2572, 2565, 2569, 2569, 2569, 2555, 2569, 2567,
3835       840, 2569, 2568,  837, 2573, 2573, 2573, 2572, 2573,  835,
3836       832, 2573, 2574, 2574, 2574, 2575, 2575, 2575,  831, 2575,
3837       830,  829, 2575, 2576, 2576, 2576, 2582, 2582, 2582, 2574,
3838       827, 2586, 2586, 2586,  826, 2587, 2587, 2587,  825, 2587,
3839       822, 2576, 2587,  821,  820, 2568,  819, 2567, 2586, 2605,
3840      2605, 2605, 2619, 2619, 2619, 2621, 2621, 2621, 2622, 2622,
3841
3842      2622, 2623, 2623, 2623, 2624, 2624, 2624, 2605, 2624,  818,
3843       817, 2624,  812, 2621,  811, 2622,  810,  809, 2623, 2625,
3844      2625, 2625,  808, 2625,  807,  806, 2625, 2628, 2628, 2628,
3845      2632, 2632, 2632, 2633, 2633, 2633,  805, 2635, 2635, 2635,
3846      2605, 2676, 2676, 2676, 2622, 2628,  804, 2632,  803,  802,
3847      2633, 2634, 2634, 2634, 2635, 2634,  800, 2621, 2634, 2637,
3848      2637, 2637,  798, 2637,  797,  794, 2637, 2641, 2641, 2641,
3849      2642, 2642, 2642,  791, 2642,  788,  787, 2642, 2643, 2643,
3850      2643,  783, 2643,  782, 2641, 2643, 2646, 2646, 2646, 2647,
3851      2647, 2647,  781, 2647,  778,  775, 2647, 2648, 2648, 2648,
3852
3853      2649, 2649, 2649, 2646, 2650, 2650, 2650,  774, 2651, 2651,
3854      2651,  773, 2651,  770, 2648, 2651,  769, 2649, 2654, 2654,
3855      2654, 2650, 2655, 2655, 2655,  765, 2655,  764,  762, 2655,
3856      2656, 2656, 2656,  759,  758, 2654, 2657, 2657, 2657,  757,
3857      2657,  755,  744, 2657, 2664, 2664, 2664, 2656, 2665, 2665,
3858      2665,  742,  739, 2650,  738, 2648, 2666, 2666, 2666,  737,
3859      2666,  735, 2664, 2666,  734,  733, 2665, 2669, 2669, 2669,
3860       729, 2669,  728,  727, 2669, 2674, 2674, 2674, 2677, 2677,
3861      2677, 2680, 2680, 2680,  726, 2680,  723,  722, 2680, 2691,
3862      2691, 2691, 2674, 2674,  721, 2664, 2700, 2700, 2700, 2714,
3863
3864      2714, 2714, 2715, 2715, 2715,  720, 2691, 2716, 2716, 2716,
3865      2717, 2717, 2717,  719, 2700, 2665, 2718, 2718, 2718,  718,
3866      2718,  717,  715, 2718,  712, 2716,  711, 2717, 2720, 2720,
3867      2720,  709, 2720,  707,  704, 2720, 2725, 2725, 2725, 2726,
3868      2726, 2726,  703, 2726,  697, 2700, 2726, 2727, 2727, 2727,
3869       695, 2727,  693, 2725, 2727, 2730, 2730, 2730, 2716, 2731,
3870      2731, 2731,  690, 2731,  689,  685, 2731, 2734, 2734, 2734,
3871       684, 2734, 2730,  683, 2734, 2737, 2737, 2737,  682, 2737,
3872       679,  678, 2737, 2740, 2740, 2740, 2741, 2741, 2741, 2742,
3873      2742, 2742,  677, 2742,  676,  673, 2742, 2743, 2743, 2743,
3874
3875      2740,  672,  671, 2741, 2744, 2744, 2744,  670, 2744,  669,
3876       663, 2744,  662,  660, 2743, 2747, 2747, 2747,  654, 2747,
3877       653,  649, 2747, 2756, 2756, 2756, 2757, 2757, 2757, 2763,
3878      2763, 2763,  642,  638, 2740, 2764, 2764, 2764, 2765, 2765,
3879      2765, 2756, 2765,  632, 2757, 2765, 2763, 2763, 2766, 2766,
3880      2766,  628, 2764, 2764,  620,  619, 2765, 2767, 2767, 2767,
3881      2768, 2768, 2768, 2769, 2769, 2769,  618,  617, 2743, 2778,
3882      2778, 2778, 2779, 2779, 2779,  616, 2779,  612,  605, 2779,
3883      2788, 2788, 2788, 2801, 2801, 2801, 2778, 2802, 2802, 2802,
3884       604,  603, 2757, 2803, 2803, 2803,  599,  592, 2788, 2804,
3885
3886      2804, 2804,  591, 2804,  587,  581, 2804,  580, 2810, 2810,
3887      2810, 2803, 2810,  576,  568, 2810, 2813, 2813, 2813,  567,
3888      2813,  563,  554, 2813, 2816, 2816, 2816, 2818, 2818, 2818,
3889      2819, 2819, 2819,  550, 2819,  542,  541, 2819, 2822, 2822,
3890      2822, 2816,  540,  536, 2818,  530, 2788, 2837, 2837, 2837,
3891      2839, 2839, 2839,  529,  528, 2822, 2845, 2845, 2845, 2846,
3892      2846, 2846,  524, 2846,  518, 2837, 2846,  517, 2839, 2850,
3893      2850, 2850,  513, 2845, 2845,  507,  506, 2846, 2847, 2847,
3894      2847,  505, 2847,  504,  503, 2847, 2851, 2851, 2851, 2852,
3895      2852, 2852,  502, 2861, 2861, 2861, 2847, 2861,  501,  497,
3896
3897      2861, 2839, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848,
3898      2848,  491,  490, 2848, 2870, 2870, 2870,  488, 2848, 2848,
3899      2848, 2848, 2848, 2879, 2879, 2879, 2880, 2880, 2880, 2885,
3900      2885, 2885, 2870, 2886, 2886, 2886,  487, 2886,  486,  482,
3901      2886, 2888, 2888, 2888, 2880,  471, 2885, 2848, 2848, 2849,
3902      2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2888,  470,
3903      2849, 2890, 2890, 2890,  468, 2849, 2849, 2849, 2849, 2849,
3904      2889, 2889, 2889,  464, 2889,  458,  457, 2889, 2890, 2891,
3905      2891, 2891,  456, 2891,  452,  446, 2891, 2904, 2904, 2904,
3906      2929, 2929, 2929,  442, 2849, 2849, 2910, 2910, 2910,  434,
3907
3908      2910,  433,  432, 2910,  431, 2904,  430,  426, 2929, 2962,
3909      2962, 2962,  420,  419, 2910, 2913, 2913, 2913, 2913, 2913,
3910      2913, 2913, 2913, 2913,  415,  409, 2913, 2962,  408,  404,
3911       397, 2913, 2913, 2913, 2913, 2913, 2940, 2940, 2940,  396,
3912      2940,  395,  391, 2940, 2944, 2944, 2944,  384, 2944,  383,
3913       382, 2944, 2947, 2947, 2947,  381, 2947,  377,  368, 2947,
3914      2913, 2913, 2914, 2914, 2914, 2914, 2914, 2914, 2914, 2914,
3915      2914,  362,  358, 2914, 2974, 2974, 2974,  357, 2914, 2914,
3916      2914, 2914, 2914, 2989, 2989, 2989, 2990, 2990, 2990, 2991,
3917      2991, 2991, 2974, 2974, 2996, 2996, 2996, 3007, 3007, 3007,
3918
3919      2989,  353,  347, 2990,  346,  345, 2991, 2914, 2914,  341,
3920       334, 2996, 3011, 3011, 3011, 3007, 3020, 3020, 3020, 3021,
3921      3021, 3021,  332, 3021,  331,  327, 3021, 3022, 3022, 3022,
3922      3011,  324,  322, 3020, 3023, 3023, 3023,  321, 3023,  320,
3923       316, 3023,  312,  309, 3022, 3024, 3024, 3024, 3025, 3025,
3924      3025,  305, 3025,  302,  301, 3025, 3032, 3032, 3032, 3042,
3925      3042, 3042, 3024, 3011, 3033, 3033, 3033,  293, 3033,  289,
3926       285, 3033,  284, 3032, 3050, 3050, 3050, 3042, 3050,  283,
3927       277, 3050, 3053, 3053, 3053,  276, 3053,  274,  271, 3053,
3928      3056, 3056, 3056,  259, 3056,    0, 3042, 3056, 3065, 3065,
3929
3930      3065,    0, 3065,    0,    0, 3065, 3172, 3172, 3172, 3181,
3931      3181, 3181,    0, 3181,    0,    0, 3181, 3282, 3282, 3282,
3932      3283, 3283, 3283,    0, 3172,    0,    0, 3181,    0,    0,
3933         0,    0,    0,    0,    0, 3282,    0,    0, 3283, 3286,
3934      3286, 3286, 3286, 3286, 3286, 3286, 3286, 3286, 3287, 3287,
3935      3287, 3287, 3287, 3287, 3287, 3287, 3287, 3288, 3288, 3288,
3936      3288, 3288, 3288, 3288, 3288, 3288, 3289, 3289, 3289, 3289,
3937      3289, 3289, 3289, 3289, 3289, 3290, 3290, 3290, 3290, 3290,
3938      3290, 3290, 3290, 3290, 3291, 3291, 3291, 3291, 3291, 3291,
3939      3291, 3291, 3291, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
3940
3941      3292, 3292, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
3942      3293, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
3943      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3296,
3944      3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3297, 3297,
3945      3297, 3297, 3297, 3297, 3297, 3297, 3297, 3298, 3298, 3298,
3946      3298, 3298, 3298, 3298, 3298, 3298, 3299, 3299, 3299, 3299,
3947      3299, 3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300,
3948      3300, 3300, 3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301,
3949      3301, 3301, 3301, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
3950      3302, 3302, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
3951
3952      3303, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304,
3953      3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3306,
3954      3306, 3306, 3306, 3306, 3306, 3306, 3306, 3306, 3307, 3307,
3955      3307, 3307, 3307, 3307, 3307, 3307, 3307, 3308, 3308, 3308,
3956      3308, 3308, 3308, 3308, 3308, 3308, 3309, 3309, 3309, 3309,
3957      3309, 3309, 3309, 3309, 3309, 3310, 3310, 3310, 3310, 3310,
3958      3310, 3310, 3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311,
3959      3311, 3311, 3311, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
3960      3312, 3312, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313,
3961      3313, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314,
3962
3963      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316,
3964      3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317,
3965      3317, 3317, 3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318,
3966      3318, 3318, 3318, 3318, 3318, 3318, 3319, 3319, 3319, 3319,
3967      3319, 3319, 3319, 3319, 3319, 3320, 3320, 3320, 3320, 3320,
3968      3320, 3320, 3320, 3320, 3321, 3321, 3321, 3321, 3321, 3321,
3969      3321, 3321, 3321, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3970      3322, 3322, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
3971      3323, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324,
3972      3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3326,
3973
3974      3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3327, 3327,
3975      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3328, 3328, 3328,
3976      3328, 3328, 3328, 3328, 3328, 3328, 3329, 3329, 3329, 3329,
3977      3329, 3329, 3329, 3329, 3329, 3330, 3330, 3330, 3330, 3330,
3978      3330, 3330, 3330, 3330, 3331, 3331, 3331, 3331, 3331, 3331,
3979      3331, 3331, 3331, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
3980      3332, 3332, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
3981      3333, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334,
3982      3335, 3335, 3335, 3335, 3335, 3335, 3335, 3335, 3335, 3336,
3983      3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3337, 3337,
3984
3985      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338,
3986      3338, 3338, 3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339,
3987      3339, 3339, 3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340,
3988      3340, 3340, 3340, 3340, 3341, 3341, 3341, 3341, 3341, 3341,
3989      3341, 3341, 3341, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
3990      3342, 3342, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3991      3343, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
3992      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3346,
3993      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3347, 3347,
3994      3347,    0,    0,    0, 3347, 3348, 3348, 3348,    0,    0,
3995
3996         0, 3348, 3349, 3349, 3349,    0,    0,    0, 3349, 3350,
3997      3350, 3350,    0,    0,    0, 3350, 3351, 3351, 3351,    0,
3998         0,    0, 3351, 3352, 3352, 3352,    0,    0,    0, 3352,
3999      3353, 3353, 3353,    0,    0,    0, 3353, 3354, 3354, 3354,
4000         0,    0,    0, 3354, 3355, 3355, 3355,    0,    0,    0,
4001      3355, 3356, 3356, 3356,    0,    0,    0, 3356, 3357, 3357,
4002      3357,    0,    0,    0, 3357, 3358, 3358, 3358,    0,    0,
4003         0, 3358, 3359, 3359, 3359,    0,    0,    0, 3359, 3360,
4004      3360, 3360,    0,    0,    0, 3360, 3361, 3361, 3361,    0,
4005         0,    0, 3361, 3362, 3362, 3362,    0,    0,    0, 3362,
4006
4007      3363, 3363, 3363,    0,    0,    0, 3363, 3364, 3364, 3364,
4008         0,    0,    0, 3364, 3365, 3365, 3365,    0,    0,    0,
4009      3365, 3366, 3366, 3366,    0,    0,    0, 3366, 3367, 3367,
4010      3367,    0,    0,    0, 3367, 3368, 3368, 3368,    0,    0,
4011         0, 3368, 3369, 3369, 3369,    0,    0,    0, 3369, 3370,
4012      3370, 3370,    0,    0,    0, 3370, 3371, 3371, 3371,    0,
4013         0,    0, 3371, 3372, 3372, 3372,    0,    0,    0, 3372,
4014      3373, 3373, 3373,    0,    0,    0, 3373, 3374, 3374, 3374,
4015         0,    0,    0, 3374, 3375, 3375, 3375, 3375, 3375, 3375,
4016      3375,    0, 3375, 3376, 3376, 3376,    0,    0,    0, 3376,
4017
4018      3377,    0,    0,    0, 3377, 3378, 3378, 3378,    0,    0,
4019         0, 3378, 3379,    0,    0,    0, 3379, 3380, 3380, 3380,
4020         0,    0,    0, 3380, 3381,    0,    0,    0, 3381, 3382,
4021      3382, 3382,    0,    0,    0, 3382, 3383,    0,    0,    0,
4022      3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385,    0,
4023         0,    0, 3385, 3386, 3386, 3386,    0,    0,    0, 3386,
4024      3387,    0,    0,    0, 3387, 3388, 3388, 3388,    0,    0,
4025         0, 3388, 3389,    0,    0,    0, 3389, 3390, 3390, 3390,
4026         0,    0,    0, 3390, 3391,    0,    0,    0, 3391, 3392,
4027      3392, 3392,    0,    0,    0, 3392, 3393,    0,    0,    0,
4028
4029      3393, 3394, 3394, 3394,    0,    0,    0, 3394, 3395,    0,
4030         0,    0, 3395, 3396, 3396, 3396,    0,    0,    0, 3396,
4031      3397,    0,    0,    0, 3397, 3398, 3398, 3398,    0,    0,
4032         0, 3398, 3399,    0,    0,    0, 3399, 3400, 3400, 3400,
4033         0,    0,    0, 3400, 3401,    0,    0,    0, 3401, 3402,
4034      3402, 3402,    0,    0,    0, 3402, 3403,    0,    0,    0,
4035      3403, 3404, 3404, 3404,    0,    0,    0, 3404, 3405,    0,
4036         0,    0, 3405, 3406, 3406, 3406,    0,    0,    0, 3406,
4037      3407,    0,    0,    0, 3407, 3408, 3408, 3408,    0,    0,
4038         0, 3408, 3409,    0,    0,    0, 3409, 3410, 3410, 3410,
4039
4040         0,    0,    0, 3410, 3411,    0,    0,    0, 3411, 3412,
4041      3412, 3412,    0,    0,    0, 3412, 3413,    0,    0,    0,
4042      3413, 3414, 3414, 3414,    0,    0,    0, 3414, 3415,    0,
4043         0,    0, 3415, 3416, 3416, 3416,    0,    0,    0, 3416,
4044      3417,    0,    0,    0, 3417, 3418, 3418, 3418,    0,    0,
4045         0, 3418, 3419,    0,    0,    0, 3419, 3420, 3420, 3420,
4046         0,    0,    0, 3420, 3421,    0,    0,    0, 3421, 3422,
4047      3422, 3422,    0,    0,    0, 3422, 3423,    0,    0,    0,
4048      3423, 3424, 3424, 3424,    0,    0,    0, 3424, 3425,    0,
4049         0,    0, 3425, 3426, 3426, 3426,    0,    0,    0, 3426,
4050
4051      3427,    0,    0,    0, 3427, 3428, 3428, 3428,    0,    0,
4052         0, 3428, 3429,    0,    0,    0, 3429, 3430, 3430, 3430,
4053         0,    0,    0, 3430, 3431,    0,    0,    0, 3431, 3432,
4054      3432, 3432, 3432, 3432, 3432, 3432, 3432, 3432, 3433,    0,
4055         0,    0,    0, 3433, 3434, 3434, 3434,    0,    0,    0,
4056      3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435, 3436,
4057      3436, 3436,    0,    0,    0, 3436, 3437, 3437, 3437, 3437,
4058         0,    0, 3437, 3437, 3438, 3438, 3438,    0,    0,    0,
4059      3438, 3439, 3439, 3439, 3439,    0,    0, 3439, 3439, 3440,
4060      3440, 3440,    0,    0,    0, 3440, 3441, 3441, 3441, 3441,
4061
4062         0,    0, 3441, 3441, 3442, 3442, 3442,    0,    0,    0,
4063      3442, 3443, 3443, 3443, 3443,    0,    0, 3443, 3443, 3444,
4064      3444, 3444,    0,    0,    0, 3444, 3445, 3445, 3445, 3445,
4065         0,    0, 3445, 3445, 3446, 3446, 3446,    0,    0,    0,
4066      3446, 3447, 3447, 3447, 3447,    0,    0, 3447, 3447, 3448,
4067      3448, 3448,    0,    0,    0, 3448, 3449, 3449, 3449, 3449,
4068         0,    0, 3449, 3449, 3450, 3450, 3450,    0,    0,    0,
4069      3450, 3451, 3451, 3451, 3451,    0,    0, 3451, 3451, 3452,
4070      3452, 3452,    0,    0,    0, 3452, 3453, 3453, 3453, 3453,
4071         0,    0, 3453, 3453, 3454, 3454, 3454,    0,    0,    0,
4072
4073      3454, 3455, 3455, 3455, 3455,    0,    0, 3455, 3455, 3456,
4074      3456, 3456,    0,    0,    0, 3456, 3457, 3457, 3457, 3457,
4075         0,    0, 3457, 3457, 3458, 3458, 3458,    0,    0,    0,
4076      3458, 3459, 3459, 3459, 3459,    0,    0, 3459, 3459, 3460,
4077      3460, 3460,    0,    0,    0, 3460, 3461, 3461, 3461, 3461,
4078         0,    0, 3461, 3461, 3462, 3462, 3462, 3462,    0, 3462,
4079         0, 3462, 3463, 3463, 3463, 3463,    0,    0, 3463, 3463,
4080      3464, 3464, 3464,    0,    0,    0, 3464, 3465, 3465, 3465,
4081      3465,    0,    0, 3465, 3465, 3466, 3466, 3466,    0,    0,
4082         0, 3466, 3467, 3467, 3467, 3467,    0,    0, 3467, 3467,
4083
4084      3468, 3468, 3468,    0,    0,    0, 3468, 3469, 3469, 3469,
4085      3469,    0,    0, 3469, 3469, 3470, 3470, 3470,    0,    0,
4086         0, 3470, 3471, 3471, 3471, 3471,    0,    0, 3471, 3471,
4087      3472, 3472, 3472, 3472,    0, 3472,    0, 3472, 3473, 3473,
4088      3473, 3473,    0,    0, 3473, 3473, 3474, 3474, 3474, 3474,
4089         0, 3474,    0, 3474, 3475, 3475, 3475, 3475,    0,    0,
4090      3475, 3475, 3476, 3476, 3476,    0,    0,    0, 3476, 3477,
4091      3477, 3477, 3477,    0,    0, 3477, 3477, 3478, 3478, 3478,
4092      3478,    0, 3478,    0, 3478, 3479, 3479, 3479, 3479,    0,
4093         0, 3479, 3479, 3480, 3480, 3480, 3480,    0, 3480,    0,
4094
4095      3480, 3481, 3481, 3481, 3481,    0,    0, 3481, 3481, 3482,
4096      3482, 3482,    0,    0,    0, 3482, 3483, 3483, 3483, 3483,
4097         0,    0, 3483, 3483, 3484, 3484, 3484,    0,    0,    0,
4098      3484, 3485, 3485, 3485, 3485,    0,    0, 3485, 3485, 3486,
4099      3486, 3486, 3486,    0,    0, 3486, 3486, 3487, 3487, 3487,
4100         0,    0,    0, 3487, 3488, 3488, 3488, 3488,    0,    0,
4101      3488, 3488, 3489, 3489, 3489, 3489, 3489, 3489, 3489, 3489,
4102      3489, 3490,    0, 3490,    0,    0, 3490, 3491, 3491, 3491,
4103         0,    0,    0, 3491, 3492, 3492, 3492, 3492,    0,    0,
4104      3492, 3492, 3493, 3493, 3493, 3493,    0, 3493,    0, 3493,
4105
4106      3494, 3494, 3494, 3494,    0,    0, 3494, 3494, 3495, 3495,
4107      3495, 3495,    0, 3495,    0, 3495, 3496, 3496, 3496, 3496,
4108         0,    0, 3496, 3496, 3497, 3497, 3497,    0,    0,    0,
4109      3497, 3498, 3498, 3498, 3498,    0,    0, 3498, 3498, 3499,
4110      3499, 3499,    0,    0,    0, 3499, 3500, 3500, 3500, 3500,
4111         0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,    0,
4112      3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502, 3503,
4113      3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504, 3504,
4114         0,    0, 3504, 3504, 3505, 3505, 3505,    0,    0,    0,
4115      3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506, 3507,
4116
4117      3507, 3507, 3507,    0, 3507,    0, 3507, 3508, 3508, 3508,
4118      3508,    0,    0, 3508, 3508, 3509, 3509, 3509, 3509,    0,
4119      3509,    0, 3509, 3510, 3510, 3510, 3510,    0,    0, 3510,
4120      3510, 3511, 3511, 3511,    0,    0,    0, 3511, 3512, 3512,
4121      3512, 3512,    0,    0, 3512, 3512, 3513, 3513, 3513, 3513,
4122         0, 3513,    0, 3513, 3514, 3514, 3514, 3514,    0,    0,
4123      3514, 3514, 3515, 3515, 3515, 3515,    0, 3515,    0, 3515,
4124      3516, 3516, 3516, 3516,    0,    0, 3516, 3516, 3517, 3517,
4125      3517,    0,    0,    0, 3517, 3518, 3518, 3518, 3518,    0,
4126         0, 3518, 3518, 3519, 3519, 3519,    0,    0,    0, 3519,
4127
4128      3520, 3520, 3520, 3520,    0,    0, 3520, 3520, 3521, 3521,
4129      3521,    0,    0,    0, 3521, 3522, 3522, 3522, 3522,    0,
4130         0, 3522, 3522, 3523, 3523, 3523,    0,    0,    0, 3523,
4131      3524, 3524, 3524, 3524,    0,    0, 3524, 3524, 3525, 3525,
4132      3525,    0,    0,    0, 3525, 3526, 3526, 3526, 3526,    0,
4133         0, 3526, 3526, 3527, 3527, 3527,    0,    0,    0, 3527,
4134      3528, 3528, 3528, 3528,    0,    0, 3528, 3528, 3529, 3529,
4135      3529,    0,    0,    0, 3529, 3530, 3530, 3530, 3530,    0,
4136         0, 3530, 3530, 3531, 3531, 3531,    0,    0,    0, 3531,
4137      3532, 3532, 3532, 3532,    0,    0, 3532, 3532, 3533, 3533,
4138
4139      3533,    0,    0,    0, 3533, 3534, 3534, 3534, 3534,    0,
4140         0, 3534, 3534, 3535, 3535, 3535, 3535,    0,    0, 3535,
4141      3535, 3536, 3536, 3536,    0,    0,    0, 3536, 3537, 3537,
4142      3537, 3537,    0,    0, 3537, 3537, 3538, 3538, 3538,    0,
4143         0,    0, 3538, 3539, 3539, 3539, 3539,    0,    0, 3539,
4144      3539, 3540, 3540, 3540,    0,    0,    0, 3540, 3541, 3541,
4145      3541, 3541,    0,    0, 3541, 3541, 3542, 3542, 3542, 3542,
4146         0,    0, 3542, 3542, 3543, 3543, 3543,    0,    0,    0,
4147      3543, 3544, 3544, 3544, 3544,    0,    0, 3544, 3544, 3545,
4148      3545, 3545, 3545, 3545, 3545, 3545, 3545, 3545, 3546, 3546,
4149
4150      3546, 3546, 3546, 3546, 3546, 3546, 3546, 3547, 3547, 3547,
4151         0,    0,    0, 3547, 3548, 3548, 3548, 3548,    0,    0,
4152      3548, 3548, 3549, 3549, 3549, 3549,    0,    0, 3549, 3549,
4153      3550, 3550, 3550,    0,    0,    0, 3550, 3551, 3551, 3551,
4154      3551,    0,    0, 3551, 3551, 3552, 3552, 3552,    0,    0,
4155         0, 3552, 3553, 3553, 3553, 3553,    0,    0, 3553, 3553,
4156      3554, 3554, 3554,    0,    0,    0, 3554, 3555, 3555, 3555,
4157      3555,    0,    0, 3555, 3555, 3556, 3556, 3556,    0,    0,
4158         0, 3556, 3557, 3557, 3557,    0,    0,    0, 3557, 3558,
4159      3558, 3558, 3558,    0,    0, 3558, 3558, 3559, 3559, 3559,
4160
4161         0,    0,    0, 3559, 3560, 3560, 3560, 3560,    0,    0,
4162      3560, 3560, 3561, 3561, 3561, 3561,    0,    0, 3561, 3561,
4163      3562, 3562, 3562,    0,    0,    0, 3562, 3563, 3563, 3563,
4164      3563,    0,    0, 3563, 3563, 3564, 3564, 3564,    0,    0,
4165         0, 3564, 3565, 3565, 3565, 3565,    0,    0, 3565, 3565,
4166      3566, 3566, 3566, 3566,    0,    0, 3566, 3566, 3567, 3567,
4167      3567, 3567,    0,    0, 3567, 3567, 3568, 3568, 3568,    0,
4168         0,    0, 3568, 3569, 3569, 3569, 3569,    0,    0, 3569,
4169      3569, 3570, 3570, 3570, 3570,    0, 3570,    0, 3570, 3571,
4170      3571, 3571, 3571,    0,    0, 3571, 3571, 3572, 3572, 3572,
4171
4172         0,    0,    0, 3572, 3573, 3573, 3573, 3573,    0,    0,
4173      3573, 3573, 3574, 3574, 3574,    0,    0,    0, 3574, 3575,
4174      3575, 3575, 3575,    0,    0, 3575, 3575, 3576, 3576, 3576,
4175         0,    0,    0, 3576, 3577, 3577, 3577, 3577,    0,    0,
4176      3577, 3577, 3578, 3578, 3578,    0,    0,    0, 3578, 3579,
4177      3579, 3579, 3579,    0,    0, 3579, 3579, 3580, 3580, 3580,
4178         0,    0,    0, 3580, 3581, 3581, 3581, 3581,    0,    0,
4179      3581, 3581, 3582, 3582, 3582,    0,    0,    0, 3582, 3583,
4180      3583, 3583, 3583,    0,    0, 3583, 3583, 3584, 3584, 3584,
4181         0,    0,    0, 3584, 3585, 3585, 3585, 3585,    0,    0,
4182
4183      3585, 3585, 3586, 3586, 3586, 3586,    0,    0, 3586, 3586,
4184      3587, 3587, 3587,    0,    0,    0, 3587, 3588, 3588, 3588,
4185      3588,    0,    0, 3588, 3588, 3589, 3589, 3589,    0,    0,
4186         0, 3589, 3590, 3590, 3590, 3590,    0,    0, 3590, 3590,
4187      3591, 3591, 3591, 3591,    0, 3591,    0, 3591, 3592, 3592,
4188      3592, 3592,    0,    0, 3592, 3592, 3593, 3593, 3593, 3593,
4189         0,    0, 3593, 3593, 3594, 3594, 3594, 3594,    0, 3594,
4190         0, 3594, 3595, 3595, 3595, 3595,    0,    0, 3595, 3595,
4191      3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3597,
4192      3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3598, 3598,
4193
4194      3598,    0,    0,    0, 3598, 3599, 3599, 3599, 3599,    0,
4195         0, 3599, 3599, 3600, 3600, 3600, 3600,    0,    0, 3600,
4196      3600, 3601, 3601, 3601,    0,    0,    0, 3601, 3602, 3602,
4197      3602, 3602,    0,    0, 3602, 3602, 3603, 3603, 3603,    0,
4198         0,    0, 3603, 3604, 3604, 3604, 3604,    0,    0, 3604,
4199      3604, 3605, 3605, 3605,    0,    0,    0, 3605, 3606, 3606,
4200      3606, 3606,    0,    0, 3606, 3606, 3607, 3607, 3607,    0,
4201         0,    0, 3607, 3608, 3608, 3608,    0,    0,    0, 3608,
4202      3609, 3609, 3609, 3609,    0,    0, 3609, 3609, 3610, 3610,
4203      3610,    0,    0,    0, 3610, 3611, 3611, 3611, 3611,    0,
4204
4205         0, 3611, 3611, 3612, 3612, 3612, 3612,    0,    0, 3612,
4206      3612, 3613, 3613, 3613, 3613,    0, 3613,    0, 3613, 3614,
4207      3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615, 3615,
4208         0,    0,    0, 3615, 3616, 3616, 3616, 3616,    0,    0,
4209      3616, 3616, 3617, 3617, 3617, 3617,    0,    0, 3617, 3617,
4210      3618, 3618, 3618,    0,    0,    0, 3618, 3619, 3619, 3619,
4211      3619,    0,    0, 3619, 3619, 3620, 3620, 3620, 3620,    0,
4212      3620,    0, 3620, 3621, 3621, 3621, 3621,    0,    0, 3621,
4213      3621, 3622, 3622, 3622,    0,    0,    0, 3622, 3623, 3623,
4214      3623, 3623,    0,    0, 3623, 3623, 3624, 3624, 3624,    0,
4215
4216         0,    0, 3624, 3625, 3625, 3625, 3625,    0,    0, 3625,
4217      3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627, 3627,
4218      3627, 3627,    0,    0, 3627, 3627, 3628, 3628, 3628,    0,
4219         0,    0, 3628, 3629, 3629, 3629, 3629,    0,    0, 3629,
4220      3629, 3630, 3630, 3630,    0,    0,    0, 3630, 3631, 3631,
4221      3631, 3631,    0,    0, 3631, 3631, 3632, 3632, 3632, 3632,
4222         0, 3632,    0, 3632, 3633, 3633, 3633, 3633,    0,    0,
4223      3633, 3633, 3634, 3634, 3634,    0,    0,    0, 3634, 3635,
4224      3635, 3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636,
4225      3636,    0,    0, 3636, 3636, 3637, 3637, 3637, 3637,    0,
4226
4227      3637,    0, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638,
4228      3638, 3639, 3639, 3639,    0,    0,    0, 3639, 3640, 3640,
4229      3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641, 3641,
4230         0,    0, 3641, 3641, 3642, 3642, 3642, 3642,    0,    0,
4231      3642, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643, 3643,
4232      3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3644, 3645,
4233      3645, 3645, 3645, 3645, 3645, 3645, 3645, 3645, 3646, 3646,
4234      3646, 3646,    0, 3646,    0, 3646, 3647, 3647, 3647, 3647,
4235         0,    0, 3647, 3647, 3648, 3648, 3648, 3648,    0,    0,
4236      3648, 3648, 3649, 3649, 3649,    0,    0,    0, 3649, 3650,
4237
4238      3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651, 3651,
4239         0,    0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0,
4240      3652, 3652, 3653, 3653, 3653, 3653,    0, 3653,    0, 3653,
4241      3654, 3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655,
4242      3655, 3655,    0, 3655,    0, 3655, 3656, 3656, 3656, 3656,
4243         0, 3656,    0, 3656, 3657, 3657, 3657, 3657,    0,    0,
4244      3657, 3657, 3658, 3658, 3658, 3658,    0, 3658,    0, 3658,
4245      3659, 3659, 3659, 3659,    0,    0, 3659, 3659, 3660, 3660,
4246      3660, 3660,    0,    0, 3660, 3660, 3661, 3661, 3661, 3661,
4247         0,    0, 3661, 3661, 3662, 3662, 3662,    0,    0,    0,
4248
4249      3662, 3663, 3663, 3663, 3663,    0,    0, 3663, 3663, 3664,
4250      3664, 3664,    0,    0,    0, 3664, 3665, 3665, 3665, 3665,
4251         0,    0, 3665, 3665, 3666, 3666, 3666, 3666,    0, 3666,
4252         0, 3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667,
4253      3668, 3668, 3668,    0,    0,    0, 3668, 3669, 3669, 3669,
4254         0,    0,    0, 3669, 3670, 3670, 3670, 3670,    0,    0,
4255      3670, 3670, 3671, 3671, 3671,    0,    0,    0, 3671, 3672,
4256      3672, 3672, 3672,    0,    0, 3672, 3672, 3673, 3673, 3673,
4257         0,    0,    0, 3673, 3674, 3674, 3674,    0,    0,    0,
4258      3674, 3675, 3675, 3675, 3675,    0,    0, 3675, 3675, 3676,
4259
4260      3676, 3676,    0,    0,    0, 3676, 3677, 3677, 3677, 3677,
4261         0,    0, 3677, 3677, 3678, 3678, 3678,    0,    0,    0,
4262      3678, 3679, 3679, 3679, 3679,    0,    0, 3679, 3679, 3680,
4263      3680, 3680, 3680,    0,    0, 3680, 3680, 3681, 3681, 3681,
4264      3681,    0,    0, 3681, 3681, 3682, 3682, 3682,    0,    0,
4265         0, 3682, 3683, 3683, 3683, 3683,    0,    0, 3683, 3683,
4266      3684, 3684, 3684, 3684,    0,    0, 3684, 3684, 3685, 3685,
4267      3685, 3685,    0,    0, 3685, 3685, 3686, 3686, 3686, 3686,
4268      3686, 3686, 3686, 3686, 3686, 3687, 3687, 3687, 3687, 3687,
4269      3687, 3687, 3687, 3687, 3688, 3688, 3688, 3688,    0,    0,
4270
4271      3688, 3688, 3689, 3689, 3689, 3689,    0,    0, 3689, 3689,
4272      3690, 3690, 3690,    0,    0,    0, 3690, 3691, 3691, 3691,
4273         0,    0,    0, 3691, 3692, 3692, 3692, 3692,    0,    0,
4274      3692, 3692, 3693, 3693, 3693, 3693,    0,    0, 3693, 3693,
4275      3694, 3694, 3694, 3694,    0,    0, 3694, 3694, 3695, 3695,
4276      3695, 3695,    0,    0, 3695, 3695, 3696, 3696, 3696, 3696,
4277         0,    0, 3696, 3696, 3697, 3697, 3697,    0,    0,    0,
4278      3697, 3698, 3698, 3698, 3698,    0,    0, 3698, 3698, 3699,
4279      3699, 3699,    0,    0,    0, 3699, 3700, 3700, 3700, 3700,
4280         0,    0, 3700, 3700, 3701, 3701, 3701, 3701,    0,    0,
4281
4282      3701, 3701, 3702, 3702, 3702,    0,    0,    0, 3702, 3703,
4283      3703, 3703,    0,    0,    0, 3703, 3704, 3704, 3704, 3704,
4284         0,    0, 3704, 3704, 3705, 3705, 3705,    0,    0,    0,
4285      3705, 3706, 3706, 3706, 3706,    0,    0, 3706, 3706, 3707,
4286      3707, 3707,    0,    0,    0, 3707, 3708, 3708, 3708,    0,
4287         0,    0, 3708, 3709, 3709, 3709,    0,    0,    0, 3709,
4288      3710, 3710, 3710, 3710,    0,    0, 3710, 3710, 3711, 3711,
4289      3711,    0,    0,    0, 3711, 3712, 3712, 3712, 3712,    0,
4290         0, 3712, 3712, 3713, 3713, 3713, 3713,    0,    0, 3713,
4291      3713, 3714, 3714, 3714, 3714,    0,    0, 3714, 3714, 3715,
4292
4293      3715, 3715, 3715,    0, 3715,    0, 3715, 3716, 3716, 3716,
4294      3716,    0,    0, 3716, 3716, 3717, 3717, 3717, 3717,    0,
4295         0, 3717, 3717, 3718, 3718, 3718, 3718,    0,    0, 3718,
4296      3718, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719, 3719,
4297      3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3721,
4298      3721, 3721, 3721,    0,    0, 3721, 3721, 3722, 3722, 3722,
4299      3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,
4300         0, 3723, 3724, 3724, 3724, 3724,    0, 3724,    0, 3724,
4301      3725, 3725, 3725, 3725,    0,    0, 3725, 3725, 3726, 3726,
4302      3726, 3726,    0,    0, 3726, 3726, 3727, 3727, 3727, 3727,
4303
4304         0,    0, 3727, 3727, 3728, 3728, 3728, 3728,    0,    0,
4305      3728, 3728, 3729, 3729, 3729,    0,    0,    0, 3729, 3730,
4306      3730, 3730, 3730,    0,    0, 3730, 3730, 3731, 3731, 3731,
4307         0,    0,    0, 3731, 3732, 3732, 3732, 3732,    0,    0,
4308      3732, 3732, 3733, 3733, 3733, 3733,    0,    0, 3733, 3733,
4309      3734, 3734, 3734,    0,    0,    0, 3734, 3735, 3735, 3735,
4310         0,    0,    0, 3735, 3736, 3736, 3736, 3736,    0, 3736,
4311         0, 3736, 3737, 3737, 3737, 3737,    0,    0, 3737, 3737,
4312      3738, 3738, 3738, 3738,    0, 3738,    0, 3738, 3739, 3739,
4313      3739,    0,    0,    0, 3739, 3740, 3740, 3740,    0,    0,
4314
4315         0, 3740, 3741, 3741, 3741, 3741,    0,    0, 3741, 3741,
4316      3742, 3742, 3742, 3742,    0, 3742,    0, 3742, 3743, 3743,
4317      3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744, 3744,
4318         0,    0, 3744, 3744, 3745, 3745, 3745, 3745,    0,    0,
4319      3745, 3745, 3746, 3746, 3746, 3746,    0, 3746,    0, 3746,
4320      3747, 3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748,
4321      3748, 3748,    0,    0, 3748, 3748, 3749, 3749, 3749, 3749,
4322      3749, 3749, 3749, 3749, 3749, 3750, 3750, 3750, 3750, 3750,
4323      3750, 3750, 3750, 3750, 3751, 3751, 3751, 3751,    0,    0,
4324      3751, 3751, 3752, 3752, 3752,    0,    0,    0, 3752, 3753,
4325
4326      3753, 3753,    0,    0,    0, 3753, 3754, 3754, 3754, 3754,
4327         0,    0, 3754, 3754, 3755, 3755, 3755, 3755,    0,    0,
4328      3755, 3755, 3756, 3756, 3756, 3756,    0,    0, 3756, 3756,
4329      3757, 3757, 3757,    0,    0,    0, 3757, 3758, 3758, 3758,
4330      3758,    0,    0, 3758, 3758, 3759, 3759, 3759,    0,    0,
4331         0, 3759, 3760, 3760, 3760, 3760, 3760, 3760, 3760, 3760,
4332      3760, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761,
4333      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3763,
4334      3763, 3763, 3763, 3763, 3763, 3763, 3763, 3763, 3764, 3764,
4335      3764, 3764, 3764, 3764, 3764, 3764, 3764, 3765, 3765, 3765,
4336
4337      3765, 3765, 3765, 3765, 3765, 3765, 3285, 3285, 3285, 3285,
4338      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4339      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4340      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4341      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4342      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4343      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4344      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
4345      3285
4346     } ;
4347
4348 /* Table of booleans, true if rule could match eol. */
4349 static yyconst flex_int32_t yy_rule_can_match_eol[563] =
4350     {   0,
4351 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4352     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4353     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4354     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4355     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4356     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4357     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4358     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4359     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4360     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4361     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4362     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4363     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4364     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4365     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4366     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4367     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4368     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4369     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4370     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4371     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4372     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4373     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4374     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4375     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4376     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4377     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4378     0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 
4379     0, 1, 0,     };
4380
4381 static yy_state_type yy_last_accepting_state;
4382 static char *yy_last_accepting_cpos;
4383
4384 extern int surf_parse__flex_debug;
4385 int surf_parse__flex_debug = 0;
4386
4387 /* The intent behind this definition is that it'll catch
4388  * any uses of REJECT which flex missed.
4389  */
4390 #define REJECT reject_used_but_not_detected
4391 #define yymore() yymore_used_but_not_detected
4392 #define YY_MORE_ADJ 0
4393 #define YY_RESTORE_YY_MORE_OFFSET
4394 char *surf_parse_text;
4395 /* Validating XML processor for src/surf/simgrid.dtd.
4396  *
4397  * This program was generated with the FleXML XML processor generator.
4398  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4399  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4400  * (1.9.6).
4401  * 
4402  * There are two, intertwined parts to this program, part A and part B.
4403  *
4404  * Part A
4405  * ------
4406  * 
4407  * Some parts, here collectively called "Part A", are found in the 
4408  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4409  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4410  *
4411  * You can redistribute, use, perform, display and/or modify "Part A"
4412  * provided the following two conditions hold:
4413  *
4414  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4415  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4416  *    FITNESS FOR A PARTICULAR PURPOSE.
4417  *
4418  * 2. The program distribution conditions do not in any way affect the
4419  *    distribution conditions of the FleXML system used to generate this
4420  *    file or any version of FleXML derived from that system.
4421  *
4422  * Notice that these are explicit rights granted to you for files
4423  * generated by the FleXML system.  For your rights in connection with
4424  * the FleXML system itself please consult the GNU General Public License.
4425  * 
4426  * Part B
4427  * ------
4428  * 
4429  * The other parts, here collectively called "Part B", and which came 
4430  * from the DTD used by FleXML to generate this program, can be 
4431  * distributed (or not, as the case may be) under the terms of whoever
4432  * wrote them, provided these terms respect and obey the two conditions 
4433  * above under the heading "Part A".
4434  *
4435  * The author of and contributors to FleXML specifically disclaim
4436  * any copyright interest in "Part B", unless "Part B" was written 
4437  * by the author of or contributors to FleXML.
4438  * 
4439  */
4440
4441 /* Version strings. */
4442 const char surfxml_flexml_version[] = "1.9.6";
4443
4444 /* ANSI headers. */
4445 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4446 #include <stdio.h>
4447 #include <string.h>
4448 #include <assert.h>
4449 #include <stdarg.h>
4450 #include <ctype.h>
4451      
4452 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4453 # ifndef __STRICT_ANSI__
4454 #  include <io.h>
4455 #  include <process.h>
4456 # endif
4457 #else
4458 # include <unistd.h>
4459 #endif
4460      
4461 #ifndef FLEXML_INDEXSTACKSIZE
4462 #define FLEXML_INDEXSTACKSIZE 1000
4463 #endif
4464
4465 /* Generated definitions. */
4466 #define FLEXML_yylineno
4467 #ifndef FLEXML_BUFFERSTACKSIZE
4468 #define FLEXML_BUFFERSTACKSIZE 1000000
4469 #endif
4470 #define FLEXML_NEED_BUFFERLIT
4471
4472 /* XML processor api. */
4473 /* FleXML-provided data. */
4474 int surfxml_pcdata_ix;
4475 extern char *surfxml_bufferstack;
4476 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4477 AT_surfxml_mount_name AX_surfxml_mount_name;
4478 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4479 short int surfxml_mount_name_isset;
4480 AT_surfxml_random_generator AX_surfxml_random_generator;
4481 #define A_surfxml_random_generator AX_surfxml_random_generator
4482 short int surfxml_random_generator_isset;
4483 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4484 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4485 short int surfxml_ASroute_gw___dst_isset;
4486 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4487 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4488 short int surfxml_trace___connect_element_isset;
4489 AT_surfxml_prop_id AX_surfxml_prop_id;
4490 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4491 short int surfxml_prop_id_isset;
4492 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4493 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4494 short int surfxml_host___link_up_isset;
4495 AT_surfxml_host_id AX_surfxml_host_id;
4496 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4497 short int surfxml_host_id_isset;
4498 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4499 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4500 short int surfxml_ASroute_symmetrical_isset;
4501 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4502 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4503 short int surfxml_peer_lat_isset;
4504 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4505 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4506 short int surfxml_process_on___failure_isset;
4507 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4508 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4509 short int surfxml_link_latency___file_isset;
4510 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4511 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4512 short int surfxml_peer_availability___file_isset;
4513 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4514 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4515 short int surfxml_link___ctn_direction_isset;
4516 AT_surfxml_host_state AX_surfxml_host_state;
4517 #define A_surfxml_host_state AX_surfxml_host_state
4518 short int surfxml_host_state_isset;
4519 AT_surfxml_AS_id AX_surfxml_AS_id;
4520 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4521 short int surfxml_AS_id_isset;
4522 AT_surfxml_host_power AX_surfxml_host_power;
4523 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4524 short int surfxml_host_power_isset;
4525 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4526 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4527 short int surfxml_cabinet_suffix_isset;
4528 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4529 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4530 short int surfxml_gpu_name_isset;
4531 AT_surfxml_router_id AX_surfxml_router_id;
4532 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4533 short int surfxml_router_id_isset;
4534 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4535 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4536 short int surfxml_storage___type_id_isset;
4537 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4538 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4539 short int surfxml_process_start___time_isset;
4540 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4541 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4542 short int surfxml_cabinet_bw_isset;
4543 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4544 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4545 short int surfxml_cluster_suffix_isset;
4546 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4547 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4548 short int surfxml_bypassASroute_dst_isset;
4549 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4550 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4551 short int surfxml_host___link_id_isset;
4552 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4553 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4554 short int surfxml_ASroute_src_isset;
4555 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4556 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4557 short int surfxml_cluster_prefix_isset;
4558 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4559 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4560 short int surfxml_cabinet_prefix_isset;
4561 AT_surfxml_trace_file AX_surfxml_trace_file;
4562 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4563 short int surfxml_trace_file_isset;
4564 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4565 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4566 short int surfxml_link_sharing___policy_isset;
4567 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4568 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4569 short int surfxml_storage_typeId_isset;
4570 AT_surfxml_random_min AX_surfxml_random_min;
4571 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4572 short int surfxml_random_min_isset;
4573 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4574 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4575 short int surfxml_link___ctn_id_isset;
4576 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4577 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4578 short int surfxml_peer_bw___out_isset;
4579 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4580 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4581 short int surfxml_cluster_availability___file_isset;
4582 AT_surfxml_storage_content AX_surfxml_storage_content;
4583 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4584 short int surfxml_storage_content_isset;
4585 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4586 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4587 short int surfxml_process_kill___time_isset;
4588 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4589 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4590 short int surfxml_cluster_bb___bw_isset;
4591 AT_surfxml_argument_value AX_surfxml_argument_value;
4592 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4593 short int surfxml_argument_value_isset;
4594 AT_surfxml_link_state AX_surfxml_link_state;
4595 #define A_surfxml_link_state AX_surfxml_link_state
4596 short int surfxml_link_state_isset;
4597 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4598 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4599 short int surfxml_cluster_loopback___bw_isset;
4600 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4601 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4602 short int surfxml_ASroute_gw___src_isset;
4603 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4604 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4605 short int surfxml_AS_routing_isset;
4606 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4607 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4608 short int surfxml_link_bandwidth_isset;
4609 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4610 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4611 short int surfxml_cluster_id_isset;
4612 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4613 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4614 short int surfxml_peer_bw___in_isset;
4615 AT_surfxml_random_mean AX_surfxml_random_mean;
4616 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4617 short int surfxml_random_mean_isset;
4618 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4619 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4620 short int surfxml_storage___type_size_isset;
4621 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4622 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4623 short int surfxml_cluster_bb___lat_isset;
4624 AT_surfxml_link_latency AX_surfxml_link_latency;
4625 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4626 short int surfxml_link_latency_isset;
4627 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4628 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4629 short int surfxml_backbone_bandwidth_isset;
4630 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4631 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4632 short int surfxml_backbone_id_isset;
4633 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4634 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4635 short int surfxml_trace___connect_kind_isset;
4636 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4637 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4638 short int surfxml_cabinet_lat_isset;
4639 AT_surfxml_random_seed AX_surfxml_random_seed;
4640 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4641 short int surfxml_random_seed_isset;
4642 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4643 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4644 short int surfxml_cluster_state___file_isset;
4645 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4646 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4647 short int surfxml_link_bandwidth___file_isset;
4648 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4649 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4650 short int surfxml_storage___type_content_isset;
4651 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4652 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4653 short int surfxml_route_symmetrical_isset;
4654 AT_surfxml_random_id AX_surfxml_random_id;
4655 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4656 short int surfxml_random_id_isset;
4657 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4658 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4659 short int surfxml_mstorage_name_isset;
4660 AT_surfxml_random_max AX_surfxml_random_max;
4661 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4662 short int surfxml_random_max_isset;
4663 AT_surfxml_link_id AX_surfxml_link_id;
4664 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4665 short int surfxml_link_id_isset;
4666 AT_surfxml_process_host AX_surfxml_process_host;
4667 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4668 short int surfxml_process_host_isset;
4669 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4670 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4671 short int surfxml_cabinet_id_isset;
4672 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4673 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4674 short int surfxml_host_availability___file_isset;
4675 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4676 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4677 short int surfxml_cluster_lat_isset;
4678 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4679 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4680 short int surfxml_router_coordinates_isset;
4681 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4682 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4683 short int surfxml_trace_periodicity_isset;
4684 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4685 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4686 short int surfxml_cluster_bb___sharing___policy_isset;
4687 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4688 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4689 short int surfxml_peer_state___file_isset;
4690 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4691 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4692 short int surfxml_peer_coordinates_isset;
4693 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4694 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4695 short int surfxml_bypassASroute_src_isset;
4696 AT_surfxml_prop_value AX_surfxml_prop_value;
4697 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4698 short int surfxml_prop_value_isset;
4699 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4700 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4701 short int surfxml_mstorage_typeId_isset;
4702 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4703 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4704 short int surfxml_ASroute_dst_isset;
4705 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4706 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4707 short int surfxml_link_state___file_isset;
4708 AT_surfxml_random_radical AX_surfxml_random_radical;
4709 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4710 short int surfxml_random_radical_isset;
4711 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4712 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4713 short int surfxml_bypassASroute_gw___src_isset;
4714 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4715 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4716 short int surfxml_trace___connect_trace_isset;
4717 AT_surfxml_mount_id AX_surfxml_mount_id;
4718 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4719 short int surfxml_mount_id_isset;
4720 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4721 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4722 short int surfxml_cluster_power_isset;
4723 AT_surfxml_process_function AX_surfxml_process_function;
4724 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4725 short int surfxml_process_function_isset;
4726 AT_surfxml_peer_id AX_surfxml_peer_id;
4727 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4728 short int surfxml_peer_id_isset;
4729 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4730 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4731 short int surfxml_cluster_router___id_isset;
4732 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4733 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4734 short int surfxml_cluster_loopback___lat_isset;
4735 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4736 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4737 short int surfxml_cabinet_radical_isset;
4738 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4739 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4740 short int surfxml_cluster_sharing___policy_isset;
4741 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4742 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4743 short int surfxml_bypassRoute_dst_isset;
4744 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4745 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4746 short int surfxml_cabinet_power_isset;
4747 AT_surfxml_host_core AX_surfxml_host_core;
4748 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4749 short int surfxml_host_core_isset;
4750 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4751 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4752 short int surfxml_storage___type_model_isset;
4753 AT_surfxml_host_availability AX_surfxml_host_availability;
4754 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4755 short int surfxml_host_availability_isset;
4756 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4757 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4758 short int surfxml_bypassRoute_src_isset;
4759 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4760 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4761 short int surfxml_backbone_latency_isset;
4762 AT_surfxml_route_src AX_surfxml_route_src;
4763 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4764 short int surfxml_route_src_isset;
4765 AT_surfxml_storage_id AX_surfxml_storage_id;
4766 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4767 short int surfxml_storage_id_isset;
4768 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4769 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4770 short int surfxml_host_coordinates_isset;
4771 AT_surfxml_trace_id AX_surfxml_trace_id;
4772 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4773 short int surfxml_trace_id_isset;
4774 AT_surfxml_peer_power AX_surfxml_peer_power;
4775 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4776 short int surfxml_peer_power_isset;
4777 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4778 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4779 short int surfxml_cluster_radical_isset;
4780 AT_surfxml_config_id AX_surfxml_config_id;
4781 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4782 short int surfxml_config_id_isset;
4783 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4784 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4785 short int surfxml_bypassASroute_gw___dst_isset;
4786 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4787 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4788 short int surfxml_host___link_down_isset;
4789 AT_surfxml_include_file AX_surfxml_include_file;
4790 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4791 short int surfxml_include_file_isset;
4792 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4793 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4794 short int surfxml_random_std___deviation_isset;
4795 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4796 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4797 short int surfxml_cluster_core_isset;
4798 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4799 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4800 short int surfxml_cluster_limiter___link_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_route_dst AX_surfxml_route_dst;
4805 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4806 short int surfxml_route_dst_isset;
4807 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4808 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4809 short int surfxml_cluster_bw_isset;
4810 AT_surfxml_platform_version AX_surfxml_platform_version;
4811 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4812 short int surfxml_platform_version_isset;
4813
4814 /* XML state. */
4815 #ifdef FLEX_DEBUG
4816 # define ENTER(state)   debug_enter(state,#state)
4817 # define LEAVE          debug_leave()
4818 # define SET(state)     debug_set(state,#state)
4819   static void debug_enter(int, const char*);
4820   static void debug_leave(void);
4821   static void debug_set(int, const char*);
4822 #else
4823 # define ENTER(state)   (yy_push_state(state))
4824 # define LEAVE          (yy_pop_state())
4825 # define SET(state)     BEGIN(state)
4826 #endif
4827
4828 /* Generic actions. */
4829 #define SKIP    /*skip*/
4830 #define SUCCEED        CLEANUP; return 0
4831
4832 #define FAIL    return fail
4833 static int fail(const char*, ...);
4834
4835 enum {flexml_max_err_msg_size = 512};
4836 static char flexml_err_msg[flexml_max_err_msg_size];
4837 const char * surfxml_parse_err_msg()
4838 {
4839     return flexml_err_msg;
4840 }
4841 static void reset_surfxml_parse_err_msg()
4842 {
4843     flexml_err_msg[0] = '\0';
4844 }
4845
4846 /* Cleanup */
4847 static void cleanup(void);
4848 #define CLEANUP  cleanup()
4849
4850 /* Text buffer stack handling. */
4851 char *surfxml_bufferstack = NULL;
4852 static int blimit = FLEXML_BUFFERSTACKSIZE;
4853 static int bnext = 1;
4854
4855 static int *indexstack = NULL;
4856 static int ilimit = FLEXML_INDEXSTACKSIZE;
4857 static int inext = 1;
4858
4859 #define BUFFERSET(P)  (P = bnext)
4860 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4861 #define BUFFERDONE    (BUFFERPUTC('\0'))
4862
4863 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4864
4865 /* after this is called, there are at least 2 slots left in the stack */
4866 static int ck_blimit()
4867 {
4868      if (bnext >= blimit) {
4869          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4870          {
4871              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4872              assert(temp);
4873              surfxml_bufferstack = temp;
4874          }
4875      }
4876      return 0;
4877 }
4878
4879 /* after this is called, there are at least 2 slots left in the stack */
4880 static int ck_ilimit()
4881 {
4882      if (inext >= ilimit) {
4883          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4884          {
4885              int *temp = (int *) realloc(indexstack, ilimit);
4886              assert(temp);
4887              indexstack = temp;
4888          }
4889      }
4890      return 0;
4891 }
4892
4893 #ifdef FLEXML_NEED_BUFFERLIT
4894 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4895 {
4896    BUFFERSET(*pp);
4897    if (c) {
4898       const char *s = strchr(text, c), *e = strrchr(text, c);
4899       assert(s && e && s <= e);
4900       ++s;
4901       while (s < e) {
4902          if (isspace(*s)) {
4903             BUFFERPUTC(' ');
4904             do ++s; while (s < e && isspace(*s));
4905          } else
4906            BUFFERPUTC(*s++);
4907       }
4908    } else {
4909       const char *s = text;
4910       while (*s)
4911         BUFFERPUTC(*s++);
4912    }
4913    BUFFERDONE;
4914 }
4915 #endif
4916
4917 static void pushbuffer(int p)
4918 {
4919     ck_ilimit();
4920     indexstack[inext++] = p;
4921     indexstack[inext++] = bnext;    
4922 }
4923
4924 static int popbuffer(void)
4925 {
4926     assert(inext >= 2);
4927     bnext = indexstack[--inext];
4928     return indexstack[--inext];
4929 }
4930
4931 /* General internal entities are `unput' back onto the input stream... */
4932 #define ENTITYTEXT(T) \
4933   { char *s = (T), *e = s+strlen(s);\
4934     while (--e >= s) { unput(*e); }}
4935
4936 /* Flex standard options. */
4937 #define YY_NO_INPUT 1
4938 /* Flex user-requested options. */
4939 /* XML character classes (currently restricted to ASCII). */
4940 /* "Common syntactic structures." */
4941 /* "Names and Tokens." */
4942 /* Miscellaneous. */
4943 /* Parser states (flex `exclusive start conditions'):
4944  *
4945  * PROLOG       the XML prolog of the document before <?xml...>
4946  * DOCTYPE      the XML prolog of the document after <?xml...>
4947  * EPILOG       after the root element
4948  * INCOMMENT    inside an XML comment <!--....-->
4949  * INPI         inside an XML PI <?...?>
4950  * VALUE1       inside a '...'-delimited literal
4951  * VALUE2       inside a "..."-delimited literal
4952  * CDATA        inside a <![CDATA[...] ]> section.
4953  * ROOT_<tag>   expect root element <tag>
4954  * AL_<tag>     inside the attribute list for <tag>
4955  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4956  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4957  */
4958
4959 /* State names. */
4960 const char* *surfxml_statenames=NULL;
4961
4962 #define INITIAL 0
4963 #define PROLOG 1
4964 #define DOCTYPE 2
4965 #define EPILOG 3
4966 #define INCOMMENT 4
4967 #define INPI 5
4968 #define VALUE1 6
4969 #define VALUE2 7
4970 #define CDATA 8
4971 #define ROOT_surfxml_platform 9
4972 #define AL_surfxml_platform 10
4973 #define S_surfxml_platform 11
4974 #define S_surfxml_platform_1 12
4975 #define S_surfxml_platform_2 13
4976 #define S_surfxml_platform_3 14
4977 #define S_surfxml_platform_4 15
4978 #define S_surfxml_platform_5 16
4979 #define S_surfxml_platform_6 17
4980 #define S_surfxml_platform_7 18
4981 #define S_surfxml_platform_8 19
4982 #define E_surfxml_platform 20
4983 #define AL_surfxml_include 21
4984 #define S_surfxml_include 22
4985 #define S_surfxml_include_1 23
4986 #define S_surfxml_include_2 24
4987 #define E_surfxml_include 25
4988 #define AL_surfxml_trace 26
4989 #define IN_trace 27
4990 #define AL_surfxml_random 28
4991 #define E_surfxml_random 29
4992 #define AL_surfxml_trace___connect 30
4993 #define E_surfxml_trace___connect 31
4994 #define AL_surfxml_AS 32
4995 #define S_surfxml_AS 33
4996 #define S_surfxml_AS_1 34
4997 #define S_surfxml_AS_2 35
4998 #define S_surfxml_AS_3 36
4999 #define S_surfxml_AS_4 37
5000 #define S_surfxml_AS_5 38
5001 #define S_surfxml_AS_6 39
5002 #define S_surfxml_AS_7 40
5003 #define S_surfxml_AS_8 41
5004 #define S_surfxml_AS_9 42
5005 #define S_surfxml_AS_10 43
5006 #define S_surfxml_AS_11 44
5007 #define S_surfxml_AS_12 45
5008 #define S_surfxml_AS_13 46
5009 #define S_surfxml_AS_14 47
5010 #define S_surfxml_AS_15 48
5011 #define S_surfxml_AS_16 49
5012 #define E_surfxml_AS 50
5013 #define AL_surfxml_storage___type 51
5014 #define S_surfxml_storage___type 52
5015 #define S_surfxml_storage___type_1 53
5016 #define S_surfxml_storage___type_2 54
5017 #define E_surfxml_storage___type 55
5018 #define AL_surfxml_storage 56
5019 #define S_surfxml_storage 57
5020 #define S_surfxml_storage_1 58
5021 #define S_surfxml_storage_2 59
5022 #define E_surfxml_storage 60
5023 #define AL_surfxml_mount 61
5024 #define E_surfxml_mount 62
5025 #define AL_surfxml_mstorage 63
5026 #define E_surfxml_mstorage 64
5027 #define AL_surfxml_host 65
5028 #define S_surfxml_host 66
5029 #define S_surfxml_host_1 67
5030 #define S_surfxml_host_2 68
5031 #define E_surfxml_host 69
5032 #define AL_surfxml_gpu 70
5033 #define E_surfxml_gpu 71
5034 #define AL_surfxml_host___link 72
5035 #define E_surfxml_host___link 73
5036 #define AL_surfxml_cluster 74
5037 #define S_surfxml_cluster 75
5038 #define S_surfxml_cluster_1 76
5039 #define S_surfxml_cluster_2 77
5040 #define E_surfxml_cluster 78
5041 #define AL_surfxml_cabinet 79
5042 #define E_surfxml_cabinet 80
5043 #define AL_surfxml_peer 81
5044 #define E_surfxml_peer 82
5045 #define AL_surfxml_router 83
5046 #define E_surfxml_router 84
5047 #define AL_surfxml_backbone 85
5048 #define E_surfxml_backbone 86
5049 #define AL_surfxml_link 87
5050 #define S_surfxml_link 88
5051 #define S_surfxml_link_1 89
5052 #define S_surfxml_link_2 90
5053 #define E_surfxml_link 91
5054 #define AL_surfxml_route 92
5055 #define S_surfxml_route 93
5056 #define S_surfxml_route_1 94
5057 #define S_surfxml_route_2 95
5058 #define E_surfxml_route 96
5059 #define AL_surfxml_ASroute 97
5060 #define S_surfxml_ASroute 98
5061 #define S_surfxml_ASroute_1 99
5062 #define S_surfxml_ASroute_2 100
5063 #define E_surfxml_ASroute 101
5064 #define AL_surfxml_link___ctn 102
5065 #define E_surfxml_link___ctn 103
5066 #define AL_surfxml_bypassRoute 104
5067 #define S_surfxml_bypassRoute 105
5068 #define S_surfxml_bypassRoute_1 106
5069 #define S_surfxml_bypassRoute_2 107
5070 #define E_surfxml_bypassRoute 108
5071 #define AL_surfxml_bypassASroute 109
5072 #define S_surfxml_bypassASroute 110
5073 #define S_surfxml_bypassASroute_1 111
5074 #define S_surfxml_bypassASroute_2 112
5075 #define E_surfxml_bypassASroute 113
5076 #define AL_surfxml_process 114
5077 #define S_surfxml_process 115
5078 #define S_surfxml_process_1 116
5079 #define S_surfxml_process_2 117
5080 #define E_surfxml_process 118
5081 #define AL_surfxml_argument 119
5082 #define E_surfxml_argument 120
5083 #define AL_surfxml_config 121
5084 #define S_surfxml_config 122
5085 #define S_surfxml_config_1 123
5086 #define S_surfxml_config_2 124
5087 #define E_surfxml_config 125
5088 #define AL_surfxml_prop 126
5089 #define E_surfxml_prop 127
5090 #define IMPOSSIBLE 128
5091
5092 #ifndef YY_NO_UNISTD_H
5093 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5094  * down here because we want the user's section 1 to have been scanned first.
5095  * The user has a chance to override it with an option.
5096  */
5097 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5098 #  ifndef __STRICT_ANSI__
5099 #    include <io.h>
5100 #    include <process.h>
5101 #  endif
5102 #else
5103 #  include <unistd.h>
5104 #endif
5105 #endif
5106
5107 #ifndef YY_EXTRA_TYPE
5108 #define YY_EXTRA_TYPE void *
5109 #endif
5110
5111 static int yy_init_globals (void );
5112
5113 /* Accessor methods to globals.
5114    These are made visible to non-reentrant scanners for convenience. */
5115
5116 int surf_parse_lex_destroy (void );
5117
5118 int surf_parse_get_debug (void );
5119
5120 void surf_parse_set_debug (int debug_flag  );
5121
5122 YY_EXTRA_TYPE surf_parse_get_extra (void );
5123
5124 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5125
5126 FILE *surf_parse_get_in (void );
5127
5128 void surf_parse_set_in  (FILE * in_str  );
5129
5130 FILE *surf_parse_get_out (void );
5131
5132 void surf_parse_set_out  (FILE * out_str  );
5133
5134 int surf_parse_get_leng (void );
5135
5136 char *surf_parse_get_text (void );
5137
5138 int surf_parse_get_lineno (void );
5139
5140 void surf_parse_set_lineno (int line_number  );
5141
5142 /* Macros after this point can all be overridden by user definitions in
5143  * section 1.
5144  */
5145
5146 #ifndef YY_SKIP_YYWRAP
5147 #ifdef __cplusplus
5148 extern "C" int surf_parse_wrap (void );
5149 #else
5150 extern int surf_parse_wrap (void );
5151 #endif
5152 #endif
5153
5154 #ifndef yytext_ptr
5155 static void yy_flex_strncpy (char *,yyconst char *,int );
5156 #endif
5157
5158 #ifdef YY_NEED_STRLEN
5159 static int yy_flex_strlen (yyconst char * );
5160 #endif
5161
5162 #ifndef YY_NO_INPUT
5163
5164 #ifdef __cplusplus
5165 static int yyinput (void );
5166 #else
5167 static int input (void );
5168 #endif
5169
5170 #endif
5171
5172         static int yy_start_stack_ptr = 0;
5173         static int yy_start_stack_depth = 0;
5174         static int *yy_start_stack = NULL;
5175     
5176     static void yy_push_state (int new_state );
5177     
5178     static void yy_pop_state (void );
5179     
5180 /* Amount of stuff to slurp up with each read. */
5181 #ifndef YY_READ_BUF_SIZE
5182 #ifdef __ia64__
5183 /* On IA-64, the buffer size is 16k, not 8k */
5184 #define YY_READ_BUF_SIZE 16384
5185 #else
5186 #define YY_READ_BUF_SIZE 8192
5187 #endif /* __ia64__ */
5188 #endif
5189
5190 /* Copy whatever the last rule matched to the standard output. */
5191 #ifndef ECHO
5192 /* This used to be an fputs(), but since the string might contain NUL's,
5193  * we now use fwrite().
5194  */
5195 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5196 #endif
5197
5198 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5199  * is returned in "result".
5200  */
5201 #ifndef YY_INPUT
5202 #define YY_INPUT(buf,result,max_size) \
5203         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5204                 { \
5205                 int c = '*'; \
5206                 size_t n; \
5207                 for ( n = 0; n < max_size && \
5208                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5209                         buf[n] = (char) c; \
5210                 if ( c == '\n' ) \
5211                         buf[n++] = (char) c; \
5212                 if ( c == EOF && ferror( surf_parse_in ) ) \
5213                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5214                 result = n; \
5215                 } \
5216         else \
5217                 { \
5218                 errno=0; \
5219                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5220                         { \
5221                         if( errno != EINTR) \
5222                                 { \
5223                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5224                                 break; \
5225                                 } \
5226                         errno=0; \
5227                         clearerr(surf_parse_in); \
5228                         } \
5229                 }\
5230 \
5231
5232 #endif
5233
5234 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5235  * we don't want an extra ';' after the "return" because that will cause
5236  * some compilers to complain about unreachable statements.
5237  */
5238 #ifndef yyterminate
5239 #define yyterminate() return YY_NULL
5240 #endif
5241
5242 /* Number of entries by which start-condition stack grows. */
5243 #ifndef YY_START_STACK_INCR
5244 #define YY_START_STACK_INCR 25
5245 #endif
5246
5247 /* Report a fatal error. */
5248 #ifndef YY_FATAL_ERROR
5249 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5250 #endif
5251
5252 /* end tables serialization structures and prototypes */
5253
5254 /* Default declaration of generated scanner - a define so the user can
5255  * easily add parameters.
5256  */
5257 #ifndef YY_DECL
5258 #define YY_DECL_IS_OURS 1
5259
5260 extern int surf_parse_lex (void);
5261
5262 #define YY_DECL int surf_parse_lex (void)
5263 #endif /* !YY_DECL */
5264
5265 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5266  * have been set up.
5267  */
5268 #ifndef YY_USER_ACTION
5269 #define YY_USER_ACTION
5270 #endif
5271
5272 /* Code executed at the end of each rule. */
5273 #ifndef YY_BREAK
5274 #define YY_BREAK break;
5275 #endif
5276
5277 #define YY_RULE_SETUP \
5278         YY_USER_ACTION
5279
5280 /** The main scanner function which does all the work.
5281  */
5282 YY_DECL
5283 {
5284         register yy_state_type yy_current_state;
5285         register char *yy_cp, *yy_bp;
5286         register int yy_act;
5287     
5288  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5289  SET(PROLOG);
5290  reset_surfxml_parse_err_msg();
5291  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5292  assert(surfxml_bufferstack);
5293  #ifdef FLEX_DEBUG
5294  {
5295      int i;
5296      for (i = 0; i < blimit; i++) {
5297          surfxml_bufferstack[i] = '\377';
5298      }
5299  }
5300  #endif
5301  surfxml_bufferstack[0] = '\0';
5302  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5303  assert(indexstack);
5304  indexstack[0] = 0;
5305
5306   /* FleXML_init */
5307   bnext = inext = 1;
5308   surfxml_bufferliteral('\0', &bnext, "0.0");
5309   surfxml_bufferliteral('\0', &bnext, "2147483647");
5310   surfxml_bufferliteral('\0', &bnext, "1");
5311   surfxml_bufferliteral('\0', &bnext, "1.0");
5312   surfxml_bufferliteral('\0', &bnext, "1");
5313   surfxml_bufferliteral('\0', &bnext, "0.0");
5314   surfxml_bufferliteral('\0', &bnext, "-1.0");
5315   surfxml_bufferliteral('\0', &bnext, "-1.0");
5316   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5317   surfxml_statenames[PROLOG] = NULL;
5318   surfxml_statenames[DOCTYPE] = NULL;
5319   surfxml_statenames[EPILOG] = NULL;
5320   surfxml_statenames[INCOMMENT] = NULL;
5321   surfxml_statenames[INPI] = NULL;
5322   surfxml_statenames[VALUE1] = NULL;
5323   surfxml_statenames[VALUE2] = NULL;
5324   surfxml_statenames[CDATA] = NULL;
5325   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5326   surfxml_statenames[AL_surfxml_platform] = NULL;
5327   surfxml_statenames[S_surfxml_platform] = "platform";
5328   surfxml_statenames[S_surfxml_platform_1] = "platform";
5329   surfxml_statenames[S_surfxml_platform_2] = "platform";
5330   surfxml_statenames[S_surfxml_platform_3] = "platform";
5331   surfxml_statenames[S_surfxml_platform_4] = "platform";
5332   surfxml_statenames[S_surfxml_platform_5] = "platform";
5333   surfxml_statenames[S_surfxml_platform_6] = "platform";
5334   surfxml_statenames[S_surfxml_platform_7] = "platform";
5335   surfxml_statenames[S_surfxml_platform_8] = "platform";
5336   surfxml_statenames[E_surfxml_platform] = "platform";
5337   surfxml_statenames[AL_surfxml_include] = NULL;
5338   surfxml_statenames[S_surfxml_include] = "include";
5339   surfxml_statenames[S_surfxml_include_1] = "include";
5340   surfxml_statenames[S_surfxml_include_2] = "include";
5341   surfxml_statenames[E_surfxml_include] = "include";
5342   surfxml_statenames[AL_surfxml_trace] = NULL;
5343   surfxml_statenames[IN_trace] = "trace";
5344   surfxml_statenames[AL_surfxml_random] = NULL;
5345   surfxml_statenames[E_surfxml_random] = "random";
5346   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5347   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5348   surfxml_statenames[AL_surfxml_AS] = NULL;
5349   surfxml_statenames[S_surfxml_AS] = "AS";
5350   surfxml_statenames[S_surfxml_AS_1] = "AS";
5351   surfxml_statenames[S_surfxml_AS_2] = "AS";
5352   surfxml_statenames[S_surfxml_AS_3] = "AS";
5353   surfxml_statenames[S_surfxml_AS_4] = "AS";
5354   surfxml_statenames[S_surfxml_AS_5] = "AS";
5355   surfxml_statenames[S_surfxml_AS_6] = "AS";
5356   surfxml_statenames[S_surfxml_AS_7] = "AS";
5357   surfxml_statenames[S_surfxml_AS_8] = "AS";
5358   surfxml_statenames[S_surfxml_AS_9] = "AS";
5359   surfxml_statenames[S_surfxml_AS_10] = "AS";
5360   surfxml_statenames[S_surfxml_AS_11] = "AS";
5361   surfxml_statenames[S_surfxml_AS_12] = "AS";
5362   surfxml_statenames[S_surfxml_AS_13] = "AS";
5363   surfxml_statenames[S_surfxml_AS_14] = "AS";
5364   surfxml_statenames[S_surfxml_AS_15] = "AS";
5365   surfxml_statenames[S_surfxml_AS_16] = "AS";
5366   surfxml_statenames[E_surfxml_AS] = "AS";
5367   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5368   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5369   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5370   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5371   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5372   surfxml_statenames[AL_surfxml_storage] = NULL;
5373   surfxml_statenames[S_surfxml_storage] = "storage";
5374   surfxml_statenames[S_surfxml_storage_1] = "storage";
5375   surfxml_statenames[S_surfxml_storage_2] = "storage";
5376   surfxml_statenames[E_surfxml_storage] = "storage";
5377   surfxml_statenames[AL_surfxml_mount] = NULL;
5378   surfxml_statenames[E_surfxml_mount] = "mount";
5379   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5380   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5381   surfxml_statenames[AL_surfxml_host] = NULL;
5382   surfxml_statenames[S_surfxml_host] = "host";
5383   surfxml_statenames[S_surfxml_host_1] = "host";
5384   surfxml_statenames[S_surfxml_host_2] = "host";
5385   surfxml_statenames[E_surfxml_host] = "host";
5386   surfxml_statenames[AL_surfxml_gpu] = NULL;
5387   surfxml_statenames[E_surfxml_gpu] = "gpu";
5388   surfxml_statenames[AL_surfxml_host___link] = NULL;
5389   surfxml_statenames[E_surfxml_host___link] = "host_link";
5390   surfxml_statenames[AL_surfxml_cluster] = NULL;
5391   surfxml_statenames[S_surfxml_cluster] = "cluster";
5392   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5393   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5394   surfxml_statenames[E_surfxml_cluster] = "cluster";
5395   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5396   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5397   surfxml_statenames[AL_surfxml_peer] = NULL;
5398   surfxml_statenames[E_surfxml_peer] = "peer";
5399   surfxml_statenames[AL_surfxml_router] = NULL;
5400   surfxml_statenames[E_surfxml_router] = "router";
5401   surfxml_statenames[AL_surfxml_backbone] = NULL;
5402   surfxml_statenames[E_surfxml_backbone] = "backbone";
5403   surfxml_statenames[AL_surfxml_link] = NULL;
5404   surfxml_statenames[S_surfxml_link] = "link";
5405   surfxml_statenames[S_surfxml_link_1] = "link";
5406   surfxml_statenames[S_surfxml_link_2] = "link";
5407   surfxml_statenames[E_surfxml_link] = "link";
5408   surfxml_statenames[AL_surfxml_route] = NULL;
5409   surfxml_statenames[S_surfxml_route] = "route";
5410   surfxml_statenames[S_surfxml_route_1] = "route";
5411   surfxml_statenames[S_surfxml_route_2] = "route";
5412   surfxml_statenames[E_surfxml_route] = "route";
5413   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5414   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5415   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5416   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5417   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5418   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5419   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5420   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5421   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5422   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5423   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5424   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5425   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5426   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5427   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5428   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5429   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5430   surfxml_statenames[AL_surfxml_process] = NULL;
5431   surfxml_statenames[S_surfxml_process] = "process";
5432   surfxml_statenames[S_surfxml_process_1] = "process";
5433   surfxml_statenames[S_surfxml_process_2] = "process";
5434   surfxml_statenames[E_surfxml_process] = "process";
5435   surfxml_statenames[AL_surfxml_argument] = NULL;
5436   surfxml_statenames[E_surfxml_argument] = "argument";
5437   surfxml_statenames[AL_surfxml_config] = NULL;
5438   surfxml_statenames[S_surfxml_config] = "config";
5439   surfxml_statenames[S_surfxml_config_1] = "config";
5440   surfxml_statenames[S_surfxml_config_2] = "config";
5441   surfxml_statenames[E_surfxml_config] = "config";
5442   surfxml_statenames[AL_surfxml_prop] = NULL;
5443   surfxml_statenames[E_surfxml_prop] = "prop";
5444   }
5445
5446  /* COMMENTS and PIs: handled uniformly for efficiency. */
5447
5448         if ( !(yy_init) )
5449                 {
5450                 (yy_init) = 1;
5451
5452 #ifdef YY_USER_INIT
5453                 YY_USER_INIT;
5454 #endif
5455
5456                 if ( ! (yy_start) )
5457                         (yy_start) = 1; /* first start state */
5458
5459                 if ( ! surf_parse_in )
5460                         surf_parse_in = stdin;
5461
5462                 if ( ! surf_parse_out )
5463                         surf_parse_out = stdout;
5464
5465                 if ( ! YY_CURRENT_BUFFER ) {
5466                         surf_parse_ensure_buffer_stack ();
5467                         YY_CURRENT_BUFFER_LVALUE =
5468                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5469                 }
5470
5471                 surf_parse__load_buffer_state( );
5472                 }
5473
5474         while ( 1 )             /* loops until end-of-file is reached */
5475                 {
5476                 yy_cp = (yy_c_buf_p);
5477
5478                 /* Support of surf_parse_text. */
5479                 *yy_cp = (yy_hold_char);
5480
5481                 /* yy_bp points to the position in yy_ch_buf of the start of
5482                  * the current run.
5483                  */
5484                 yy_bp = yy_cp;
5485
5486                 yy_current_state = (yy_start);
5487 yy_match:
5488                 do
5489                         {
5490                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5491                         if ( yy_accept[yy_current_state] )
5492                                 {
5493                                 (yy_last_accepting_state) = yy_current_state;
5494                                 (yy_last_accepting_cpos) = yy_cp;
5495                                 }
5496                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5497                                 {
5498                                 yy_current_state = (int) yy_def[yy_current_state];
5499                                 if ( yy_current_state >= 3286 )
5500                                         yy_c = yy_meta[(unsigned int) yy_c];
5501                                 }
5502                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5503                         ++yy_cp;
5504                         }
5505                 while ( yy_base[yy_current_state] != 12107 );
5506
5507 yy_find_action:
5508                 yy_act = yy_accept[yy_current_state];
5509                 if ( yy_act == 0 )
5510                         { /* have to back up */
5511                         yy_cp = (yy_last_accepting_cpos);
5512                         yy_current_state = (yy_last_accepting_state);
5513                         yy_act = yy_accept[yy_current_state];
5514                         }
5515
5516                 YY_DO_BEFORE_ACTION;
5517
5518                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5519                         {
5520                         int yyl;
5521                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5522                                 if ( surf_parse_text[yyl] == '\n' )
5523                                            
5524     surf_parse_lineno++;
5525 ;
5526                         }
5527
5528 do_action:      /* This label is used only to access EOF actions. */
5529
5530                 switch ( yy_act )
5531         { /* beginning of action switch */
5532                         case 0: /* must back up */
5533                         /* undo the effects of YY_DO_BEFORE_ACTION */
5534                         *yy_cp = (yy_hold_char);
5535                         yy_cp = (yy_last_accepting_cpos);
5536                         yy_current_state = (yy_last_accepting_state);
5537                         goto yy_find_action;
5538
5539 case 1:
5540 YY_RULE_SETUP
5541 ENTER(INCOMMENT);
5542         YY_BREAK
5543 case 2:
5544 YY_RULE_SETUP
5545 ENTER(INPI);
5546         YY_BREAK
5547
5548 case 3:
5549 YY_RULE_SETUP
5550 LEAVE;
5551         YY_BREAK
5552 case 4:
5553 case 5:
5554 case 6:
5555 /* rule 6 can match eol */
5556 YY_RULE_SETUP
5557 SKIP;
5558         YY_BREAK
5559 case YY_STATE_EOF(INCOMMENT):
5560 FAIL("EOF in comment.");
5561         YY_BREAK
5562
5563 case 7:
5564 YY_RULE_SETUP
5565 LEAVE;
5566         YY_BREAK
5567 case 8:
5568 case 9:
5569 /* rule 9 can match eol */
5570 YY_RULE_SETUP
5571 SKIP;
5572         YY_BREAK
5573 case YY_STATE_EOF(INPI):
5574 FAIL("EOF in PI (processing instruction).");
5575         YY_BREAK
5576
5577 /* SPACES: skipped uniformly */
5578 case 10:
5579 /* rule 10 can match eol */
5580 YY_RULE_SETUP
5581 SKIP;
5582         YY_BREAK
5583 /* PROLOG: determine root element and process it. */
5584
5585 case 11:
5586 /* rule 11 can match eol */
5587 YY_RULE_SETUP
5588 SET(DOCTYPE); 
5589         YY_BREAK
5590 case 12:
5591 /* rule 12 can match eol */
5592 YY_RULE_SETUP
5593 FAIL("Bad declaration %s.",surf_parse_text);
5594         YY_BREAK
5595
5596 case 13:
5597 /* rule 13 can match eol */
5598 YY_RULE_SETUP
5599 SET(ROOT_surfxml_platform);
5600         YY_BREAK
5601 case 14:
5602 /* rule 14 can match eol */
5603 YY_RULE_SETUP
5604 FAIL("Bad declaration %s.",surf_parse_text);
5605         YY_BREAK
5606 case 15:
5607 YY_RULE_SETUP
5608 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5609         YY_BREAK
5610 case YY_STATE_EOF(PROLOG):
5611 case YY_STATE_EOF(DOCTYPE):
5612 FAIL("EOF in prolog.");
5613         YY_BREAK
5614
5615 /* RULES DERIVED FROM DTD. */
5616 /* <!-- Small DTD for SURF based tools. -->  */
5617 case 16:
5618 /* rule 16 can match eol */
5619 YY_RULE_SETUP
5620 FAIL("Starting tag <platform> is not allowed here.");
5621         YY_BREAK
5622 case 17:
5623 /* rule 17 can match eol */
5624 YY_RULE_SETUP
5625 {
5626   AX_surfxml_platform_version = 1;
5627   surfxml_platform_version_isset = 0;
5628   ENTER(AL_surfxml_platform); pushbuffer(0);
5629   }
5630         YY_BREAK
5631
5632 case 18:
5633 /* rule 18 can match eol */
5634 YY_RULE_SETUP
5635 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);
5636         YY_BREAK
5637 case 19:
5638 /* rule 19 can match eol */
5639 YY_RULE_SETUP
5640 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);
5641         YY_BREAK
5642 case 20:
5643 YY_RULE_SETUP
5644 {
5645   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5646  }
5647         YY_BREAK
5648 case 21:
5649 YY_RULE_SETUP
5650 {
5651   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5652   switch (YY_START) {
5653    case ROOT_surfxml_platform: SET(EPILOG); break;
5654   }
5655  }
5656         YY_BREAK
5657 case 22:
5658 YY_RULE_SETUP
5659 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5660         YY_BREAK
5661 case 23:
5662 YY_RULE_SETUP
5663 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5664         YY_BREAK
5665 case YY_STATE_EOF(AL_surfxml_platform):
5666 FAIL("EOF in attribute list of `platform' element.");
5667         YY_BREAK
5668
5669 case 24:
5670 /* rule 24 can match eol */
5671 YY_RULE_SETUP
5672 {
5673   LEAVE;
5674   ETag_surfxml_platform();
5675   popbuffer(); /* attribute */
5676   switch (YY_START) {
5677    case ROOT_surfxml_platform: SET(EPILOG); break;
5678   }
5679  }
5680         YY_BREAK
5681 case 25:
5682 /* rule 25 can match eol */
5683 YY_RULE_SETUP
5684 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5685         YY_BREAK
5686 case 26:
5687 YY_RULE_SETUP
5688 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5689         YY_BREAK
5690 case YY_STATE_EOF(S_surfxml_platform_8):
5691 case YY_STATE_EOF(S_surfxml_platform_1):
5692 case YY_STATE_EOF(S_surfxml_platform_3):
5693 case YY_STATE_EOF(S_surfxml_platform):
5694 case YY_STATE_EOF(S_surfxml_platform_4):
5695 case YY_STATE_EOF(S_surfxml_platform_6):
5696 case YY_STATE_EOF(E_surfxml_platform):
5697 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5698         YY_BREAK
5699
5700 case 27:
5701 /* rule 27 can match eol */
5702 YY_RULE_SETUP
5703 FAIL("Starting tag <include> is not allowed here.");
5704         YY_BREAK
5705 case 28:
5706 /* rule 28 can match eol */
5707 YY_RULE_SETUP
5708 {
5709   AX_surfxml_include_file = 0;
5710   surfxml_include_file_isset = 0;
5711   ENTER(AL_surfxml_include); pushbuffer(0);
5712   }
5713         YY_BREAK
5714
5715 case 29:
5716 /* rule 29 can match eol */
5717 YY_RULE_SETUP
5718 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);
5719         YY_BREAK
5720 case 30:
5721 /* rule 30 can match eol */
5722 YY_RULE_SETUP
5723 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);
5724         YY_BREAK
5725 case 31:
5726 YY_RULE_SETUP
5727 {
5728   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5729   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5730  }
5731         YY_BREAK
5732 case 32:
5733 YY_RULE_SETUP
5734 {
5735   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5736   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5737   switch (YY_START) {
5738    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5739    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5740    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5741    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5742   }
5743  }
5744         YY_BREAK
5745 case 33:
5746 YY_RULE_SETUP
5747 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5748         YY_BREAK
5749 case 34:
5750 YY_RULE_SETUP
5751 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5752         YY_BREAK
5753 case YY_STATE_EOF(AL_surfxml_include):
5754 FAIL("EOF in attribute list of `include' element.");
5755         YY_BREAK
5756
5757 case 35:
5758 /* rule 35 can match eol */
5759 YY_RULE_SETUP
5760 {
5761   LEAVE;
5762   ETag_surfxml_include();
5763   popbuffer(); /* attribute */
5764   switch (YY_START) {
5765    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5766    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5767    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5768    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5769   }
5770  }
5771         YY_BREAK
5772 case 36:
5773 /* rule 36 can match eol */
5774 YY_RULE_SETUP
5775 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5776         YY_BREAK
5777 case 37:
5778 YY_RULE_SETUP
5779 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5780         YY_BREAK
5781 case YY_STATE_EOF(E_surfxml_include):
5782 case YY_STATE_EOF(S_surfxml_include):
5783 case YY_STATE_EOF(S_surfxml_include_2):
5784 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5785         YY_BREAK
5786
5787 case 38:
5788 /* rule 38 can match eol */
5789 YY_RULE_SETUP
5790 FAIL("Starting tag <trace> is not allowed here.");
5791         YY_BREAK
5792 case 39:
5793 /* rule 39 can match eol */
5794 YY_RULE_SETUP
5795 {
5796   AX_surfxml_trace_id = 0;
5797   surfxml_trace_id_isset = 0;
5798   AX_surfxml_trace_file = 0;
5799   surfxml_trace_file_isset = 0;
5800   AX_surfxml_trace_periodicity = 0;
5801   surfxml_trace_periodicity_isset = 0;
5802   ENTER(AL_surfxml_trace); pushbuffer(0);
5803   }
5804         YY_BREAK
5805
5806 case 40:
5807 /* rule 40 can match eol */
5808 YY_RULE_SETUP
5809 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);
5810         YY_BREAK
5811 case 41:
5812 /* rule 41 can match eol */
5813 YY_RULE_SETUP
5814 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);
5815         YY_BREAK
5816 case 42:
5817 /* rule 42 can match eol */
5818 YY_RULE_SETUP
5819 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);
5820         YY_BREAK
5821 case 43:
5822 /* rule 43 can match eol */
5823 YY_RULE_SETUP
5824 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);
5825         YY_BREAK
5826 case 44:
5827 /* rule 44 can match eol */
5828 YY_RULE_SETUP
5829 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);
5830         YY_BREAK
5831 case 45:
5832 /* rule 45 can match eol */
5833 YY_RULE_SETUP
5834 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);
5835         YY_BREAK
5836 case 46:
5837 YY_RULE_SETUP
5838 {
5839   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5840   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5841   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5842  }
5843         YY_BREAK
5844 case 47:
5845 YY_RULE_SETUP
5846 {
5847   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5848   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5849   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5850   switch (YY_START) {
5851    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5852    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5853    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5854    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5855    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5856    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5857    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5858   }
5859  }
5860         YY_BREAK
5861 case 48:
5862 YY_RULE_SETUP
5863 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5864         YY_BREAK
5865 case 49:
5866 YY_RULE_SETUP
5867 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5868         YY_BREAK
5869 case YY_STATE_EOF(AL_surfxml_trace):
5870 FAIL("EOF in attribute list of `trace' element.");
5871         YY_BREAK
5872
5873 case 50:
5874 /* rule 50 can match eol */
5875 YY_RULE_SETUP
5876 {
5877   LEAVE;
5878   BUFFERDONE;
5879   ETag_surfxml_trace();
5880   surfxml_pcdata_ix = popbuffer();
5881   popbuffer(); /* attribute */
5882   switch (YY_START) {
5883    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5884    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5885    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5886    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5887    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5888    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5889    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5890   }
5891  }
5892         YY_BREAK
5893 case 51:
5894 /* rule 51 can match eol */
5895 YY_RULE_SETUP
5896 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5897         YY_BREAK
5898 case YY_STATE_EOF(IN_trace):
5899 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5900         YY_BREAK
5901
5902 case 52:
5903 /* rule 52 can match eol */
5904 YY_RULE_SETUP
5905 FAIL("Starting tag <random> is not allowed here.");
5906         YY_BREAK
5907 case 53:
5908 /* rule 53 can match eol */
5909 YY_RULE_SETUP
5910 {
5911   AX_surfxml_random_id = 0;
5912   surfxml_random_id_isset = 0;
5913   AX_surfxml_random_min = 0;
5914   surfxml_random_min_isset = 0;
5915   AX_surfxml_random_max = 0;
5916   surfxml_random_max_isset = 0;
5917   AX_surfxml_random_mean = 0;
5918   surfxml_random_mean_isset = 0;
5919   AX_surfxml_random_std___deviation = 0;
5920   surfxml_random_std___deviation_isset = 0;
5921   AX_surfxml_random_seed = 5;
5922   surfxml_random_seed_isset = 0;
5923   AX_surfxml_random_radical = 0;
5924   surfxml_random_radical_isset = 0;
5925   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5926   surfxml_random_generator_isset = 0;
5927   ENTER(AL_surfxml_random); pushbuffer(0);
5928   }
5929         YY_BREAK
5930
5931 case 54:
5932 /* rule 54 can match eol */
5933 YY_RULE_SETUP
5934 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);
5935         YY_BREAK
5936 case 55:
5937 /* rule 55 can match eol */
5938 YY_RULE_SETUP
5939 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);
5940         YY_BREAK
5941 case 56:
5942 /* rule 56 can match eol */
5943 YY_RULE_SETUP
5944 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);
5945         YY_BREAK
5946 case 57:
5947 /* rule 57 can match eol */
5948 YY_RULE_SETUP
5949 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);
5950         YY_BREAK
5951 case 58:
5952 /* rule 58 can match eol */
5953 YY_RULE_SETUP
5954 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);
5955         YY_BREAK
5956 case 59:
5957 /* rule 59 can match eol */
5958 YY_RULE_SETUP
5959 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);
5960         YY_BREAK
5961 case 60:
5962 /* rule 60 can match eol */
5963 YY_RULE_SETUP
5964 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);
5965         YY_BREAK
5966 case 61:
5967 /* rule 61 can match eol */
5968 YY_RULE_SETUP
5969 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);
5970         YY_BREAK
5971 case 62:
5972 /* rule 62 can match eol */
5973 YY_RULE_SETUP
5974 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);
5975         YY_BREAK
5976 case 63:
5977 /* rule 63 can match eol */
5978 YY_RULE_SETUP
5979 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);
5980         YY_BREAK
5981 case 64:
5982 /* rule 64 can match eol */
5983 YY_RULE_SETUP
5984 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);
5985         YY_BREAK
5986 case 65:
5987 /* rule 65 can match eol */
5988 YY_RULE_SETUP
5989 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);
5990         YY_BREAK
5991 case 66:
5992 /* rule 66 can match eol */
5993 YY_RULE_SETUP
5994 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);
5995         YY_BREAK
5996 case 67:
5997 /* rule 67 can match eol */
5998 YY_RULE_SETUP
5999 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);
6000         YY_BREAK
6001 case 68:
6002 /* rule 68 can match eol */
6003 case 69:
6004 /* rule 69 can match eol */
6005 YY_RULE_SETUP
6006 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6007         YY_BREAK
6008 case 70:
6009 /* rule 70 can match eol */
6010 case 71:
6011 /* rule 71 can match eol */
6012 YY_RULE_SETUP
6013 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6014         YY_BREAK
6015 case 72:
6016 /* rule 72 can match eol */
6017 case 73:
6018 /* rule 73 can match eol */
6019 YY_RULE_SETUP
6020 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6021         YY_BREAK
6022 case 74:
6023 /* rule 74 can match eol */
6024 case 75:
6025 /* rule 75 can match eol */
6026 YY_RULE_SETUP
6027 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6028         YY_BREAK
6029 case 76:
6030 YY_RULE_SETUP
6031 {
6032   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6033   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6034   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6035   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6036   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6037   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6038  }
6039         YY_BREAK
6040 case 77:
6041 YY_RULE_SETUP
6042 {
6043   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6044   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6045   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6046   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6047   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6048   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6049   switch (YY_START) {
6050    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6051   }
6052  }
6053         YY_BREAK
6054 case 78:
6055 YY_RULE_SETUP
6056 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6057         YY_BREAK
6058 case 79:
6059 YY_RULE_SETUP
6060 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6061         YY_BREAK
6062 case YY_STATE_EOF(AL_surfxml_random):
6063 FAIL("EOF in attribute list of `random' element.");
6064         YY_BREAK
6065
6066 case 80:
6067 /* rule 80 can match eol */
6068 YY_RULE_SETUP
6069 {
6070   LEAVE;
6071   ETag_surfxml_random();
6072   popbuffer(); /* attribute */
6073   switch (YY_START) {
6074    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6075   }
6076  }
6077         YY_BREAK
6078 case 81:
6079 /* rule 81 can match eol */
6080 YY_RULE_SETUP
6081 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6082         YY_BREAK
6083 case 82:
6084 YY_RULE_SETUP
6085 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6086         YY_BREAK
6087 case YY_STATE_EOF(E_surfxml_random):
6088 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6089         YY_BREAK
6090
6091 case 83:
6092 /* rule 83 can match eol */
6093 YY_RULE_SETUP
6094 FAIL("Starting tag <trace_connect> is not allowed here.");
6095         YY_BREAK
6096 case 84:
6097 /* rule 84 can match eol */
6098 YY_RULE_SETUP
6099 {
6100   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6101   surfxml_trace___connect_kind_isset = 0;
6102   AX_surfxml_trace___connect_trace = 0;
6103   surfxml_trace___connect_trace_isset = 0;
6104   AX_surfxml_trace___connect_element = 0;
6105   surfxml_trace___connect_element_isset = 0;
6106   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6107   }
6108         YY_BREAK
6109
6110 case 85:
6111 /* rule 85 can match eol */
6112 case 86:
6113 /* rule 86 can match eol */
6114 YY_RULE_SETUP
6115 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6116         YY_BREAK
6117 case 87:
6118 /* rule 87 can match eol */
6119 case 88:
6120 /* rule 88 can match eol */
6121 YY_RULE_SETUP
6122 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6123         YY_BREAK
6124 case 89:
6125 /* rule 89 can match eol */
6126 case 90:
6127 /* rule 90 can match eol */
6128 YY_RULE_SETUP
6129 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6130         YY_BREAK
6131 case 91:
6132 /* rule 91 can match eol */
6133 case 92:
6134 /* rule 92 can match eol */
6135 YY_RULE_SETUP
6136 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6137         YY_BREAK
6138 case 93:
6139 /* rule 93 can match eol */
6140 case 94:
6141 /* rule 94 can match eol */
6142 YY_RULE_SETUP
6143 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6144         YY_BREAK
6145 case 95:
6146 /* rule 95 can match eol */
6147 YY_RULE_SETUP
6148 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);
6149         YY_BREAK
6150 case 96:
6151 /* rule 96 can match eol */
6152 YY_RULE_SETUP
6153 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);
6154         YY_BREAK
6155 case 97:
6156 /* rule 97 can match eol */
6157 YY_RULE_SETUP
6158 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);
6159         YY_BREAK
6160 case 98:
6161 /* rule 98 can match eol */
6162 YY_RULE_SETUP
6163 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);
6164         YY_BREAK
6165 case 99:
6166 YY_RULE_SETUP
6167 {
6168   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6169   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6170   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6171  }
6172         YY_BREAK
6173 case 100:
6174 YY_RULE_SETUP
6175 {
6176   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6177   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6178   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6179   switch (YY_START) {
6180    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6181    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6182    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6183    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6184    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6185    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6186    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6187   }
6188  }
6189         YY_BREAK
6190 case 101:
6191 YY_RULE_SETUP
6192 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6193         YY_BREAK
6194 case 102:
6195 YY_RULE_SETUP
6196 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6197         YY_BREAK
6198 case YY_STATE_EOF(AL_surfxml_trace___connect):
6199 FAIL("EOF in attribute list of `trace_connect' element.");
6200         YY_BREAK
6201
6202 case 103:
6203 /* rule 103 can match eol */
6204 YY_RULE_SETUP
6205 {
6206   LEAVE;
6207   ETag_surfxml_trace___connect();
6208   popbuffer(); /* attribute */
6209   switch (YY_START) {
6210    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6211    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6212    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6213    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6214    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6215    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6216    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6217   }
6218  }
6219         YY_BREAK
6220 case 104:
6221 /* rule 104 can match eol */
6222 YY_RULE_SETUP
6223 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6224         YY_BREAK
6225 case 105:
6226 YY_RULE_SETUP
6227 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6228         YY_BREAK
6229 case YY_STATE_EOF(E_surfxml_trace___connect):
6230 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6231         YY_BREAK
6232
6233 case 106:
6234 /* rule 106 can match eol */
6235 YY_RULE_SETUP
6236 FAIL("Starting tag <AS> is not allowed here.");
6237         YY_BREAK
6238 case 107:
6239 /* rule 107 can match eol */
6240 YY_RULE_SETUP
6241 {
6242   AX_surfxml_AS_id = 0;
6243   surfxml_AS_id_isset = 0;
6244   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6245   surfxml_AS_routing_isset = 0;
6246   ENTER(AL_surfxml_AS); pushbuffer(0);
6247   }
6248         YY_BREAK
6249
6250 case 108:
6251 /* rule 108 can match eol */
6252 YY_RULE_SETUP
6253 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);
6254         YY_BREAK
6255 case 109:
6256 /* rule 109 can match eol */
6257 YY_RULE_SETUP
6258 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);
6259         YY_BREAK
6260 case 110:
6261 /* rule 110 can match eol */
6262 case 111:
6263 /* rule 111 can match eol */
6264 YY_RULE_SETUP
6265 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6266         YY_BREAK
6267 case 112:
6268 /* rule 112 can match eol */
6269 case 113:
6270 /* rule 113 can match eol */
6271 YY_RULE_SETUP
6272 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6273         YY_BREAK
6274 case 114:
6275 /* rule 114 can match eol */
6276 case 115:
6277 /* rule 115 can match eol */
6278 YY_RULE_SETUP
6279 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6280         YY_BREAK
6281 case 116:
6282 /* rule 116 can match eol */
6283 case 117:
6284 /* rule 117 can match eol */
6285 YY_RULE_SETUP
6286 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6287         YY_BREAK
6288 case 118:
6289 /* rule 118 can match eol */
6290 case 119:
6291 /* rule 119 can match eol */
6292 YY_RULE_SETUP
6293 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6294         YY_BREAK
6295 case 120:
6296 /* rule 120 can match eol */
6297 case 121:
6298 /* rule 121 can match eol */
6299 YY_RULE_SETUP
6300 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6301         YY_BREAK
6302 case 122:
6303 /* rule 122 can match eol */
6304 case 123:
6305 /* rule 123 can match eol */
6306 YY_RULE_SETUP
6307 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6308         YY_BREAK
6309 case 124:
6310 YY_RULE_SETUP
6311 {
6312   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6313   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6314  }
6315         YY_BREAK
6316 case 125:
6317 YY_RULE_SETUP
6318 {
6319   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6320   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6321   switch (YY_START) {
6322    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6323    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6324    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6325   }
6326  }
6327         YY_BREAK
6328 case 126:
6329 YY_RULE_SETUP
6330 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6331         YY_BREAK
6332 case 127:
6333 YY_RULE_SETUP
6334 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6335         YY_BREAK
6336 case YY_STATE_EOF(AL_surfxml_AS):
6337 FAIL("EOF in attribute list of `AS' element.");
6338         YY_BREAK
6339
6340 case 128:
6341 /* rule 128 can match eol */
6342 YY_RULE_SETUP
6343 {
6344   LEAVE;
6345   ETag_surfxml_AS();
6346   popbuffer(); /* attribute */
6347   switch (YY_START) {
6348    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6349    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6350    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6351   }
6352  }
6353         YY_BREAK
6354 case 129:
6355 /* rule 129 can match eol */
6356 YY_RULE_SETUP
6357 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6358         YY_BREAK
6359 case 130:
6360 YY_RULE_SETUP
6361 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6362         YY_BREAK
6363 case YY_STATE_EOF(S_surfxml_AS_12):
6364 case YY_STATE_EOF(S_surfxml_AS_9):
6365 case YY_STATE_EOF(S_surfxml_AS_1):
6366 case YY_STATE_EOF(S_surfxml_AS_7):
6367 case YY_STATE_EOF(S_surfxml_AS_11):
6368 case YY_STATE_EOF(S_surfxml_AS_14):
6369 case YY_STATE_EOF(S_surfxml_AS_6):
6370 case YY_STATE_EOF(E_surfxml_AS):
6371 case YY_STATE_EOF(S_surfxml_AS_16):
6372 case YY_STATE_EOF(S_surfxml_AS_3):
6373 case YY_STATE_EOF(S_surfxml_AS):
6374 case YY_STATE_EOF(S_surfxml_AS_4):
6375 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6376         YY_BREAK
6377
6378 case 131:
6379 /* rule 131 can match eol */
6380 YY_RULE_SETUP
6381 FAIL("Starting tag <storage_type> is not allowed here.");
6382         YY_BREAK
6383 case 132:
6384 /* rule 132 can match eol */
6385 YY_RULE_SETUP
6386 {
6387   AX_surfxml_storage___type_id = 0;
6388   surfxml_storage___type_id_isset = 0;
6389   AX_surfxml_storage___type_model = 0;
6390   surfxml_storage___type_model_isset = 0;
6391   AX_surfxml_storage___type_size = 0;
6392   surfxml_storage___type_size_isset = 0;
6393   AX_surfxml_storage___type_content = 0;
6394   surfxml_storage___type_content_isset = 0;
6395   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6396   }
6397         YY_BREAK
6398
6399 case 133:
6400 /* rule 133 can match eol */
6401 YY_RULE_SETUP
6402 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);
6403         YY_BREAK
6404 case 134:
6405 /* rule 134 can match eol */
6406 YY_RULE_SETUP
6407 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);
6408         YY_BREAK
6409 case 135:
6410 /* rule 135 can match eol */
6411 YY_RULE_SETUP
6412 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);
6413         YY_BREAK
6414 case 136:
6415 /* rule 136 can match eol */
6416 YY_RULE_SETUP
6417 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);
6418         YY_BREAK
6419 case 137:
6420 /* rule 137 can match eol */
6421 YY_RULE_SETUP
6422 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);
6423         YY_BREAK
6424 case 138:
6425 /* rule 138 can match eol */
6426 YY_RULE_SETUP
6427 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);
6428         YY_BREAK
6429 case 139:
6430 /* rule 139 can match eol */
6431 YY_RULE_SETUP
6432 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);
6433         YY_BREAK
6434 case 140:
6435 /* rule 140 can match eol */
6436 YY_RULE_SETUP
6437 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);
6438         YY_BREAK
6439 case 141:
6440 YY_RULE_SETUP
6441 {
6442   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6443   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6444   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6445   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6446  }
6447         YY_BREAK
6448 case 142:
6449 YY_RULE_SETUP
6450 {
6451   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6452   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6453   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6454   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6455   switch (YY_START) {
6456    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6457    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6458   }
6459  }
6460         YY_BREAK
6461 case 143:
6462 YY_RULE_SETUP
6463 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6464         YY_BREAK
6465 case 144:
6466 YY_RULE_SETUP
6467 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6468         YY_BREAK
6469 case YY_STATE_EOF(AL_surfxml_storage___type):
6470 FAIL("EOF in attribute list of `storage_type' element.");
6471         YY_BREAK
6472
6473 case 145:
6474 /* rule 145 can match eol */
6475 YY_RULE_SETUP
6476 {
6477   LEAVE;
6478   ETag_surfxml_storage___type();
6479   popbuffer(); /* attribute */
6480   switch (YY_START) {
6481    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6482    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6483   }
6484  }
6485         YY_BREAK
6486 case 146:
6487 /* rule 146 can match eol */
6488 YY_RULE_SETUP
6489 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6490         YY_BREAK
6491 case 147:
6492 YY_RULE_SETUP
6493 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6494         YY_BREAK
6495 case YY_STATE_EOF(E_surfxml_storage___type):
6496 case YY_STATE_EOF(S_surfxml_storage___type):
6497 case YY_STATE_EOF(S_surfxml_storage___type_2):
6498 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6499         YY_BREAK
6500
6501 case 148:
6502 /* rule 148 can match eol */
6503 YY_RULE_SETUP
6504 FAIL("Starting tag <storage> is not allowed here.");
6505         YY_BREAK
6506 case 149:
6507 /* rule 149 can match eol */
6508 YY_RULE_SETUP
6509 {
6510   AX_surfxml_storage_id = 0;
6511   surfxml_storage_id_isset = 0;
6512   AX_surfxml_storage_typeId = 0;
6513   surfxml_storage_typeId_isset = 0;
6514   AX_surfxml_storage_content = 0;
6515   surfxml_storage_content_isset = 0;
6516   ENTER(AL_surfxml_storage); pushbuffer(0);
6517   }
6518         YY_BREAK
6519
6520 case 150:
6521 /* rule 150 can match eol */
6522 YY_RULE_SETUP
6523 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);
6524         YY_BREAK
6525 case 151:
6526 /* rule 151 can match eol */
6527 YY_RULE_SETUP
6528 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);
6529         YY_BREAK
6530 case 152:
6531 /* rule 152 can match eol */
6532 YY_RULE_SETUP
6533 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);
6534         YY_BREAK
6535 case 153:
6536 /* rule 153 can match eol */
6537 YY_RULE_SETUP
6538 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);
6539         YY_BREAK
6540 case 154:
6541 /* rule 154 can match eol */
6542 YY_RULE_SETUP
6543 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);
6544         YY_BREAK
6545 case 155:
6546 /* rule 155 can match eol */
6547 YY_RULE_SETUP
6548 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);
6549         YY_BREAK
6550 case 156:
6551 YY_RULE_SETUP
6552 {
6553   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6554   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6555   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6556  }
6557         YY_BREAK
6558 case 157:
6559 YY_RULE_SETUP
6560 {
6561   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6562   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6563   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6564   switch (YY_START) {
6565    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6566    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6567   }
6568  }
6569         YY_BREAK
6570 case 158:
6571 YY_RULE_SETUP
6572 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6573         YY_BREAK
6574 case 159:
6575 YY_RULE_SETUP
6576 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6577         YY_BREAK
6578 case YY_STATE_EOF(AL_surfxml_storage):
6579 FAIL("EOF in attribute list of `storage' element.");
6580         YY_BREAK
6581
6582 case 160:
6583 /* rule 160 can match eol */
6584 YY_RULE_SETUP
6585 {
6586   LEAVE;
6587   ETag_surfxml_storage();
6588   popbuffer(); /* attribute */
6589   switch (YY_START) {
6590    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6591    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6592   }
6593  }
6594         YY_BREAK
6595 case 161:
6596 /* rule 161 can match eol */
6597 YY_RULE_SETUP
6598 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6599         YY_BREAK
6600 case 162:
6601 YY_RULE_SETUP
6602 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6603         YY_BREAK
6604 case YY_STATE_EOF(E_surfxml_storage):
6605 case YY_STATE_EOF(S_surfxml_storage):
6606 case YY_STATE_EOF(S_surfxml_storage_2):
6607 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6608         YY_BREAK
6609
6610 case 163:
6611 /* rule 163 can match eol */
6612 YY_RULE_SETUP
6613 FAIL("Starting tag <mount> is not allowed here.");
6614         YY_BREAK
6615 case 164:
6616 /* rule 164 can match eol */
6617 YY_RULE_SETUP
6618 {
6619   AX_surfxml_mount_id = 0;
6620   surfxml_mount_id_isset = 0;
6621   AX_surfxml_mount_name = 0;
6622   surfxml_mount_name_isset = 0;
6623   ENTER(AL_surfxml_mount); pushbuffer(0);
6624   }
6625         YY_BREAK
6626
6627 case 165:
6628 /* rule 165 can match eol */
6629 YY_RULE_SETUP
6630 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6631         YY_BREAK
6632 case 166:
6633 /* rule 166 can match eol */
6634 YY_RULE_SETUP
6635 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6636         YY_BREAK
6637 case 167:
6638 /* rule 167 can match eol */
6639 YY_RULE_SETUP
6640 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);
6641         YY_BREAK
6642 case 168:
6643 /* rule 168 can match eol */
6644 YY_RULE_SETUP
6645 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);
6646         YY_BREAK
6647 case 169:
6648 YY_RULE_SETUP
6649 {
6650   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6651   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6652   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6653  }
6654         YY_BREAK
6655 case 170:
6656 YY_RULE_SETUP
6657 {
6658   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6659   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6660   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6661   switch (YY_START) {
6662    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6663   }
6664  }
6665         YY_BREAK
6666 case 171:
6667 YY_RULE_SETUP
6668 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6669         YY_BREAK
6670 case 172:
6671 YY_RULE_SETUP
6672 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6673         YY_BREAK
6674 case YY_STATE_EOF(AL_surfxml_mount):
6675 FAIL("EOF in attribute list of `mount' element.");
6676         YY_BREAK
6677
6678 case 173:
6679 /* rule 173 can match eol */
6680 YY_RULE_SETUP
6681 {
6682   LEAVE;
6683   ETag_surfxml_mount();
6684   popbuffer(); /* attribute */
6685   switch (YY_START) {
6686    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6687   }
6688  }
6689         YY_BREAK
6690 case 174:
6691 /* rule 174 can match eol */
6692 YY_RULE_SETUP
6693 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6694         YY_BREAK
6695 case 175:
6696 YY_RULE_SETUP
6697 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6698         YY_BREAK
6699 case YY_STATE_EOF(E_surfxml_mount):
6700 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6701         YY_BREAK
6702
6703 case 176:
6704 /* rule 176 can match eol */
6705 YY_RULE_SETUP
6706 FAIL("Starting tag <mstorage> is not allowed here.");
6707         YY_BREAK
6708 case 177:
6709 /* rule 177 can match eol */
6710 YY_RULE_SETUP
6711 {
6712   AX_surfxml_mstorage_typeId = 0;
6713   surfxml_mstorage_typeId_isset = 0;
6714   AX_surfxml_mstorage_name = 0;
6715   surfxml_mstorage_name_isset = 0;
6716   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6717   }
6718         YY_BREAK
6719
6720 case 178:
6721 /* rule 178 can match eol */
6722 YY_RULE_SETUP
6723 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);
6724         YY_BREAK
6725 case 179:
6726 /* rule 179 can match eol */
6727 YY_RULE_SETUP
6728 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);
6729         YY_BREAK
6730 case 180:
6731 /* rule 180 can match eol */
6732 YY_RULE_SETUP
6733 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);
6734         YY_BREAK
6735 case 181:
6736 /* rule 181 can match eol */
6737 YY_RULE_SETUP
6738 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);
6739         YY_BREAK
6740 case 182:
6741 YY_RULE_SETUP
6742 {
6743   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6744   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6745   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6746  }
6747         YY_BREAK
6748 case 183:
6749 YY_RULE_SETUP
6750 {
6751   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6752   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6753   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6754   switch (YY_START) {
6755    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6756   }
6757  }
6758         YY_BREAK
6759 case 184:
6760 YY_RULE_SETUP
6761 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6762         YY_BREAK
6763 case 185:
6764 YY_RULE_SETUP
6765 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6766         YY_BREAK
6767 case YY_STATE_EOF(AL_surfxml_mstorage):
6768 FAIL("EOF in attribute list of `mstorage' element.");
6769         YY_BREAK
6770
6771 case 186:
6772 /* rule 186 can match eol */
6773 YY_RULE_SETUP
6774 {
6775   LEAVE;
6776   ETag_surfxml_mstorage();
6777   popbuffer(); /* attribute */
6778   switch (YY_START) {
6779    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6780   }
6781  }
6782         YY_BREAK
6783 case 187:
6784 /* rule 187 can match eol */
6785 YY_RULE_SETUP
6786 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6787         YY_BREAK
6788 case 188:
6789 YY_RULE_SETUP
6790 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6791         YY_BREAK
6792 case YY_STATE_EOF(E_surfxml_mstorage):
6793 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6794         YY_BREAK
6795
6796 case 189:
6797 /* rule 189 can match eol */
6798 YY_RULE_SETUP
6799 FAIL("Starting tag <host> is not allowed here.");
6800         YY_BREAK
6801 case 190:
6802 /* rule 190 can match eol */
6803 YY_RULE_SETUP
6804 {
6805   AX_surfxml_host_id = 0;
6806   surfxml_host_id_isset = 0;
6807   AX_surfxml_host_power = 0;
6808   surfxml_host_power_isset = 0;
6809   AX_surfxml_host_core = 16;
6810   surfxml_host_core_isset = 0;
6811   AX_surfxml_host_availability = 18;
6812   surfxml_host_availability_isset = 0;
6813   AX_surfxml_host_availability___file = 0;
6814   surfxml_host_availability___file_isset = 0;
6815   AX_surfxml_host_state = A_surfxml_host_state_ON;
6816   surfxml_host_state_isset = 0;
6817   AX_surfxml_host_state___file = 0;
6818   surfxml_host_state___file_isset = 0;
6819   AX_surfxml_host_coordinates = 0;
6820   surfxml_host_coordinates_isset = 0;
6821   ENTER(AL_surfxml_host); pushbuffer(0);
6822   }
6823         YY_BREAK
6824
6825 case 191:
6826 /* rule 191 can match eol */
6827 YY_RULE_SETUP
6828 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);
6829         YY_BREAK
6830 case 192:
6831 /* rule 192 can match eol */
6832 YY_RULE_SETUP
6833 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);
6834         YY_BREAK
6835 case 193:
6836 /* rule 193 can match eol */
6837 YY_RULE_SETUP
6838 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);
6839         YY_BREAK
6840 case 194:
6841 /* rule 194 can match eol */
6842 YY_RULE_SETUP
6843 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);
6844         YY_BREAK
6845 case 195:
6846 /* rule 195 can match eol */
6847 YY_RULE_SETUP
6848 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);
6849         YY_BREAK
6850 case 196:
6851 /* rule 196 can match eol */
6852 YY_RULE_SETUP
6853 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);
6854         YY_BREAK
6855 case 197:
6856 /* rule 197 can match eol */
6857 YY_RULE_SETUP
6858 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);
6859         YY_BREAK
6860 case 198:
6861 /* rule 198 can match eol */
6862 YY_RULE_SETUP
6863 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);
6864         YY_BREAK
6865 case 199:
6866 /* rule 199 can match eol */
6867 YY_RULE_SETUP
6868 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);
6869         YY_BREAK
6870 case 200:
6871 /* rule 200 can match eol */
6872 YY_RULE_SETUP
6873 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);
6874         YY_BREAK
6875 case 201:
6876 /* rule 201 can match eol */
6877 case 202:
6878 /* rule 202 can match eol */
6879 YY_RULE_SETUP
6880 A_surfxml_host_state = A_surfxml_host_state_ON;
6881         YY_BREAK
6882 case 203:
6883 /* rule 203 can match eol */
6884 case 204:
6885 /* rule 204 can match eol */
6886 YY_RULE_SETUP
6887 A_surfxml_host_state = A_surfxml_host_state_OFF;
6888         YY_BREAK
6889 case 205:
6890 /* rule 205 can match eol */
6891 YY_RULE_SETUP
6892 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);
6893         YY_BREAK
6894 case 206:
6895 /* rule 206 can match eol */
6896 YY_RULE_SETUP
6897 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);
6898         YY_BREAK
6899 case 207:
6900 /* rule 207 can match eol */
6901 YY_RULE_SETUP
6902 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);
6903         YY_BREAK
6904 case 208:
6905 /* rule 208 can match eol */
6906 YY_RULE_SETUP
6907 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);
6908         YY_BREAK
6909 case 209:
6910 YY_RULE_SETUP
6911 {
6912   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6913   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6914   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6915  }
6916         YY_BREAK
6917 case 210:
6918 YY_RULE_SETUP
6919 {
6920   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6921   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6922   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6923   switch (YY_START) {
6924    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6925   }
6926  }
6927         YY_BREAK
6928 case 211:
6929 YY_RULE_SETUP
6930 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6931         YY_BREAK
6932 case 212:
6933 YY_RULE_SETUP
6934 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6935         YY_BREAK
6936 case YY_STATE_EOF(AL_surfxml_host):
6937 FAIL("EOF in attribute list of `host' element.");
6938         YY_BREAK
6939
6940 case 213:
6941 /* rule 213 can match eol */
6942 YY_RULE_SETUP
6943 {
6944   LEAVE;
6945   ETag_surfxml_host();
6946   popbuffer(); /* attribute */
6947   switch (YY_START) {
6948    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6949   }
6950  }
6951         YY_BREAK
6952 case 214:
6953 /* rule 214 can match eol */
6954 YY_RULE_SETUP
6955 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6956         YY_BREAK
6957 case 215:
6958 YY_RULE_SETUP
6959 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6960         YY_BREAK
6961 case YY_STATE_EOF(S_surfxml_host):
6962 case YY_STATE_EOF(E_surfxml_host):
6963 case YY_STATE_EOF(S_surfxml_host_2):
6964 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6965         YY_BREAK
6966
6967 case 216:
6968 /* rule 216 can match eol */
6969 YY_RULE_SETUP
6970 FAIL("Starting tag <gpu> is not allowed here.");
6971         YY_BREAK
6972 case 217:
6973 /* rule 217 can match eol */
6974 YY_RULE_SETUP
6975 {
6976   AX_surfxml_gpu_name = 0;
6977   surfxml_gpu_name_isset = 0;
6978   ENTER(AL_surfxml_gpu); pushbuffer(0);
6979   }
6980         YY_BREAK
6981
6982 case 218:
6983 /* rule 218 can match eol */
6984 YY_RULE_SETUP
6985 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);
6986         YY_BREAK
6987 case 219:
6988 /* rule 219 can match eol */
6989 YY_RULE_SETUP
6990 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);
6991         YY_BREAK
6992 case 220:
6993 YY_RULE_SETUP
6994 {
6995   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6996   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6997  }
6998         YY_BREAK
6999 case 221:
7000 YY_RULE_SETUP
7001 {
7002   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7003   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7004   switch (YY_START) {
7005    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7006   }
7007  }
7008         YY_BREAK
7009 case 222:
7010 YY_RULE_SETUP
7011 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7012         YY_BREAK
7013 case 223:
7014 YY_RULE_SETUP
7015 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7016         YY_BREAK
7017 case YY_STATE_EOF(AL_surfxml_gpu):
7018 FAIL("EOF in attribute list of `gpu' element.");
7019         YY_BREAK
7020
7021 case 224:
7022 /* rule 224 can match eol */
7023 YY_RULE_SETUP
7024 {
7025   LEAVE;
7026   ETag_surfxml_gpu();
7027   popbuffer(); /* attribute */
7028   switch (YY_START) {
7029    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7030   }
7031  }
7032         YY_BREAK
7033 case 225:
7034 /* rule 225 can match eol */
7035 YY_RULE_SETUP
7036 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7037         YY_BREAK
7038 case 226:
7039 YY_RULE_SETUP
7040 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7041         YY_BREAK
7042 case YY_STATE_EOF(E_surfxml_gpu):
7043 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7044         YY_BREAK
7045
7046 case 227:
7047 /* rule 227 can match eol */
7048 YY_RULE_SETUP
7049 FAIL("Starting tag <host_link> is not allowed here.");
7050         YY_BREAK
7051 case 228:
7052 /* rule 228 can match eol */
7053 YY_RULE_SETUP
7054 {
7055   AX_surfxml_host___link_id = 0;
7056   surfxml_host___link_id_isset = 0;
7057   AX_surfxml_host___link_up = 0;
7058   surfxml_host___link_up_isset = 0;
7059   AX_surfxml_host___link_down = 0;
7060   surfxml_host___link_down_isset = 0;
7061   ENTER(AL_surfxml_host___link); pushbuffer(0);
7062   }
7063         YY_BREAK
7064
7065 case 229:
7066 /* rule 229 can match eol */
7067 YY_RULE_SETUP
7068 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);
7069         YY_BREAK
7070 case 230:
7071 /* rule 230 can match eol */
7072 YY_RULE_SETUP
7073 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);
7074         YY_BREAK
7075 case 231:
7076 /* rule 231 can match eol */
7077 YY_RULE_SETUP
7078 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);
7079         YY_BREAK
7080 case 232:
7081 /* rule 232 can match eol */
7082 YY_RULE_SETUP
7083 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);
7084         YY_BREAK
7085 case 233:
7086 /* rule 233 can match eol */
7087 YY_RULE_SETUP
7088 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);
7089         YY_BREAK
7090 case 234:
7091 /* rule 234 can match eol */
7092 YY_RULE_SETUP
7093 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);
7094         YY_BREAK
7095 case 235:
7096 YY_RULE_SETUP
7097 {
7098   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7099   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7100   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7101   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7102  }
7103         YY_BREAK
7104 case 236:
7105 YY_RULE_SETUP
7106 {
7107   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7108   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7109   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7110   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7111   switch (YY_START) {
7112    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7113   }
7114  }
7115         YY_BREAK
7116 case 237:
7117 YY_RULE_SETUP
7118 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7119         YY_BREAK
7120 case 238:
7121 YY_RULE_SETUP
7122 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7123         YY_BREAK
7124 case YY_STATE_EOF(AL_surfxml_host___link):
7125 FAIL("EOF in attribute list of `host_link' element.");
7126         YY_BREAK
7127
7128 case 239:
7129 /* rule 239 can match eol */
7130 YY_RULE_SETUP
7131 {
7132   LEAVE;
7133   ETag_surfxml_host___link();
7134   popbuffer(); /* attribute */
7135   switch (YY_START) {
7136    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7137   }
7138  }
7139         YY_BREAK
7140 case 240:
7141 /* rule 240 can match eol */
7142 YY_RULE_SETUP
7143 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7144         YY_BREAK
7145 case 241:
7146 YY_RULE_SETUP
7147 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7148         YY_BREAK
7149 case YY_STATE_EOF(E_surfxml_host___link):
7150 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7151         YY_BREAK
7152
7153 case 242:
7154 /* rule 242 can match eol */
7155 YY_RULE_SETUP
7156 FAIL("Starting tag <cluster> is not allowed here.");
7157         YY_BREAK
7158 case 243:
7159 /* rule 243 can match eol */
7160 YY_RULE_SETUP
7161 {
7162   AX_surfxml_cluster_id = 0;
7163   surfxml_cluster_id_isset = 0;
7164   AX_surfxml_cluster_prefix = 0;
7165   surfxml_cluster_prefix_isset = 0;
7166   AX_surfxml_cluster_suffix = 0;
7167   surfxml_cluster_suffix_isset = 0;
7168   AX_surfxml_cluster_radical = 0;
7169   surfxml_cluster_radical_isset = 0;
7170   AX_surfxml_cluster_power = 0;
7171   surfxml_cluster_power_isset = 0;
7172   AX_surfxml_cluster_core = 22;
7173   surfxml_cluster_core_isset = 0;
7174   AX_surfxml_cluster_bw = 0;
7175   surfxml_cluster_bw_isset = 0;
7176   AX_surfxml_cluster_lat = 0;
7177   surfxml_cluster_lat_isset = 0;
7178   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7179   surfxml_cluster_sharing___policy_isset = 0;
7180   AX_surfxml_cluster_bb___bw = 0;
7181   surfxml_cluster_bb___bw_isset = 0;
7182   AX_surfxml_cluster_bb___lat = 0;
7183   surfxml_cluster_bb___lat_isset = 0;
7184   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7185   surfxml_cluster_bb___sharing___policy_isset = 0;
7186   AX_surfxml_cluster_availability___file = 0;
7187   surfxml_cluster_availability___file_isset = 0;
7188   AX_surfxml_cluster_state___file = 0;
7189   surfxml_cluster_state___file_isset = 0;
7190   AX_surfxml_cluster_router___id = 0;
7191   surfxml_cluster_router___id_isset = 0;
7192   AX_surfxml_cluster_limiter___link = 0;
7193   surfxml_cluster_limiter___link_isset = 0;
7194   AX_surfxml_cluster_loopback___bw = 0;
7195   surfxml_cluster_loopback___bw_isset = 0;
7196   AX_surfxml_cluster_loopback___lat = 0;
7197   surfxml_cluster_loopback___lat_isset = 0;
7198   ENTER(AL_surfxml_cluster); pushbuffer(0);
7199   }
7200         YY_BREAK
7201
7202 case 244:
7203 /* rule 244 can match eol */
7204 YY_RULE_SETUP
7205 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);
7206         YY_BREAK
7207 case 245:
7208 /* rule 245 can match eol */
7209 YY_RULE_SETUP
7210 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);
7211         YY_BREAK
7212 case 246:
7213 /* rule 246 can match eol */
7214 YY_RULE_SETUP
7215 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);
7216         YY_BREAK
7217 case 247:
7218 /* rule 247 can match eol */
7219 YY_RULE_SETUP
7220 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);
7221         YY_BREAK
7222 case 248:
7223 /* rule 248 can match eol */
7224 YY_RULE_SETUP
7225 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);
7226         YY_BREAK
7227 case 249:
7228 /* rule 249 can match eol */
7229 YY_RULE_SETUP
7230 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);
7231         YY_BREAK
7232 case 250:
7233 /* rule 250 can match eol */
7234 YY_RULE_SETUP
7235 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);
7236         YY_BREAK
7237 case 251:
7238 /* rule 251 can match eol */
7239 YY_RULE_SETUP
7240 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);
7241         YY_BREAK
7242 case 252:
7243 /* rule 252 can match eol */
7244 YY_RULE_SETUP
7245 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);
7246         YY_BREAK
7247 case 253:
7248 /* rule 253 can match eol */
7249 YY_RULE_SETUP
7250 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);
7251         YY_BREAK
7252 case 254:
7253 /* rule 254 can match eol */
7254 YY_RULE_SETUP
7255 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);
7256         YY_BREAK
7257 case 255:
7258 /* rule 255 can match eol */
7259 YY_RULE_SETUP
7260 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);
7261         YY_BREAK
7262 case 256:
7263 /* rule 256 can match eol */
7264 YY_RULE_SETUP
7265 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);
7266         YY_BREAK
7267 case 257:
7268 /* rule 257 can match eol */
7269 YY_RULE_SETUP
7270 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);
7271         YY_BREAK
7272 case 258:
7273 /* rule 258 can match eol */
7274 YY_RULE_SETUP
7275 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);
7276         YY_BREAK
7277 case 259:
7278 /* rule 259 can match eol */
7279 YY_RULE_SETUP
7280 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);
7281         YY_BREAK
7282 case 260:
7283 /* rule 260 can match eol */
7284 case 261:
7285 /* rule 261 can match eol */
7286 YY_RULE_SETUP
7287 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7288         YY_BREAK
7289 case 262:
7290 /* rule 262 can match eol */
7291 case 263:
7292 /* rule 263 can match eol */
7293 YY_RULE_SETUP
7294 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7295         YY_BREAK
7296 case 264:
7297 /* rule 264 can match eol */
7298 case 265:
7299 /* rule 265 can match eol */
7300 YY_RULE_SETUP
7301 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7302         YY_BREAK
7303 case 266:
7304 /* rule 266 can match eol */
7305 YY_RULE_SETUP
7306 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);
7307         YY_BREAK
7308 case 267:
7309 /* rule 267 can match eol */
7310 YY_RULE_SETUP
7311 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);
7312         YY_BREAK
7313 case 268:
7314 /* rule 268 can match eol */
7315 YY_RULE_SETUP
7316 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);
7317         YY_BREAK
7318 case 269:
7319 /* rule 269 can match eol */
7320 YY_RULE_SETUP
7321 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);
7322         YY_BREAK
7323 case 270:
7324 /* rule 270 can match eol */
7325 case 271:
7326 /* rule 271 can match eol */
7327 YY_RULE_SETUP
7328 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7329         YY_BREAK
7330 case 272:
7331 /* rule 272 can match eol */
7332 case 273:
7333 /* rule 273 can match eol */
7334 YY_RULE_SETUP
7335 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7336         YY_BREAK
7337 case 274:
7338 /* rule 274 can match eol */
7339 YY_RULE_SETUP
7340 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);
7341         YY_BREAK
7342 case 275:
7343 /* rule 275 can match eol */
7344 YY_RULE_SETUP
7345 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);
7346         YY_BREAK
7347 case 276:
7348 /* rule 276 can match eol */
7349 YY_RULE_SETUP
7350 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);
7351         YY_BREAK
7352 case 277:
7353 /* rule 277 can match eol */
7354 YY_RULE_SETUP
7355 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);
7356         YY_BREAK
7357 case 278:
7358 /* rule 278 can match eol */
7359 YY_RULE_SETUP
7360 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);
7361         YY_BREAK
7362 case 279:
7363 /* rule 279 can match eol */
7364 YY_RULE_SETUP
7365 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);
7366         YY_BREAK
7367 case 280:
7368 /* rule 280 can match eol */
7369 YY_RULE_SETUP
7370 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);
7371         YY_BREAK
7372 case 281:
7373 /* rule 281 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 282:
7378 /* rule 282 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 283:
7383 /* rule 283 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 284:
7388 /* rule 284 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 285:
7393 /* rule 285 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 286:
7398 YY_RULE_SETUP
7399 {
7400   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7401   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7402   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7403   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7404   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7405   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7406   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7407   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7408  }
7409         YY_BREAK
7410 case 287:
7411 YY_RULE_SETUP
7412 {
7413   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7414   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7415   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7416   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7417   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7418   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7419   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7420   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7421   switch (YY_START) {
7422    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7423    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7424    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7425   }
7426  }
7427         YY_BREAK
7428 case 288:
7429 YY_RULE_SETUP
7430 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7431         YY_BREAK
7432 case 289:
7433 YY_RULE_SETUP
7434 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7435         YY_BREAK
7436 case YY_STATE_EOF(AL_surfxml_cluster):
7437 FAIL("EOF in attribute list of `cluster' element.");
7438         YY_BREAK
7439
7440 case 290:
7441 /* rule 290 can match eol */
7442 YY_RULE_SETUP
7443 {
7444   LEAVE;
7445   ETag_surfxml_cluster();
7446   popbuffer(); /* attribute */
7447   switch (YY_START) {
7448    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7449    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7450    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7451   }
7452  }
7453         YY_BREAK
7454 case 291:
7455 /* rule 291 can match eol */
7456 YY_RULE_SETUP
7457 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7458         YY_BREAK
7459 case 292:
7460 YY_RULE_SETUP
7461 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7462         YY_BREAK
7463 case YY_STATE_EOF(S_surfxml_cluster_2):
7464 case YY_STATE_EOF(S_surfxml_cluster):
7465 case YY_STATE_EOF(E_surfxml_cluster):
7466 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7467         YY_BREAK
7468
7469 case 293:
7470 /* rule 293 can match eol */
7471 YY_RULE_SETUP
7472 FAIL("Starting tag <cabinet> is not allowed here.");
7473         YY_BREAK
7474 case 294:
7475 /* rule 294 can match eol */
7476 YY_RULE_SETUP
7477 {
7478   AX_surfxml_cabinet_id = 0;
7479   surfxml_cabinet_id_isset = 0;
7480   AX_surfxml_cabinet_prefix = 0;
7481   surfxml_cabinet_prefix_isset = 0;
7482   AX_surfxml_cabinet_suffix = 0;
7483   surfxml_cabinet_suffix_isset = 0;
7484   AX_surfxml_cabinet_radical = 0;
7485   surfxml_cabinet_radical_isset = 0;
7486   AX_surfxml_cabinet_power = 0;
7487   surfxml_cabinet_power_isset = 0;
7488   AX_surfxml_cabinet_bw = 0;
7489   surfxml_cabinet_bw_isset = 0;
7490   AX_surfxml_cabinet_lat = 0;
7491   surfxml_cabinet_lat_isset = 0;
7492   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7493   }
7494         YY_BREAK
7495
7496 case 295:
7497 /* rule 295 can match eol */
7498 YY_RULE_SETUP
7499 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);
7500         YY_BREAK
7501 case 296:
7502 /* rule 296 can match eol */
7503 YY_RULE_SETUP
7504 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);
7505         YY_BREAK
7506 case 297:
7507 /* rule 297 can match eol */
7508 YY_RULE_SETUP
7509 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);
7510         YY_BREAK
7511 case 298:
7512 /* rule 298 can match eol */
7513 YY_RULE_SETUP
7514 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);
7515         YY_BREAK
7516 case 299:
7517 /* rule 299 can match eol */
7518 YY_RULE_SETUP
7519 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);
7520         YY_BREAK
7521 case 300:
7522 /* rule 300 can match eol */
7523 YY_RULE_SETUP
7524 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);
7525         YY_BREAK
7526 case 301:
7527 /* rule 301 can match eol */
7528 YY_RULE_SETUP
7529 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);
7530         YY_BREAK
7531 case 302:
7532 /* rule 302 can match eol */
7533 YY_RULE_SETUP
7534 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);
7535         YY_BREAK
7536 case 303:
7537 /* rule 303 can match eol */
7538 YY_RULE_SETUP
7539 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);
7540         YY_BREAK
7541 case 304:
7542 /* rule 304 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 305:
7547 /* rule 305 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 306:
7552 /* rule 306 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 307:
7557 /* rule 307 can match eol */
7558 YY_RULE_SETUP
7559 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);
7560         YY_BREAK
7561 case 308:
7562 /* rule 308 can match eol */
7563 YY_RULE_SETUP
7564 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);
7565         YY_BREAK
7566 case 309:
7567 YY_RULE_SETUP
7568 {
7569   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7570   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7571   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7572   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7573   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7574   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7575   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7576   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7577  }
7578         YY_BREAK
7579 case 310:
7580 YY_RULE_SETUP
7581 {
7582   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7583   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7584   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7585   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7586   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7587   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7588   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7589   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7590   switch (YY_START) {
7591    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7592    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7593    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7594    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7595   }
7596  }
7597         YY_BREAK
7598 case 311:
7599 YY_RULE_SETUP
7600 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7601         YY_BREAK
7602 case 312:
7603 YY_RULE_SETUP
7604 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7605         YY_BREAK
7606 case YY_STATE_EOF(AL_surfxml_cabinet):
7607 FAIL("EOF in attribute list of `cabinet' element.");
7608         YY_BREAK
7609
7610 case 313:
7611 /* rule 313 can match eol */
7612 YY_RULE_SETUP
7613 {
7614   LEAVE;
7615   ETag_surfxml_cabinet();
7616   popbuffer(); /* attribute */
7617   switch (YY_START) {
7618    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7619    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7620    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7621    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7622   }
7623  }
7624         YY_BREAK
7625 case 314:
7626 /* rule 314 can match eol */
7627 YY_RULE_SETUP
7628 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7629         YY_BREAK
7630 case 315:
7631 YY_RULE_SETUP
7632 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7633         YY_BREAK
7634 case YY_STATE_EOF(E_surfxml_cabinet):
7635 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7636         YY_BREAK
7637
7638 case 316:
7639 /* rule 316 can match eol */
7640 YY_RULE_SETUP
7641 FAIL("Starting tag <peer> is not allowed here.");
7642         YY_BREAK
7643 case 317:
7644 /* rule 317 can match eol */
7645 YY_RULE_SETUP
7646 {
7647   AX_surfxml_peer_id = 0;
7648   surfxml_peer_id_isset = 0;
7649   AX_surfxml_peer_power = 0;
7650   surfxml_peer_power_isset = 0;
7651   AX_surfxml_peer_bw___in = 0;
7652   surfxml_peer_bw___in_isset = 0;
7653   AX_surfxml_peer_bw___out = 0;
7654   surfxml_peer_bw___out_isset = 0;
7655   AX_surfxml_peer_lat = 0;
7656   surfxml_peer_lat_isset = 0;
7657   AX_surfxml_peer_coordinates = 0;
7658   surfxml_peer_coordinates_isset = 0;
7659   AX_surfxml_peer_availability___file = 0;
7660   surfxml_peer_availability___file_isset = 0;
7661   AX_surfxml_peer_state___file = 0;
7662   surfxml_peer_state___file_isset = 0;
7663   ENTER(AL_surfxml_peer); pushbuffer(0);
7664   }
7665         YY_BREAK
7666
7667 case 318:
7668 /* rule 318 can match eol */
7669 YY_RULE_SETUP
7670 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);
7671         YY_BREAK
7672 case 319:
7673 /* rule 319 can match eol */
7674 YY_RULE_SETUP
7675 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);
7676         YY_BREAK
7677 case 320:
7678 /* rule 320 can match eol */
7679 YY_RULE_SETUP
7680 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);
7681         YY_BREAK
7682 case 321:
7683 /* rule 321 can match eol */
7684 YY_RULE_SETUP
7685 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);
7686         YY_BREAK
7687 case 322:
7688 /* rule 322 can match eol */
7689 YY_RULE_SETUP
7690 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);
7691         YY_BREAK
7692 case 323:
7693 /* rule 323 can match eol */
7694 YY_RULE_SETUP
7695 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);
7696         YY_BREAK
7697 case 324:
7698 /* rule 324 can match eol */
7699 YY_RULE_SETUP
7700 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);
7701         YY_BREAK
7702 case 325:
7703 /* rule 325 can match eol */
7704 YY_RULE_SETUP
7705 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);
7706         YY_BREAK
7707 case 326:
7708 /* rule 326 can match eol */
7709 YY_RULE_SETUP
7710 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);
7711         YY_BREAK
7712 case 327:
7713 /* rule 327 can match eol */
7714 YY_RULE_SETUP
7715 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);
7716         YY_BREAK
7717 case 328:
7718 /* rule 328 can match eol */
7719 YY_RULE_SETUP
7720 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);
7721         YY_BREAK
7722 case 329:
7723 /* rule 329 can match eol */
7724 YY_RULE_SETUP
7725 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);
7726         YY_BREAK
7727 case 330:
7728 /* rule 330 can match eol */
7729 YY_RULE_SETUP
7730 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);
7731         YY_BREAK
7732 case 331:
7733 /* rule 331 can match eol */
7734 YY_RULE_SETUP
7735 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);
7736         YY_BREAK
7737 case 332:
7738 /* rule 332 can match eol */
7739 YY_RULE_SETUP
7740 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);
7741         YY_BREAK
7742 case 333:
7743 /* rule 333 can match eol */
7744 YY_RULE_SETUP
7745 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);
7746         YY_BREAK
7747 case 334:
7748 YY_RULE_SETUP
7749 {
7750   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7751   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7752   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7753   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7754   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7755   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7756  }
7757         YY_BREAK
7758 case 335:
7759 YY_RULE_SETUP
7760 {
7761   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7762   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7763   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7764   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7765   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7766   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7767   switch (YY_START) {
7768    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7769    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7770    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7771   }
7772  }
7773         YY_BREAK
7774 case 336:
7775 YY_RULE_SETUP
7776 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7777         YY_BREAK
7778 case 337:
7779 YY_RULE_SETUP
7780 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7781         YY_BREAK
7782 case YY_STATE_EOF(AL_surfxml_peer):
7783 FAIL("EOF in attribute list of `peer' element.");
7784         YY_BREAK
7785
7786 case 338:
7787 /* rule 338 can match eol */
7788 YY_RULE_SETUP
7789 {
7790   LEAVE;
7791   ETag_surfxml_peer();
7792   popbuffer(); /* attribute */
7793   switch (YY_START) {
7794    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7795    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7796    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7797   }
7798  }
7799         YY_BREAK
7800 case 339:
7801 /* rule 339 can match eol */
7802 YY_RULE_SETUP
7803 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7804         YY_BREAK
7805 case 340:
7806 YY_RULE_SETUP
7807 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7808         YY_BREAK
7809 case YY_STATE_EOF(E_surfxml_peer):
7810 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7811         YY_BREAK
7812
7813 case 341:
7814 /* rule 341 can match eol */
7815 YY_RULE_SETUP
7816 FAIL("Starting tag <router> is not allowed here.");
7817         YY_BREAK
7818 case 342:
7819 /* rule 342 can match eol */
7820 YY_RULE_SETUP
7821 {
7822   AX_surfxml_router_id = 0;
7823   surfxml_router_id_isset = 0;
7824   AX_surfxml_router_coordinates = 0;
7825   surfxml_router_coordinates_isset = 0;
7826   ENTER(AL_surfxml_router); pushbuffer(0);
7827   }
7828         YY_BREAK
7829
7830 case 343:
7831 /* rule 343 can match eol */
7832 YY_RULE_SETUP
7833 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);
7834         YY_BREAK
7835 case 344:
7836 /* rule 344 can match eol */
7837 YY_RULE_SETUP
7838 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);
7839         YY_BREAK
7840 case 345:
7841 /* rule 345 can match eol */
7842 YY_RULE_SETUP
7843 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);
7844         YY_BREAK
7845 case 346:
7846 /* rule 346 can match eol */
7847 YY_RULE_SETUP
7848 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);
7849         YY_BREAK
7850 case 347:
7851 YY_RULE_SETUP
7852 {
7853   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7854   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7855  }
7856         YY_BREAK
7857 case 348:
7858 YY_RULE_SETUP
7859 {
7860   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7861   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7862   switch (YY_START) {
7863    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7864   }
7865  }
7866         YY_BREAK
7867 case 349:
7868 YY_RULE_SETUP
7869 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7870         YY_BREAK
7871 case 350:
7872 YY_RULE_SETUP
7873 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7874         YY_BREAK
7875 case YY_STATE_EOF(AL_surfxml_router):
7876 FAIL("EOF in attribute list of `router' element.");
7877         YY_BREAK
7878
7879 case 351:
7880 /* rule 351 can match eol */
7881 YY_RULE_SETUP
7882 {
7883   LEAVE;
7884   ETag_surfxml_router();
7885   popbuffer(); /* attribute */
7886   switch (YY_START) {
7887    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7888   }
7889  }
7890         YY_BREAK
7891 case 352:
7892 /* rule 352 can match eol */
7893 YY_RULE_SETUP
7894 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7895         YY_BREAK
7896 case 353:
7897 YY_RULE_SETUP
7898 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7899         YY_BREAK
7900 case YY_STATE_EOF(E_surfxml_router):
7901 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7902         YY_BREAK
7903
7904 case 354:
7905 /* rule 354 can match eol */
7906 YY_RULE_SETUP
7907 FAIL("Starting tag <backbone> is not allowed here.");
7908         YY_BREAK
7909 case 355:
7910 /* rule 355 can match eol */
7911 YY_RULE_SETUP
7912 {
7913   AX_surfxml_backbone_id = 0;
7914   surfxml_backbone_id_isset = 0;
7915   AX_surfxml_backbone_bandwidth = 0;
7916   surfxml_backbone_bandwidth_isset = 0;
7917   AX_surfxml_backbone_latency = 0;
7918   surfxml_backbone_latency_isset = 0;
7919   ENTER(AL_surfxml_backbone); pushbuffer(0);
7920   }
7921         YY_BREAK
7922
7923 case 356:
7924 /* rule 356 can match eol */
7925 YY_RULE_SETUP
7926 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);
7927         YY_BREAK
7928 case 357:
7929 /* rule 357 can match eol */
7930 YY_RULE_SETUP
7931 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);
7932         YY_BREAK
7933 case 358:
7934 /* rule 358 can match eol */
7935 YY_RULE_SETUP
7936 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);
7937         YY_BREAK
7938 case 359:
7939 /* rule 359 can match eol */
7940 YY_RULE_SETUP
7941 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);
7942         YY_BREAK
7943 case 360:
7944 /* rule 360 can match eol */
7945 YY_RULE_SETUP
7946 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);
7947         YY_BREAK
7948 case 361:
7949 /* rule 361 can match eol */
7950 YY_RULE_SETUP
7951 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);
7952         YY_BREAK
7953 case 362:
7954 YY_RULE_SETUP
7955 {
7956   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7957   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7958   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7959   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7960  }
7961         YY_BREAK
7962 case 363:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7966   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7967   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7968   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7969   switch (YY_START) {
7970    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7971    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7972   }
7973  }
7974         YY_BREAK
7975 case 364:
7976 YY_RULE_SETUP
7977 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7978         YY_BREAK
7979 case 365:
7980 YY_RULE_SETUP
7981 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7982         YY_BREAK
7983 case YY_STATE_EOF(AL_surfxml_backbone):
7984 FAIL("EOF in attribute list of `backbone' element.");
7985         YY_BREAK
7986
7987 case 366:
7988 /* rule 366 can match eol */
7989 YY_RULE_SETUP
7990 {
7991   LEAVE;
7992   ETag_surfxml_backbone();
7993   popbuffer(); /* attribute */
7994   switch (YY_START) {
7995    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7996    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7997   }
7998  }
7999         YY_BREAK
8000 case 367:
8001 /* rule 367 can match eol */
8002 YY_RULE_SETUP
8003 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8004         YY_BREAK
8005 case 368:
8006 YY_RULE_SETUP
8007 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8008         YY_BREAK
8009 case YY_STATE_EOF(E_surfxml_backbone):
8010 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8011         YY_BREAK
8012
8013 case 369:
8014 /* rule 369 can match eol */
8015 YY_RULE_SETUP
8016 FAIL("Starting tag <link> is not allowed here.");
8017         YY_BREAK
8018 case 370:
8019 /* rule 370 can match eol */
8020 YY_RULE_SETUP
8021 {
8022   AX_surfxml_link_id = 0;
8023   surfxml_link_id_isset = 0;
8024   AX_surfxml_link_bandwidth = 0;
8025   surfxml_link_bandwidth_isset = 0;
8026   AX_surfxml_link_bandwidth___file = 0;
8027   surfxml_link_bandwidth___file_isset = 0;
8028   AX_surfxml_link_latency = 24;
8029   surfxml_link_latency_isset = 0;
8030   AX_surfxml_link_latency___file = 0;
8031   surfxml_link_latency___file_isset = 0;
8032   AX_surfxml_link_state = A_surfxml_link_state_ON;
8033   surfxml_link_state_isset = 0;
8034   AX_surfxml_link_state___file = 0;
8035   surfxml_link_state___file_isset = 0;
8036   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8037   surfxml_link_sharing___policy_isset = 0;
8038   ENTER(AL_surfxml_link); pushbuffer(0);
8039   }
8040         YY_BREAK
8041
8042 case 371:
8043 /* rule 371 can match eol */
8044 YY_RULE_SETUP
8045 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);
8046         YY_BREAK
8047 case 372:
8048 /* rule 372 can match eol */
8049 YY_RULE_SETUP
8050 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);
8051         YY_BREAK
8052 case 373:
8053 /* rule 373 can match eol */
8054 YY_RULE_SETUP
8055 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);
8056         YY_BREAK
8057 case 374:
8058 /* rule 374 can match eol */
8059 YY_RULE_SETUP
8060 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);
8061         YY_BREAK
8062 case 375:
8063 /* rule 375 can match eol */
8064 YY_RULE_SETUP
8065 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);
8066         YY_BREAK
8067 case 376:
8068 /* rule 376 can match eol */
8069 YY_RULE_SETUP
8070 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);
8071         YY_BREAK
8072 case 377:
8073 /* rule 377 can match eol */
8074 YY_RULE_SETUP
8075 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);
8076         YY_BREAK
8077 case 378:
8078 /* rule 378 can match eol */
8079 YY_RULE_SETUP
8080 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);
8081         YY_BREAK
8082 case 379:
8083 /* rule 379 can match eol */
8084 YY_RULE_SETUP
8085 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);
8086         YY_BREAK
8087 case 380:
8088 /* rule 380 can match eol */
8089 YY_RULE_SETUP
8090 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);
8091         YY_BREAK
8092 case 381:
8093 /* rule 381 can match eol */
8094 case 382:
8095 /* rule 382 can match eol */
8096 YY_RULE_SETUP
8097 A_surfxml_link_state = A_surfxml_link_state_ON;
8098         YY_BREAK
8099 case 383:
8100 /* rule 383 can match eol */
8101 case 384:
8102 /* rule 384 can match eol */
8103 YY_RULE_SETUP
8104 A_surfxml_link_state = A_surfxml_link_state_OFF;
8105         YY_BREAK
8106 case 385:
8107 /* rule 385 can match eol */
8108 YY_RULE_SETUP
8109 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);
8110         YY_BREAK
8111 case 386:
8112 /* rule 386 can match eol */
8113 YY_RULE_SETUP
8114 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);
8115         YY_BREAK
8116 case 387:
8117 /* rule 387 can match eol */
8118 case 388:
8119 /* rule 388 can match eol */
8120 YY_RULE_SETUP
8121 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8122         YY_BREAK
8123 case 389:
8124 /* rule 389 can match eol */
8125 case 390:
8126 /* rule 390 can match eol */
8127 YY_RULE_SETUP
8128 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8129         YY_BREAK
8130 case 391:
8131 /* rule 391 can match eol */
8132 case 392:
8133 /* rule 392 can match eol */
8134 YY_RULE_SETUP
8135 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8136         YY_BREAK
8137 case 393:
8138 YY_RULE_SETUP
8139 {
8140   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8141   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8142   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8143  }
8144         YY_BREAK
8145 case 394:
8146 YY_RULE_SETUP
8147 {
8148   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8149   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8150   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8151   switch (YY_START) {
8152    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8153    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8154   }
8155  }
8156         YY_BREAK
8157 case 395:
8158 YY_RULE_SETUP
8159 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8160         YY_BREAK
8161 case 396:
8162 YY_RULE_SETUP
8163 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8164         YY_BREAK
8165 case YY_STATE_EOF(AL_surfxml_link):
8166 FAIL("EOF in attribute list of `link' element.");
8167         YY_BREAK
8168
8169 case 397:
8170 /* rule 397 can match eol */
8171 YY_RULE_SETUP
8172 {
8173   LEAVE;
8174   ETag_surfxml_link();
8175   popbuffer(); /* attribute */
8176   switch (YY_START) {
8177    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8178    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8179   }
8180  }
8181         YY_BREAK
8182 case 398:
8183 /* rule 398 can match eol */
8184 YY_RULE_SETUP
8185 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8186         YY_BREAK
8187 case 399:
8188 YY_RULE_SETUP
8189 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8190         YY_BREAK
8191 case YY_STATE_EOF(E_surfxml_link):
8192 case YY_STATE_EOF(S_surfxml_link_2):
8193 case YY_STATE_EOF(S_surfxml_link):
8194 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8195         YY_BREAK
8196
8197 case 400:
8198 /* rule 400 can match eol */
8199 YY_RULE_SETUP
8200 FAIL("Starting tag <route> is not allowed here.");
8201         YY_BREAK
8202 case 401:
8203 /* rule 401 can match eol */
8204 YY_RULE_SETUP
8205 {
8206   AX_surfxml_route_src = 0;
8207   surfxml_route_src_isset = 0;
8208   AX_surfxml_route_dst = 0;
8209   surfxml_route_dst_isset = 0;
8210   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8211   surfxml_route_symmetrical_isset = 0;
8212   ENTER(AL_surfxml_route); pushbuffer(0);
8213   }
8214         YY_BREAK
8215
8216 case 402:
8217 /* rule 402 can match eol */
8218 YY_RULE_SETUP
8219 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);
8220         YY_BREAK
8221 case 403:
8222 /* rule 403 can match eol */
8223 YY_RULE_SETUP
8224 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);
8225         YY_BREAK
8226 case 404:
8227 /* rule 404 can match eol */
8228 YY_RULE_SETUP
8229 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);
8230         YY_BREAK
8231 case 405:
8232 /* rule 405 can match eol */
8233 YY_RULE_SETUP
8234 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);
8235         YY_BREAK
8236 case 406:
8237 /* rule 406 can match eol */
8238 case 407:
8239 /* rule 407 can match eol */
8240 YY_RULE_SETUP
8241 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8242         YY_BREAK
8243 case 408:
8244 /* rule 408 can match eol */
8245 case 409:
8246 /* rule 409 can match eol */
8247 YY_RULE_SETUP
8248 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8249         YY_BREAK
8250 case 410:
8251 YY_RULE_SETUP
8252 {
8253   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8254   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8255   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8256  }
8257         YY_BREAK
8258 case 411:
8259 YY_RULE_SETUP
8260 {
8261   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8262   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8263   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8264   switch (YY_START) {
8265    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8266   }
8267  }
8268         YY_BREAK
8269 case 412:
8270 YY_RULE_SETUP
8271 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8272         YY_BREAK
8273 case 413:
8274 YY_RULE_SETUP
8275 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8276         YY_BREAK
8277 case YY_STATE_EOF(AL_surfxml_route):
8278 FAIL("EOF in attribute list of `route' element.");
8279         YY_BREAK
8280
8281 case 414:
8282 /* rule 414 can match eol */
8283 YY_RULE_SETUP
8284 {
8285   LEAVE;
8286   ETag_surfxml_route();
8287   popbuffer(); /* attribute */
8288   switch (YY_START) {
8289    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8290   }
8291  }
8292         YY_BREAK
8293 case 415:
8294 /* rule 415 can match eol */
8295 YY_RULE_SETUP
8296 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8297         YY_BREAK
8298 case 416:
8299 YY_RULE_SETUP
8300 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8301         YY_BREAK
8302 case YY_STATE_EOF(S_surfxml_route):
8303 case YY_STATE_EOF(S_surfxml_route_2):
8304 case YY_STATE_EOF(E_surfxml_route):
8305 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8306         YY_BREAK
8307
8308 case 417:
8309 /* rule 417 can match eol */
8310 YY_RULE_SETUP
8311 FAIL("Starting tag <ASroute> is not allowed here.");
8312         YY_BREAK
8313 case 418:
8314 /* rule 418 can match eol */
8315 YY_RULE_SETUP
8316 {
8317   AX_surfxml_ASroute_src = 0;
8318   surfxml_ASroute_src_isset = 0;
8319   AX_surfxml_ASroute_dst = 0;
8320   surfxml_ASroute_dst_isset = 0;
8321   AX_surfxml_ASroute_gw___src = 0;
8322   surfxml_ASroute_gw___src_isset = 0;
8323   AX_surfxml_ASroute_gw___dst = 0;
8324   surfxml_ASroute_gw___dst_isset = 0;
8325   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8326   surfxml_ASroute_symmetrical_isset = 0;
8327   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8328   }
8329         YY_BREAK
8330
8331 case 419:
8332 /* rule 419 can match eol */
8333 YY_RULE_SETUP
8334 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);
8335         YY_BREAK
8336 case 420:
8337 /* rule 420 can match eol */
8338 YY_RULE_SETUP
8339 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);
8340         YY_BREAK
8341 case 421:
8342 /* rule 421 can match eol */
8343 YY_RULE_SETUP
8344 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);
8345         YY_BREAK
8346 case 422:
8347 /* rule 422 can match eol */
8348 YY_RULE_SETUP
8349 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);
8350         YY_BREAK
8351 case 423:
8352 /* rule 423 can match eol */
8353 YY_RULE_SETUP
8354 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);
8355         YY_BREAK
8356 case 424:
8357 /* rule 424 can match eol */
8358 YY_RULE_SETUP
8359 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);
8360         YY_BREAK
8361 case 425:
8362 /* rule 425 can match eol */
8363 YY_RULE_SETUP
8364 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);
8365         YY_BREAK
8366 case 426:
8367 /* rule 426 can match eol */
8368 YY_RULE_SETUP
8369 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);
8370         YY_BREAK
8371 case 427:
8372 /* rule 427 can match eol */
8373 case 428:
8374 /* rule 428 can match eol */
8375 YY_RULE_SETUP
8376 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8377         YY_BREAK
8378 case 429:
8379 /* rule 429 can match eol */
8380 case 430:
8381 /* rule 430 can match eol */
8382 YY_RULE_SETUP
8383 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8384         YY_BREAK
8385 case 431:
8386 YY_RULE_SETUP
8387 {
8388   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8389   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8390   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8391   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8392   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8393  }
8394         YY_BREAK
8395 case 432:
8396 YY_RULE_SETUP
8397 {
8398   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8399   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8400   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8401   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8402   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8403   switch (YY_START) {
8404    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8405   }
8406  }
8407         YY_BREAK
8408 case 433:
8409 YY_RULE_SETUP
8410 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8411         YY_BREAK
8412 case 434:
8413 YY_RULE_SETUP
8414 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8415         YY_BREAK
8416 case YY_STATE_EOF(AL_surfxml_ASroute):
8417 FAIL("EOF in attribute list of `ASroute' element.");
8418         YY_BREAK
8419
8420 case 435:
8421 /* rule 435 can match eol */
8422 YY_RULE_SETUP
8423 {
8424   LEAVE;
8425   ETag_surfxml_ASroute();
8426   popbuffer(); /* attribute */
8427   switch (YY_START) {
8428    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8429   }
8430  }
8431         YY_BREAK
8432 case 436:
8433 /* rule 436 can match eol */
8434 YY_RULE_SETUP
8435 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8436         YY_BREAK
8437 case 437:
8438 YY_RULE_SETUP
8439 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8440         YY_BREAK
8441 case YY_STATE_EOF(E_surfxml_ASroute):
8442 case YY_STATE_EOF(S_surfxml_ASroute):
8443 case YY_STATE_EOF(S_surfxml_ASroute_2):
8444 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8445         YY_BREAK
8446
8447 case 438:
8448 /* rule 438 can match eol */
8449 YY_RULE_SETUP
8450 FAIL("Starting tag <link_ctn> is not allowed here.");
8451         YY_BREAK
8452 case 439:
8453 /* rule 439 can match eol */
8454 YY_RULE_SETUP
8455 {
8456   AX_surfxml_link___ctn_id = 0;
8457   surfxml_link___ctn_id_isset = 0;
8458   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8459   surfxml_link___ctn_direction_isset = 0;
8460   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8461   }
8462         YY_BREAK
8463
8464 case 440:
8465 /* rule 440 can match eol */
8466 YY_RULE_SETUP
8467 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);
8468         YY_BREAK
8469 case 441:
8470 /* rule 441 can match eol */
8471 YY_RULE_SETUP
8472 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);
8473         YY_BREAK
8474 case 442:
8475 /* rule 442 can match eol */
8476 case 443:
8477 /* rule 443 can match eol */
8478 YY_RULE_SETUP
8479 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8480         YY_BREAK
8481 case 444:
8482 /* rule 444 can match eol */
8483 case 445:
8484 /* rule 445 can match eol */
8485 YY_RULE_SETUP
8486 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8487         YY_BREAK
8488 case 446:
8489 /* rule 446 can match eol */
8490 case 447:
8491 /* rule 447 can match eol */
8492 YY_RULE_SETUP
8493 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8494         YY_BREAK
8495 case 448:
8496 YY_RULE_SETUP
8497 {
8498   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8499   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8500  }
8501         YY_BREAK
8502 case 449:
8503 YY_RULE_SETUP
8504 {
8505   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8506   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8507   switch (YY_START) {
8508    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8509    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8510    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8511    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8512   }
8513  }
8514         YY_BREAK
8515 case 450:
8516 YY_RULE_SETUP
8517 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8518         YY_BREAK
8519 case 451:
8520 YY_RULE_SETUP
8521 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8522         YY_BREAK
8523 case YY_STATE_EOF(AL_surfxml_link___ctn):
8524 FAIL("EOF in attribute list of `link_ctn' element.");
8525         YY_BREAK
8526
8527 case 452:
8528 /* rule 452 can match eol */
8529 YY_RULE_SETUP
8530 {
8531   LEAVE;
8532   ETag_surfxml_link___ctn();
8533   popbuffer(); /* attribute */
8534   switch (YY_START) {
8535    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8536    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8537    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8538    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8539   }
8540  }
8541         YY_BREAK
8542 case 453:
8543 /* rule 453 can match eol */
8544 YY_RULE_SETUP
8545 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8546         YY_BREAK
8547 case 454:
8548 YY_RULE_SETUP
8549 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8550         YY_BREAK
8551 case YY_STATE_EOF(E_surfxml_link___ctn):
8552 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8553         YY_BREAK
8554
8555 case 455:
8556 /* rule 455 can match eol */
8557 YY_RULE_SETUP
8558 FAIL("Starting tag <bypassRoute> is not allowed here.");
8559         YY_BREAK
8560 case 456:
8561 /* rule 456 can match eol */
8562 YY_RULE_SETUP
8563 {
8564   AX_surfxml_bypassRoute_src = 0;
8565   surfxml_bypassRoute_src_isset = 0;
8566   AX_surfxml_bypassRoute_dst = 0;
8567   surfxml_bypassRoute_dst_isset = 0;
8568   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8569   }
8570         YY_BREAK
8571
8572 case 457:
8573 /* rule 457 can match eol */
8574 YY_RULE_SETUP
8575 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);
8576         YY_BREAK
8577 case 458:
8578 /* rule 458 can match eol */
8579 YY_RULE_SETUP
8580 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);
8581         YY_BREAK
8582 case 459:
8583 /* rule 459 can match eol */
8584 YY_RULE_SETUP
8585 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);
8586         YY_BREAK
8587 case 460:
8588 /* rule 460 can match eol */
8589 YY_RULE_SETUP
8590 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);
8591         YY_BREAK
8592 case 461:
8593 YY_RULE_SETUP
8594 {
8595   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8596   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8597   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8598  }
8599         YY_BREAK
8600 case 462:
8601 YY_RULE_SETUP
8602 {
8603   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8604   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8605   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8606   switch (YY_START) {
8607    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8608   }
8609  }
8610         YY_BREAK
8611 case 463:
8612 YY_RULE_SETUP
8613 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8614         YY_BREAK
8615 case 464:
8616 YY_RULE_SETUP
8617 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8618         YY_BREAK
8619 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8620 FAIL("EOF in attribute list of `bypassRoute' element.");
8621         YY_BREAK
8622
8623 case 465:
8624 /* rule 465 can match eol */
8625 YY_RULE_SETUP
8626 {
8627   LEAVE;
8628   ETag_surfxml_bypassRoute();
8629   popbuffer(); /* attribute */
8630   switch (YY_START) {
8631    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8632   }
8633  }
8634         YY_BREAK
8635 case 466:
8636 /* rule 466 can match eol */
8637 YY_RULE_SETUP
8638 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8639         YY_BREAK
8640 case 467:
8641 YY_RULE_SETUP
8642 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8643         YY_BREAK
8644 case YY_STATE_EOF(S_surfxml_bypassRoute):
8645 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8646 case YY_STATE_EOF(E_surfxml_bypassRoute):
8647 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8648         YY_BREAK
8649
8650 case 468:
8651 /* rule 468 can match eol */
8652 YY_RULE_SETUP
8653 FAIL("Starting tag <bypassASroute> is not allowed here.");
8654         YY_BREAK
8655 case 469:
8656 /* rule 469 can match eol */
8657 YY_RULE_SETUP
8658 {
8659   AX_surfxml_bypassASroute_src = 0;
8660   surfxml_bypassASroute_src_isset = 0;
8661   AX_surfxml_bypassASroute_dst = 0;
8662   surfxml_bypassASroute_dst_isset = 0;
8663   AX_surfxml_bypassASroute_gw___src = 0;
8664   surfxml_bypassASroute_gw___src_isset = 0;
8665   AX_surfxml_bypassASroute_gw___dst = 0;
8666   surfxml_bypassASroute_gw___dst_isset = 0;
8667   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8668   }
8669         YY_BREAK
8670
8671 case 470:
8672 /* rule 470 can match eol */
8673 YY_RULE_SETUP
8674 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);
8675         YY_BREAK
8676 case 471:
8677 /* rule 471 can match eol */
8678 YY_RULE_SETUP
8679 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);
8680         YY_BREAK
8681 case 472:
8682 /* rule 472 can match eol */
8683 YY_RULE_SETUP
8684 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);
8685         YY_BREAK
8686 case 473:
8687 /* rule 473 can match eol */
8688 YY_RULE_SETUP
8689 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);
8690         YY_BREAK
8691 case 474:
8692 /* rule 474 can match eol */
8693 YY_RULE_SETUP
8694 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);
8695         YY_BREAK
8696 case 475:
8697 /* rule 475 can match eol */
8698 YY_RULE_SETUP
8699 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);
8700         YY_BREAK
8701 case 476:
8702 /* rule 476 can match eol */
8703 YY_RULE_SETUP
8704 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);
8705         YY_BREAK
8706 case 477:
8707 /* rule 477 can match eol */
8708 YY_RULE_SETUP
8709 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);
8710         YY_BREAK
8711 case 478:
8712 YY_RULE_SETUP
8713 {
8714   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8715   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8716   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8717   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8718   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8719  }
8720         YY_BREAK
8721 case 479:
8722 YY_RULE_SETUP
8723 {
8724   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8725   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8726   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8727   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8728   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8729   switch (YY_START) {
8730    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8731   }
8732  }
8733         YY_BREAK
8734 case 480:
8735 YY_RULE_SETUP
8736 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8737         YY_BREAK
8738 case 481:
8739 YY_RULE_SETUP
8740 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8741         YY_BREAK
8742 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8743 FAIL("EOF in attribute list of `bypassASroute' element.");
8744         YY_BREAK
8745
8746 case 482:
8747 /* rule 482 can match eol */
8748 YY_RULE_SETUP
8749 {
8750   LEAVE;
8751   ETag_surfxml_bypassASroute();
8752   popbuffer(); /* attribute */
8753   switch (YY_START) {
8754    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8755   }
8756  }
8757         YY_BREAK
8758 case 483:
8759 /* rule 483 can match eol */
8760 YY_RULE_SETUP
8761 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8762         YY_BREAK
8763 case 484:
8764 YY_RULE_SETUP
8765 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8766         YY_BREAK
8767 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8768 case YY_STATE_EOF(E_surfxml_bypassASroute):
8769 case YY_STATE_EOF(S_surfxml_bypassASroute):
8770 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8771         YY_BREAK
8772
8773 case 485:
8774 /* rule 485 can match eol */
8775 YY_RULE_SETUP
8776 FAIL("Starting tag <process> is not allowed here.");
8777         YY_BREAK
8778 case 486:
8779 /* rule 486 can match eol */
8780 YY_RULE_SETUP
8781 {
8782   AX_surfxml_process_host = 0;
8783   surfxml_process_host_isset = 0;
8784   AX_surfxml_process_function = 0;
8785   surfxml_process_function_isset = 0;
8786   AX_surfxml_process_start___time = 28;
8787   surfxml_process_start___time_isset = 0;
8788   AX_surfxml_process_kill___time = 33;
8789   surfxml_process_kill___time_isset = 0;
8790   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8791   surfxml_process_on___failure_isset = 0;
8792   ENTER(AL_surfxml_process); pushbuffer(0);
8793   }
8794         YY_BREAK
8795
8796 case 487:
8797 /* rule 487 can match eol */
8798 YY_RULE_SETUP
8799 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);
8800         YY_BREAK
8801 case 488:
8802 /* rule 488 can match eol */
8803 YY_RULE_SETUP
8804 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);
8805         YY_BREAK
8806 case 489:
8807 /* rule 489 can match eol */
8808 YY_RULE_SETUP
8809 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);
8810         YY_BREAK
8811 case 490:
8812 /* rule 490 can match eol */
8813 YY_RULE_SETUP
8814 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);
8815         YY_BREAK
8816 case 491:
8817 /* rule 491 can match eol */
8818 YY_RULE_SETUP
8819 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);
8820         YY_BREAK
8821 case 492:
8822 /* rule 492 can match eol */
8823 YY_RULE_SETUP
8824 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);
8825         YY_BREAK
8826 case 493:
8827 /* rule 493 can match eol */
8828 YY_RULE_SETUP
8829 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);
8830         YY_BREAK
8831 case 494:
8832 /* rule 494 can match eol */
8833 YY_RULE_SETUP
8834 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);
8835         YY_BREAK
8836 case 495:
8837 /* rule 495 can match eol */
8838 case 496:
8839 /* rule 496 can match eol */
8840 YY_RULE_SETUP
8841 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8842         YY_BREAK
8843 case 497:
8844 /* rule 497 can match eol */
8845 case 498:
8846 /* rule 498 can match eol */
8847 YY_RULE_SETUP
8848 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8849         YY_BREAK
8850 case 499:
8851 YY_RULE_SETUP
8852 {
8853   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8854   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8855   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8856  }
8857         YY_BREAK
8858 case 500:
8859 YY_RULE_SETUP
8860 {
8861   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8862   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8863   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8864   switch (YY_START) {
8865    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8866   }
8867  }
8868         YY_BREAK
8869 case 501:
8870 YY_RULE_SETUP
8871 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8872         YY_BREAK
8873 case 502:
8874 YY_RULE_SETUP
8875 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8876         YY_BREAK
8877 case YY_STATE_EOF(AL_surfxml_process):
8878 FAIL("EOF in attribute list of `process' element.");
8879         YY_BREAK
8880
8881 case 503:
8882 /* rule 503 can match eol */
8883 YY_RULE_SETUP
8884 {
8885   LEAVE;
8886   ETag_surfxml_process();
8887   popbuffer(); /* attribute */
8888   switch (YY_START) {
8889    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8890   }
8891  }
8892         YY_BREAK
8893 case 504:
8894 /* rule 504 can match eol */
8895 YY_RULE_SETUP
8896 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8897         YY_BREAK
8898 case 505:
8899 YY_RULE_SETUP
8900 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8901         YY_BREAK
8902 case YY_STATE_EOF(E_surfxml_process):
8903 case YY_STATE_EOF(S_surfxml_process):
8904 case YY_STATE_EOF(S_surfxml_process_2):
8905 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8906         YY_BREAK
8907
8908 case 506:
8909 /* rule 506 can match eol */
8910 YY_RULE_SETUP
8911 FAIL("Starting tag <argument> is not allowed here.");
8912         YY_BREAK
8913 case 507:
8914 /* rule 507 can match eol */
8915 YY_RULE_SETUP
8916 {
8917   AX_surfxml_argument_value = 0;
8918   surfxml_argument_value_isset = 0;
8919   ENTER(AL_surfxml_argument); pushbuffer(0);
8920   }
8921         YY_BREAK
8922
8923 case 508:
8924 /* rule 508 can match eol */
8925 YY_RULE_SETUP
8926 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);
8927         YY_BREAK
8928 case 509:
8929 /* rule 509 can match eol */
8930 YY_RULE_SETUP
8931 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);
8932         YY_BREAK
8933 case 510:
8934 YY_RULE_SETUP
8935 {
8936   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8937   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8938  }
8939         YY_BREAK
8940 case 511:
8941 YY_RULE_SETUP
8942 {
8943   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8944   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8945   switch (YY_START) {
8946    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8947   }
8948  }
8949         YY_BREAK
8950 case 512:
8951 YY_RULE_SETUP
8952 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8953         YY_BREAK
8954 case 513:
8955 YY_RULE_SETUP
8956 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8957         YY_BREAK
8958 case YY_STATE_EOF(AL_surfxml_argument):
8959 FAIL("EOF in attribute list of `argument' element.");
8960         YY_BREAK
8961
8962 case 514:
8963 /* rule 514 can match eol */
8964 YY_RULE_SETUP
8965 {
8966   LEAVE;
8967   ETag_surfxml_argument();
8968   popbuffer(); /* attribute */
8969   switch (YY_START) {
8970    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8971   }
8972  }
8973         YY_BREAK
8974 case 515:
8975 /* rule 515 can match eol */
8976 YY_RULE_SETUP
8977 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8978         YY_BREAK
8979 case 516:
8980 YY_RULE_SETUP
8981 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8982         YY_BREAK
8983 case YY_STATE_EOF(E_surfxml_argument):
8984 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8985         YY_BREAK
8986
8987 case 517:
8988 /* rule 517 can match eol */
8989 YY_RULE_SETUP
8990 FAIL("Starting tag <config> is not allowed here.");
8991         YY_BREAK
8992 case 518:
8993 /* rule 518 can match eol */
8994 YY_RULE_SETUP
8995 {
8996   AX_surfxml_config_id = 0;
8997   surfxml_config_id_isset = 0;
8998   ENTER(AL_surfxml_config); pushbuffer(0);
8999   }
9000         YY_BREAK
9001
9002 case 519:
9003 /* rule 519 can match eol */
9004 YY_RULE_SETUP
9005 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);
9006         YY_BREAK
9007 case 520:
9008 /* rule 520 can match eol */
9009 YY_RULE_SETUP
9010 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);
9011         YY_BREAK
9012 case 521:
9013 YY_RULE_SETUP
9014 {
9015   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9016  }
9017         YY_BREAK
9018 case 522:
9019 YY_RULE_SETUP
9020 {
9021   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9022   switch (YY_START) {
9023    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9024   }
9025  }
9026         YY_BREAK
9027 case 523:
9028 YY_RULE_SETUP
9029 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9030         YY_BREAK
9031 case 524:
9032 YY_RULE_SETUP
9033 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9034         YY_BREAK
9035 case YY_STATE_EOF(AL_surfxml_config):
9036 FAIL("EOF in attribute list of `config' element.");
9037         YY_BREAK
9038
9039 case 525:
9040 /* rule 525 can match eol */
9041 YY_RULE_SETUP
9042 {
9043   LEAVE;
9044   ETag_surfxml_config();
9045   popbuffer(); /* attribute */
9046   switch (YY_START) {
9047    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9048   }
9049  }
9050         YY_BREAK
9051 case 526:
9052 /* rule 526 can match eol */
9053 YY_RULE_SETUP
9054 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9055         YY_BREAK
9056 case 527:
9057 YY_RULE_SETUP
9058 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9059         YY_BREAK
9060 case YY_STATE_EOF(S_surfxml_config):
9061 case YY_STATE_EOF(S_surfxml_config_2):
9062 case YY_STATE_EOF(E_surfxml_config):
9063 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9064         YY_BREAK
9065
9066 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9067   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9068 case 528:
9069 /* rule 528 can match eol */
9070 YY_RULE_SETUP
9071 FAIL("Starting tag <prop> is not allowed here.");
9072         YY_BREAK
9073 case 529:
9074 /* rule 529 can match eol */
9075 YY_RULE_SETUP
9076 {
9077   AX_surfxml_prop_id = 0;
9078   surfxml_prop_id_isset = 0;
9079   AX_surfxml_prop_value = 0;
9080   surfxml_prop_value_isset = 0;
9081   ENTER(AL_surfxml_prop); pushbuffer(0);
9082   }
9083         YY_BREAK
9084
9085 case 530:
9086 /* rule 530 can match eol */
9087 YY_RULE_SETUP
9088 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);
9089         YY_BREAK
9090 case 531:
9091 /* rule 531 can match eol */
9092 YY_RULE_SETUP
9093 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);
9094         YY_BREAK
9095 case 532:
9096 /* rule 532 can match eol */
9097 YY_RULE_SETUP
9098 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);
9099         YY_BREAK
9100 case 533:
9101 /* rule 533 can match eol */
9102 YY_RULE_SETUP
9103 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);
9104         YY_BREAK
9105 case 534:
9106 YY_RULE_SETUP
9107 {
9108   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9109   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9110   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9111  }
9112         YY_BREAK
9113 case 535:
9114 YY_RULE_SETUP
9115 {
9116   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9117   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9118   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9119   switch (YY_START) {
9120    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9121    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9122    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9123    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9124    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9125    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9126    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9127    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9128   }
9129  }
9130         YY_BREAK
9131 case 536:
9132 YY_RULE_SETUP
9133 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9134         YY_BREAK
9135 case 537:
9136 YY_RULE_SETUP
9137 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9138         YY_BREAK
9139 case YY_STATE_EOF(AL_surfxml_prop):
9140 FAIL("EOF in attribute list of `prop' element.");
9141         YY_BREAK
9142
9143 case 538:
9144 /* rule 538 can match eol */
9145 YY_RULE_SETUP
9146 {
9147   LEAVE;
9148   ETag_surfxml_prop();
9149   popbuffer(); /* attribute */
9150   switch (YY_START) {
9151    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9152    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9153    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9154    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9155    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9156    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9157    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9158    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9159   }
9160  }
9161         YY_BREAK
9162 case 539:
9163 /* rule 539 can match eol */
9164 YY_RULE_SETUP
9165 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9166         YY_BREAK
9167 case 540:
9168 YY_RULE_SETUP
9169 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9170         YY_BREAK
9171 case YY_STATE_EOF(E_surfxml_prop):
9172 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9173         YY_BREAK
9174
9175 /* EPILOG: after the root element. */
9176
9177 case 541:
9178 YY_RULE_SETUP
9179 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9180         YY_BREAK
9181 case YY_STATE_EOF(EPILOG):
9182 SUCCEED;
9183         YY_BREAK
9184
9185 /* CHARACTER DATA. */
9186
9187 /* Non-defined standard entities... */
9188 case 542:
9189 YY_RULE_SETUP
9190 BUFFERPUTC('&');
9191         YY_BREAK
9192 case 543:
9193 YY_RULE_SETUP
9194 BUFFERPUTC('<');
9195         YY_BREAK
9196 case 544:
9197 YY_RULE_SETUP
9198 BUFFERPUTC('>');
9199         YY_BREAK
9200 case 545:
9201 YY_RULE_SETUP
9202 BUFFERPUTC('\'');
9203         YY_BREAK
9204 case 546:
9205 YY_RULE_SETUP
9206 BUFFERPUTC('"');
9207         YY_BREAK
9208 /* Character entities. */
9209 case 547:
9210 YY_RULE_SETUP
9211 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9212         YY_BREAK
9213 case 548:
9214 YY_RULE_SETUP
9215 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9216         YY_BREAK
9217
9218 case 549:
9219 /* rule 549 can match eol */
9220 case 550:
9221 /* rule 550 can match eol */
9222 case 551:
9223 /* rule 551 can match eol */
9224 case 552:
9225 /* rule 552 can match eol */
9226 YY_RULE_SETUP
9227 BUFFERPUTC('\n');
9228         YY_BREAK
9229
9230 case 553:
9231 YY_RULE_SETUP
9232 ENTER(CDATA);
9233         YY_BREAK
9234 case 554:
9235 YY_RULE_SETUP
9236 FAIL("Unexpected `]""]>' in character data.");
9237         YY_BREAK
9238
9239 case 555:
9240 YY_RULE_SETUP
9241 BUFFERDONE; LEAVE;
9242         YY_BREAK
9243 case YY_STATE_EOF(VALUE1):
9244 FAIL("EOF in literal (\"'\" expected).");
9245         YY_BREAK
9246
9247 case 556:
9248 YY_RULE_SETUP
9249 BUFFERDONE; LEAVE;
9250         YY_BREAK
9251 case YY_STATE_EOF(VALUE2):
9252 FAIL("EOF in literal (`\"' expected).");
9253         YY_BREAK
9254
9255 case 557:
9256 /* rule 557 can match eol */
9257 YY_RULE_SETUP
9258 BUFFERPUTC(surf_parse_text[0]);
9259         YY_BREAK
9260 case 558:
9261 YY_RULE_SETUP
9262 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9263         YY_BREAK
9264
9265 case 559:
9266 YY_RULE_SETUP
9267 LEAVE;
9268         YY_BREAK
9269 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9270 case 560:
9271 YY_RULE_SETUP
9272 BUFFERPUTC(surf_parse_text[0]);
9273         YY_BREAK
9274 case YY_STATE_EOF(CDATA):
9275 FAIL("EOF in CDATA section.");
9276         YY_BREAK
9277
9278 /* Impossible rules to avoid warnings from flex(1). */
9279 /* Ideally, this should be replaced by code in flexml.pl that
9280     generates just the states not covered by other rules. */
9281
9282 case 561:
9283 /* rule 561 can match eol */
9284 YY_RULE_SETUP
9285 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9286         YY_BREAK
9287
9288 case 562:
9289 YY_RULE_SETUP
9290 ECHO;
9291         YY_BREAK
9292 case YY_STATE_EOF(INITIAL):
9293 case YY_STATE_EOF(ROOT_surfxml_platform):
9294 case YY_STATE_EOF(S_surfxml_platform_2):
9295 case YY_STATE_EOF(S_surfxml_platform_5):
9296 case YY_STATE_EOF(S_surfxml_platform_7):
9297 case YY_STATE_EOF(S_surfxml_include_1):
9298 case YY_STATE_EOF(S_surfxml_AS_2):
9299 case YY_STATE_EOF(S_surfxml_AS_5):
9300 case YY_STATE_EOF(S_surfxml_AS_8):
9301 case YY_STATE_EOF(S_surfxml_AS_10):
9302 case YY_STATE_EOF(S_surfxml_AS_13):
9303 case YY_STATE_EOF(S_surfxml_AS_15):
9304 case YY_STATE_EOF(S_surfxml_storage___type_1):
9305 case YY_STATE_EOF(S_surfxml_storage_1):
9306 case YY_STATE_EOF(S_surfxml_host_1):
9307 case YY_STATE_EOF(S_surfxml_cluster_1):
9308 case YY_STATE_EOF(S_surfxml_link_1):
9309 case YY_STATE_EOF(S_surfxml_route_1):
9310 case YY_STATE_EOF(S_surfxml_ASroute_1):
9311 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9312 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9313 case YY_STATE_EOF(S_surfxml_process_1):
9314 case YY_STATE_EOF(S_surfxml_config_1):
9315 case YY_STATE_EOF(IMPOSSIBLE):
9316         yyterminate();
9317
9318         case YY_END_OF_BUFFER:
9319                 {
9320                 /* Amount of text matched not including the EOB char. */
9321                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9322
9323                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9324                 *yy_cp = (yy_hold_char);
9325                 YY_RESTORE_YY_MORE_OFFSET
9326
9327                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9328                         {
9329                         /* We're scanning a new file or input source.  It's
9330                          * possible that this happened because the user
9331                          * just pointed surf_parse_in at a new source and called
9332                          * surf_parse_lex().  If so, then we have to assure
9333                          * consistency between YY_CURRENT_BUFFER and our
9334                          * globals.  Here is the right place to do so, because
9335                          * this is the first action (other than possibly a
9336                          * back-up) that will match for the new input source.
9337                          */
9338                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9339                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9340                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9341                         }
9342
9343                 /* Note that here we test for yy_c_buf_p "<=" to the position
9344                  * of the first EOB in the buffer, since yy_c_buf_p will
9345                  * already have been incremented past the NUL character
9346                  * (since all states make transitions on EOB to the
9347                  * end-of-buffer state).  Contrast this with the test
9348                  * in input().
9349                  */
9350                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9351                         { /* This was really a NUL. */
9352                         yy_state_type yy_next_state;
9353
9354                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9355
9356                         yy_current_state = yy_get_previous_state(  );
9357
9358                         /* Okay, we're now positioned to make the NUL
9359                          * transition.  We couldn't have
9360                          * yy_get_previous_state() go ahead and do it
9361                          * for us because it doesn't know how to deal
9362                          * with the possibility of jamming (and we don't
9363                          * want to build jamming into it because then it
9364                          * will run more slowly).
9365                          */
9366
9367                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9368
9369                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9370
9371                         if ( yy_next_state )
9372                                 {
9373                                 /* Consume the NUL. */
9374                                 yy_cp = ++(yy_c_buf_p);
9375                                 yy_current_state = yy_next_state;
9376                                 goto yy_match;
9377                                 }
9378
9379                         else
9380                                 {
9381                                 yy_cp = (yy_c_buf_p);
9382                                 goto yy_find_action;
9383                                 }
9384                         }
9385
9386                 else switch ( yy_get_next_buffer(  ) )
9387                         {
9388                         case EOB_ACT_END_OF_FILE:
9389                                 {
9390                                 (yy_did_buffer_switch_on_eof) = 0;
9391
9392                                 if ( surf_parse_wrap( ) )
9393                                         {
9394                                         /* Note: because we've taken care in
9395                                          * yy_get_next_buffer() to have set up
9396                                          * surf_parse_text, we can now set up
9397                                          * yy_c_buf_p so that if some total
9398                                          * hoser (like flex itself) wants to
9399                                          * call the scanner after we return the
9400                                          * YY_NULL, it'll still work - another
9401                                          * YY_NULL will get returned.
9402                                          */
9403                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9404
9405                                         yy_act = YY_STATE_EOF(YY_START);
9406                                         goto do_action;
9407                                         }
9408
9409                                 else
9410                                         {
9411                                         if ( ! (yy_did_buffer_switch_on_eof) )
9412                                                 YY_NEW_FILE;
9413                                         }
9414                                 break;
9415                                 }
9416
9417                         case EOB_ACT_CONTINUE_SCAN:
9418                                 (yy_c_buf_p) =
9419                                         (yytext_ptr) + yy_amount_of_matched_text;
9420
9421                                 yy_current_state = yy_get_previous_state(  );
9422
9423                                 yy_cp = (yy_c_buf_p);
9424                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9425                                 goto yy_match;
9426
9427                         case EOB_ACT_LAST_MATCH:
9428                                 (yy_c_buf_p) =
9429                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9430
9431                                 yy_current_state = yy_get_previous_state(  );
9432
9433                                 yy_cp = (yy_c_buf_p);
9434                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9435                                 goto yy_find_action;
9436                         }
9437                 break;
9438                 }
9439
9440         default:
9441                 YY_FATAL_ERROR(
9442                         "fatal flex scanner internal error--no action found" );
9443         } /* end of action switch */
9444                 } /* end of scanning one token */
9445 } /* end of surf_parse_lex */
9446
9447 /* yy_get_next_buffer - try to read in a new buffer
9448  *
9449  * Returns a code representing an action:
9450  *      EOB_ACT_LAST_MATCH -
9451  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9452  *      EOB_ACT_END_OF_FILE - end of file
9453  */
9454 static int yy_get_next_buffer (void)
9455 {
9456         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9457         register char *source = (yytext_ptr);
9458         register int number_to_move, i;
9459         int ret_val;
9460
9461         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9462                 YY_FATAL_ERROR(
9463                 "fatal flex scanner internal error--end of buffer missed" );
9464
9465         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9466                 { /* Don't try to fill the buffer, so this is an EOF. */
9467                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9468                         {
9469                         /* We matched a single character, the EOB, so
9470                          * treat this as a final EOF.
9471                          */
9472                         return EOB_ACT_END_OF_FILE;
9473                         }
9474
9475                 else
9476                         {
9477                         /* We matched some text prior to the EOB, first
9478                          * process it.
9479                          */
9480                         return EOB_ACT_LAST_MATCH;
9481                         }
9482                 }
9483
9484         /* Try to read more data. */
9485
9486         /* First move last chars to start of buffer. */
9487         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9488
9489         for ( i = 0; i < number_to_move; ++i )
9490                 *(dest++) = *(source++);
9491
9492         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9493                 /* don't do the read, it's not guaranteed to return an EOF,
9494                  * just force an EOF
9495                  */
9496                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9497
9498         else
9499                 {
9500                         int num_to_read =
9501                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9502
9503                 while ( num_to_read <= 0 )
9504                         { /* Not enough room in the buffer - grow it. */
9505
9506                         /* just a shorter name for the current buffer */
9507                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9508
9509                         int yy_c_buf_p_offset =
9510                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9511
9512                         if ( b->yy_is_our_buffer )
9513                                 {
9514                                 int new_size = b->yy_buf_size * 2;
9515
9516                                 if ( new_size <= 0 )
9517                                         b->yy_buf_size += b->yy_buf_size / 8;
9518                                 else
9519                                         b->yy_buf_size *= 2;
9520
9521                                 b->yy_ch_buf = (char *)
9522                                         /* Include room in for 2 EOB chars. */
9523                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9524                                 }
9525                         else
9526                                 /* Can't grow it, we don't own it. */
9527                                 b->yy_ch_buf = 0;
9528
9529                         if ( ! b->yy_ch_buf )
9530                                 YY_FATAL_ERROR(
9531                                 "fatal error - scanner input buffer overflow" );
9532
9533                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9534
9535                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9536                                                 number_to_move - 1;
9537
9538                         }
9539
9540                 if ( num_to_read > YY_READ_BUF_SIZE )
9541                         num_to_read = YY_READ_BUF_SIZE;
9542
9543                 /* Read in more data. */
9544                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9545                         (yy_n_chars), (size_t) num_to_read );
9546
9547                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9548                 }
9549
9550         if ( (yy_n_chars) == 0 )
9551                 {
9552                 if ( number_to_move == YY_MORE_ADJ )
9553                         {
9554                         ret_val = EOB_ACT_END_OF_FILE;
9555                         surf_parse_restart(surf_parse_in  );
9556                         }
9557
9558                 else
9559                         {
9560                         ret_val = EOB_ACT_LAST_MATCH;
9561                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9562                                 YY_BUFFER_EOF_PENDING;
9563                         }
9564                 }
9565
9566         else
9567                 ret_val = EOB_ACT_CONTINUE_SCAN;
9568
9569         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9570                 /* Extend the array by 50%, plus the number we really need. */
9571                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9572                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9573                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9574                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9575         }
9576
9577         (yy_n_chars) += number_to_move;
9578         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9579         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9580
9581         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9582
9583         return ret_val;
9584 }
9585
9586 /* yy_get_previous_state - get the state just before the EOB char was reached */
9587
9588     static yy_state_type yy_get_previous_state (void)
9589 {
9590         register yy_state_type yy_current_state;
9591         register char *yy_cp;
9592     
9593         yy_current_state = (yy_start);
9594
9595         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9596                 {
9597                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9598                 if ( yy_accept[yy_current_state] )
9599                         {
9600                         (yy_last_accepting_state) = yy_current_state;
9601                         (yy_last_accepting_cpos) = yy_cp;
9602                         }
9603                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9604                         {
9605                         yy_current_state = (int) yy_def[yy_current_state];
9606                         if ( yy_current_state >= 3286 )
9607                                 yy_c = yy_meta[(unsigned int) yy_c];
9608                         }
9609                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9610                 }
9611
9612         return yy_current_state;
9613 }
9614
9615 /* yy_try_NUL_trans - try to make a transition on the NUL character
9616  *
9617  * synopsis
9618  *      next_state = yy_try_NUL_trans( current_state );
9619  */
9620     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9621 {
9622         register int yy_is_jam;
9623         register char *yy_cp = (yy_c_buf_p);
9624
9625         register YY_CHAR yy_c = 1;
9626         if ( yy_accept[yy_current_state] )
9627                 {
9628                 (yy_last_accepting_state) = yy_current_state;
9629                 (yy_last_accepting_cpos) = yy_cp;
9630                 }
9631         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9632                 {
9633                 yy_current_state = (int) yy_def[yy_current_state];
9634                 if ( yy_current_state >= 3286 )
9635                         yy_c = yy_meta[(unsigned int) yy_c];
9636                 }
9637         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9638         yy_is_jam = (yy_current_state == 3285);
9639
9640         return yy_is_jam ? 0 : yy_current_state;
9641 }
9642
9643 #ifndef YY_NO_INPUT
9644 #ifdef __cplusplus
9645     static int yyinput (void)
9646 #else
9647     static int input  (void)
9648 #endif
9649
9650 {
9651         int c;
9652     
9653         *(yy_c_buf_p) = (yy_hold_char);
9654
9655         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9656                 {
9657                 /* yy_c_buf_p now points to the character we want to return.
9658                  * If this occurs *before* the EOB characters, then it's a
9659                  * valid NUL; if not, then we've hit the end of the buffer.
9660                  */
9661                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9662                         /* This was really a NUL. */
9663                         *(yy_c_buf_p) = '\0';
9664
9665                 else
9666                         { /* need more input */
9667                         int offset = (yy_c_buf_p) - (yytext_ptr);
9668                         ++(yy_c_buf_p);
9669
9670                         switch ( yy_get_next_buffer(  ) )
9671                                 {
9672                                 case EOB_ACT_LAST_MATCH:
9673                                         /* This happens because yy_g_n_b()
9674                                          * sees that we've accumulated a
9675                                          * token and flags that we need to
9676                                          * try matching the token before
9677                                          * proceeding.  But for input(),
9678                                          * there's no matching to consider.
9679                                          * So convert the EOB_ACT_LAST_MATCH
9680                                          * to EOB_ACT_END_OF_FILE.
9681                                          */
9682
9683                                         /* Reset buffer status. */
9684                                         surf_parse_restart(surf_parse_in );
9685
9686                                         /*FALLTHROUGH*/
9687
9688                                 case EOB_ACT_END_OF_FILE:
9689                                         {
9690                                         if ( surf_parse_wrap( ) )
9691                                                 return EOF;
9692
9693                                         if ( ! (yy_did_buffer_switch_on_eof) )
9694                                                 YY_NEW_FILE;
9695 #ifdef __cplusplus
9696                                         return yyinput();
9697 #else
9698                                         return input();
9699 #endif
9700                                         }
9701
9702                                 case EOB_ACT_CONTINUE_SCAN:
9703                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9704                                         break;
9705                                 }
9706                         }
9707                 }
9708
9709         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9710         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9711         (yy_hold_char) = *++(yy_c_buf_p);
9712
9713         if ( c == '\n' )
9714                    
9715     surf_parse_lineno++;
9716 ;
9717
9718         return c;
9719 }
9720 #endif  /* ifndef YY_NO_INPUT */
9721
9722 /** Immediately switch to a different input stream.
9723  * @param input_file A readable stream.
9724  * 
9725  * @note This function does not reset the start condition to @c INITIAL .
9726  */
9727     void surf_parse_restart  (FILE * input_file )
9728 {
9729     
9730         if ( ! YY_CURRENT_BUFFER ){
9731         surf_parse_ensure_buffer_stack ();
9732                 YY_CURRENT_BUFFER_LVALUE =
9733             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9734         }
9735
9736         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9737         surf_parse__load_buffer_state( );
9738 }
9739
9740 /** Switch to a different input buffer.
9741  * @param new_buffer The new input buffer.
9742  * 
9743  */
9744     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9745 {
9746     
9747         /* TODO. We should be able to replace this entire function body
9748          * with
9749          *              surf_parse_pop_buffer_state();
9750          *              surf_parse_push_buffer_state(new_buffer);
9751      */
9752         surf_parse_ensure_buffer_stack ();
9753         if ( YY_CURRENT_BUFFER == new_buffer )
9754                 return;
9755
9756         if ( YY_CURRENT_BUFFER )
9757                 {
9758                 /* Flush out information for old buffer. */
9759                 *(yy_c_buf_p) = (yy_hold_char);
9760                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9761                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9762                 }
9763
9764         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9765         surf_parse__load_buffer_state( );
9766
9767         /* We don't actually know whether we did this switch during
9768          * EOF (surf_parse_wrap()) processing, but the only time this flag
9769          * is looked at is after surf_parse_wrap() is called, so it's safe
9770          * to go ahead and always set it.
9771          */
9772         (yy_did_buffer_switch_on_eof) = 1;
9773 }
9774
9775 static void surf_parse__load_buffer_state  (void)
9776 {
9777         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9778         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9779         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9780         (yy_hold_char) = *(yy_c_buf_p);
9781 }
9782
9783 /** Allocate and initialize an input buffer state.
9784  * @param file A readable stream.
9785  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9786  * 
9787  * @return the allocated buffer state.
9788  */
9789     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9790 {
9791         YY_BUFFER_STATE b;
9792     
9793         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9794         if ( ! b )
9795                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9796
9797         b->yy_buf_size = size;
9798
9799         /* yy_ch_buf has to be 2 characters longer than the size given because
9800          * we need to put in 2 end-of-buffer characters.
9801          */
9802         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9803         if ( ! b->yy_ch_buf )
9804                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9805
9806         b->yy_is_our_buffer = 1;
9807
9808         surf_parse__init_buffer(b,file );
9809
9810         return b;
9811 }
9812
9813 /** Destroy the buffer.
9814  * @param b a buffer created with surf_parse__create_buffer()
9815  * 
9816  */
9817     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9818 {
9819     
9820         if ( ! b )
9821                 return;
9822
9823         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9824                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9825
9826         if ( b->yy_is_our_buffer )
9827                 surf_parse_free((void *) b->yy_ch_buf  );
9828
9829         surf_parse_free((void *) b  );
9830 }
9831
9832 #ifndef __cplusplus
9833 extern int isatty (int );
9834 #endif /* __cplusplus */
9835     
9836 /* Initializes or reinitializes a buffer.
9837  * This function is sometimes called more than once on the same buffer,
9838  * such as during a surf_parse_restart() or at EOF.
9839  */
9840     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9841
9842 {
9843         int oerrno = errno;
9844     
9845         surf_parse__flush_buffer(b );
9846
9847         b->yy_input_file = file;
9848         b->yy_fill_buffer = 1;
9849
9850     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9851      * called from surf_parse_restart() or through yy_get_next_buffer.
9852      * In that case, we don't want to reset the lineno or column.
9853      */
9854     if (b != YY_CURRENT_BUFFER){
9855         b->yy_bs_lineno = 1;
9856         b->yy_bs_column = 0;
9857     }
9858
9859         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9860     
9861         errno = oerrno;
9862 }
9863
9864 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9865  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9866  * 
9867  */
9868     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9869 {
9870         if ( ! b )
9871                 return;
9872
9873         b->yy_n_chars = 0;
9874
9875         /* We always need two end-of-buffer characters.  The first causes
9876          * a transition to the end-of-buffer state.  The second causes
9877          * a jam in that state.
9878          */
9879         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9880         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9881
9882         b->yy_buf_pos = &b->yy_ch_buf[0];
9883
9884         b->yy_at_bol = 1;
9885         b->yy_buffer_status = YY_BUFFER_NEW;
9886
9887         if ( b == YY_CURRENT_BUFFER )
9888                 surf_parse__load_buffer_state( );
9889 }
9890
9891 /** Pushes the new state onto the stack. The new state becomes
9892  *  the current state. This function will allocate the stack
9893  *  if necessary.
9894  *  @param new_buffer The new state.
9895  *  
9896  */
9897 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9898 {
9899         if (new_buffer == NULL)
9900                 return;
9901
9902         surf_parse_ensure_buffer_stack();
9903
9904         /* This block is copied from surf_parse__switch_to_buffer. */
9905         if ( YY_CURRENT_BUFFER )
9906                 {
9907                 /* Flush out information for old buffer. */
9908                 *(yy_c_buf_p) = (yy_hold_char);
9909                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9910                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9911                 }
9912
9913         /* Only push if top exists. Otherwise, replace top. */
9914         if (YY_CURRENT_BUFFER)
9915                 (yy_buffer_stack_top)++;
9916         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9917
9918         /* copied from surf_parse__switch_to_buffer. */
9919         surf_parse__load_buffer_state( );
9920         (yy_did_buffer_switch_on_eof) = 1;
9921 }
9922
9923 /** Removes and deletes the top of the stack, if present.
9924  *  The next element becomes the new top.
9925  *  
9926  */
9927 void surf_parse_pop_buffer_state (void)
9928 {
9929         if (!YY_CURRENT_BUFFER)
9930                 return;
9931
9932         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9933         YY_CURRENT_BUFFER_LVALUE = NULL;
9934         if ((yy_buffer_stack_top) > 0)
9935                 --(yy_buffer_stack_top);
9936
9937         if (YY_CURRENT_BUFFER) {
9938                 surf_parse__load_buffer_state( );
9939                 (yy_did_buffer_switch_on_eof) = 1;
9940         }
9941 }
9942
9943 /* Allocates the stack if it does not exist.
9944  *  Guarantees space for at least one push.
9945  */
9946 static void surf_parse_ensure_buffer_stack (void)
9947 {
9948         int num_to_alloc;
9949     
9950         if (!(yy_buffer_stack)) {
9951
9952                 /* First allocation is just for 2 elements, since we don't know if this
9953                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9954                  * immediate realloc on the next call.
9955          */
9956                 num_to_alloc = 1;
9957                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9958                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9959                                                                 );
9960                 if ( ! (yy_buffer_stack) )
9961                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9962                                                                   
9963                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9964                                 
9965                 (yy_buffer_stack_max) = num_to_alloc;
9966                 (yy_buffer_stack_top) = 0;
9967                 return;
9968         }
9969
9970         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9971
9972                 /* Increase the buffer to prepare for a possible push. */
9973                 int grow_size = 8 /* arbitrary grow size */;
9974
9975                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9976                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9977                                                                 ((yy_buffer_stack),
9978                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9979                                                                 );
9980                 if ( ! (yy_buffer_stack) )
9981                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9982
9983                 /* zero only the new slots.*/
9984                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9985                 (yy_buffer_stack_max) = num_to_alloc;
9986         }
9987 }
9988
9989 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9990  * @param base the character buffer
9991  * @param size the size in bytes of the character buffer
9992  * 
9993  * @return the newly allocated buffer state object. 
9994  */
9995 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9996 {
9997         YY_BUFFER_STATE b;
9998     
9999         if ( size < 2 ||
10000              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10001              base[size-1] != YY_END_OF_BUFFER_CHAR )
10002                 /* They forgot to leave room for the EOB's. */
10003                 return 0;
10004
10005         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10006         if ( ! b )
10007                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10008
10009         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10010         b->yy_buf_pos = b->yy_ch_buf = base;
10011         b->yy_is_our_buffer = 0;
10012         b->yy_input_file = 0;
10013         b->yy_n_chars = b->yy_buf_size;
10014         b->yy_is_interactive = 0;
10015         b->yy_at_bol = 1;
10016         b->yy_fill_buffer = 0;
10017         b->yy_buffer_status = YY_BUFFER_NEW;
10018
10019         surf_parse__switch_to_buffer(b  );
10020
10021         return b;
10022 }
10023
10024 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10025  * scan from a @e copy of @a str.
10026  * @param yystr a NUL-terminated string to scan
10027  * 
10028  * @return the newly allocated buffer state object.
10029  * @note If you want to scan bytes that may contain NUL values, then use
10030  *       surf_parse__scan_bytes() instead.
10031  */
10032 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10033 {
10034     
10035         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10036 }
10037
10038 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10039  * scan from a @e copy of @a bytes.
10040  * @param yybytes the byte buffer to scan
10041  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10042  * 
10043  * @return the newly allocated buffer state object.
10044  */
10045 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10046 {
10047         YY_BUFFER_STATE b;
10048         char *buf;
10049         yy_size_t n;
10050         int i;
10051     
10052         /* Get memory for full buffer, including space for trailing EOB's. */
10053         n = _yybytes_len + 2;
10054         buf = (char *) surf_parse_alloc(n  );
10055         if ( ! buf )
10056                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10057
10058         for ( i = 0; i < _yybytes_len; ++i )
10059                 buf[i] = yybytes[i];
10060
10061         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10062
10063         b = surf_parse__scan_buffer(buf,n );
10064         if ( ! b )
10065                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10066
10067         /* It's okay to grow etc. this buffer, and we should throw it
10068          * away when we're done.
10069          */
10070         b->yy_is_our_buffer = 1;
10071
10072         return b;
10073 }
10074
10075     static void yy_push_state (int  new_state )
10076 {
10077         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10078                 {
10079                 yy_size_t new_size;
10080
10081                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10082                 new_size = (yy_start_stack_depth) * sizeof( int );
10083
10084                 if ( ! (yy_start_stack) )
10085                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10086
10087                 else
10088                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10089
10090                 if ( ! (yy_start_stack) )
10091                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10092                 }
10093
10094         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10095
10096         BEGIN(new_state);
10097 }
10098
10099     static void yy_pop_state  (void)
10100 {
10101         if ( --(yy_start_stack_ptr) < 0 )
10102                 YY_FATAL_ERROR( "start-condition stack underflow" );
10103
10104         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10105 }
10106
10107 #ifndef YY_EXIT_FAILURE
10108 #define YY_EXIT_FAILURE 2
10109 #endif
10110
10111 static void yy_fatal_error (yyconst char* msg )
10112 {
10113         (void) fprintf( stderr, "%s\n", msg );
10114         exit( YY_EXIT_FAILURE );
10115 }
10116
10117 /* Redefine yyless() so it works in section 3 code. */
10118
10119 #undef yyless
10120 #define yyless(n) \
10121         do \
10122                 { \
10123                 /* Undo effects of setting up surf_parse_text. */ \
10124         int yyless_macro_arg = (n); \
10125         YY_LESS_LINENO(yyless_macro_arg);\
10126                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10127                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10128                 (yy_hold_char) = *(yy_c_buf_p); \
10129                 *(yy_c_buf_p) = '\0'; \
10130                 surf_parse_leng = yyless_macro_arg; \
10131                 } \
10132         while ( 0 )
10133
10134 /* Accessor  methods (get/set functions) to struct members. */
10135
10136 /** Get the current line number.
10137  * 
10138  */
10139 int surf_parse_get_lineno  (void)
10140 {
10141         
10142     return surf_parse_lineno;
10143 }
10144
10145 /** Get the input stream.
10146  * 
10147  */
10148 FILE *surf_parse_get_in  (void)
10149 {
10150         return surf_parse_in;
10151 }
10152
10153 /** Get the output stream.
10154  * 
10155  */
10156 FILE *surf_parse_get_out  (void)
10157 {
10158         return surf_parse_out;
10159 }
10160
10161 /** Get the length of the current token.
10162  * 
10163  */
10164 int surf_parse_get_leng  (void)
10165 {
10166         return surf_parse_leng;
10167 }
10168
10169 /** Get the current token.
10170  * 
10171  */
10172
10173 char *surf_parse_get_text  (void)
10174 {
10175         return surf_parse_text;
10176 }
10177
10178 /** Set the current line number.
10179  * @param line_number
10180  * 
10181  */
10182 void surf_parse_set_lineno (int  line_number )
10183 {
10184     
10185     surf_parse_lineno = line_number;
10186 }
10187
10188 /** Set the input stream. This does not discard the current
10189  * input buffer.
10190  * @param in_str A readable stream.
10191  * 
10192  * @see surf_parse__switch_to_buffer
10193  */
10194 void surf_parse_set_in (FILE *  in_str )
10195 {
10196         surf_parse_in = in_str ;
10197 }
10198
10199 void surf_parse_set_out (FILE *  out_str )
10200 {
10201         surf_parse_out = out_str ;
10202 }
10203
10204 int surf_parse_get_debug  (void)
10205 {
10206         return surf_parse__flex_debug;
10207 }
10208
10209 void surf_parse_set_debug (int  bdebug )
10210 {
10211         surf_parse__flex_debug = bdebug ;
10212 }
10213
10214 static int yy_init_globals (void)
10215 {
10216         /* Initialization is the same as for the non-reentrant scanner.
10217      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10218      */
10219
10220     /* We do not touch surf_parse_lineno unless the option is enabled. */
10221     surf_parse_lineno =  1;
10222     
10223     (yy_buffer_stack) = 0;
10224     (yy_buffer_stack_top) = 0;
10225     (yy_buffer_stack_max) = 0;
10226     (yy_c_buf_p) = (char *) 0;
10227     (yy_init) = 0;
10228     (yy_start) = 0;
10229
10230     (yy_start_stack_ptr) = 0;
10231     (yy_start_stack_depth) = 0;
10232     (yy_start_stack) =  NULL;
10233
10234 /* Defined in main.c */
10235 #ifdef YY_STDINIT
10236     surf_parse_in = stdin;
10237     surf_parse_out = stdout;
10238 #else
10239     surf_parse_in = (FILE *) 0;
10240     surf_parse_out = (FILE *) 0;
10241 #endif
10242
10243     /* For future reference: Set errno on error, since we are called by
10244      * surf_parse_lex_init()
10245      */
10246     return 0;
10247 }
10248
10249 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10250 int surf_parse_lex_destroy  (void)
10251 {
10252     
10253     /* Pop the buffer stack, destroying each element. */
10254         while(YY_CURRENT_BUFFER){
10255                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10256                 YY_CURRENT_BUFFER_LVALUE = NULL;
10257                 surf_parse_pop_buffer_state();
10258         }
10259
10260         /* Destroy the stack itself. */
10261         surf_parse_free((yy_buffer_stack) );
10262         (yy_buffer_stack) = NULL;
10263
10264     /* Destroy the start condition stack. */
10265         surf_parse_free((yy_start_stack)  );
10266         (yy_start_stack) = NULL;
10267
10268     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10269      * surf_parse_lex() is called, initialization will occur. */
10270     yy_init_globals( );
10271
10272     return 0;
10273 }
10274
10275 /*
10276  * Internal utility routines.
10277  */
10278
10279 #ifndef yytext_ptr
10280 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10281 {
10282         register int i;
10283         for ( i = 0; i < n; ++i )
10284                 s1[i] = s2[i];
10285 }
10286 #endif
10287
10288 #ifdef YY_NEED_STRLEN
10289 static int yy_flex_strlen (yyconst char * s )
10290 {
10291         register int n;
10292         for ( n = 0; s[n]; ++n )
10293                 ;
10294
10295         return n;
10296 }
10297 #endif
10298
10299 void *surf_parse_alloc (yy_size_t  size )
10300 {
10301         return (void *) malloc( size );
10302 }
10303
10304 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10305 {
10306         /* The cast to (char *) in the following accommodates both
10307          * implementations that use char* generic pointers, and those
10308          * that use void* generic pointers.  It works with the latter
10309          * because both ANSI C and C++ allow castless assignment from
10310          * any pointer type to void*, and deal with argument conversions
10311          * as though doing an assignment.
10312          */
10313         return (void *) realloc( (char *) ptr, size );
10314 }
10315
10316 void surf_parse_free (void * ptr )
10317 {
10318         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10319 }
10320
10321 #define YYTABLES_NAME "yytables"
10322
10323 /* Element context stack lookup. */
10324 int surfxml_element_context(int i)
10325 {
10326   return (0<i && i<yy_start_stack_depth
10327           ? yy_start_stack[yy_start_stack_ptr - i]
10328           : 0);
10329 }
10330
10331 #ifdef FLEX_DEBUG
10332 void print_yy_stack(char* fmt, ...)
10333 {
10334   int i = 0; va_list ap; va_start(ap, fmt);
10335   vfprintf(stderr, fmt, ap);
10336   if (surfxml_statenames) {
10337       for (i=1; i<yy_start_stack_ptr; i++) {
10338           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10339       }
10340       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10341   }
10342   va_end(ap);
10343 }
10344
10345 void print_surfxml_bufferstack()
10346 {
10347     int i;
10348     fputs("Buffer: ", stderr);
10349     for (i = 0; i < blimit; i++) {
10350        if ( surfxml_bufferstack[i] == '\377' ) break;
10351          putc(surfxml_bufferstack[i], stderr);
10352     }
10353     putc('\n', stderr);
10354 }
10355
10356 static void debug_enter(int state, const char* statename) {
10357   yy_push_state(state);
10358   if (surf_parse__flex_debug) {
10359        print_yy_stack("--ENTER(%s) : ",statename);
10360        print_surfxml_bufferstack();
10361   }
10362 }
10363
10364 static void debug_leave(void) {
10365     if (surf_parse__flex_debug) {
10366         print_yy_stack("--LEAVE : ");
10367         print_surfxml_bufferstack();
10368     }
10369   yy_pop_state();
10370 }
10371
10372 static void debug_set(int state, const char* statename) {
10373   BEGIN(state);
10374   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10375 }
10376 #endif
10377
10378 static void cleanup(void)
10379 {
10380     if (surfxml_statenames) {
10381         free(surfxml_statenames);
10382         surfxml_statenames = NULL;
10383     }
10384     free(surfxml_bufferstack);
10385     surfxml_bufferstack = NULL;
10386
10387     free(indexstack);
10388     indexstack = NULL;
10389 }
10390
10391 static int fail(const char* fmt, ...)
10392 {
10393     int chars_left, used;
10394     va_list ap; va_start(ap, fmt);
10395 #ifdef FLEXML_yylineno
10396     used = sprintf(flexml_err_msg,
10397                    "Invalid XML (XML input line %d, state %d): ",
10398                    surf_parse_lineno, YY_START);
10399 #else
10400     used = sprintf(flexml_err_msg,
10401                    "Invalid XML (state %d): ",
10402                    YY_START);
10403 #endif
10404     chars_left = flexml_max_err_msg_size - used - 1;
10405     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10406     va_end(ap);
10407
10408 #ifndef FLEXML_quiet_parser
10409     /* print directly to sdterr */
10410     fprintf(stderr, "%s\n", flexml_err_msg);
10411     flexml_err_msg[0] = '\0';
10412 #endif
10413
10414     cleanup();
10415
10416     return 1;
10417 }
10418