OSParseosil.cpp
Go to the documentation of this file.
1 #line 2 "../../../../OS/src/OSParsers/OSParseosil.cpp"
2 
3 #line 4 "../../../../OS/src/OSParsers/OSParseosil.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 /* %not-for-header */
10 
11 /* %if-c-only */
12 /* %if-not-reentrant */
13 /* %endif */
14 /* %endif */
15 /* %ok-for-header */
16 
17 #define FLEX_SCANNER
18 #define YY_FLEX_MAJOR_VERSION 2
19 #define YY_FLEX_MINOR_VERSION 5
20 #define YY_FLEX_SUBMINOR_VERSION 35
21 #if YY_FLEX_SUBMINOR_VERSION > 0
22 #define FLEX_BETA
23 #endif
24 
25 /* %if-c++-only */
26 /* %endif */
27 
28 /* %if-c-only */
29 
30 /* %endif */
31 
32 /* %if-c-only */
33 
34 /* %endif */
35 
36 /* First, we deal with platform-specific or compiler-specific issues. */
37 
38 /* begin standard C headers. */
39 /* %if-c-only */
40 #include <stdio.h>
41 #include <string.h>
42 #include <errno.h>
43 #include <stdlib.h>
44 /* %endif */
45 
46 /* %if-tables-serialization */
47 /* %endif */
48 /* end standard C headers. */
49 
50 /* %if-c-or-c++ */
51 /* flex integer type definitions */
52 
53 #ifndef FLEXINT_H
54 #define FLEXINT_H
55 
56 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
57 
58 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
59 
60 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
61  * if you want the limit (max/min) macros for int types.
62  */
63 #ifndef __STDC_LIMIT_MACROS
64 #define __STDC_LIMIT_MACROS 1
65 #endif
66 
67 #include <inttypes.h>
68 typedef int8_t flex_int8_t;
69 typedef uint8_t flex_uint8_t;
70 typedef int16_t flex_int16_t;
71 typedef uint16_t flex_uint16_t;
72 typedef int32_t flex_int32_t;
73 typedef uint32_t flex_uint32_t;
74 #else
75 typedef signed char flex_int8_t;
76 typedef short int flex_int16_t;
77 typedef int flex_int32_t;
78 typedef unsigned char flex_uint8_t;
79 typedef unsigned short int flex_uint16_t;
80 typedef unsigned int flex_uint32_t;
81 
82 /* Limits of integral types. */
83 #ifndef INT8_MIN
84 #define INT8_MIN (-128)
85 #endif
86 #ifndef INT16_MIN
87 #define INT16_MIN (-32767-1)
88 #endif
89 #ifndef INT32_MIN
90 #define INT32_MIN (-2147483647-1)
91 #endif
92 #ifndef INT8_MAX
93 #define INT8_MAX (127)
94 #endif
95 #ifndef INT16_MAX
96 #define INT16_MAX (32767)
97 #endif
98 #ifndef INT32_MAX
99 #define INT32_MAX (2147483647)
100 #endif
101 #ifndef UINT8_MAX
102 #define UINT8_MAX (255U)
103 #endif
104 #ifndef UINT16_MAX
105 #define UINT16_MAX (65535U)
106 #endif
107 #ifndef UINT32_MAX
108 #define UINT32_MAX (4294967295U)
109 #endif
110 
111 #endif /* ! C99 */
112 
113 #endif /* ! FLEXINT_H */
114 
115 /* %endif */
116 
117 /* %if-c++-only */
118 /* %endif */
119 
120 #ifdef __cplusplus
121 
122 /* The "const" storage-class-modifier is valid. */
123 #define YY_USE_CONST
124 
125 #else /* ! __cplusplus */
126 
127 /* C99 requires __STDC__ to be defined as 1. */
128 #if defined (__STDC__)
129 
130 #define YY_USE_CONST
131 
132 #endif /* defined (__STDC__) */
133 #endif /* ! __cplusplus */
134 
135 #ifdef YY_USE_CONST
136 #define yyconst const
137 #else
138 #define yyconst
139 #endif
140 
141 /* %not-for-header */
142 
143 /* Returned upon end-of-file. */
144 #define YY_NULL 0
145 /* %ok-for-header */
146 
147 /* %not-for-header */
148 
149 /* Promotes a possibly negative, possibly signed char to an unsigned
150  * integer for use as an array index. If the signed char is negative,
151  * we want to instead treat it as an 8-bit unsigned char, hence the
152  * double cast.
153  */
154 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
155 /* %ok-for-header */
156 
157 /* %if-reentrant */
158 
159 /* An opaque pointer. */
160 #ifndef YY_TYPEDEF_YY_SCANNER_T
161 #define YY_TYPEDEF_YY_SCANNER_T
162 typedef void* yyscan_t;
163 #endif
164 
165 /* For convenience, these vars (plus the bison vars far below)
166  are macros in the reentrant scanner. */
167 #define yyin yyg->yyin_r
168 #define yyout yyg->yyout_r
169 #define yyextra yyg->yyextra_r
170 #define yyleng yyg->yyleng_r
171 #define yytext yyg->yytext_r
172 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
173 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
174 #define yy_flex_debug yyg->yy_flex_debug_r
175 
176 /* %endif */
177 
178 /* %if-not-reentrant */
179 /* %endif */
180 
181 /* Enter a start condition. This macro really ought to take a parameter,
182  * but we do it the disgusting crufty way forced on us by the ()-less
183  * definition of BEGIN.
184  */
185 #define BEGIN yyg->yy_start = 1 + 2 *
186 
187 /* Translate the current start state into a value that can be later handed
188  * to BEGIN to return to the state. The YYSTATE alias is for lex
189  * compatibility.
190  */
191 #define YY_START ((yyg->yy_start - 1) / 2)
192 #define YYSTATE YY_START
193 
194 /* Action number for EOF rule of a given start state. */
195 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
196 
197 /* Special action meaning "start processing a new file". */
198 #define YY_NEW_FILE osilrestart(yyin ,yyscanner )
199 
200 #define YY_END_OF_BUFFER_CHAR 0
201 
202 /* Size of default input buffer. */
203 #ifndef YY_BUF_SIZE
204 #ifdef __ia64__
205 /* On IA-64, the buffer size is 16k, not 8k.
206  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
207  * Ditto for the __ia64__ case accordingly.
208  */
209 #define YY_BUF_SIZE 32768
210 #else
211 #define YY_BUF_SIZE 16384
212 #endif /* __ia64__ */
213 #endif
214 
215 /* The state buf must be large enough to hold one state per character in the main buffer.
216  */
217 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
218 
219 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
220 #define YY_TYPEDEF_YY_BUFFER_STATE
222 #endif
223 
224 /* %if-not-reentrant */
225 /* %endif */
226 
227 /* %if-c-only */
228 /* %if-not-reentrant */
229 /* %endif */
230 /* %endif */
231 
232 #define EOB_ACT_CONTINUE_SCAN 0
233 #define EOB_ACT_END_OF_FILE 1
234 #define EOB_ACT_LAST_MATCH 2
235 
236  /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
237  * access to the local variable yy_act. Since yyless() is a macro, it would break
238  * existing scanners that call yyless() from OUTSIDE osillex.
239  * One obvious solution it to make yy_act a global. I tried that, and saw
240  * a 5% performance hit in a non-yylineno scanner, because yy_act is
241  * normally declared as a register variable-- so it is not worth it.
242  */
243  #define YY_LESS_LINENO(n) \
244  do { \
245  int yyl;\
246  for ( yyl = n; yyl < yyleng; ++yyl )\
247  if ( yytext[yyl] == '\n' )\
248  --yylineno;\
249  }while(0)
250 
251 /* Return all but the first "n" matched characters back to the input stream. */
252 #define yyless(n) \
253  do \
254  { \
255  /* Undo effects of setting up yytext. */ \
256  int yyless_macro_arg = (n); \
257  YY_LESS_LINENO(yyless_macro_arg);\
258  *yy_cp = yyg->yy_hold_char; \
259  YY_RESTORE_YY_MORE_OFFSET \
260  yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
261  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
262  } \
263  while ( 0 )
264 
265 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
266 
267 #ifndef YY_TYPEDEF_YY_SIZE_T
268 #define YY_TYPEDEF_YY_SIZE_T
269 typedef size_t yy_size_t;
270 #endif
271 
272 #ifndef YY_STRUCT_YY_BUFFER_STATE
273 #define YY_STRUCT_YY_BUFFER_STATE
275  {
276 /* %if-c-only */
278 /* %endif */
279 
280 /* %if-c++-only */
281 /* %endif */
282 
283  char *yy_ch_buf; /* input buffer */
284  char *yy_buf_pos; /* current position in input buffer */
285 
286  /* Size of input buffer in bytes, not including room for EOB
287  * characters.
288  */
290 
291  /* Number of characters read into yy_ch_buf, not including EOB
292  * characters.
293  */
295 
296  /* Whether we "own" the buffer - i.e., we know we created it,
297  * and can realloc() it to grow it, and should free() it to
298  * delete it.
299  */
301 
302  /* Whether this is an "interactive" input source; if so, and
303  * if we're using stdio for input, then we want to use getc()
304  * instead of fread(), to make sure we stop fetching input after
305  * each newline.
306  */
308 
309  /* Whether we're considered to be at the beginning of a line.
310  * If so, '^' rules will be active on the next match, otherwise
311  * not.
312  */
314 
318  /* Whether to try to fill the input buffer when we reach the
319  * end of it.
320  */
322 
324 
325 #define YY_BUFFER_NEW 0
326 #define YY_BUFFER_NORMAL 1
327  /* When an EOF's been seen but there's still some text to process
328  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
329  * shouldn't try reading from the input source any more. We might
330  * still have a bunch of tokens to match, though, because of
331  * possible backing-up.
332  *
333  * When we actually see the EOF, we change the status to "new"
334  * (via osilrestart()), so that the user can continue scanning by
335  * just pointing yyin at a new input file.
336  */
337 #define YY_BUFFER_EOF_PENDING 2
338 
339  };
340 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
341 
342 /* %if-c-only Standard (non-C++) definition */
343 /* %not-for-header */
344 
345 /* %if-not-reentrant */
346 /* %endif */
347 /* %ok-for-header */
348 
349 /* %endif */
350 
351 /* We provide macros for accessing buffer states in case in the
352  * future we want to put the buffer states in a more general
353  * "scanner state".
354  *
355  * Returns the top of the stack, or NULL.
356  */
357 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
358  ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
359  : NULL)
360 
361 /* Same as previous macro, but useful when we know that the buffer stack is not
362  * NULL or when we need an lvalue. For internal use only.
363  */
364 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
365 
366 /* %if-c-only Standard (non-C++) definition */
367 
368 /* %if-not-reentrant */
369 /* %not-for-header */
370 
371 /* %ok-for-header */
372 
373 /* %endif */
374 
375 void osilrestart (FILE *input_file ,yyscan_t yyscanner );
376 void osil_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
377 YY_BUFFER_STATE osil_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
378 void osil_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
379 void osil_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
380 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
381 void osilpop_buffer_state (yyscan_t yyscanner );
382 
383 static void osilensure_buffer_stack (yyscan_t yyscanner );
384 static void osil_load_buffer_state (yyscan_t yyscanner );
385 static void osil_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
386 
387 #define YY_FLUSH_BUFFER osil_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
388 
389 YY_BUFFER_STATE osil_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
390 YY_BUFFER_STATE osil_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
391 YY_BUFFER_STATE osil_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
392 
393 /* %endif */
394 
395 void *osilalloc (yy_size_t ,yyscan_t yyscanner );
396 void *osilrealloc (void *,yy_size_t ,yyscan_t yyscanner );
397 void osilfree (void * ,yyscan_t yyscanner );
398 
399 #define yy_new_buffer osil_create_buffer
400 
401 #define yy_set_interactive(is_interactive) \
402  { \
403  if ( ! YY_CURRENT_BUFFER ){ \
404  osilensure_buffer_stack (yyscanner); \
405  YY_CURRENT_BUFFER_LVALUE = \
406  osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
407  } \
408  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
409  }
410 
411 #define yy_set_bol(at_bol) \
412  { \
413  if ( ! YY_CURRENT_BUFFER ){\
414  osilensure_buffer_stack (yyscanner); \
415  YY_CURRENT_BUFFER_LVALUE = \
416  osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
417  } \
418  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
419  }
420 
421 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
422 
423 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
424 /* Begin user sect3 */
425 
426 #define osilwrap(n) 1
427 #define YY_SKIP_YYWRAP
428 
429 #define FLEX_DEBUG
430 
431 typedef unsigned char YY_CHAR;
432 
433 typedef int yy_state_type;
434 
435 #define yytext_ptr yytext_r
436 
437 /* %if-c-only Standard (non-C++) definition */
438 
439 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
440 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
441 static int yy_get_next_buffer (yyscan_t yyscanner );
442 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
443 
444 /* %endif */
445 
446 /* Done after the current pattern has been matched and before the
447  * corresponding action - sets up yytext.
448  */
449 #define YY_DO_BEFORE_ACTION \
450  yyg->yytext_ptr = yy_bp; \
451 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
452  yyleng = (size_t) (yy_cp - yy_bp); \
453  yyg->yy_hold_char = *yy_cp; \
454  *yy_cp = '\0'; \
455 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
456  yyg->yy_c_buf_p = yy_cp;
457 
458 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
459 #define YY_NUM_RULES 457
460 #define YY_END_OF_BUFFER 458
461 /* This struct is not used in this scanner,
462  but its presence is necessary. */
464  {
467  };
469  { 0,
470  1, 1, 0, 0, 454, 454, 455, 455, 0, 0,
471  0, 0, 0, 0, 0, 0, 0, 0, 458, 456,
472  1, 1, 2, 444, 2, 444, 6, 444, 5, 456,
473  4, 444, 444, 2, 457, 454, 455, 445, 447, 448,
474  447, 451, 452, 451, 1, 444, 444, 6, 444, 5,
475  0, 4, 444, 444, 444, 444, 444, 444, 444, 444,
476  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
477  444, 3, 6, 6, 444, 7, 5, 0, 0, 450,
478  384, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 
481  0, 0, 444, 444, 454, 455, 445, 0, 453, 444,
482  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
483  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
484  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
485  444, 444, 444, 444, 444, 6, 0, 0, 0, 0,
486  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487  0, 0, 0, 0, 0, 0, 0, 0, 0, 386,
488  0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
489  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490  0, 0, 0, 0, 0, 0, 0, 0, 338, 0,
491 
492  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
493  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494  0, 6, 449, 444, 444, 444, 444, 444, 444, 444,
495  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
496  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
497  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
498  444, 444, 444, 444, 444, 446, 0, 385, 0, 0,
499  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
500  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
501  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
502 
503  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506  287, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507  0, 0, 0, 0, 0, 370, 0, 0, 0, 0,
508  0, 305, 0, 0, 0, 352, 0, 0, 0, 0,
509  0, 0, 0, 291, 0, 0, 0, 0, 0, 0,
510  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511  0, 0, 0, 0, 0, 0, 0, 0, 0, 295,
512  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
513 
514  444, 444, 444, 444, 438, 439, 444, 222, 444, 444,
515  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
516  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
517  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
518  444, 385, 0, 387, 0, 0, 0, 0, 0, 0,
519  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520  85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521  371, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522  353, 0, 0, 0, 0, 0, 0, 339, 0, 0,
523  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 
525  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526  0, 0, 0, 0, 0, 0, 0, 0, 0, 366,
527  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528  0, 0, 0, 362, 0, 0, 0, 0, 0, 0,
529  0, 368, 0, 364, 393, 0, 0, 0, 0, 370,
530  0, 0, 0, 0, 0, 0, 0, 0, 352, 0,
531  0, 372, 0, 374, 0, 0, 0, 0, 0, 0,
532  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533  0, 0, 0, 0, 0, 0, 0, 0, 360, 0,
534  0, 0, 0, 0, 0, 0, 376, 0, 0, 0,
535 
536  0, 0, 0, 0, 0, 0, 444, 444, 444, 444,
537  444, 444, 225, 444, 444, 444, 444, 444, 444, 444,
538  444, 436, 437, 222, 444, 444, 444, 444, 223, 444,
539  444, 444, 444, 224, 444, 444, 444, 444, 444, 444,
540  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
541  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
542  444, 444, 387, 0, 367, 0, 0, 0, 0, 0,
543  0, 0, 0, 0, 0, 288, 0, 0, 0, 0,
544  363, 0, 0, 0, 0, 85, 0, 0, 0, 369,
545  0, 365, 0, 0, 0, 0, 0, 371, 0, 0,
546 
547  0, 0, 0, 0, 306, 0, 0, 0, 353, 0,
548  0, 373, 0, 375, 0, 0, 0, 339, 0, 0,
549  0, 0, 0, 0, 292, 0, 0, 0, 0, 0,
550  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
551  0, 0, 361, 0, 0, 0, 0, 0, 0, 0,
552  377, 0, 0, 0, 0, 0, 0, 0, 296, 0,
553  0, 0, 366, 0, 0, 0, 0, 0, 0, 315,
554  235, 0, 0, 0, 44, 0, 362, 0, 0, 0,
555  0, 0, 0, 368, 364, 0, 0, 0, 0, 255,
556  0, 0, 0, 0, 0, 87, 329, 0, 0, 0,
557 
558  372, 374, 0, 0, 0, 91, 0, 0, 0, 0,
559  0, 0, 0, 0, 0, 333, 0, 344, 0, 0,
560  0, 0, 42, 0, 0, 0, 0, 0, 360, 0,
561  0, 356, 0, 78, 253, 0, 376, 0, 0, 0,
562  0, 0, 0, 257, 0, 0, 0, 444, 444, 444,
563  444, 444, 444, 225, 444, 444, 444, 444, 444, 444,
564  444, 444, 444, 444, 444, 223, 444, 444, 444, 224,
565  444, 148, 149, 444, 444, 444, 444, 444, 444, 444,
566  444, 444, 444, 444, 444, 444, 444, 444, 19, 444,
567  444, 444, 444, 444, 172, 173, 444, 444, 444, 176,
568 
569  177, 444, 444, 444, 444, 444, 367, 0, 0, 0,
570  0, 0, 0, 0, 0, 0, 0, 288, 0, 0,
571  0, 363, 0, 0, 0, 0, 0, 0, 369, 365,
572  0, 394, 0, 0, 0, 0, 0, 0, 0, 0,
573  0, 88, 306, 0, 0, 0, 0, 373, 375, 0,
574  0, 92, 0, 0, 0, 0, 0, 0, 292, 0,
575  0, 0, 0, 37, 0, 0, 345, 0, 0, 0,
576  0, 0, 0, 0, 0, 0, 0, 361, 0, 0,
577  357, 0, 0, 0, 0, 377, 0, 0, 0, 0,
578  0, 0, 0, 296, 0, 0, 0, 0, 0, 0,
579 
580  0, 0, 0, 233, 0, 0, 0, 0, 0, 0,
581  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582  0, 0, 0, 317, 89, 87, 0, 0, 0, 0,
583  229, 0, 346, 93, 91, 0, 0, 0, 0, 0,
584  0, 382, 0, 0, 0, 344, 0, 0, 0, 350,
585  0, 0, 0, 0, 0, 0, 0, 356, 0, 76,
586  0, 0, 301, 0, 0, 340, 0, 0, 263, 269,
587  0, 0, 444, 444, 444, 444, 444, 444, 444, 444,
588  444, 444, 444, 444, 444, 444, 444, 15, 444, 16,
589  444, 444, 444, 444, 444, 444, 444, 444, 146, 147,
590 
591  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
592  444, 160, 161, 444, 226, 444, 444, 19, 444, 444,
593  444, 444, 170, 171, 444, 444, 174, 175, 444, 180,
594  181, 444, 444, 444, 0, 0, 0, 0, 0, 0,
595  0, 316, 0, 236, 0, 0, 0, 0, 0, 45,
596  0, 0, 0, 0, 0, 0, 0, 0, 394, 0,
597  0, 0, 0, 0, 256, 0, 0, 0, 0, 0,
598  88, 0, 330, 0, 0, 0, 0, 0, 347, 92,
599  0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
600  0, 334, 345, 0, 0, 0, 351, 0, 0, 43,
601 
602  0, 0, 0, 0, 0, 0, 357, 0, 0, 79,
603  0, 0, 254, 0, 0, 0, 0, 0, 341, 0,
604  0, 0, 258, 0, 0, 0, 0, 0, 0, 311,
605  313, 0, 0, 0, 0, 0, 0, 0, 0, 0,
606  0, 342, 0, 0, 0, 70, 0, 299, 0, 261,
607  0, 0, 0, 89, 0, 0, 0, 0, 0, 0,
608  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
609  0, 0, 346, 93, 0, 0, 348, 0, 0, 0,
610  0, 0, 0, 0, 0, 0, 350, 0, 0, 0,
611  0, 0, 303, 0, 0, 95, 0, 358, 0, 0,
612 
613  0, 0, 340, 0, 321, 0, 0, 444, 444, 444,
614  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
615  444, 444, 18, 15, 16, 444, 444, 444, 444, 444,
616  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
617  444, 444, 444, 444, 158, 159, 226, 444, 164, 165,
618  444, 444, 444, 444, 444, 444, 178, 179, 444, 444,
619  444, 444, 0, 0, 0, 0, 0, 0, 316, 236,
620  0, 234, 0, 0, 0, 45, 0, 0, 0, 0,
621  0, 343, 0, 0, 0, 0, 0, 0, 0, 256,
622  0, 0, 0, 0, 0, 318, 330, 0, 0, 0,
623 
624  0, 230, 0, 0, 0, 0, 0, 0, 0, 0,
625  0, 0, 0, 0, 0, 0, 347, 0, 349, 0,
626  0, 0, 0, 0, 383, 0, 0, 0, 334, 0,
627  0, 351, 0, 43, 0, 0, 0, 0, 0, 0,
628  96, 0, 359, 0, 79, 0, 77, 254, 0, 0,
629  0, 302, 0, 341, 0, 0, 258, 0, 264, 0,
630  270, 0, 0, 0, 378, 0, 0, 0, 0, 0,
631  0, 0, 0, 0, 0, 342, 64, 237, 0, 0,
632  0, 0, 0, 0, 0, 80, 0, 0, 0, 107,
633  0, 227, 0, 0, 0, 0, 0, 0, 0, 0,
634 
635  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
636  0, 0, 0, 0, 0, 348, 0, 0, 0, 259,
637  0, 0, 0, 0, 0, 0, 380, 0, 0, 0,
638  0, 0, 0, 0, 97, 95, 0, 358, 0, 0,
639  0, 0, 0, 0, 388, 444, 444, 444, 444, 444,
640  444, 444, 444, 444, 120, 121, 444, 218, 444, 444,
641  444, 444, 444, 444, 18, 444, 444, 444, 444, 444,
642  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
643  444, 444, 444, 444, 444, 444, 444, 152, 153, 444,
644  444, 444, 444, 444, 444, 444, 162, 163, 444, 17,
645 
646  444, 444, 444, 444, 444, 444, 444, 444, 444, 184,
647  185, 0, 379, 0, 0, 312, 0, 314, 0, 0,
648  234, 0, 0, 0, 0, 0, 0, 0, 343, 0,
649  0, 0, 0, 71, 0, 0, 300, 0, 0, 0,
650  0, 262, 0, 0, 0, 318, 0, 108, 0, 0,
651  230, 0, 0, 0, 0, 0, 0, 0, 0, 0,
652  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
653  0, 0, 0, 349, 0, 0, 0, 0, 383, 0,
654  0, 0, 0, 0, 0, 381, 0, 0, 0, 0,
655  0, 0, 304, 0, 0, 96, 359, 0, 77, 0,
656 
657  0, 302, 0, 0, 0, 322, 264, 270, 0, 0,
658  378, 0, 0, 0, 265, 0, 0, 0, 0, 0,
659  68, 0, 0, 0, 0, 0, 0, 0, 0, 0,
660  109, 107, 0, 0, 285, 0, 0, 0, 0, 0,
661  0, 0, 0, 0, 281, 0, 0, 0, 0, 0,
662  0, 0, 0, 0, 0, 277, 0, 0, 0, 0,
663  0, 0, 0, 66, 0, 380, 0, 0, 0, 267,
664  0, 0, 0, 97, 0, 0, 0, 0, 0, 0,
665  0, 297, 444, 444, 444, 444, 444, 444, 116, 117,
666  444, 118, 119, 218, 444, 444, 444, 444, 128, 129,
667 
668  444, 444, 444, 22, 444, 444, 444, 444, 20, 444,
669  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
670  444, 444, 444, 444, 444, 444, 444, 444, 444, 150,
671  151, 444, 444, 444, 156, 157, 444, 444, 444, 17,
672  444, 168, 169, 444, 444, 444, 24, 444, 444, 444,
673  444, 182, 183, 379, 0, 312, 314, 0, 0, 0,
674  0, 0, 0, 0, 0, 0, 0, 65, 0, 238,
675  0, 71, 0, 300, 0, 0, 0, 262, 0, 0,
676  0, 0, 81, 108, 0, 0, 228, 0, 0, 0,
677  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
678 
679  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
680  0, 0, 0, 260, 0, 0, 0, 0, 0, 381,
681  0, 0, 0, 0, 0, 304, 0, 0, 0, 0,
682  0, 0, 0, 322, 0, 0, 389, 0, 309, 0,
683  231, 72, 0, 0, 0, 0, 0, 0, 0, 0,
684  0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
685  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
686  0, 0, 0, 0, 0, 402, 0, 0, 0, 0,
687  0, 0, 0, 0, 0, 0, 0, 293, 0, 0,
688  0, 0, 0, 0, 0, 323, 0, 0, 0, 319,
689 
690  74, 0, 0, 444, 444, 444, 444, 444, 444, 444,
691  114, 115, 444, 444, 444, 444, 126, 127, 444, 444,
692  22, 444, 444, 444, 20, 444, 444, 444, 444, 444,
693  444, 444, 444, 444, 444, 444, 194, 444, 444, 444,
694  444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
695  444, 154, 155, 444, 444, 444, 166, 167, 444, 444,
696  24, 444, 444, 188, 189, 444, 0, 0, 0, 0,
697  266, 0, 0, 0, 0, 0, 0, 69, 65, 238,
698  0, 0, 0, 0, 0, 0, 0, 0, 81, 0,
699  228, 0, 286, 0, 0, 0, 0, 0, 0, 0,
700 
701  0, 0, 0, 0, 282, 0, 0, 0, 0, 0,
702  0, 0, 0, 0, 0, 0, 0, 0, 0, 278,
703  0, 0, 0, 0, 260, 0, 0, 0, 0, 67,
704  0, 0, 0, 0, 0, 268, 0, 0, 0, 0,
705  0, 0, 0, 0, 0, 389, 0, 298, 0, 0,
706  0, 289, 0, 331, 0, 0, 0, 0, 0, 0,
707  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
708  0, 416, 0, 0, 0, 0, 422, 0, 0, 0,
709  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
710  0, 0, 0, 0, 0, 60, 0, 0, 0, 325,
711 
712  0, 0, 354, 0, 0, 0, 444, 444, 444, 444,
713  444, 444, 217, 444, 216, 444, 444, 444, 444, 444,
714  444, 444, 444, 21, 444, 444, 444, 444, 444, 140,
715  141, 444, 444, 444, 444, 444, 444, 192, 444, 444,
716  194, 444, 444, 444, 444, 444, 444, 201, 444, 444,
717  444, 444, 444, 444, 205, 444, 444, 444, 444, 444,
718  444, 444, 444, 444, 444, 444, 23, 186, 187, 444,
719  0, 310, 0, 0, 232, 266, 0, 73, 0, 0,
720  0, 0, 69, 0, 0, 0, 0, 0, 0, 0,
721  0, 0, 286, 0, 0, 0, 0, 0, 0, 0,
722 
723  0, 0, 0, 282, 0, 0, 423, 0, 0, 0,
724  0, 0, 0, 403, 0, 0, 0, 0, 0, 278,
725  0, 0, 0, 0, 0, 0, 294, 0, 67, 0,
726  0, 0, 0, 268, 0, 0, 0, 324, 0, 355,
727  0, 0, 320, 0, 75, 0, 0, 298, 0, 0,
728  0, 0, 0, 99, 0, 0, 103, 0, 0, 0,
729  0, 327, 0, 0, 86, 0, 0, 0, 0, 0,
730  0, 0, 0, 0, 0, 418, 0, 0, 422, 0,
731  0, 0, 0, 0, 0, 424, 0, 0, 397, 0,
732  0, 0, 0, 90, 0, 0, 0, 0, 307, 0,
733 
734  0, 0, 0, 0, 0, 354, 0, 0, 0, 444,
735  444, 444, 444, 444, 217, 216, 444, 444, 444, 124,
736  125, 444, 444, 444, 21, 444, 221, 444, 444, 220,
737  444, 138, 139, 444, 219, 444, 444, 444, 444, 192,
738  444, 444, 444, 444, 392, 444, 444, 444, 201, 444,
739  444, 444, 203, 444, 444, 205, 444, 444, 444, 444,
740  30, 444, 444, 444, 444, 444, 444, 23, 444, 310,
741  0, 232, 73, 0, 0, 0, 290, 0, 100, 0,
742  332, 0, 104, 0, 0, 0, 0, 0, 0, 0,
743  0, 0, 0, 0, 0, 0, 0, 0, 417, 0,
744 
745  419, 0, 0, 423, 0, 0, 0, 0, 0, 403,
746  0, 425, 0, 0, 398, 0, 0, 0, 0, 0,
747  0, 0, 294, 0, 0, 0, 61, 0, 0, 0,
748  0, 0, 326, 324, 355, 0, 320, 75, 0, 0,
749  0, 0, 0, 101, 99, 0, 105, 103, 0, 0,
750  0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
751  0, 0, 0, 0, 0, 418, 0, 420, 0, 0,
752  0, 0, 0, 0, 424, 0, 397, 0, 0, 0,
753  90, 0, 0, 0, 0, 0, 0, 54, 0, 0,
754  0, 0, 0, 0, 444, 34, 444, 444, 444, 208,
755 
756  444, 444, 444, 444, 444, 122, 123, 444, 444, 444,
757  221, 444, 444, 220, 444, 444, 219, 444, 444, 444,
758  444, 444, 444, 13, 444, 444, 392, 444, 196, 444,
759  444, 444, 444, 444, 203, 444, 444, 444, 444, 444,
760  30, 444, 444, 444, 444, 444, 444, 444, 0, 0,
761  0, 290, 100, 332, 104, 0, 0, 0, 0, 38,
762  0, 328, 0, 0, 0, 0, 0, 0, 0, 0,
763  0, 417, 419, 0, 421, 0, 0, 0, 0, 0,
764  0, 425, 0, 398, 0, 0, 0, 0, 0, 0,
765  0, 0, 308, 0, 61, 0, 0, 0, 0, 326,
766 
767  0, 0, 0, 0, 0, 0, 101, 0, 105, 0,
768  0, 0, 0, 39, 0, 0, 247, 0, 0, 0,
769  0, 0, 0, 410, 0, 420, 0, 0, 426, 0,
770  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
771  0, 52, 0, 0, 0, 0, 0, 271, 0, 34,
772  444, 444, 208, 444, 444, 112, 113, 444, 444, 444,
773  444, 444, 444, 132, 133, 444, 136, 137, 444, 144,
774  145, 444, 444, 190, 444, 13, 444, 444, 196, 444,
775  444, 444, 444, 444, 444, 444, 444, 444, 14, 444,
776  204, 444, 207, 444, 444, 444, 444, 444, 444, 444,
777 
778  444, 444, 0, 0, 0, 0, 0, 0, 38, 328,
779  0, 0, 0, 0, 0, 0, 0, 0, 411, 0,
780  421, 0, 0, 427, 0, 0, 0, 0, 0, 0,
781  0, 0, 0, 0, 0, 0, 308, 0, 0, 0,
782  55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783  0, 249, 0, 0, 434, 39, 0, 0, 0, 0,
784  0, 406, 0, 408, 0, 410, 0, 0, 426, 0,
785  404, 0, 0, 0, 399, 0, 0, 275, 0, 46,
786  48, 0, 0, 0, 0, 0, 0, 0, 444, 444,
787  444, 444, 110, 111, 444, 444, 444, 444, 444, 444,
788 
789  130, 131, 134, 135, 142, 143, 444, 32, 190, 444,
790  191, 444, 444, 444, 444, 444, 444, 444, 444, 444,
791  444, 14, 204, 207, 444, 444, 444, 444, 444, 444,
792  444, 444, 444, 0, 0, 0, 0, 0, 0, 435,
793  0, 0, 248, 0, 0, 0, 407, 0, 409, 0,
794  411, 0, 0, 427, 0, 0, 0, 0, 0, 400,
795  0, 0, 0, 0, 0, 0, 0, 0, 53, 0,
796  55, 0, 0, 0, 0, 272, 0, 82, 0, 239,
797  0, 0, 0, 434, 62, 0, 0, 0, 406, 408,
798  0, 0, 279, 0, 0, 0, 399, 0, 432, 0,
799 
800  0, 0, 0, 0, 58, 0, 94, 0, 0, 444,
801  214, 444, 213, 444, 444, 444, 444, 444, 444, 444,
802  442, 443, 32, 191, 444, 444, 444, 197, 444, 444,
803  444, 444, 444, 444, 444, 444, 444, 444, 444, 215,
804  444, 444, 444, 444, 444, 444, 0, 0, 0, 0,
805  250, 0, 435, 0, 248, 0, 0, 407, 409, 0,
806  0, 0, 0, 0, 405, 0, 0, 400, 0, 433,
807  0, 0, 276, 0, 0, 47, 0, 49, 0, 53,
808  0, 0, 0, 0, 272, 0, 0, 0, 0, 0,
809  0, 283, 0, 390, 0, 273, 0, 0, 432, 0,
810 
811  0, 0, 0, 0, 94, 0, 0, 214, 213, 444,
812  444, 444, 444, 31, 444, 444, 440, 441, 444, 444,
813  197, 444, 198, 444, 199, 444, 444, 200, 444, 444,
814  444, 444, 206, 444, 444, 215, 444, 444, 10, 11,
815  444, 444, 444, 25, 444, 0, 83, 0, 0, 240,
816  250, 0, 0, 63, 0, 0, 0, 0, 0, 280,
817  0, 405, 0, 0, 433, 0, 276, 0, 47, 49,
818  0, 0, 0, 0, 59, 0, 0, 0, 0, 0,
819  50, 0, 106, 0, 395, 0, 0, 428, 0, 430,
820  0, 0, 0, 0, 0, 0, 0, 444, 212, 444,
821 
822  211, 444, 31, 444, 444, 35, 444, 444, 198, 199,
823  444, 200, 444, 444, 202, 444, 206, 444, 444, 26,
824  444, 8, 9, 444, 444, 25, 444, 83, 0, 240,
825  0, 63, 0, 284, 0, 396, 0, 391, 0, 280,
826  0, 274, 0, 429, 0, 431, 0, 0, 0, 0,
827  0, 59, 0, 0, 0, 0, 0, 106, 395, 412,
828  428, 430, 414, 0, 0, 0, 0, 0, 0, 212,
829  211, 444, 444, 33, 35, 444, 193, 444, 444, 401,
830  444, 202, 444, 444, 26, 444, 36, 444, 444, 444,
831  0, 0, 51, 284, 396, 391, 0, 274, 429, 431,
832 
833  0, 0, 0, 0, 0, 0, 0, 245, 0, 0,
834  335, 243, 0, 56, 251, 241, 444, 33, 193, 444,
835  195, 401, 444, 444, 444, 36, 444, 210, 444, 209,
836  444, 0, 51, 0, 413, 0, 415, 0, 0, 0,
837  0, 0, 0, 0, 0, 40, 444, 29, 195, 444,
838  444, 444, 28, 210, 209, 444, 27, 0, 246, 413,
839  415, 0, 336, 0, 244, 0, 0, 57, 0, 252,
840  0, 242, 0, 0, 29, 444, 444, 12, 28, 27,
841  246, 336, 244, 0, 41, 57, 252, 242, 0, 0,
842  444, 12, 41, 0, 0, 444, 0, 0, 444, 0,
843 
844  98, 0, 102, 444, 98, 102, 444, 444, 337, 337,
845  0
846  } ;
847 
849  { 0,
850  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
851  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
852  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
853  1, 2, 4, 5, 6, 6, 6, 6, 7, 6,
854  6, 6, 8, 6, 9, 10, 11, 12, 12, 12,
855  12, 13, 12, 14, 12, 12, 12, 6, 1, 15,
856  16, 17, 18, 6, 19, 20, 21, 22, 23, 24,
857  6, 6, 25, 6, 6, 26, 27, 28, 29, 30,
858  31, 32, 33, 34, 35, 36, 6, 6, 6, 6,
859  1, 6, 1, 1, 6, 1, 37, 38, 39, 40,
860 
861  41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
862  51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
863  61, 62, 1, 63, 1, 1, 1, 1, 1, 1,
864  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
865  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
866  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
867  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
868  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
869  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
870  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
871 
872  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
873  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
874  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
875  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
876  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
877  1, 1, 1, 1, 1
878  } ;
879 
881  { 0,
882  1, 2, 2, 1, 3, 2, 4, 2, 2, 2,
883  2, 2, 2, 2, 5, 2, 1, 1, 2, 2,
884  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
885  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
886  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
887  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
888  2, 2, 1
889  } ;
890 
892  { 0,
893  0, 63, 0, 0, 5528, 5527, 5524, 5523, 0, 0,
894  0, 0, 5514, 5513, 13, 17, 3, 5, 5527, 5534,
895  125, 0, 5521, 0, 5518, 17, 38, 5507, 46, 184,
896  5534, 5495, 5485, 5534, 5534, 0, 0, 0, 5534, 5534,
897  5512, 5534, 5534, 5503, 0, 0, 22, 80, 5502, 102,
898  15, 5534, 5490, 5480, 5456, 6, 2, 44, 5465, 5469,
899  5462, 5, 5474, 0, 49, 8, 56, 57, 58, 72,
900  5474, 5534, 121, 187, 184, 5534, 127, 5501, 220, 5534,
901  5534, 5484, 156, 72, 5457, 174, 231, 166, 5466, 240,
902  5455, 163, 172, 246, 246, 197, 210, 5454, 248, 201,
903 
904  5454, 5466, 5478, 5473, 0, 0, 0, 5483, 5534, 5454,
905  5443, 5446, 5440, 206, 5440, 5439, 5436, 5438, 5437, 304,
906  5451, 17, 5433, 5440, 5438, 5432, 5436, 5438, 5443, 5440,
907  5422, 5443, 167, 5442, 5416, 5429, 5439, 5426, 5420, 5424,
908  5420, 63, 5426, 63, 240, 309, 5461, 311, 5444, 262,
909  271, 5417, 284, 276, 290, 5426, 292, 5415, 288, 294,
910  303, 307, 295, 258, 5414, 316, 311, 5414, 5426, 5534,
911  5407, 5413, 345, 5405, 5408, 326, 5403, 312, 5420, 5415,
912  5398, 5412, 5401, 5413, 5403, 5400, 5408, 376, 297, 5424,
913  5406, 5408, 344, 382, 326, 5395, 5395, 5400, 5534, 5392,
914 
915  5392, 5394, 5383, 5394, 5380, 339, 5385, 5394, 5397, 299,
916  341, 5383, 5375, 334, 352, 348, 5376, 5381, 5392, 5381,
917  348, 314, 5534, 5372, 5385, 5386, 5383, 5381, 369, 5383,
918  5365, 5371, 5364, 5373, 402, 405, 411, 361, 5366, 5379,
919  5361, 5358, 5372, 5363, 5373, 186, 5369, 5368, 5381, 5359,
920  5355, 5360, 5352, 5362, 5344, 5347, 5351, 5356, 5346, 5356,
921  5345, 5358, 5338, 5336, 254, 5534, 414, 417, 419, 5337,
922  5343, 400, 5335, 5338, 384, 5333, 371, 5350, 435, 5329,
923  5343, 5332, 5344, 5334, 5331, 5339, 439, 388, 5355, 5337,
924  5339, 407, 445, 393, 5326, 5326, 5331, 448, 5323, 5323,
925 
926  5325, 5314, 5324, 5324, 5310, 407, 5315, 5324, 5327, 402,
927  405, 5313, 5305, 406, 427, 418, 5306, 5311, 5322, 5311,
928  420, 469, 5335, 5303, 5304, 5302, 428, 5314, 5323, 5299,
929  443, 475, 5311, 5308, 5303, 5299, 5297, 5296, 477, 480,
930  5288, 5302, 5301, 5291, 485, 487, 5299, 5283, 5297, 5283,
931  5287, 5310, 5293, 5292, 493, 497, 5278, 501, 503, 5290,
932  5293, 459, 5291, 476, 5283, 5286, 5271, 454, 5284, 5284,
933  5269, 5282, 5284, 5291, 5274, 5260, 510, 5263, 5260, 5278,
934  471, 5269, 520, 5272, 5256, 5270, 5260, 5259, 5251, 494,
935  5285, 497, 5259, 5262, 526, 5263, 5242, 5246, 5247, 5249,
936 
937  5265, 5242, 5235, 533, 5291, 5288, 530, 541, 5244, 5234,
938  5235, 545, 5241, 5234, 5244, 547, 549, 5255, 5246, 5245,
939  5224, 5230, 5229, 5245, 5244, 5230, 5239, 5237, 5248, 5235,
940  5219, 5233, 5232, 5224, 551, 5221, 5214, 553, 5228, 5227,
941  5206, 555, 568, 570, 572, 5244, 5212, 5213, 5211, 500,
942  5223, 5232, 5208, 574, 576, 5220, 5217, 5212, 5208, 578,
943  580, 5206, 5205, 584, 594, 5197, 5211, 5210, 5200, 596,
944  600, 5208, 5192, 5206, 5192, 5196, 602, 5203, 5202, 605,
945  607, 5188, 614, 618, 5200, 5203, 621, 623, 580, 5201,
946  637, 5193, 5189, 5195, 5180, 527, 5193, 5193, 5178, 5191,
947 
948  5193, 5200, 5183, 5169, 634, 5172, 5169, 5187, 590, 5178,
949  643, 5181, 5165, 5179, 5169, 5168, 5160, 647, 650, 653,
950  5171, 5158, 5155, 5161, 620, 5173, 5164, 5168, 5158, 5167,
951  5152, 5150, 656, 659, 5151, 5165, 5163, 5181, 5160, 5159,
952  663, 668, 674, 679, 5534, 5148, 5177, 5143, 5140, 681,
953  5135, 5157, 5139, 5151, 683, 5169, 5140, 5152, 685, 5143,
954  687, 693, 695, 699, 5132, 703, 5130, 5140, 5143, 5132,
955  5141, 5140, 5139, 5140, 5129, 5123, 705, 5122, 5131, 5120,
956  5116, 5123, 5117, 5114, 5127, 5128, 5122, 707, 713, 5127,
957  715, 5111, 5123, 5107, 5112, 723, 725, 5107, 5119, 537,
958 
959  5104, 5107, 5116, 5116, 5114, 5117, 5108, 5115, 5097, 636,
960  5099, 727, 731, 5107, 5096, 5110, 5101, 5091, 5083, 5124,
961  5091, 5534, 5534, 733, 5100, 5089, 5099, 735, 739, 5097,
962  5083, 5076, 742, 744, 746, 750, 5096, 5080, 5091, 5080,
963  5110, 5089, 5083, 5074, 5087, 5085, 757, 5083, 5070, 761,
964  5067, 5066, 5084, 763, 765, 5079, 5065, 772, 778, 787,
965  5076, 5065, 789, 791, 793, 5071, 5058, 5055, 5061, 742,
966  5073, 5064, 5068, 5058, 795, 797, 5067, 5052, 5050, 799,
967  802, 5051, 5065, 5063, 5081, 804, 5060, 5059, 807, 811,
968  815, 817, 820, 5048, 5077, 5043, 5040, 823, 5035, 5057,
969 
970  5039, 5051, 825, 827, 831, 5069, 5040, 5052, 833, 5043,
971  836, 838, 843, 845, 5032, 847, 5030, 849, 5040, 5043,
972  5032, 5041, 5040, 852, 854, 5039, 5040, 5029, 856, 5023,
973  859, 5022, 5031, 5020, 5016, 5023, 5017, 5014, 5027, 5028,
974  5022, 863, 865, 5027, 868, 5011, 5023, 5007, 5012, 872,
975  875, 5007, 5019, 619, 5004, 5007, 5016, 879, 881, 5016,
976  5014, 5017, 884, 5011, 5015, 5010, 5009, 5036, 5006, 5534,
977  4982, 4956, 4946, 4953, 5534, 717, 888, 4949, 4937, 4951,
978  4940, 4931, 4923, 890, 892, 4921, 4919, 4920, 26, 91,
979  141, 729, 164, 895, 232, 898, 5534, 225, 296, 722,
980 
981  900, 902, 905, 907, 375, 912, 370, 380, 442, 438,
982  447, 462, 488, 506, 521, 5534, 914, 917, 547, 543,
983  923, 551, 5534, 557, 559, 570, 573, 579, 926, 602,
984  930, 932, 622, 638, 5534, 656, 934, 665, 662, 662,
985  936, 677, 662, 668, 671, 697, 712, 722, 722, 774,
986  764, 780, 789, 939, 822, 831, 829, 836, 843, 859,
987  861, 873, 941, 943, 889, 946, 925, 906, 931, 952,
988  959, 953, 956, 931, 940, 929, 930, 921, 923, 923,
989  948, 957, 935, 976, 978, 984, 986, 988, 991, 942,
990  930, 968, 940, 996, 992, 998, 981, 962, 1006, 1005,
991 
992  1005, 1012, 1014, 957, 979, 981, 1021, 983, 989, 986,
993  988, 1017, 994, 1030, 1032, 994, 987, 1036, 998, 1039,
994  1006, 1042, 1001, 992, 1009, 1000, 1002, 999, 1052, 1055,
995  1059, 1061, 1005, 1011, 1029, 1022, 1066, 1020, 1016, 1031,
996  1075, 1077, 1079, 1082, 1034, 1021, 1049, 1087, 1091, 1093,
997  1095, 1098, 1045, 1041, 1059, 1048, 1050, 1051, 1111, 1064,
998  1052, 1066, 1113, 1115, 1117, 1119, 1121, 1104, 1085, 1125,
999  1090, 1129, 1096, 1094, 1095, 1097, 1100, 1138, 1102, 1142,
1000  1145, 1108, 1148, 1150, 1111, 1153, 1119, 1109, 1109, 1159,
1001  1121, 1105, 1166, 1168, 1106, 1130, 1135, 1132, 1127, 1123,
1002 
1003  1124, 1159, 1124, 5534, 1126, 1141, 1143, 1135, 1149, 1135,
1004  1143, 1187, 1141, 1136, 1156, 1139, 1154, 1148, 1141, 1143,
1005  1160, 1159, 1164, 5534, 1203, 1205, 1191, 1168, 1187, 1170,
1006  1201, 1215, 1210, 1212, 1236, 1205, 1238, 1178, 1188, 1197,
1007  1192, 5534, 1203, 1200, 1184, 1245, 1198, 1210, 1250, 1254,
1008  1198, 1202, 1219, 1205, 1219, 1221, 1261, 1263, 1266, 5534,
1009  1234, 1234, 5534, 1224, 1272, 1274, 1228, 1230, 5534, 5534,
1010  1240, 1234, 1243, 1231, 1236, 1239, 1229, 1229, 1237, 1290,
1011  1238, 1239, 1251, 1256, 1254, 1298, 1300, 1302, 1305, 1307,
1012  1289, 1272, 1253, 1264, 1277, 1280, 1258, 1283, 5534, 5534,
1013 
1014  1274, 1281, 1270, 1323, 1277, 1289, 1275, 1273, 1271, 1287,
1015  1331, 1330, 1330, 1338, 1340, 1342, 1344, 1350, 1288, 1289,
1016  1318, 1315, 5534, 5534, 1317, 1299, 5534, 5534, 1358, 1357,
1017  1357, 1314, 1313, 1366, 1328, 1323, 1318, 1319, 1354, 1319,
1018  1374, 1376, 1378, 1381, 1383, 1332, 1347, 1348, 1390, 1394,
1019  1340, 1357, 1346, 1354, 1399, 1353, 1348, 1368, 1406, 1351,
1020  1369, 1363, 1356, 1411, 1415, 1360, 1380, 1379, 1384, 1420,
1021  1422, 1424, 1427, 1390, 1409, 1392, 1440, 1432, 1436, 1442,
1022  1475, 1395, 1403, 1401, 1396, 1477, 1407, 1405, 1389, 1450,
1023  1479, 1452, 1456, 1405, 1420, 1481, 1483, 1408, 1485, 1487,
1024 
1025  1415, 1451, 1438, 1453, 1456, 1497, 1501, 1503, 1505, 1507,
1026  1509, 1513, 1515, 1465, 1476, 1521, 1470, 1525, 1529, 1470,
1027  1475, 1531, 1534, 1537, 1541, 1488, 1493, 1543, 1502, 5534,
1028  5534, 1504, 1496, 1510, 1502, 1499, 1499, 1511, 1501, 1508,
1029  1559, 1561, 1524, 1511, 1511, 5534, 1531, 1546, 1509, 5534,
1030  1530, 1533, 1525, 1575, 1529, 1577, 1533, 1527, 1532, 1544,
1031  1524, 1536, 1536, 1551, 1549, 1553, 1545, 1556, 1559, 1559,
1032  1549, 1565, 1603, 1605, 1553, 1609, 1612, 1572, 1561, 1562,
1033  1564, 1566, 1563, 1585, 1573, 1570, 1625, 1627, 1580, 1600,
1034  1591, 1588, 1606, 1634, 1618, 1637, 1640, 1644, 1587, 1612,
1035 
1036  1595, 1616, 1652, 1602, 5534, 1604, 1618, 1621, 1616, 1607,
1037  1638, 1639, 1663, 1626, 1666, 1668, 1674, 1627, 1623, 1678,
1038  1623, 1681, 1683, 1685, 1689, 1644, 1633, 1670, 1646, 1638,
1039  1653, 1648, 1648, 1662, 1684, 1665, 1716, 1719, 1667, 1669,
1040  1725, 1666, 1678, 1675, 5534, 5534, 1727, 1731, 1726, 1728,
1041  1737, 1740, 1681, 1717, 1685, 1721, 5534, 5534, 1706, 1707,
1042  1747, 1752, 1749, 1713, 1758, 1762, 1717, 1713, 1766, 1768,
1043  1770, 1774, 1733, 1728, 1726, 1779, 1727, 1739, 1729, 1735,
1044  1786, 1788, 1751, 1738, 1738, 1793, 1760, 1796, 1739, 1799,
1045  1803, 1763, 1768, 1760, 1809, 1812, 1814, 1819, 1761, 1763,
1046 
1047  1821, 1825, 1778, 1789, 1771, 1782, 1782, 1794, 1796, 1803,
1048  1794, 1802, 1805, 1804, 1794, 1810, 1848, 1850, 1854, 1817,
1049  1803, 1804, 1806, 1861, 1863, 1814, 1811, 1833, 1869, 1823,
1050  1820, 1873, 1877, 1879, 1832, 1852, 1843, 1840, 1884, 1886,
1051  1888, 1890, 1893, 1846, 1897, 1903, 1906, 1908, 1865, 1849,
1052  1911, 1913, 1880, 1919, 1864, 1921, 1923, 1927, 1929, 1931,
1053  1933, 1873, 1896, 1937, 1939, 1887, 1895, 1901, 1891, 1893,
1054  1909, 1928, 1902, 1908, 1905, 1954, 5534, 5534, 1913, 1903,
1055  1912, 1907, 1935, 1941, 1908, 5534, 1909, 1964, 1951, 1968,
1056  1931, 5534, 1923, 1918, 1939, 1921, 1926, 1921, 1921, 1928,
1057 
1058  1934, 1942, 1940, 1930, 1937, 1947, 1953, 1953, 1938, 1944,
1059  1961, 1958, 1944, 1943, 1961, 1997, 1947, 1957, 1958, 5534,
1060  1963, 1964, 1950, 1966, 1971, 2007, 2009, 1962, 1975, 1958,
1061  1960, 1967, 1981, 1987, 2018, 2020, 2014, 2024, 1977, 1981,
1062  1985, 1986, 1983, 1992, 1979, 1980, 1977, 1986, 1999, 2000,
1063  2039, 2041, 1995, 2047, 2042, 2044, 2054, 2056, 2016, 2009,
1064  2011, 2060, 2062, 2044, 2069, 2031, 2071, 2035, 2052, 2076,
1065  2055, 2040, 2057, 2059, 2036, 2034, 2040, 2037, 2057, 2044,
1066  2058, 2040, 2047, 2043, 2064, 2052, 2101, 2100, 2100, 2084,
1067  2083, 2109, 2111, 2059, 2062, 2074, 5534, 5534, 2118, 2120,
1068 
1069  2124, 2126, 2070, 2093, 2133, 2092, 2135, 2089, 2139, 2138,
1070  2138, 2145, 2150, 2094, 2152, 2154, 2156, 2158, 2113, 2119,
1071  2163, 2111, 2112, 2129, 2148, 2122, 2129, 2125, 2174, 2176,
1072  2178, 2137, 2181, 2183, 2131, 2186, 2188, 2144, 2140, 2169,
1073  2197, 2199, 2182, 2141, 2203, 2205, 2209, 2213, 2168, 2215,
1074  2219, 2163, 2163, 2186, 2168, 2173, 2169, 2169, 2175, 2180,
1075  2188, 2187, 2177, 2184, 2194, 2200, 2200, 2185, 2191, 2208,
1076  2205, 2191, 2190, 2243, 2193, 2203, 2204, 2248, 2250, 2213,
1077  2214, 2200, 2216, 2221, 2257, 2259, 2212, 2225, 2209, 2211,
1078  2218, 2267, 2269, 2236, 2243, 2274, 2276, 2229, 2279, 2235,
1079 
1080  2240, 2284, 2243, 2240, 2288, 2290, 2292, 2294, 2257, 2297,
1081  2299, 2242, 2267, 2246, 5534, 2252, 2258, 2261, 2254, 2260,
1082  5534, 2261, 2262, 2274, 2260, 2280, 2281, 2282, 2275, 2280,
1083  2320, 2322, 2315, 2278, 2273, 2288, 2287, 2297, 2278, 2292,
1084  2293, 2292, 2279, 2301, 2298, 2285, 2301, 2301, 2295, 2296,
1085  2297, 2306, 2309, 2310, 2309, 2306, 2304, 2331, 2297, 2298,
1086  2307, 2303, 2314, 5534, 2313, 2360, 2314, 2344, 2329, 5534,
1087  2322, 2319, 2344, 2368, 2317, 2317, 2317, 2336, 2326, 2340,
1088  2328, 5534, 2334, 2357, 2330, 2323, 2324, 2384, 2380, 2381,
1089  2353, 5534, 5534, 2391, 2339, 2346, 2370, 2396, 2395, 2395,
1090 
1091  2359, 2362, 2404, 2406, 2350, 2371, 2351, 2411, 2413, 2377,
1092  2357, 2419, 2379, 2362, 2387, 2374, 2378, 2427, 2374, 2380,
1093  2392, 2378, 2386, 2391, 2401, 2380, 2403, 2393, 2403, 5534,
1094  5534, 2404, 2408, 2446, 2441, 2443, 2407, 2432, 2399, 2454,
1095  2456, 2455, 2455, 2419, 2409, 2464, 2466, 2410, 2469, 2471,
1096  2436, 5534, 5534, 2479, 2416, 2481, 2484, 2442, 2428, 2487,
1097  2436, 2442, 2445, 2438, 2444, 2494, 2496, 2498, 2500, 2503,
1098  2456, 2506, 2459, 2512, 2471, 2460, 2481, 2517, 2484, 2485,
1099  2478, 2522, 2524, 2526, 2481, 2529, 2531, 2533, 2496, 2495,
1100  2506, 2487, 2501, 2502, 2501, 2488, 2510, 2546, 2496, 2512,
1101 
1102  2512, 2506, 2507, 2508, 2517, 2520, 2521, 2520, 2562, 2539,
1103  2508, 2509, 2566, 2570, 2520, 2519, 2530, 2574, 2530, 2578,
1104  2532, 2563, 2548, 2587, 2541, 2590, 2545, 2570, 2540, 2540,
1105  2559, 2549, 2563, 2599, 2553, 2603, 2606, 2608, 5534, 2558,
1106  5534, 5534, 2574, 2573, 2560, 2566, 2567, 2564, 2570, 2577,
1107  2566, 2567, 2575, 2575, 2578, 2626, 2582, 2590, 2576, 2579,
1108  2583, 2590, 2595, 2583, 2584, 2598, 2585, 2585, 2603, 2641,
1109  2588, 2592, 2593, 2611, 2612, 5534, 2595, 2614, 2611, 2598,
1110  2600, 2618, 2615, 2597, 2618, 2619, 2622, 5534, 2611, 2642,
1111  2623, 2614, 2626, 2611, 2627, 5534, 2618, 2668, 2631, 5534,
1112 
1113  5534, 2617, 2635, 2624, 2626, 2637, 2622, 2624, 2678, 2680,
1114  5534, 5534, 2643, 2632, 2685, 2652, 5534, 5534, 2636, 2640,
1115  2690, 2695, 2635, 2647, 2700, 2640, 2652, 2703, 2705, 2649,
1116  2661, 2675, 2676, 2659, 2715, 2718, 2720, 2675, 2671, 2677,
1117  2673, 2680, 2727, 2692, 2678, 2692, 2679, 2735, 2698, 2680,
1118  2685, 5534, 5534, 2690, 2699, 2704, 5534, 5534, 2686, 2693,
1119  2746, 2750, 2752, 2745, 2751, 2720, 2760, 2710, 2769, 2771,
1120  2773, 2776, 2726, 2726, 2714, 2731, 2780, 2782, 2787, 2789,
1121  2737, 2740, 2746, 2752, 2742, 2743, 2751, 2750, 2800, 2763,
1122  2803, 2805, 2807, 2755, 2758, 2762, 2769, 2774, 2762, 2763,
1123 
1124  2777, 2764, 2764, 2821, 2823, 2782, 2825, 2772, 2776, 2777,
1125  2795, 2796, 2832, 2781, 2800, 2798, 2785, 2787, 2841, 2843,
1126  2810, 2788, 2809, 2810, 2850, 2815, 2853, 2806, 2857, 2859,
1127  2842, 2823, 2814, 2826, 2865, 2869, 2813, 2832, 2873, 2875,
1128  2838, 2878, 2881, 2829, 2847, 2885, 2891, 2894, 2828, 2850,
1129  2850, 5534, 2898, 5534, 2900, 2863, 2868, 2852, 2870, 2869,
1130  2862, 2911, 2871, 2868, 2865, 2871, 2871, 2873, 2868, 2869,
1131  2891, 5534, 2924, 2888, 2874, 2929, 2931, 2896, 2899, 2896,
1132  2884, 2883, 2940, 2892, 2942, 2895, 2914, 2911, 2948, 2900,
1133  2932, 2933, 2914, 2906, 2907, 5534, 2919, 2907, 2921, 5534,
1134 
1135  2906, 2964, 2968, 2924, 2923, 2931, 2923, 2934, 2915, 2939,
1136  2936, 2976, 2980, 2982, 2984, 2953, 2943, 2987, 2992, 2935,
1137  2952, 2946, 2998, 3002, 3004, 2961, 3006, 2969, 3010, 3006,
1138  3009, 3016, 2980, 2967, 2977, 2976, 3024, 3026, 2975, 2975,
1139  3031, 2994, 3034, 2983, 2994, 2996, 3040, 3042, 3007, 2993,
1140  3046, 3010, 3011, 3051, 3055, 3015, 3022, 3033, 3061, 3007,
1141  3017, 3012, 3018, 3045, 3025, 3069, 3071, 5534, 5534, 3048,
1142  3076, 3078, 3015, 3080, 3084, 3086, 3088, 3092, 3043, 3043,
1143  3096, 3098, 3100, 3104, 3106, 3055, 3067, 3056, 3074, 3071,
1144  3064, 3066, 3115, 3065, 3071, 3072, 3075, 3070, 3071, 3093,
1145 
1146  3126, 3128, 3091, 3131, 3079, 3134, 3136, 3101, 3104, 3101,
1147  3090, 3090, 3145, 3147, 3150, 3106, 3153, 3105, 3124, 3157,
1148  3123, 3111, 3143, 3144, 3125, 3166, 3169, 3123, 3172, 3125,
1149  3175, 3138, 3126, 3179, 3143, 3183, 3187, 3191, 3193, 3195,
1150  3147, 3199, 3203, 3205, 3209, 3146, 3158, 3211, 3181, 3186,
1151  3174, 3215, 3202, 3218, 3225, 3206, 3222, 3179, 3180, 3186,
1152  3232, 5534, 3217, 3237, 3242, 3202, 3190, 3210, 3203, 3212,
1153  3209, 3196, 3211, 3199, 3253, 3255, 3257, 3216, 3260, 3208,
1154  3216, 3216, 3233, 3214, 3269, 3273, 3232, 3275, 3277, 3222,
1155  3227, 3234, 3281, 3285, 3231, 3238, 3239, 3268, 5534, 3243,
1156 
1157  3252, 3254, 3259, 3276, 3245, 3298, 3279, 3252, 3281, 3303,
1158  3286, 3306, 3256, 3309, 3311, 3313, 3280, 3260, 3321, 3316,
1159  3320, 3275, 3291, 3294, 3330, 3332, 3334, 3336, 3338, 3340,
1160  3342, 5534, 5534, 3344, 3347, 3353, 3300, 3298, 3307, 3359,
1161  3361, 3305, 3311, 3364, 3368, 3370, 3329, 3324, 3373, 3322,
1162  3342, 3379, 3381, 3330, 3332, 3388, 3328, 3354, 3356, 3394,
1163  3396, 3349, 3355, 3360, 3361, 3358, 3344, 3403, 3370, 3406,
1164  3389, 3410, 3412, 3393, 3376, 3416, 3418, 3420, 3422, 3424,
1165  3426, 3428, 3432, 3382, 3386, 3393, 3437, 3440, 3423, 3390,
1166  3410, 3403, 3412, 3409, 3396, 3411, 3399, 3453, 3456, 3458,
1167 
1168  3460, 3462, 3421, 3465, 3413, 3422, 3422, 3439, 3420, 3474,
1169  3478, 3480, 3441, 3482, 3484, 3437, 3435, 3442, 3437, 3441,
1170  3442, 3471, 3494, 3498, 3448, 3500, 3502, 3464, 3466, 3471,
1171  3488, 3508, 3510, 3516, 3518, 3491, 3520, 3524, 3465, 3501,
1172  3491, 3481, 3480, 3529, 3531, 3524, 3534, 3536, 3529, 3485,
1173  3486, 3483, 3542, 3530, 3497, 3547, 3511, 3499, 3510, 3506,
1174  3509, 3503, 3514, 3558, 3517, 3561, 3563, 3565, 3511, 3568,
1175  3523, 3534, 3529, 3531, 3575, 3525, 3579, 3528, 3539, 3545,
1176  3585, 3548, 3540, 3541, 3544, 3552, 3552, 5534, 3539, 3545,
1177  3558, 3550, 3549, 3552, 3599, 3601, 3554, 3555, 3605, 3607,
1178 
1179  3555, 3610, 3615, 3558, 3591, 5534, 5534, 3574, 3567, 3576,
1180  3625, 3627, 3629, 3635, 3637, 3639, 3645, 3647, 3649, 3571,
1181  3655, 3578, 3657, 3659, 3598, 3608, 3662, 3664, 3666, 3614,
1182  3649, 3631, 3629, 3619, 3674, 3679, 3684, 3686, 3631, 3628,
1183  3688, 3632, 3652, 3655, 3641, 3643, 3673, 3643, 3664, 3655,
1184  3654, 3703, 3705, 3707, 3709, 3657, 3658, 3655, 3714, 3716,
1185  3718, 3720, 3673, 3670, 3681, 3677, 3680, 3674, 3685, 3730,
1186  3689, 3734, 3736, 3738, 3740, 3686, 3743, 3699, 3710, 3705,
1187  3706, 3750, 3700, 3754, 3703, 3714, 3720, 3721, 3713, 3714,
1188  3717, 3764, 3766, 3729, 3769, 3731, 3772, 3720, 3726, 3776,
1189 
1190  3732, 3732, 3735, 3728, 3744, 3730, 3785, 3750, 3789, 3751,
1191  3739, 3774, 3794, 3796, 3750, 3751, 5534, 3752, 3766, 3802,
1192  3804, 3757, 3807, 3810, 3777, 3813, 3776, 3820, 3823, 3773,
1193  3779, 3778, 3768, 3827, 3790, 3795, 3778, 3779, 3794, 3795,
1194  3797, 5534, 3794, 3795, 3791, 3801, 3802, 5534, 3804, 3844,
1195  3800, 3790, 3848, 3831, 3851, 3850, 3850, 3805, 3820, 3801,
1196  3817, 3862, 3864, 3863, 3863, 3870, 3869, 3869, 3877, 3876,
1197  3876, 3883, 3885, 3887, 3889, 3891, 3850, 3840, 3895, 3845,
1198  3851, 3865, 3863, 3869, 3870, 3850, 3864, 3908, 3910, 3912,
1199  3914, 3916, 3918, 3881, 3869, 3900, 3872, 3871, 3874, 3875,
1200 
1201  3891, 3879, 3878, 3894, 3880, 3882, 3917, 3937, 3939, 3941,
1202  3895, 3944, 3898, 3912, 3948, 3950, 3904, 3954, 3956, 3923,
1203  3960, 3923, 3966, 3970, 3921, 3929, 3925, 3915, 3974, 3937,
1204  3942, 3925, 3926, 3941, 3943, 3944, 3984, 3986, 3945, 3990,
1205  3992, 3951, 3947, 3957, 3997, 3960, 3965, 3955, 3950, 3965,
1206  3963, 5534, 3958, 4008, 4010, 4013, 3976, 3979, 3963, 3970,
1207  4019, 4021, 4024, 4026, 3980, 4029, 3983, 3979, 4035, 3985,
1208  5534, 3998, 4021, 4040, 4042, 4044, 3998, 5534, 3994, 5534,
1209  5534, 4001, 4012, 4013, 4012, 4052, 4007, 4009, 4057, 4060,
1210  4013, 4014, 5534, 5534, 4021, 4007, 4043, 4019, 4069, 4072,
1211 
1212  5534, 5534, 5534, 5534, 5534, 5534, 4078, 4080, 4084, 4086,
1213  4088, 4028, 4039, 4090, 4045, 4050, 4043, 4044, 4045, 4059,
1214  4062, 4101, 4105, 4107, 4050, 4066, 4072, 4111, 4070, 4114,
1215  4062, 4059, 4075, 4084, 4073, 4068, 4122, 4075, 4126, 4129,
1216  4092, 4132, 4134, 4082, 4090, 4139, 4142, 4144, 4148, 4098,
1217  4150, 4104, 4100, 4155, 4109, 4160, 4119, 4145, 4163, 4165,
1218  4167, 4121, 4170, 4119, 4173, 4176, 4132, 4180, 4183, 4149,
1219  4189, 4150, 4153, 4146, 4196, 4198, 4147, 5534, 4161, 5534,
1220  4148, 4156, 4155, 4204, 5534, 4167, 4154, 4154, 4209, 4212,
1221  4161, 4174, 5534, 4175, 4164, 4164, 4219, 4221, 4223, 4184,
1222 
1223  4183, 4188, 4185, 4210, 5534, 4230, 4232, 4195, 4196, 4237,
1224  4239, 4241, 4243, 4200, 4190, 4190, 4249, 4214, 4205, 4256,
1225  4251, 4253, 4264, 4266, 4206, 4213, 4268, 4270, 4272, 4274,
1226  4229, 4277, 4258, 4227, 4249, 4283, 4227, 4229, 4289, 4292,
1227  4245, 4295, 4299, 4282, 4305, 4240, 4307, 4271, 4313, 4315,
1228  4317, 4263, 4320, 4323, 4325, 4274, 4275, 4331, 4333, 4282,
1229  4295, 4339, 4296, 4341, 4343, 4292, 4292, 4347, 4349, 4351,
1230  4312, 4357, 4359, 4312, 4361, 4365, 4367, 4369, 4324, 4373,
1231  4328, 4356, 4377, 4340, 4380, 4344, 4336, 4348, 4347, 4348,
1232  4388, 5534, 4390, 5534, 4347, 5534, 4394, 4396, 4398, 4354,
1233 
1234  4352, 4354, 4365, 4357, 4407, 4362, 4364, 4413, 4415, 4417,
1235  4419, 4398, 4422, 4424, 4368, 4427, 5534, 5534, 4376, 4382,
1236  4434, 4437, 4439, 4442, 4444, 4379, 4446, 4448, 4392, 4452,
1237  4415, 4457, 4461, 4432, 4463, 4467, 4411, 4469, 4462, 4468,
1238  4426, 4427, 4478, 4480, 4459, 4483, 4485, 4439, 4488, 4490,
1239  4493, 4456, 4496, 4499, 4501, 4504, 4506, 4462, 4509, 4512,
1240  4514, 4517, 4522, 4525, 4527, 4474, 4530, 4483, 4533, 4535,
1241  4490, 4500, 4492, 4542, 4544, 4498, 4499, 4494, 4497, 4531,
1242  5534, 4551, 4553, 4555, 4558, 4521, 4561, 4563, 4567, 4571,
1243  4526, 4521, 4519, 4526, 4527, 4523, 4524, 4579, 4583, 4585,
1244 
1245  4587, 4543, 4589, 4591, 4594, 4596, 4600, 4545, 4602, 4606,
1246  4609, 4611, 4554, 4615, 4617, 4561, 4619, 4583, 4624, 4626,
1247  4630, 5534, 5534, 4576, 4571, 4632, 4596, 4635, 4583, 4639,
1248  4641, 4645, 4647, 4649, 4651, 4653, 4657, 4659, 4604, 4663,
1249  4667, 4669, 4673, 4675, 4677, 4679, 4616, 4613, 4611, 4623,
1250  4633, 4683, 4631, 4632, 4634, 4646, 4638, 4693, 4695, 5534,
1251  4697, 4699, 5534, 4638, 4648, 4648, 4664, 4651, 4652, 4706,
1252  4708, 4652, 4711, 4713, 4715, 4717, 4719, 4721, 4723, 4726,
1253  4676, 4729, 4685, 4675, 4738, 4740, 4742, 4744, 4746, 4676,
1254  4683, 4748, 4750, 4752, 4755, 4761, 4764, 4766, 4768, 4770,
1255 
1256  4772, 4704, 4706, 4720, 4736, 4723, 4724, 5534, 4728, 4741,
1257  5534, 5534, 4728, 5534, 5534, 5534, 4782, 4784, 4788, 4790,
1258  4792, 4794, 4747, 4744, 4798, 4800, 4802, 4805, 4807, 4809,
1259  4813, 4817, 4819, 4822, 4824, 4828, 4830, 4833, 4835, 4758,
1260  4838, 4840, 4844, 4761, 4791, 5534, 4846, 4851, 4856, 4789,
1261  4861, 4863, 4865, 4867, 4869, 4871, 4873, 4878, 4880, 4882,
1262  4886, 4888, 4890, 4894, 4896, 4898, 4900, 4904, 4906, 4910,
1263  4916, 4918, 4806, 4800, 4922, 4805, 4924, 4926, 4928, 4932,
1264  4934, 4936, 4939, 4941, 4943, 4945, 4947, 4949, 4827, 4835,
1265  4849, 4951, 4953, 4854, 4856, 4863, 4957, 4959, 4866, 4961,
1266 
1267  4963, 4965, 4967, 4867, 4969, 4977, 4981, 4983, 4985, 4987,
1268  5534, 4999, 5004, 5009, 5014, 5019, 5024, 5029, 4930, 5034,
1269  5039, 5044
1270  } ;
1271 
1273  { 0,
1274  3412, 3412, 3413, 3413, 3414, 3414, 3415, 3415, 3413, 3413,
1275  3413, 3413, 3416, 3416, 3417, 3417, 3418, 3418, 3411, 3411,
1276  3411, 21, 3411, 3419, 3411, 3419, 3419, 3419, 3419, 3411,
1277  3411, 3419, 3419, 3411, 3411, 3420, 3421, 3422, 3411, 3411,
1278  3411, 3411, 3411, 3411, 21, 3419, 3419, 3419, 3419, 3419,
1279  30, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1280  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1281  3419, 3411, 3419, 3419, 3419, 3411, 3419, 3411, 3411, 3411,
1282  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1283  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1284 
1285  3411, 3411, 3419, 3419, 3420, 3421, 3422, 3411, 3411, 3419,
1286  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1287  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1288  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1289  3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411, 3411,
1290  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1291  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1292  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1293  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1294  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1295 
1296  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1297  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1298  3411, 3419, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1299  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1300  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1301  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1302  3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411, 3411, 3411,
1303  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1304  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1305  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1306 
1307  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1308  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1309  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1310  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1311  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1312  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1313  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1314  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1315  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1316  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1317 
1318  3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419, 3419,
1319  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1320  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1321  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1322  3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1323  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1324  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1325  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1326  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1327  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1328 
1329  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1330  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1331  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1332  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1333  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1334  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1335  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1336  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1337  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1338  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1339 
1340  3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419,
1341  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1342  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1343  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1344  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1345  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1346  3419, 3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1347  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1348  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1349  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1350 
1351  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1352  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1353  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1354  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1355  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1356  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1357  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1358  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1359  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1360  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1361 
1362  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1363  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1364  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1365  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1366  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419,
1367  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1368  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1369  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1370  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1371  3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419, 3411,
1372 
1373  3411, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411, 3411,
1374  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1375  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1376  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1377  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1378  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1379  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1380  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1381  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1382  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1383 
1384  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1385  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1386  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1387  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1388  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1389  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1390  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1391  3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1392  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1393  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411,
1394 
1395  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1396  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1397  3419, 3419, 3411, 3411, 3419, 3419, 3411, 3411, 3419, 3411,
1398  3411, 3419, 3419, 3419, 3411, 3411, 3411, 3411, 3411, 3411,
1399  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1400  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1401  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1402  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1403  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1404  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1405 
1406  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1407  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1408  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1409  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1410  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1411  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1412  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1413  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1414  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1415  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1416 
1417  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419,
1418  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1419  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1420  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1421  3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3411, 3411,
1422  3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419,
1423  3419, 3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1424  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1425  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1426  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1427 
1428  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1429  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1430  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1431  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1432  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1433  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1434  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1435  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1436  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1437  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1438 
1439  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1440  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1441  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1442  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1443  3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419, 3419,
1444  3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419, 3419,
1445  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1446  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1447  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419,
1448  3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419,
1449 
1450  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411,
1451  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1452  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1453  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1454  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1455  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1456  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1457  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1458  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1459  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1460 
1461  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1462  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1463  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1464  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1465  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1466  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1467  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1468  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1469  3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411,
1470  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3411, 3411,
1471 
1472  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1473  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1474  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411,
1475  3411, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419, 3419,
1476  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1477  3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1478  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1479  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1480  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1481  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1482 
1483  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1484  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1485  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1486  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1487  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1488  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1489  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1490  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1491  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1492  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1493 
1494  3411, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1495  3411, 3411, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419,
1496  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1497  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1498  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1499  3419, 3411, 3411, 3419, 3419, 3419, 3411, 3411, 3419, 3419,
1500  3419, 3419, 3419, 3411, 3411, 3419, 3411, 3411, 3411, 3411,
1501  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1502  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1503  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1504 
1505  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1506  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1507  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1508  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1509  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1510  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1511  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1512  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1513  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1514  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1515 
1516  3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419,
1517  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1518  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411,
1519  3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1520  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1521  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1522  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419,
1523  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1524  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1525  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1526 
1527  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1528  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1529  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1530  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1531  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1532  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1533  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1534  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1535  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1536  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1537 
1538  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419,
1539  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411,
1540  3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1541  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1542  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1543  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1544  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411,
1545  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1546  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1547  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1548 
1549  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1550  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1551  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1552  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1553  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1554  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1555  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1556  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1557  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1558  3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419,
1559 
1560  3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419,
1561  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1562  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1563  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1564  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411,
1565  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1566  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1567  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1568  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1569  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1570 
1571  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1572  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1573  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1574  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1575  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419,
1576  3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419, 3419,
1577  3419, 3419, 3419, 3411, 3411, 3419, 3411, 3411, 3419, 3411,
1578  3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1579  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1580  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1581 
1582  3419, 3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1583  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1584  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1585  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1586  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1587  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1588  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1589  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1590  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419,
1591  3419, 3419, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419,
1592 
1593  3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419,
1594  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1595  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1596  3419, 3419, 3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1597  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1598  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1599  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1600  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1601  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1602  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1603 
1604  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419,
1605  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1606  3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1607  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1608  3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411, 3411,
1609  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1610  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1611  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1612  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1613  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1614 
1615  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419,
1616  3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3419, 3419,
1617  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1618  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411,
1619  3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411, 3411, 3411,
1620  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1621  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1622  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1623  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1624  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419,
1625 
1626  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1627  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1628  3419, 3411, 3411, 3419, 3419, 3419, 3419, 3411, 3411, 3411,
1629  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1630  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1631  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1632  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3419,
1633  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1634  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1635  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1636 
1637  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1638  3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419,
1639  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1640  3419, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1641  3411, 3411, 3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419,
1642  3419, 3419, 3419, 3419, 3419, 3419, 3419, 3411, 3411, 3411,
1643  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1644  3411, 3411, 3411, 3411, 3419, 3419, 3419, 3419, 3419, 3419,
1645  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1646  3419, 3419, 3411, 3411, 3411, 3419, 3411, 3411, 3419, 3411,
1647 
1648  3411, 3411, 3411, 3419, 3411, 3411, 3419, 3419, 3419, 3419,
1649  0, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
1650  3411, 3411
1651  } ;
1652 
1654  { 0,
1655  20, 21, 22, 20, 23, 43, 25, 43, 26, 27,
1656  28, 29, 29, 29, 30, 40, 31, 20, 3411, 40,
1657  44, 41, 44, 3411, 32, 41, 48, 33, 50, 50,
1658  50, 48, 3411, 50, 50, 50, 123, 239, 113, 73,
1659  73, 53, 111, 240, 120, 128, 53, 77, 77, 74,
1660  74, 74, 114, 112, 121, 48, 124, 50, 50, 50,
1661  75, 129, 34, 20, 21, 22, 20, 23, 75, 25,
1662  1019, 26, 27, 28, 29, 29, 29, 30, 75, 31,
1663  20, 73, 73, 261, 115, 125, 75, 32, 116, 262,
1664  33, 74, 74, 74, 139, 132, 130, 133, 140, 126,
1665 
1666  134, 135, 75, 77, 77, 127, 131, 136, 174, 142,
1667  264, 48, 137, 50, 50, 50, 265, 138, 141, 175,
1668  75, 143, 73, 73, 75, 34, 45, 45, 77, 77,
1669  46, 1020, 46, 47, 48, 49, 50, 50, 50, 51,
1670  46, 52, 75, 46, 46, 46, 46, 46, 46, 53,
1671  46, 46, 54, 46, 46, 46, 46, 46, 46, 46,
1672  46, 55, 56, 57, 58, 59, 60, 46, 61, 62,
1673  46, 46, 63, 64, 65, 66, 46, 46, 67, 68,
1674  69, 70, 71, 46, 46, 46, 46, 78, 73, 73,
1675  1021, 145, 145, 171, 79, 146, 146, 146, 74, 74,
1676 
1677  74, 80, 184, 172, 1024, 251, 81, 193, 195, 75,
1678  185, 173, 194, 82, 177, 252, 196, 420, 178, 421,
1679  83, 84, 85, 86, 87, 88, 89, 75, 90, 91,
1680  179, 92, 93, 94, 95, 96, 97, 98, 99, 100,
1681  101, 102, 148, 208, 205, 218, 228, 206, 1025, 149,
1682  207, 146, 146, 146, 219, 229, 150, 151, 152, 153,
1683  154, 155, 156, 1028, 157, 158, 209, 159, 160, 161,
1684  162, 163, 164, 165, 166, 167, 168, 169, 180, 187,
1685  181, 188, 197, 202, 182, 440, 198, 441, 211, 189,
1686  183, 308, 212, 199, 190, 191, 200, 203, 213, 270,
1687 
1688  214, 204, 201, 215, 216, 235, 235, 273, 217, 271,
1689  73, 73, 267, 267, 309, 73, 73, 272, 274, 236,
1690  146, 146, 146, 279, 276, 280, 283, 268, 277, 281,
1691  294, 286, 292, 287, 284, 282, 347, 293, 295, 296,
1692  278, 288, 305, 297, 301, 306, 289, 290, 307, 1029,
1693  298, 348, 349, 299, 373, 318, 311, 374, 302, 300,
1694  312, 303, 304, 237, 319, 334, 313, 324, 314, 335,
1695  325, 315, 316, 329, 330, 331, 317, 345, 345, 326,
1696  332, 357, 353, 355, 355, 358, 368, 379, 381, 375,
1697  380, 1034, 346, 354, 376, 389, 383, 369, 356, 384,
1698 
1699  396, 390, 397, 235, 235, 382, 404, 404, 411, 405,
1700  1037, 406, 407, 407, 412, 267, 267, 236, 442, 442,
1701  443, 443, 447, 398, 457, 448, 408, 472, 458, 1038,
1702  268, 452, 453, 454, 449, 444, 460, 460, 455, 409,
1703  470, 470, 473, 474, 410, 478, 480, 480, 482, 487,
1704  487, 461, 483, 503, 496, 471, 479, 501, 504, 507,
1705  502, 481, 508, 509, 488, 497, 511, 517, 525, 512,
1706  519, 519, 526, 518, 530, 462, 533, 533, 541, 541,
1707  510, 543, 543, 531, 1039, 520, 345, 345, 550, 550,
1708  578, 534, 1040, 542, 355, 355, 544, 532, 559, 559,
1709 
1710  1041, 346, 561, 561, 563, 563, 568, 573, 569, 356,
1711  570, 588, 588, 593, 579, 1042, 574, 562, 604, 564,
1712  571, 596, 596, 608, 594, 605, 589, 612, 612, 1043,
1713  609, 407, 407, 545, 404, 404, 597, 405, 606, 406,
1714  670, 613, 624, 624, 671, 408, 628, 628, 633, 633,
1715  635, 635, 654, 654, 658, 658, 442, 442, 840, 565,
1716  629, 1044, 634, 732, 636, 1045, 655, 1047, 659, 443,
1717  443, 663, 663, 664, 664, 675, 675, 680, 680, 460,
1718  460, 686, 686, 1048, 444, 689, 689, 733, 665, 1051,
1719  676, 841, 681, 1052, 461, 691, 691, 470, 470, 1053,
1720 
1721  690, 698, 698, 704, 704, 677, 480, 480, 709, 709,
1722  692, 1054, 471, 1055, 678, 711, 711, 1056, 705, 713,
1723  713, 481, 487, 487, 718, 718, 706, 719, 679, 720,
1724  712, 721, 747, 768, 714, 742, 742, 488, 724, 724,
1725  989, 722, 1057, 748, 750, 750, 769, 693, 758, 758,
1726  743, 519, 519, 725, 763, 763, 851, 533, 533, 751,
1727  777, 777, 1059, 759, 541, 541, 520, 852, 726, 784,
1728  784, 760, 534, 990, 715, 543, 543, 727, 761, 542,
1729  785, 785, 550, 550, 794, 794, 559, 559, 561, 561,
1730  544, 762, 1060, 795, 801, 801, 563, 563, 1061, 796,
1731 
1732  802, 802, 1062, 562, 804, 804, 817, 817, 588, 588,
1733  1063, 564, 1064, 805, 829, 829, 831, 831, 1067, 806,
1734  1068, 818, 1069, 589, 596, 596, 837, 837, 612, 612,
1735  1070, 832, 854, 854, 624, 624, 628, 628, 1071, 597,
1736  866, 866, 613, 633, 633, 870, 870, 635, 635, 1072,
1737  629, 871, 871, 1008, 872, 912, 873, 634, 884, 884,
1738  1030, 636, 888, 888, 654, 654, 894, 894, 913, 895,
1739  1009, 896, 885, 658, 658, 1073, 889, 1074, 655, 899,
1740  899, 1031, 900, 1022, 901, 890, 1023, 659, 902, 902,
1741  663, 663, 664, 664, 907, 907, 675, 675, 918, 918,
1742 
1743  680, 680, 903, 922, 922, 686, 686, 665, 689, 689,
1744  1075, 676, 929, 929, 1076, 681, 691, 691, 930, 930,
1745  904, 931, 931, 690, 698, 698, 941, 941, 704, 704,
1746  1077, 692, 943, 943, 709, 709, 932, 711, 711, 948,
1747  948, 942, 1078, 705, 713, 713, 949, 949, 951, 951,
1748  718, 718, 712, 724, 724, 959, 959, 963, 963, 714,
1749  966, 966, 1079, 952, 742, 742, 978, 978, 725, 980,
1750  980, 1080, 964, 750, 750, 967, 986, 986, 1081, 743,
1751  758, 758, 994, 994, 981, 763, 763, 1082, 751, 777,
1752  777, 784, 784, 785, 785, 759, 794, 794, 1083, 1026,
1753 
1754  1026, 801, 801, 802, 802, 795, 1032, 1032, 804, 804,
1755  1084, 796, 1027, 1035, 1035, 817, 817, 805, 1046, 1046,
1756  1085, 1033, 1086, 806, 1049, 1049, 1036, 829, 829, 1091,
1757  818, 831, 831, 1058, 1058, 837, 837, 1065, 1065, 1050,
1758  854, 854, 1087, 1087, 1089, 1089, 832, 866, 866, 1092,
1759  1093, 1094, 1066, 870, 870, 1095, 1088, 1099, 1090, 1096,
1760  871, 871, 1100, 872, 1097, 873, 1098, 1101, 1102, 1103,
1761  1104, 1105, 1106, 1107, 1108, 1109, 1110, 884, 884, 1111,
1762  1111, 1119, 1112, 1120, 1113, 1114, 1114, 1116, 1116, 888,
1763  888, 885, 1118, 1118, 1121, 1122, 1123, 894, 894, 1115,
1764 
1765  895, 1117, 896, 889, 1124, 1125, 1126, 899, 899, 1127,
1766  900, 1128, 901, 902, 902, 1129, 1129, 1132, 1130, 1133,
1767  1131, 1134, 907, 907, 1135, 1136, 1137, 903, 1138, 1139,
1768  1140, 1141, 1141, 1143, 1143, 1146, 1147, 918, 918, 1148,
1769  1149, 1149, 1151, 922, 922, 1153, 1142, 1154, 1144, 1155,
1770  1156, 1157, 1158, 929, 929, 1150, 930, 930, 1160, 1152,
1771  931, 931, 1159, 1159, 1161, 1162, 1163, 1164, 1164, 1167,
1772  1168, 1170, 1174, 1169, 1175, 932, 941, 941, 1171, 1171,
1773  943, 943, 1165, 1172, 1172, 1181, 1145, 1176, 948, 948,
1774  1182, 942, 949, 949, 1178, 1178, 951, 951, 1173, 1180,
1775 
1776  1180, 1183, 1184, 1185, 1186, 1187, 1166, 1188, 1177, 1179,
1777  1189, 952, 959, 959, 963, 963, 1190, 1190, 1191, 1191,
1778  966, 966, 1193, 1193, 1194, 1195, 1196, 1196, 1198, 964,
1779  1199, 1199, 1201, 1192, 1202, 967, 1203, 1204, 1205, 978,
1780  978, 1197, 1206, 980, 980, 1200, 1207, 1207, 1208, 1209,
1781  1209, 1212, 1212, 1214, 986, 986, 1215, 1216, 981, 1217,
1782  1218, 1218, 1220, 1221, 1210, 1225, 1213, 1222, 1222, 994,
1783  994, 1226, 1227, 1228, 1229, 1219, 1230, 1231, 1232, 1233,
1784  1234, 1235, 1223, 1236, 1237, 1238, 1239, 1240, 1241, 1241,
1785  1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
1786 
1787  1253, 1255, 1211, 1242, 1254, 1254, 1026, 1026, 1256, 1257,
1788  1258, 1273, 1273, 1274, 1274, 1275, 1032, 1032, 1278, 1027,
1789  1224, 1259, 1260, 1261, 1279, 1262, 1263, 1264, 1265, 1266,
1790  1267, 1033, 1268, 1269, 1270, 1271, 1272, 1035, 1035, 1276,
1791  1276, 1280, 1281, 1282, 1283, 1284, 1046, 1046, 1285, 1286,
1792  1036, 1049, 1049, 1288, 1277, 1287, 1287, 1289, 1290, 1291,
1793  1292, 1293, 1294, 1294, 1058, 1058, 1050, 1297, 1297, 1300,
1794  1301, 1295, 1302, 1065, 1065, 1303, 1303, 1296, 1304, 1305,
1795  1306, 1307, 1298, 1308, 1309, 1310, 1311, 1312, 1066, 1313,
1796  1314, 1315, 1315, 1317, 1318, 1319, 1320, 1299, 1321, 1322,
1797 
1798  1322, 1087, 1087, 1324, 1324, 1316, 1089, 1089, 1325, 1325,
1799  1326, 1327, 1328, 1323, 1329, 1088, 1330, 1331, 1332, 1333,
1800  1090, 1334, 1335, 1336, 1337, 1337, 1339, 1340, 1341, 1342,
1801  1343, 1344, 1111, 1111, 1345, 1112, 1346, 1113, 1338, 1114,
1802  1114, 1347, 1347, 1116, 1116, 1348, 1348, 1351, 1349, 1352,
1803  1350, 1118, 1118, 1115, 1353, 1354, 1355, 1117, 1356, 1129,
1804  1129, 1357, 1130, 1358, 1131, 1359, 1360, 1361, 1361, 1363,
1805  1364, 1365, 1366, 1367, 1368, 1141, 1141, 1369, 1369, 1143,
1806  1143, 1362, 1370, 1370, 1371, 1371, 1373, 1374, 1375, 1377,
1807  1142, 1149, 1149, 1378, 1144, 1376, 1376, 1379, 1380, 1372,
1808 
1809  1381, 1381, 1383, 1384, 1385, 1386, 1150, 1159, 1159, 1387,
1810  1388, 1389, 1164, 1164, 1391, 1382, 1390, 1390, 1392, 1393,
1811  1394, 1395, 1395, 1171, 1171, 1172, 1172, 1165, 1397, 1397,
1812  1398, 1399, 1400, 1178, 1178, 1420, 1396, 1417, 1417, 1421,
1813  1173, 1401, 1401, 1180, 1180, 1422, 1423, 1426, 1179, 1427,
1814  1428, 1190, 1190, 1429, 1429, 1430, 1402, 1193, 1193, 1431,
1815  1403, 1404, 1405, 1433, 1406, 1407, 1408, 1409, 1410, 1411,
1816  1435, 1412, 1413, 1414, 1415, 1416, 1418, 1418, 1424, 1424,
1817  1191, 1191, 1196, 1196, 1432, 1432, 1199, 1199, 1434, 1434,
1818  1436, 1419, 1437, 1425, 1438, 1192, 1439, 1197, 1440, 1440,
1819 
1820  1449, 1200, 1207, 1207, 1442, 1442, 1209, 1209, 1445, 1445,
1821  1446, 1446, 1450, 1441, 1212, 1212, 1448, 1448, 1453, 1443,
1822  1455, 1210, 1451, 1451, 1456, 1447, 1218, 1218, 1462, 1213,
1823  1454, 1454, 1222, 1222, 1444, 1457, 1457, 1452, 1458, 1458,
1824  1463, 1219, 1460, 1460, 1464, 1464, 1466, 1223, 1467, 1468,
1825  1469, 1470, 1471, 1459, 1472, 1473, 1474, 1461, 1475, 1465,
1826  1241, 1241, 1476, 1476, 1477, 1478, 1479, 1480, 1481, 1483,
1827  1484, 1485, 1486, 1487, 1482, 1242, 1254, 1254, 1488, 1488,
1828  1491, 1492, 1493, 1497, 1494, 1498, 1499, 1489, 1495, 1502,
1829  1503, 1500, 1504, 1490, 1496, 1501, 1506, 1507, 1505, 1509,
1830 
1831  1513, 1514, 1515, 1510, 1273, 1273, 1274, 1274, 1517, 1511,
1832  1276, 1276, 1512, 1516, 1516, 1508, 1518, 1519, 1520, 1521,
1833  1522, 1523, 1524, 1525, 1529, 1277, 1287, 1287, 1526, 1526,
1834  1530, 1531, 1532, 1533, 1535, 1294, 1294, 1539, 1536, 1536,
1835  1534, 1297, 1297, 1527, 1295, 1538, 1538, 1528, 1540, 1541,
1836  1296, 1537, 1542, 1303, 1303, 1543, 1298, 1544, 1545, 1546,
1837  1547, 1548, 1549, 1550, 1551, 1551, 1553, 1315, 1315, 1554,
1838  1554, 1560, 1555, 1561, 1556, 1557, 1557, 1564, 1552, 1562,
1839  1562, 1316, 1322, 1322, 1565, 1565, 1324, 1324, 1566, 1558,
1840  1325, 1325, 1567, 1563, 1568, 1569, 1323, 1570, 1571, 1572,
1841 
1842  1559, 1573, 1574, 1575, 1576, 1586, 1577, 1590, 1578, 1591,
1843  1579, 1580, 1581, 1594, 1582, 1583, 1584, 1337, 1337, 1585,
1844  1587, 1587, 1595, 1588, 1596, 1589, 1592, 1592, 1347, 1347,
1845  1597, 1338, 1348, 1348, 1598, 1349, 1603, 1350, 1599, 1599,
1846  1593, 1601, 1601, 1604, 1605, 1606, 1607, 1608, 1361, 1361,
1847  1612, 1612, 1600, 1609, 1609, 1602, 1610, 1614, 1611, 1615,
1848  1615, 1619, 1362, 1617, 1617, 1613, 1620, 1369, 1369, 1370,
1849  1370, 1371, 1371, 1622, 1616, 1621, 1621, 1623, 1618, 1624,
1850  1376, 1376, 1625, 1626, 1627, 1628, 1372, 1381, 1381, 1629,
1851  1629, 1630, 1631, 1632, 1633, 1633, 1635, 1636, 1636, 1640,
1852 
1853  1390, 1390, 1382, 1643, 1641, 1641, 1644, 1645, 1649, 1634,
1854  1395, 1395, 1637, 1646, 1646, 1397, 1397, 1650, 1638, 1642,
1855  1647, 1647, 1401, 1401, 1639, 1396, 1651, 1651, 1652, 1653,
1856  1656, 1657, 1658, 1654, 1659, 1648, 1661, 1402, 1660, 1655,
1857  1662, 1663, 1665, 1666, 1668, 1672, 1673, 1664, 1669, 1417,
1858  1417, 1418, 1418, 1675, 1670, 1674, 1674, 1671, 1676, 1677,
1859  1678, 1667, 1424, 1424, 1679, 1679, 1419, 1680, 1681, 1682,
1860  1429, 1429, 1683, 1684, 1432, 1432, 1688, 1425, 1685, 1685,
1861  1434, 1434, 1689, 1690, 1691, 1692, 1692, 1440, 1440, 1696,
1862  1696, 1442, 1442, 1686, 1697, 1697, 1698, 1687, 1445, 1445,
1863 
1864  1693, 1700, 1441, 1701, 1446, 1446, 1443, 1699, 1699, 1448,
1865  1448, 1694, 1451, 1451, 1702, 1702, 1703, 1704, 1695, 1447,
1866  1454, 1454, 1705, 1705, 1457, 1457, 1709, 1452, 1458, 1458,
1867  1707, 1707, 1460, 1460, 1708, 1708, 1710, 1706, 1464, 1464,
1868  1711, 1711, 1712, 1459, 1713, 1714, 1715, 1461, 1716, 1717,
1869  1718, 1719, 1720, 1465, 1721, 1476, 1476, 1722, 1723, 1724,
1870  1725, 1726, 1727, 1729, 1730, 1488, 1488, 1731, 1728, 1732,
1871  1732, 1734, 1735, 1736, 1489, 1737, 1738, 1739, 1740, 1741,
1872  1490, 1742, 1733, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
1873  1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1516, 1516,
1874 
1875  1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1526, 1526,
1876  1766, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
1877  1774, 1536, 1536, 1527, 1775, 1538, 1538, 1776, 1777, 1778,
1878  1779, 1780, 1781, 1782, 1537, 1783, 1784, 1785, 1786, 1787,
1879  1551, 1551, 1788, 1788, 1791, 1789, 1792, 1790, 1554, 1554,
1880  1793, 1555, 1795, 1556, 1552, 1557, 1557, 1794, 1794, 1796,
1881  1797, 1562, 1562, 1798, 1798, 1801, 1799, 1802, 1800, 1558,
1882  1565, 1565, 1803, 1803, 1805, 1563, 1806, 1808, 1808, 1810,
1883  1812, 1813, 1815, 1816, 1817, 1807, 1804, 1818, 1811, 1819,
1884  1814, 1809, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1820,
1885 
1886  1828, 1829, 1587, 1587, 1830, 1588, 1831, 1589, 1832, 1833,
1887  1592, 1592, 1834, 1834, 1837, 1835, 1838, 1836, 1839, 1599,
1888  1599, 1840, 1840, 1844, 1593, 1601, 1601, 1841, 1841, 1845,
1889  1842, 1848, 1843, 1600, 1846, 1846, 1849, 1849, 1851, 1602,
1890  1609, 1609, 1852, 1610, 1853, 1611, 1612, 1612, 1847, 1855,
1891  1850, 1854, 1854, 1615, 1615, 1856, 1856, 1617, 1617, 1857,
1892  1857, 1613, 1858, 1859, 1621, 1621, 1860, 1861, 1616, 1862,
1893  1863, 1864, 1618, 1865, 1866, 1629, 1629, 1867, 1867, 1869,
1894  1869, 1871, 1633, 1633, 1872, 1872, 1873, 1636, 1636, 1874,
1895  1874, 1875, 1868, 1876, 1870, 1877, 1881, 1634, 1641, 1641,
1896 
1897  1878, 1878, 1637, 1879, 1882, 1882, 1646, 1646, 1885, 1880,
1898  1647, 1647, 1888, 1642, 1884, 1884, 1886, 1886, 1889, 1883,
1899  1651, 1651, 1890, 1891, 1892, 1648, 1893, 1894, 1895, 1896,
1900  1897, 1887, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905,
1901  1906, 1907, 1908, 1909, 1674, 1674, 1910, 1911, 1912, 1913,
1902  1913, 1679, 1679, 1915, 1916, 1917, 1918, 1919, 1685, 1685,
1903  1920, 1920, 1921, 1922, 1914, 1923, 1924, 1925, 1692, 1692,
1904  1926, 1926, 1927, 1686, 1928, 1696, 1696, 1697, 1697, 1929,
1905  1699, 1699, 1930, 1693, 1931, 1702, 1702, 1932, 1933, 1705,
1906  1705, 1934, 1934, 1707, 1707, 1708, 1708, 1935, 1936, 1936,
1907 
1908  1711, 1711, 1939, 1940, 1706, 1941, 1942, 1943, 1944, 1945,
1909  1946, 1947, 1948, 1937, 1949, 1950, 1951, 1952, 1953, 1954,
1910  1955, 1956, 1956, 1732, 1732, 1957, 1958, 1959, 1960, 1961,
1911  1962, 1963, 1964, 1965, 1966, 1967, 1733, 1968, 1969, 1970,
1912  1971, 1973, 1974, 1972, 1975, 1976, 1977, 1978, 1979, 1981,
1913  1982, 1938, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1980,
1914  1990, 1766, 1766, 1991, 1992, 1993, 1994, 1995, 1996, 1774,
1915  1774, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
1916  2008, 2006, 2009, 2010, 2011, 1788, 1788, 2012, 1789, 2007,
1917  1790, 2013, 1794, 1794, 2014, 2015, 2016, 1798, 1798, 2017,
1918 
1919  1799, 2018, 1800, 2019, 2020, 1803, 1803, 2021, 2021, 2022,
1920  2023, 2024, 1808, 1808, 2025, 2025, 2026, 2027, 2030, 1804,
1921  2028, 2028, 2031, 2032, 2033, 2034, 1809, 2035, 2036, 2036,
1922  2038, 2039, 2040, 2041, 2029, 2042, 2043, 2044, 2045, 2046,
1923  2047, 2049, 2037, 2050, 2051, 2052, 2048, 1834, 1834, 2053,
1924  1835, 2054, 1836, 2055, 2056, 1840, 1840, 1841, 1841, 2057,
1925  1842, 2058, 1843, 2059, 2060, 1846, 1846, 2061, 2061, 2062,
1926  1849, 1849, 2063, 2063, 2066, 2064, 2067, 2065, 2068, 1847,
1927  1854, 1854, 1856, 1856, 1850, 1857, 1857, 2069, 2070, 2070,
1928  2072, 2073, 2074, 2075, 2076, 2077, 2077, 1867, 1867, 2079,
1929 
1930  2079, 1869, 1869, 2071, 2080, 2080, 2081, 1872, 1872, 2082,
1931  2078, 2083, 1868, 1874, 1874, 2084, 1870, 2085, 1878, 1878,
1932  2086, 2087, 2088, 1882, 1882, 2089, 2089, 1884, 1884, 2090,
1933  1886, 1886, 2091, 2091, 2092, 2092, 2095, 2096, 1883, 2097,
1934  2098, 2099, 2100, 2101, 2102, 1887, 2103, 2104, 2104, 2093,
1935  2107, 2108, 2110, 2111, 2109, 2112, 2113, 2114, 2115, 2116,
1936  2118, 2122, 2105, 2119, 2119, 2123, 2124, 1913, 1913, 2126,
1937  2117, 2125, 2125, 2127, 2128, 2129, 2129, 2131, 2120, 1920,
1938  1920, 2132, 1914, 2133, 2134, 2137, 2106, 2094, 2135, 2135,
1939  2130, 1926, 1926, 2138, 2139, 2140, 2141, 2142, 2143, 2144,
1940 
1941  1934, 1934, 2145, 2136, 1936, 1936, 2121, 2146, 2146, 2147,
1942  2147, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 1937,
1943  2157, 2158, 2159, 2160, 2148, 2161, 2162, 1956, 1956, 2163,
1944  2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173,
1945  2174, 2175, 2176, 2176, 2178, 2179, 2180, 2181, 2182, 2183,
1946  2184, 2185, 2186, 2187, 2188, 2189, 2190, 2177, 2191, 2192,
1947  2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202,
1948  2202, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212,
1949  2212, 2214, 2214, 2216, 2203, 2217, 2218, 2218, 2220, 2221,
1950  2222, 2021, 2021, 2213, 2225, 2215, 2223, 2223, 2226, 2227,
1951 
1952  2219, 2025, 2025, 2228, 2028, 2028, 2229, 2229, 2232, 2230,
1953  2224, 2231, 2233, 2234, 2235, 2236, 2237, 2237, 2029, 2036,
1954  2036, 2241, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2247,
1955  2238, 2250, 2251, 2037, 2252, 2253, 2254, 2254, 2258, 2259,
1956  2260, 2261, 2248, 2262, 2263, 2264, 2265, 2061, 2061, 2268,
1957  2255, 2266, 2266, 2063, 2063, 2239, 2064, 2269, 2065, 2256,
1958  2270, 2271, 2271, 2273, 2279, 2267, 2280, 2249, 2281, 2240,
1959  2274, 2274, 2070, 2070, 2276, 2276, 2272, 2277, 2277, 2257,
1960  2282, 2077, 2077, 2283, 2283, 2275, 2284, 2071, 2079, 2079,
1961  2080, 2080, 2278, 2285, 2286, 2287, 2078, 2288, 2289, 2290,
1962 
1963  2291, 2089, 2089, 2292, 2091, 2091, 2092, 2092, 2293, 2293,
1964  2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303,
1965  2305, 2093, 2104, 2104, 2304, 2304, 2306, 2306, 2308, 2309,
1966  2310, 2311, 2312, 2313, 2313, 2315, 2316, 2105, 2317, 2318,
1967  2319, 2307, 2119, 2119, 2320, 2320, 2321, 2322, 2314, 2323,
1968  2324, 2125, 2125, 2325, 2326, 2326, 2328, 2120, 2129, 2129,
1969  2329, 2329, 2330, 2331, 2332, 2333, 2135, 2135, 2335, 2327,
1970  2334, 2334, 2336, 2130, 2337, 2337, 2339, 2339, 2341, 2342,
1971  2342, 2136, 2344, 2344, 2346, 2347, 2146, 2146, 2349, 2338,
1972  2350, 2340, 2147, 2147, 2343, 2348, 2348, 2345, 2351, 2352,
1973 
1974  2352, 2355, 2355, 2358, 2359, 2360, 2361, 2148, 2353, 2362,
1975  2356, 2363, 2364, 2364, 2354, 2366, 2357, 2367, 2368, 2369,
1976  2370, 2371, 2372, 2373, 2374, 2375, 2375, 2365, 2377, 2378,
1977  2176, 2176, 2379, 2379, 2380, 2381, 2382, 2383, 2384, 2387,
1978  2376, 2385, 2385, 2388, 2388, 2177, 2390, 2391, 2392, 2393,
1979  2393, 2395, 2396, 2397, 2398, 2399, 2386, 2400, 2389, 2401,
1980  2403, 2404, 2405, 2407, 2394, 2202, 2202, 2408, 2402, 2406,
1981  2406, 2409, 2410, 2411, 2412, 2413, 2414, 2212, 2212, 2417,
1982  2203, 2415, 2415, 2214, 2214, 2416, 2416, 2418, 2218, 2218,
1983  2422, 2213, 2423, 2419, 2419, 2424, 2420, 2215, 2421, 2223,
1984 
1985  2223, 2428, 2219, 2425, 2425, 2426, 2426, 2429, 2429, 2431,
1986  2432, 2229, 2229, 2224, 2230, 2433, 2231, 2434, 2434, 2427,
1987  2436, 2430, 2437, 2438, 2439, 2237, 2237, 2440, 2440, 2441,
1988  2442, 2435, 2241, 2241, 2443, 2444, 2444, 2446, 2447, 2238,
1989  2448, 2247, 2247, 2449, 2449, 2450, 2451, 2452, 2452, 2445,
1990  2454, 2455, 2254, 2254, 2457, 2248, 2456, 2456, 2458, 2459,
1991  2462, 2453, 2460, 2460, 2463, 2464, 2255, 2465, 2466, 2467,
1992  2266, 2266, 2468, 2468, 2469, 2471, 2461, 2271, 2271, 2470,
1993  2470, 2274, 2274, 2474, 2267, 2472, 2472, 2276, 2276, 2277,
1994  2277, 2475, 2272, 2473, 2473, 2484, 2275, 2476, 2476, 2478,
1995 
1996  2478, 2283, 2283, 2485, 2278, 2480, 2480, 2482, 2482, 2486,
1997  2487, 2488, 2477, 2489, 2479, 2490, 2293, 2293, 2491, 2492,
1998  2481, 2493, 2483, 2494, 2495, 2496, 2497, 2498, 2498, 2500,
1999  2500, 2502, 2304, 2304, 2503, 2306, 2306, 2504, 2504, 2505,
2000  2506, 2507, 2499, 2508, 2501, 2509, 2313, 2313, 2510, 2510,
2001  2307, 2511, 2511, 2513, 2514, 2514, 2516, 2517, 2320, 2320,
2002  2518, 2314, 2519, 2520, 2521, 2522, 2512, 2326, 2326, 2515,
2003  2523, 2523, 2524, 2329, 2329, 2525, 2526, 2526, 2528, 2530,
2004  2334, 2334, 2327, 2531, 2532, 2532, 2536, 2529, 2337, 2337,
2005  2539, 2527, 2534, 2534, 2339, 2339, 2535, 2535, 2540, 2533,
2006 
2007  2342, 2342, 2541, 2338, 2537, 2537, 2344, 2344, 2542, 2340,
2008  2538, 2538, 2348, 2348, 2543, 2343, 2352, 2352, 2544, 2545,
2009  2545, 2345, 2547, 2548, 2548, 2353, 2355, 2355, 2550, 2551,
2010  2552, 2354, 2546, 2553, 2553, 2356, 2549, 2555, 2364, 2364,
2011  2557, 2357, 2554, 2556, 2556, 2558, 2559, 2560, 2561, 2562,
2012  2563, 2564, 2565, 2365, 2375, 2375, 2566, 2566, 2567, 2567,
2013  2569, 2379, 2379, 2570, 2571, 2572, 2573, 2574, 2576, 2376,
2014  2385, 2385, 2578, 2568, 2575, 2575, 2388, 2388, 2577, 2577,
2015  2579, 2580, 2393, 2393, 2582, 2386, 2581, 2581, 2583, 2584,
2016  2585, 2389, 2586, 2587, 2588, 2589, 2590, 2394, 2591, 2406,
2017 
2018  2406, 2592, 2593, 2594, 2595, 2595, 2597, 2599, 2599, 2601,
2019  2602, 2602, 2415, 2415, 2416, 2416, 2604, 2598, 2596, 2605,
2020  2606, 2600, 2419, 2419, 2603, 2420, 2607, 2421, 2608, 2609,
2021  2610, 2425, 2425, 2426, 2426, 2611, 2611, 2612, 2612, 2429,
2022  2429, 2614, 2614, 2615, 2615, 2434, 2434, 2427, 2617, 2617,
2023  2620, 2613, 2621, 2430, 2618, 2618, 2622, 2616, 2625, 2435,
2024  2440, 2440, 2623, 2623, 2626, 2444, 2444, 2630, 2619, 2627,
2025  2627, 2628, 2628, 2632, 2449, 2449, 2624, 2633, 2634, 2445,
2026  2452, 2452, 2635, 2635, 2636, 2629, 2637, 2638, 2631, 2456,
2027  2456, 2639, 2640, 2642, 2453, 2460, 2460, 2641, 2641, 2643,
2028 
2029  2644, 2645, 2646, 2647, 2468, 2468, 2648, 2470, 2470, 2461,
2030  2649, 2472, 2472, 2473, 2473, 2650, 2651, 2476, 2476, 2652,
2031  2652, 2478, 2478, 2653, 2653, 2480, 2480, 2654, 2654, 2482,
2032  2482, 2656, 2477, 2655, 2655, 2657, 2479, 2658, 2659, 2659,
2033  2481, 2661, 2661, 2663, 2483, 2664, 2665, 2666, 2667, 2668,
2034  2669, 2670, 2671, 2660, 2498, 2498, 2662, 2672, 2672, 2500,
2035  2500, 2673, 2673, 2674, 2674, 2676, 2504, 2504, 2677, 2499,
2036  2678, 2679, 2680, 2681, 2501, 2510, 2510, 2683, 2675, 2511,
2037  2511, 2682, 2682, 2514, 2514, 2684, 2684, 2685, 2686, 2687,
2038  2688, 2689, 2690, 2691, 2512, 2523, 2523, 2694, 2515, 2692,
2039 
2040  2692, 2526, 2526, 2695, 2695, 2696, 2697, 2698, 2699, 2532,
2041  2532, 2700, 2700, 2701, 2693, 2702, 2527, 2534, 2534, 2535,
2042  2535, 2537, 2537, 2703, 2533, 2538, 2538, 2704, 2705, 2706,
2043  2707, 2707, 2545, 2545, 2708, 2709, 2709, 2548, 2548, 2710,
2044  2711, 2712, 2713, 2553, 2553, 2546, 2714, 2715, 2556, 2556,
2045  2549, 2716, 2554, 2717, 2718, 2719, 2720, 2721, 2722, 2723,
2046  2723, 2725, 2566, 2566, 2567, 2567, 2726, 2726, 2727, 2728,
2047  2728, 2730, 2731, 2732, 2724, 2733, 2575, 2575, 2734, 2568,
2048  2577, 2577, 2735, 2736, 2729, 2737, 2581, 2581, 2738, 2739,
2049  2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
2050 
2051  2595, 2595, 2750, 2750, 2751, 2752, 2599, 2599, 2753, 2753,
2052  2754, 2602, 2602, 2758, 2596, 2759, 2755, 2755, 2760, 2756,
2053  2600, 2757, 2761, 2762, 2772, 2603, 2611, 2611, 2612, 2612,
2054  2763, 2763, 2775, 2764, 2777, 2765, 2614, 2614, 2615, 2615,
2055  2766, 2766, 2613, 2767, 2778, 2768, 2617, 2617, 2618, 2618,
2056  2769, 2769, 2616, 2770, 2780, 2771, 2773, 2773, 2623, 2623,
2057  2776, 2776, 2619, 2627, 2627, 2628, 2628, 2779, 2779, 2781,
2058  2774, 2785, 2624, 2786, 2787, 2635, 2635, 2782, 2794, 2629,
2059  2788, 2788, 2783, 2795, 2784, 2790, 2790, 2792, 2792, 2641,
2060  2641, 2796, 2797, 2798, 2789, 2799, 2800, 2801, 2802, 2791,
2061 
2062  2803, 2793, 2804, 2805, 2652, 2652, 2653, 2653, 2654, 2654,
2063  2655, 2655, 2806, 2807, 2808, 2659, 2659, 2809, 2809, 2661,
2064  2661, 2810, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817,
2065  2660, 2818, 2818, 2820, 2662, 2672, 2672, 2673, 2673, 2674,
2066  2674, 2821, 2821, 2822, 2823, 2823, 2819, 2825, 2826, 2827,
2067  2828, 2682, 2682, 2829, 2675, 2684, 2684, 2830, 2831, 2824,
2068  2832, 2833, 2834, 2835, 2836, 2692, 2692, 2837, 2837, 2838,
2069  2695, 2695, 2839, 2840, 2840, 2842, 2843, 2700, 2700, 2844,
2070  2693, 2845, 2846, 2847, 2848, 2849, 2707, 2707, 2841, 2850,
2071  2709, 2709, 2851, 2852, 2853, 2854, 2854, 2856, 2856, 2857,
2072 
2073  2858, 2859, 2860, 2861, 2861, 2863, 2863, 2865, 2723, 2723,
2074  2855, 2866, 2866, 2867, 2726, 2726, 2868, 2870, 2862, 2871,
2075  2864, 2728, 2728, 2724, 2869, 2869, 2872, 2873, 2874, 2874,
2076  2876, 2877, 2878, 2879, 2880, 2881, 2729, 2882, 2883, 2884,
2077  2885, 2886, 2887, 2875, 2888, 2750, 2750, 2889, 2890, 2753,
2078  2753, 2891, 2755, 2755, 2893, 2756, 2894, 2757, 2895, 2896,
2079  2897, 2898, 2892, 2899, 2899, 2763, 2763, 2901, 2764, 2902,
2080  2765, 2766, 2766, 2903, 2767, 2904, 2768, 2900, 2769, 2769,
2081  2905, 2770, 2906, 2771, 2907, 2907, 2773, 2773, 2909, 2909,
2082  2910, 2910, 2776, 2776, 2912, 2913, 2779, 2779, 2908, 2914,
2083 
2084  2774, 2915, 2916, 2917, 2911, 2918, 2919, 2920, 2921, 2788,
2085  2788, 2922, 2922, 2790, 2790, 2923, 2923, 2792, 2792, 2924,
2086  2924, 2925, 2926, 2789, 2927, 2928, 2929, 2791, 2930, 2931,
2087  2932, 2793, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2939,
2088  2809, 2809, 2810, 2810, 2941, 2942, 2942, 2944, 2945, 2946,
2089  2946, 2948, 2948, 2940, 2950, 2818, 2818, 2951, 2951, 2952,
2090  2943, 2821, 2821, 2953, 2947, 2955, 2949, 2823, 2823, 2956,
2091  2819, 2954, 2954, 2957, 2958, 2959, 2959, 2961, 2962, 2963,
2092  2964, 2965, 2824, 2966, 2967, 2837, 2837, 2968, 2968, 2970,
2093  2960, 2840, 2840, 2971, 2971, 2972, 2973, 2974, 2975, 2975,
2094 
2095  2977, 2978, 2969, 2979, 2980, 2981, 2841, 2982, 2983, 2854,
2096  2854, 2984, 2984, 2976, 2856, 2856, 2985, 2986, 2987, 2988,
2097  2861, 2861, 2989, 2989, 2855, 2863, 2863, 2990, 2990, 2991,
2098  2866, 2866, 2992, 2993, 2994, 2862, 2869, 2869, 2995, 2996,
2099  2864, 2874, 2874, 2997, 2997, 2998, 2998, 3000, 3001, 3002,
2100  3003, 3004, 3005, 3006, 3006, 3008, 2875, 3009, 3010, 3010,
2101  2999, 3012, 3012, 3014, 3015, 3016, 3017, 3018, 3007, 3019,
2102  2899, 2899, 3011, 3020, 3020, 3013, 3021, 3025, 3022, 2907,
2103  2907, 3023, 3023, 3026, 2900, 2909, 2909, 2910, 2910, 3024,
2104  3024, 3027, 3027, 2908, 3029, 3030, 3031, 3032, 3033, 3034,
2105 
2106  3035, 2911, 2922, 2922, 3036, 3028, 2923, 2923, 2924, 2924,
2107  3037, 3038, 3039, 3039, 3041, 3042, 3042, 3044, 3045, 3046,
2108  3047, 3048, 3049, 3050, 3050, 3052, 3040, 2939, 2939, 3043,
2109  3053, 3053, 3054, 2942, 2942, 3055, 3055, 3056, 3051, 3057,
2110  2946, 2946, 2940, 3058, 3058, 2948, 2948, 3060, 2943, 3059,
2111  3059, 2951, 2951, 3061, 3062, 2947, 2954, 2954, 3063, 3066,
2112  2949, 3064, 3064, 3067, 2959, 2959, 3068, 3068, 3069, 3069,
2113  3071, 3072, 3072, 3074, 3075, 3075, 3065, 3077, 3077, 2960,
2114  3079, 2968, 2968, 3070, 3080, 3080, 3073, 3081, 3082, 3076,
2115  2971, 2971, 3078, 3083, 3084, 3086, 2969, 2975, 2975, 3085,
2116 
2117  3085, 3087, 3088, 3089, 3090, 2984, 2984, 3091, 3092, 3093,
2118  2989, 2989, 2976, 2990, 2990, 3094, 3095, 3096, 3097, 3098,
2119  2997, 2997, 2998, 2998, 3099, 3099, 3100, 3101, 3102, 3103,
2120  3104, 3006, 3006, 3105, 3105, 3106, 3107, 2999, 3010, 3010,
2121  3108, 3108, 3012, 3012, 3109, 3109, 3007, 3110, 3111, 3112,
2122  3113, 3113, 3011, 3115, 3116, 3117, 3013, 3020, 3020, 3118,
2123  3021, 3119, 3022, 3120, 3114, 3023, 3023, 3024, 3024, 3027,
2124  3027, 3121, 3121, 3122, 3122, 3124, 3124, 3126, 3127, 3127,
2125  3129, 3130, 3131, 3028, 3132, 3132, 3134, 3123, 3135, 3125,
2126  3039, 3039, 3128, 3136, 3136, 3137, 3042, 3042, 3133, 3145,
2127 
2128  3138, 3138, 3141, 3139, 3040, 3140, 3143, 3143, 3146, 3146,
2129  3043, 3148, 3152, 3142, 3149, 3149, 3050, 3050, 3151, 3151,
2130  3144, 3053, 3053, 3147, 3153, 3153, 3055, 3055, 3155, 3150,
2131  3156, 3051, 3058, 3058, 3059, 3059, 3157, 3158, 3161, 3154,
2132  3159, 3159, 3064, 3064, 3162, 3162, 3163, 3164, 3068, 3068,
2133  3069, 3069, 3165, 3165, 3166, 3160, 3168, 3065, 3072, 3072,
2134  3167, 3167, 3075, 3075, 3171, 3070, 3169, 3169, 3077, 3077,
2135  3170, 3170, 3172, 3073, 3080, 3080, 3173, 3076, 3174, 3174,
2136  3176, 3085, 3085, 3078, 3177, 3178, 3179, 3180, 3181, 3182,
2137  3182, 3184, 3184, 3175, 3186, 3187, 3187, 3189, 3189, 3099,
2138 
2139  3099, 3191, 3192, 3193, 3183, 3194, 3185, 3195, 3105, 3105,
2140  3188, 3196, 3190, 3197, 3108, 3108, 3109, 3109, 3198, 3198,
2141  3200, 3200, 3202, 3113, 3113, 3203, 3203, 3204, 3205, 3205,
2142  3207, 3208, 3199, 3211, 3201, 3121, 3121, 3114, 3122, 3122,
2143  3209, 3209, 3206, 3124, 3124, 3210, 3210, 3127, 3127, 3212,
2144  3212, 3213, 3123, 3214, 3214, 3216, 3218, 3125, 3132, 3132,
2145  3221, 3128, 3217, 3217, 3219, 3219, 3222, 3215, 3136, 3136,
2146  3138, 3138, 3133, 3139, 3223, 3140, 3224, 3225, 3220, 3143,
2147  3143, 3226, 3226, 3227, 3146, 3146, 3228, 3228, 3229, 3149,
2148  3149, 3230, 3230, 3144, 3151, 3151, 3231, 3153, 3153, 3147,
2149 
2150  3232, 3232, 3233, 3233, 3150, 3235, 3235, 3237, 3237, 3239,
2151  3159, 3159, 3154, 3240, 3240, 3241, 3241, 3234, 3162, 3162,
2152  3236, 3247, 3238, 3243, 3243, 3160, 3245, 3245, 3165, 3165,
2153  3242, 3167, 3167, 3248, 3169, 3169, 3170, 3170, 3244, 3249,
2154  3250, 3246, 3251, 3174, 3174, 3252, 3252, 3253, 3254, 3255,
2155  3256, 3257, 3182, 3182, 3258, 3258, 3184, 3184, 3175, 3259,
2156  3259, 3260, 3187, 3187, 3261, 3261, 3263, 3183, 3189, 3189,
2157  3264, 3185, 3262, 3262, 3265, 3266, 3267, 3188, 3268, 3269,
2158  3198, 3198, 3272, 3190, 3270, 3270, 3200, 3200, 3271, 3271,
2159  3203, 3203, 3273, 3273, 3199, 3205, 3205, 3275, 3275, 3278,
2160 
2161  3201, 3276, 3276, 3209, 3209, 3281, 3274, 3210, 3210, 3206,
2162  3279, 3279, 3212, 3212, 3283, 3277, 3214, 3214, 3282, 3282,
2163  3217, 3217, 3284, 3288, 3280, 3219, 3219, 3285, 3285, 3289,
2164  3215, 3286, 3286, 3226, 3226, 3290, 3228, 3228, 3291, 3220,
2165  3230, 3230, 3292, 3292, 3297, 3287, 3232, 3232, 3233, 3233,
2166  3294, 3294, 3235, 3235, 3295, 3295, 3301, 3293, 3237, 3237,
2167  3296, 3296, 3302, 3234, 3240, 3240, 3303, 3236, 3241, 3241,
2168  3298, 3298, 3304, 3238, 3243, 3243, 3299, 3299, 3245, 3245,
2169  3300, 3300, 3305, 3242, 3252, 3252, 3306, 3307, 3308, 3244,
2170  3309, 3310, 3311, 3246, 3258, 3258, 3259, 3259, 3261, 3261,
2171 
2172  3262, 3262, 3312, 3313, 3314, 3315, 3316, 3270, 3270, 3271,
2173  3271, 3317, 3273, 3273, 3318, 3318, 3275, 3275, 3276, 3276,
2174  3319, 3319, 3320, 3320, 3279, 3279, 3274, 3322, 3322, 3323,
2175  3282, 3282, 3277, 3324, 3325, 3331, 3321, 3332, 3280, 3285,
2176  3285, 3286, 3286, 3326, 3326, 3327, 3327, 3329, 3329, 3292,
2177  3292, 3333, 3333, 3294, 3294, 3287, 3295, 3295, 3338, 3328,
2178  3339, 3330, 3296, 3296, 3293, 3334, 3334, 3298, 3298, 3299,
2179  3299, 3300, 3300, 3336, 3336, 3340, 3341, 3342, 3343, 3344,
2180  3335, 3345, 3346, 3347, 3347, 3318, 3318, 3350, 3337, 3319,
2181  3319, 3320, 3320, 3349, 3349, 3322, 3322, 3348, 3351, 3352,
2182 
2183  3352, 3326, 3326, 3327, 3327, 3321, 3354, 3354, 3329, 3329,
2184  3355, 3355, 3366, 3353, 3356, 3356, 3373, 3328, 3358, 3358,
2185  3333, 3333, 3330, 3334, 3334, 3360, 3360, 3374, 3357, 3336,
2186  3336, 3361, 3361, 3359, 3362, 3362, 3364, 3364, 3335, 3367,
2187  3367, 3369, 3369, 3376, 3337, 3371, 3371, 3347, 3347, 3363,
2188  3389, 3365, 3375, 3375, 3368, 3390, 3370, 3349, 3349, 3391,
2189  3372, 3348, 3377, 3377, 3352, 3352, 3379, 3379, 3354, 3354,
2190  3355, 3355, 3356, 3356, 3380, 3380, 3378, 3394, 3353, 3358,
2191  3358, 3381, 3381, 3360, 3360, 3395, 3357, 3361, 3361, 3362,
2192  3362, 3382, 3382, 3396, 3359, 3364, 3364, 3383, 3383, 3384,
2193 
2194  3384, 3367, 3367, 3397, 3363, 3386, 3386, 3369, 3369, 3398,
2195  3365, 3387, 3387, 3399, 3385, 3404, 3368, 3371, 3371, 3388,
2196  3388, 3407, 3370, 3375, 3375, 3377, 3377, 3392, 3392, 3379,
2197  3379, 46, 3372, 3380, 3380, 3381, 3381, 3382, 3382, 3378,
2198  3383, 3383, 3384, 3384, 3393, 3393, 3386, 3386, 3387, 3387,
2199  3388, 3388, 3392, 3392, 3393, 3393, 1018, 3385, 3400, 3400,
2200  3402, 3402, 3400, 3400, 3405, 3405, 3402, 3402, 3406, 3406,
2201  3405, 3405, 1017, 3401, 1016, 3403, 1015, 3401, 3406, 3406,
2202  1014, 3403, 3408, 3408, 3408, 3408, 3410, 3410, 3410, 3410,
2203  1013, 1012, 1011, 1010, 1007, 1006, 3409, 1005, 3409, 24,
2204 
2205  24, 24, 24, 24, 35, 35, 35, 35, 35, 36,
2206  36, 36, 36, 36, 37, 37, 37, 37, 37, 38,
2207  38, 38, 38, 38, 39, 39, 39, 39, 39, 42,
2208  42, 42, 42, 42, 105, 105, 1004, 105, 105, 106,
2209  106, 106, 1003, 106, 107, 107, 107, 107, 1002, 1001,
2210  1000, 999, 998, 997, 996, 995, 993, 992, 991, 988,
2211  987, 985, 984, 983, 982, 979, 977, 976, 975, 974,
2212  973, 972, 971, 970, 969, 968, 965, 962, 961, 960,
2213  958, 957, 956, 955, 954, 953, 950, 947, 946, 945,
2214  944, 940, 939, 938, 937, 936, 935, 934, 933, 928,
2215 
2216  927, 926, 925, 924, 923, 921, 920, 919, 917, 916,
2217  915, 914, 911, 910, 909, 908, 906, 905, 898, 897,
2218  893, 892, 891, 887, 886, 883, 882, 881, 880, 879,
2219  878, 877, 876, 875, 874, 869, 868, 867, 865, 864,
2220  863, 862, 861, 860, 859, 858, 857, 856, 855, 853,
2221  850, 849, 848, 847, 846, 845, 844, 843, 842, 839,
2222  838, 836, 835, 834, 833, 830, 828, 827, 826, 825,
2223  824, 823, 822, 821, 820, 819, 816, 815, 814, 813,
2224  812, 811, 810, 809, 808, 807, 803, 800, 799, 798,
2225  797, 793, 792, 791, 790, 789, 788, 787, 786, 783,
2226 
2227  782, 781, 780, 779, 778, 776, 775, 774, 773, 772,
2228  771, 770, 767, 766, 765, 764, 757, 756, 755, 754,
2229  753, 752, 749, 746, 745, 744, 741, 740, 739, 738,
2230  737, 736, 735, 734, 731, 730, 729, 728, 723, 717,
2231  716, 710, 708, 707, 703, 702, 701, 700, 699, 697,
2232  696, 695, 694, 688, 687, 685, 684, 683, 682, 674,
2233  673, 672, 669, 668, 667, 666, 662, 661, 660, 657,
2234  656, 653, 652, 651, 650, 649, 648, 647, 646, 645,
2235  644, 643, 642, 641, 640, 639, 638, 637, 632, 631,
2236  630, 627, 626, 625, 623, 622, 621, 620, 619, 618,
2237 
2238  617, 616, 615, 614, 611, 610, 607, 603, 602, 601,
2239  600, 599, 598, 595, 592, 591, 590, 587, 586, 585,
2240  584, 583, 582, 581, 580, 577, 576, 575, 572, 567,
2241  566, 560, 558, 557, 556, 555, 554, 553, 552, 551,
2242  549, 548, 547, 546, 540, 539, 538, 537, 536, 535,
2243  529, 528, 527, 524, 523, 522, 521, 516, 515, 514,
2244  513, 506, 505, 500, 499, 498, 495, 494, 493, 492,
2245  491, 490, 489, 486, 485, 484, 477, 476, 475, 469,
2246  468, 467, 466, 465, 464, 463, 459, 456, 451, 450,
2247  446, 445, 439, 438, 437, 436, 435, 434, 433, 432,
2248 
2249  431, 430, 429, 428, 427, 426, 425, 424, 423, 422,
2250  419, 418, 417, 416, 415, 414, 413, 403, 402, 401,
2251  400, 399, 395, 394, 393, 392, 391, 388, 387, 386,
2252  385, 378, 377, 372, 371, 370, 367, 366, 365, 364,
2253  363, 362, 361, 360, 359, 352, 351, 350, 344, 343,
2254  342, 341, 340, 339, 338, 337, 336, 333, 328, 327,
2255  323, 322, 321, 320, 310, 291, 285, 275, 269, 266,
2256  263, 260, 259, 258, 257, 256, 255, 254, 253, 250,
2257  249, 248, 247, 246, 245, 244, 243, 242, 241, 238,
2258  234, 233, 232, 231, 230, 227, 226, 225, 224, 223,
2259 
2260  222, 222, 221, 220, 210, 192, 186, 176, 170, 147,
2261  144, 122, 119, 118, 117, 110, 104, 103, 76, 109,
2262  108, 104, 103, 76, 72, 72, 3411, 35, 35, 35,
2263  35, 35, 35, 19, 3411, 3411, 3411, 3411, 3411, 3411,
2264  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2265  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2266  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2267  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2268  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2269  3411, 3411, 3411, 3411, 3411, 3411, 3411
2270 
2271  } ;
2272 
2274  { 0,
2275  1, 1, 1, 1, 1, 17, 1, 18, 1, 1,
2276  1, 1, 1, 1, 1, 15, 1, 1, 51, 16,
2277  17, 15, 18, 0, 1, 16, 26, 1, 26, 26,
2278  26, 47, 51, 47, 47, 47, 64, 122, 57, 27,
2279  27, 26, 56, 122, 62, 66, 47, 29, 29, 27,
2280  27, 27, 57, 56, 62, 29, 64, 29, 29, 29,
2281  27, 66, 1, 2, 2, 2, 2, 2, 29, 2,
2282  789, 2, 2, 2, 2, 2, 2, 2, 27, 2,
2283  2, 48, 48, 142, 58, 65, 29, 2, 58, 142,
2284  2, 48, 48, 48, 69, 68, 67, 68, 69, 65,
2285 
2286  68, 68, 48, 50, 50, 65, 67, 68, 84, 70,
2287  144, 50, 68, 50, 50, 50, 144, 68, 69, 84,
2288  48, 70, 73, 73, 50, 2, 21, 21, 77, 77,
2289  21, 790, 21, 21, 21, 21, 21, 21, 21, 21,
2290  21, 21, 50, 21, 21, 21, 21, 21, 21, 21,
2291  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
2292  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
2293  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
2294  21, 21, 21, 21, 21, 21, 21, 30, 74, 74,
2295  791, 75, 75, 83, 30, 75, 75, 75, 74, 74,
2296 
2297  74, 30, 88, 83, 793, 133, 30, 92, 93, 74,
2298  88, 83, 92, 30, 86, 133, 93, 246, 86, 246,
2299  30, 30, 30, 30, 30, 30, 30, 74, 30, 30,
2300  86, 30, 30, 30, 30, 30, 30, 30, 30, 30,
2301  30, 30, 79, 97, 96, 100, 114, 96, 795, 79,
2302  96, 145, 145, 145, 100, 114, 79, 79, 79, 79,
2303  79, 79, 79, 798, 79, 79, 97, 79, 79, 79,
2304  79, 79, 79, 79, 79, 79, 79, 79, 87, 90,
2305  87, 90, 94, 95, 87, 265, 94, 265, 99, 90,
2306  87, 164, 99, 94, 90, 90, 94, 95, 99, 150,
2307 
2308  99, 95, 94, 99, 99, 120, 120, 151, 99, 150,
2309  146, 146, 148, 148, 164, 222, 222, 150, 151, 120,
2310  146, 146, 146, 154, 153, 154, 155, 148, 153, 154,
2311  160, 157, 159, 157, 155, 154, 189, 159, 160, 161,
2312  153, 157, 163, 161, 162, 163, 157, 157, 163, 799,
2313  161, 189, 189, 161, 210, 167, 166, 210, 162, 161,
2314  166, 162, 162, 120, 167, 178, 166, 173, 166, 178,
2315  173, 166, 166, 176, 176, 176, 166, 188, 188, 173,
2316  176, 195, 193, 194, 194, 195, 206, 214, 215, 211,
2317  214, 805, 188, 193, 211, 221, 216, 206, 194, 216,
2318 
2319  229, 221, 229, 235, 235, 215, 236, 236, 238, 236,
2320  807, 236, 237, 237, 238, 267, 267, 235, 268, 268,
2321  269, 269, 272, 229, 277, 272, 237, 288, 277, 808,
2322  267, 275, 275, 275, 272, 269, 279, 279, 275, 237,
2323  287, 287, 288, 288, 237, 292, 293, 293, 294, 298,
2324  298, 279, 294, 311, 306, 287, 292, 310, 311, 314,
2325  310, 293, 314, 315, 298, 306, 316, 321, 327, 316,
2326  322, 322, 327, 321, 331, 279, 332, 332, 339, 339,
2327  315, 340, 340, 331, 809, 322, 345, 345, 346, 346,
2328  368, 332, 810, 339, 355, 355, 340, 331, 356, 356,
2329 
2330  811, 345, 358, 358, 359, 359, 362, 364, 362, 355,
2331  362, 377, 377, 381, 368, 812, 364, 358, 390, 359,
2332  362, 383, 383, 392, 381, 390, 377, 395, 395, 813,
2333  392, 407, 407, 340, 404, 404, 383, 404, 390, 404,
2334  450, 395, 408, 408, 450, 407, 412, 412, 416, 416,
2335  417, 417, 435, 435, 438, 438, 442, 442, 600, 359,
2336  412, 814, 416, 496, 417, 815, 435, 819, 438, 443,
2337  443, 444, 444, 445, 445, 454, 454, 455, 455, 460,
2338  460, 461, 461, 820, 443, 464, 464, 496, 445, 822,
2339  454, 600, 455, 824, 460, 465, 465, 470, 470, 825,
2340 
2341  464, 471, 471, 477, 477, 454, 480, 480, 481, 481,
2342  465, 826, 470, 827, 454, 483, 483, 828, 477, 484,
2343  484, 480, 487, 487, 488, 488, 477, 489, 454, 489,
2344  483, 489, 509, 525, 484, 505, 505, 487, 491, 491,
2345  754, 489, 830, 509, 511, 511, 525, 465, 518, 518,
2346  505, 519, 519, 491, 520, 520, 610, 533, 533, 511,
2347  534, 534, 833, 518, 541, 541, 519, 610, 491, 542,
2348  542, 518, 533, 754, 484, 543, 543, 491, 518, 541,
2349  544, 544, 550, 550, 555, 555, 559, 559, 561, 561,
2350  543, 518, 834, 555, 562, 562, 563, 563, 836, 555,
2351 
2352  564, 564, 838, 561, 566, 566, 577, 577, 588, 588,
2353  839, 563, 840, 566, 589, 589, 591, 591, 842, 566,
2354  843, 577, 844, 588, 596, 596, 597, 597, 612, 612,
2355  845, 591, 613, 613, 624, 624, 628, 628, 846, 596,
2356  629, 629, 612, 633, 633, 634, 634, 635, 635, 847,
2357  628, 636, 636, 776, 636, 670, 636, 633, 647, 647,
2358  800, 635, 650, 650, 654, 654, 655, 655, 670, 655,
2359  776, 655, 647, 658, 658, 848, 650, 849, 654, 659,
2360  659, 800, 659, 792, 659, 650, 792, 658, 660, 660,
2361  663, 663, 664, 664, 665, 665, 675, 675, 676, 676,
2362 
2363  680, 680, 660, 681, 681, 686, 686, 664, 689, 689,
2364  850, 675, 690, 690, 851, 680, 691, 691, 692, 692,
2365  660, 693, 693, 689, 698, 698, 703, 703, 704, 704,
2366  852, 691, 705, 705, 709, 709, 693, 711, 711, 712,
2367  712, 703, 853, 704, 713, 713, 714, 714, 716, 716,
2368  718, 718, 711, 724, 724, 725, 725, 729, 729, 713,
2369  731, 731, 855, 716, 742, 742, 743, 743, 724, 745,
2370  745, 856, 729, 750, 750, 731, 751, 751, 857, 742,
2371  758, 758, 759, 759, 745, 763, 763, 858, 750, 777,
2372  777, 784, 784, 785, 785, 758, 794, 794, 859, 796,
2373 
2374  796, 801, 801, 802, 802, 794, 803, 803, 804, 804,
2375  860, 794, 796, 806, 806, 817, 817, 804, 818, 818,
2376  861, 803, 862, 804, 821, 821, 806, 829, 829, 865,
2377  817, 831, 831, 832, 832, 837, 837, 841, 841, 821,
2378  854, 854, 863, 863, 864, 864, 831, 866, 866, 867,
2379  868, 869, 841, 870, 870, 869, 863, 872, 864, 869,
2380  871, 871, 873, 871, 869, 871, 869, 874, 875, 876,
2381  877, 878, 879, 880, 881, 882, 883, 884, 884, 885,
2382  885, 890, 885, 891, 885, 886, 886, 887, 887, 888,
2383  888, 884, 889, 889, 892, 893, 895, 894, 894, 886,
2384 
2385  894, 887, 894, 888, 896, 897, 898, 899, 899, 900,
2386  899, 901, 899, 902, 902, 903, 903, 904, 903, 905,
2387  903, 906, 907, 907, 908, 909, 910, 902, 911, 912,
2388  913, 914, 914, 915, 915, 916, 917, 918, 918, 919,
2389  920, 920, 921, 922, 922, 923, 914, 924, 915, 925,
2390  926, 927, 928, 929, 929, 920, 930, 930, 933, 921,
2391  931, 931, 932, 932, 934, 935, 936, 937, 937, 938,
2392  939, 940, 945, 939, 946, 931, 941, 941, 942, 942,
2393  943, 943, 937, 944, 944, 953, 915, 947, 948, 948,
2394  954, 941, 949, 949, 950, 950, 951, 951, 944, 952,
2395 
2396  952, 955, 956, 957, 958, 960, 937, 961, 947, 950,
2397  962, 951, 959, 959, 963, 963, 964, 964, 965, 965,
2398  966, 966, 967, 967, 968, 969, 970, 970, 971, 963,
2399  972, 972, 973, 965, 974, 966, 975, 976, 977, 978,
2400  978, 970, 979, 980, 980, 972, 981, 981, 982, 983,
2401  983, 984, 984, 985, 986, 986, 987, 988, 980, 989,
2402  990, 990, 991, 992, 983, 995, 984, 993, 993, 994,
2403  994, 996, 997, 998, 999, 990, 1000, 1001, 1002, 1003,
2404  1005, 1006, 993, 1007, 1008, 1009, 1010, 1011, 1012, 1012,
2405  1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
2406 
2407  1023, 1027, 983, 1012, 1025, 1025, 1026, 1026, 1028, 1029,
2408  1030, 1033, 1033, 1034, 1034, 1036, 1032, 1032, 1038, 1026,
2409  993, 1031, 1031, 1031, 1039, 1031, 1031, 1031, 1031, 1031,
2410  1031, 1032, 1031, 1031, 1031, 1031, 1031, 1035, 1035, 1037,
2411  1037, 1040, 1041, 1043, 1044, 1045, 1046, 1046, 1047, 1048,
2412  1035, 1049, 1049, 1051, 1037, 1050, 1050, 1052, 1053, 1054,
2413  1055, 1056, 1057, 1057, 1058, 1058, 1049, 1059, 1059, 1061,
2414  1062, 1057, 1064, 1065, 1065, 1066, 1066, 1057, 1067, 1068,
2415  1071, 1072, 1059, 1073, 1074, 1075, 1076, 1077, 1065, 1078,
2416  1079, 1080, 1080, 1081, 1082, 1083, 1084, 1059, 1085, 1086,
2417 
2418  1086, 1087, 1087, 1088, 1088, 1080, 1089, 1089, 1090, 1090,
2419  1091, 1092, 1093, 1086, 1094, 1087, 1095, 1096, 1097, 1098,
2420  1089, 1101, 1102, 1103, 1104, 1104, 1105, 1106, 1107, 1108,
2421  1109, 1110, 1111, 1111, 1112, 1111, 1113, 1111, 1104, 1114,
2422  1114, 1115, 1115, 1116, 1116, 1117, 1117, 1119, 1117, 1120,
2423  1117, 1118, 1118, 1114, 1121, 1122, 1125, 1116, 1126, 1129,
2424  1129, 1130, 1129, 1131, 1129, 1132, 1133, 1134, 1134, 1135,
2425  1136, 1137, 1138, 1139, 1140, 1141, 1141, 1142, 1142, 1143,
2426  1143, 1134, 1144, 1144, 1145, 1145, 1146, 1147, 1148, 1151,
2427  1141, 1149, 1149, 1152, 1143, 1150, 1150, 1153, 1154, 1145,
2428 
2429  1155, 1155, 1156, 1157, 1158, 1160, 1149, 1159, 1159, 1161,
2430  1162, 1163, 1164, 1164, 1166, 1155, 1165, 1165, 1167, 1168,
2431  1169, 1170, 1170, 1171, 1171, 1172, 1172, 1164, 1173, 1173,
2432  1174, 1175, 1176, 1178, 1178, 1182, 1170, 1179, 1179, 1183,
2433  1172, 1177, 1177, 1180, 1180, 1184, 1185, 1187, 1178, 1188,
2434  1189, 1190, 1190, 1192, 1192, 1194, 1177, 1193, 1193, 1195,
2435  1177, 1177, 1177, 1198, 1177, 1177, 1177, 1177, 1177, 1177,
2436  1201, 1177, 1177, 1177, 1177, 1177, 1181, 1181, 1186, 1186,
2437  1191, 1191, 1196, 1196, 1197, 1197, 1199, 1199, 1200, 1200,
2438  1202, 1181, 1203, 1186, 1204, 1191, 1205, 1196, 1206, 1206,
2439 
2440  1214, 1199, 1207, 1207, 1208, 1208, 1209, 1209, 1210, 1210,
2441  1211, 1211, 1215, 1206, 1212, 1212, 1213, 1213, 1217, 1208,
2442  1220, 1209, 1216, 1216, 1221, 1211, 1218, 1218, 1226, 1212,
2443  1219, 1219, 1222, 1222, 1208, 1223, 1223, 1216, 1224, 1224,
2444  1227, 1218, 1225, 1225, 1228, 1228, 1229, 1222, 1232, 1233,
2445  1234, 1235, 1236, 1224, 1237, 1238, 1239, 1225, 1240, 1228,
2446  1241, 1241, 1242, 1242, 1243, 1244, 1245, 1247, 1248, 1249,
2447  1251, 1252, 1253, 1255, 1248, 1241, 1254, 1254, 1256, 1256,
2448  1257, 1258, 1259, 1261, 1260, 1262, 1263, 1256, 1260, 1265,
2449  1266, 1264, 1267, 1256, 1260, 1264, 1268, 1269, 1267, 1270,
2450 
2451  1271, 1272, 1275, 1270, 1273, 1273, 1274, 1274, 1278, 1270,
2452  1276, 1276, 1270, 1277, 1277, 1269, 1279, 1280, 1281, 1282,
2453  1283, 1284, 1285, 1286, 1289, 1276, 1287, 1287, 1288, 1288,
2454  1290, 1291, 1292, 1293, 1295, 1294, 1294, 1299, 1296, 1296,
2455  1293, 1297, 1297, 1288, 1294, 1298, 1298, 1288, 1300, 1301,
2456  1294, 1296, 1302, 1303, 1303, 1304, 1297, 1306, 1307, 1308,
2457  1309, 1310, 1311, 1312, 1313, 1313, 1314, 1315, 1315, 1316,
2458  1316, 1318, 1316, 1319, 1316, 1317, 1317, 1321, 1313, 1320,
2459  1320, 1315, 1322, 1322, 1323, 1323, 1324, 1324, 1326, 1317,
2460  1325, 1325, 1327, 1320, 1328, 1329, 1322, 1330, 1331, 1332,
2461 
2462  1317, 1333, 1334, 1335, 1335, 1336, 1335, 1339, 1335, 1340,
2463  1335, 1335, 1335, 1342, 1335, 1335, 1335, 1337, 1337, 1335,
2464  1338, 1338, 1343, 1338, 1344, 1338, 1341, 1341, 1347, 1347,
2465  1349, 1337, 1348, 1348, 1350, 1348, 1353, 1348, 1351, 1351,
2466  1341, 1352, 1352, 1354, 1355, 1356, 1359, 1360, 1361, 1361,
2467  1363, 1363, 1351, 1362, 1362, 1352, 1362, 1364, 1362, 1365,
2468  1365, 1367, 1361, 1366, 1366, 1363, 1368, 1369, 1369, 1370,
2469  1370, 1371, 1371, 1373, 1365, 1372, 1372, 1374, 1366, 1375,
2470  1376, 1376, 1377, 1378, 1379, 1380, 1371, 1381, 1381, 1382,
2471  1382, 1383, 1384, 1385, 1386, 1386, 1387, 1388, 1388, 1389,
2472 
2473  1390, 1390, 1381, 1392, 1391, 1391, 1393, 1394, 1399, 1386,
2474  1395, 1395, 1388, 1396, 1396, 1397, 1397, 1400, 1388, 1391,
2475  1398, 1398, 1401, 1401, 1388, 1395, 1402, 1402, 1403, 1404,
2476  1405, 1406, 1407, 1404, 1408, 1398, 1409, 1401, 1408, 1404,
2477  1410, 1411, 1412, 1413, 1414, 1415, 1416, 1411, 1414, 1417,
2478  1417, 1418, 1418, 1420, 1414, 1419, 1419, 1414, 1421, 1422,
2479  1423, 1413, 1424, 1424, 1425, 1425, 1418, 1426, 1427, 1428,
2480  1429, 1429, 1430, 1431, 1432, 1432, 1435, 1424, 1433, 1433,
2481  1434, 1434, 1436, 1437, 1438, 1439, 1439, 1440, 1440, 1441,
2482  1441, 1442, 1442, 1433, 1443, 1443, 1444, 1433, 1445, 1445,
2483 
2484  1439, 1449, 1440, 1450, 1446, 1446, 1442, 1447, 1447, 1448,
2485  1448, 1439, 1451, 1451, 1452, 1452, 1453, 1455, 1439, 1446,
2486  1454, 1454, 1456, 1456, 1457, 1457, 1462, 1451, 1458, 1458,
2487  1459, 1459, 1460, 1460, 1461, 1461, 1463, 1456, 1464, 1464,
2488  1465, 1465, 1466, 1458, 1467, 1468, 1469, 1460, 1470, 1471,
2489  1472, 1473, 1474, 1464, 1475, 1476, 1476, 1479, 1480, 1481,
2490  1482, 1483, 1484, 1485, 1487, 1488, 1488, 1489, 1484, 1490,
2491  1490, 1491, 1493, 1494, 1488, 1495, 1496, 1497, 1498, 1499,
2492  1488, 1500, 1490, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
2493  1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1516,
2494 
2495  1517, 1518, 1519, 1521, 1522, 1523, 1524, 1525, 1526, 1526,
2496  1527, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
2497  1535, 1536, 1536, 1526, 1537, 1538, 1538, 1539, 1540, 1541,
2498  1542, 1543, 1544, 1545, 1536, 1546, 1547, 1548, 1549, 1550,
2499  1551, 1551, 1552, 1552, 1553, 1552, 1555, 1552, 1554, 1554,
2500  1556, 1554, 1559, 1554, 1551, 1557, 1557, 1558, 1558, 1560,
2501  1561, 1562, 1562, 1563, 1563, 1564, 1563, 1566, 1563, 1557,
2502  1565, 1565, 1567, 1567, 1568, 1562, 1569, 1570, 1570, 1571,
2503  1572, 1573, 1574, 1575, 1576, 1569, 1567, 1577, 1571, 1577,
2504  1573, 1570, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1577,
2505 
2506  1585, 1586, 1587, 1587, 1588, 1587, 1589, 1587, 1590, 1591,
2507  1592, 1592, 1593, 1593, 1594, 1593, 1595, 1593, 1596, 1599,
2508  1599, 1600, 1600, 1603, 1592, 1601, 1601, 1602, 1602, 1604,
2509  1602, 1606, 1602, 1599, 1605, 1605, 1607, 1607, 1608, 1601,
2510  1609, 1609, 1610, 1609, 1611, 1609, 1612, 1612, 1605, 1614,
2511  1607, 1613, 1613, 1615, 1615, 1616, 1616, 1617, 1617, 1618,
2512  1618, 1612, 1619, 1620, 1621, 1621, 1622, 1623, 1615, 1624,
2513  1625, 1626, 1617, 1627, 1628, 1629, 1629, 1630, 1630, 1631,
2514  1631, 1632, 1633, 1633, 1634, 1634, 1635, 1636, 1636, 1637,
2515  1637, 1638, 1630, 1639, 1631, 1640, 1644, 1633, 1641, 1641,
2516 
2517  1642, 1642, 1636, 1643, 1645, 1645, 1646, 1646, 1649, 1643,
2518  1647, 1647, 1652, 1641, 1648, 1648, 1650, 1650, 1653, 1645,
2519  1651, 1651, 1654, 1655, 1656, 1647, 1657, 1658, 1659, 1660,
2520  1661, 1650, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669,
2521  1670, 1671, 1672, 1673, 1674, 1674, 1675, 1676, 1677, 1678,
2522  1678, 1679, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1685,
2523  1686, 1686, 1687, 1688, 1678, 1689, 1690, 1691, 1692, 1692,
2524  1693, 1693, 1694, 1685, 1695, 1696, 1696, 1697, 1697, 1698,
2525  1699, 1699, 1700, 1692, 1701, 1702, 1702, 1703, 1704, 1705,
2526  1705, 1706, 1706, 1707, 1707, 1708, 1708, 1709, 1710, 1710,
2527 
2528  1711, 1711, 1712, 1713, 1705, 1714, 1716, 1717, 1718, 1719,
2529  1720, 1722, 1723, 1710, 1724, 1725, 1726, 1727, 1728, 1729,
2530  1730, 1731, 1731, 1732, 1732, 1733, 1734, 1735, 1736, 1737,
2531  1738, 1739, 1740, 1741, 1742, 1743, 1732, 1744, 1745, 1746,
2532  1747, 1748, 1749, 1747, 1750, 1751, 1752, 1753, 1754, 1755,
2533  1756, 1710, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1754,
2534  1765, 1766, 1766, 1767, 1768, 1769, 1771, 1772, 1773, 1774,
2535  1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1783, 1784,
2536  1785, 1784, 1786, 1787, 1789, 1788, 1788, 1790, 1788, 1784,
2537  1788, 1791, 1794, 1794, 1795, 1796, 1797, 1798, 1798, 1799,
2538 
2539  1798, 1800, 1798, 1801, 1802, 1803, 1803, 1804, 1804, 1805,
2540  1806, 1807, 1808, 1808, 1809, 1809, 1810, 1811, 1813, 1803,
2541  1812, 1812, 1814, 1815, 1816, 1817, 1808, 1817, 1818, 1818,
2542  1819, 1820, 1821, 1822, 1812, 1823, 1824, 1825, 1826, 1827,
2543  1828, 1829, 1818, 1832, 1833, 1835, 1828, 1834, 1834, 1836,
2544  1834, 1837, 1834, 1838, 1839, 1840, 1840, 1841, 1841, 1842,
2545  1841, 1843, 1841, 1844, 1845, 1846, 1846, 1847, 1847, 1848,
2546  1849, 1849, 1850, 1850, 1851, 1850, 1855, 1850, 1858, 1846,
2547  1854, 1854, 1856, 1856, 1849, 1857, 1857, 1859, 1860, 1860,
2548  1861, 1862, 1863, 1864, 1865, 1866, 1866, 1867, 1867, 1868,
2549 
2550  1868, 1869, 1869, 1860, 1870, 1870, 1871, 1872, 1872, 1873,
2551  1866, 1875, 1867, 1874, 1874, 1876, 1869, 1877, 1878, 1878,
2552  1879, 1880, 1881, 1882, 1882, 1883, 1883, 1884, 1884, 1885,
2553  1886, 1886, 1887, 1887, 1888, 1888, 1889, 1890, 1882, 1891,
2554  1892, 1893, 1894, 1895, 1896, 1886, 1897, 1898, 1898, 1888,
2555  1899, 1900, 1901, 1902, 1900, 1903, 1904, 1905, 1906, 1907,
2556  1908, 1910, 1898, 1909, 1909, 1911, 1912, 1913, 1913, 1915,
2557  1907, 1914, 1914, 1916, 1917, 1918, 1918, 1919, 1909, 1920,
2558  1920, 1921, 1913, 1922, 1923, 1925, 1898, 1888, 1924, 1924,
2559  1918, 1926, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
2560 
2561  1934, 1934, 1935, 1924, 1936, 1936, 1909, 1937, 1937, 1938,
2562  1938, 1940, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1936,
2563  1950, 1951, 1952, 1953, 1938, 1954, 1955, 1956, 1956, 1957,
2564  1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
2565  1968, 1969, 1970, 1970, 1971, 1972, 1973, 1974, 1975, 1977,
2566  1978, 1979, 1980, 1981, 1982, 1983, 1984, 1970, 1985, 1986,
2567  1987, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998,
2568  1998, 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2569  2009, 2010, 2010, 2013, 1998, 2014, 2015, 2015, 2016, 2019,
2570  2020, 2021, 2021, 2009, 2023, 2010, 2022, 2022, 2024, 2026,
2571 
2572  2015, 2025, 2025, 2027, 2028, 2028, 2029, 2029, 2030, 2029,
2573  2022, 2029, 2031, 2032, 2033, 2034, 2035, 2035, 2028, 2036,
2574  2036, 2037, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2043,
2575  2035, 2044, 2045, 2036, 2046, 2047, 2048, 2048, 2049, 2050,
2576  2051, 2054, 2043, 2055, 2056, 2059, 2060, 2061, 2061, 2064,
2577  2048, 2062, 2062, 2063, 2063, 2035, 2063, 2065, 2063, 2048,
2578  2066, 2067, 2067, 2068, 2073, 2062, 2074, 2043, 2075, 2035,
2579  2069, 2069, 2070, 2070, 2071, 2071, 2067, 2072, 2072, 2048,
2580  2076, 2077, 2077, 2078, 2078, 2069, 2081, 2070, 2079, 2079,
2581  2080, 2080, 2072, 2082, 2083, 2084, 2077, 2085, 2086, 2087,
2582 
2583  2088, 2089, 2089, 2090, 2091, 2091, 2092, 2092, 2093, 2093,
2584  2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103,
2585  2106, 2092, 2104, 2104, 2105, 2105, 2107, 2107, 2108, 2109,
2586  2110, 2111, 2112, 2113, 2113, 2114, 2115, 2104, 2116, 2117,
2587  2118, 2107, 2119, 2119, 2120, 2120, 2121, 2122, 2113, 2123,
2588  2124, 2125, 2125, 2126, 2127, 2127, 2128, 2119, 2129, 2129,
2589  2130, 2130, 2131, 2132, 2133, 2134, 2135, 2135, 2137, 2127,
2590  2136, 2136, 2138, 2129, 2139, 2139, 2140, 2140, 2141, 2142,
2591  2142, 2135, 2143, 2143, 2144, 2145, 2146, 2146, 2149, 2139,
2592  2150, 2140, 2147, 2147, 2142, 2148, 2148, 2143, 2151, 2153,
2593 
2594  2153, 2155, 2155, 2156, 2157, 2158, 2159, 2147, 2153, 2160,
2595  2155, 2161, 2162, 2162, 2153, 2163, 2155, 2164, 2165, 2166,
2596  2167, 2168, 2169, 2170, 2171, 2173, 2173, 2162, 2174, 2175,
2597  2176, 2176, 2177, 2177, 2178, 2179, 2180, 2181, 2182, 2184,
2598  2173, 2183, 2183, 2185, 2185, 2176, 2186, 2187, 2188, 2189,
2599  2189, 2190, 2191, 2192, 2193, 2194, 2183, 2195, 2185, 2197,
2600  2198, 2199, 2201, 2204, 2189, 2202, 2202, 2205, 2197, 2203,
2601  2203, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2212, 2216,
2602  2202, 2213, 2213, 2214, 2214, 2215, 2215, 2217, 2218, 2218,
2603  2220, 2212, 2221, 2219, 2219, 2222, 2219, 2214, 2219, 2223,
2604 
2605  2223, 2226, 2218, 2224, 2224, 2225, 2225, 2227, 2227, 2228,
2606  2230, 2229, 2229, 2223, 2229, 2231, 2229, 2232, 2232, 2225,
2607  2233, 2227, 2234, 2235, 2236, 2237, 2237, 2238, 2238, 2239,
2608  2240, 2232, 2241, 2241, 2242, 2243, 2243, 2244, 2245, 2237,
2609  2246, 2247, 2247, 2248, 2248, 2249, 2250, 2251, 2251, 2243,
2610  2252, 2253, 2254, 2254, 2256, 2247, 2255, 2255, 2257, 2258,
2611  2260, 2251, 2259, 2259, 2261, 2262, 2254, 2263, 2264, 2265,
2612  2266, 2266, 2267, 2267, 2270, 2273, 2259, 2271, 2271, 2272,
2613  2272, 2274, 2274, 2279, 2266, 2275, 2275, 2276, 2276, 2277,
2614  2277, 2280, 2271, 2278, 2278, 2286, 2274, 2281, 2281, 2282,
2615 
2616  2282, 2283, 2283, 2287, 2277, 2284, 2284, 2285, 2285, 2288,
2617  2289, 2290, 2281, 2291, 2282, 2292, 2293, 2293, 2294, 2295,
2618  2284, 2296, 2285, 2297, 2298, 2299, 2300, 2301, 2301, 2302,
2619  2302, 2303, 2304, 2304, 2305, 2306, 2306, 2307, 2307, 2308,
2620  2309, 2310, 2301, 2311, 2302, 2312, 2313, 2313, 2314, 2314,
2621  2306, 2315, 2315, 2316, 2317, 2317, 2318, 2319, 2320, 2320,
2622  2321, 2313, 2322, 2323, 2324, 2325, 2315, 2326, 2326, 2317,
2623  2327, 2327, 2328, 2329, 2329, 2330, 2331, 2331, 2332, 2333,
2624  2334, 2334, 2326, 2335, 2336, 2336, 2341, 2332, 2337, 2337,
2625  2346, 2331, 2338, 2338, 2339, 2339, 2340, 2340, 2347, 2336,
2626 
2627  2342, 2342, 2349, 2337, 2343, 2343, 2344, 2344, 2350, 2339,
2628  2345, 2345, 2348, 2348, 2351, 2342, 2352, 2352, 2353, 2354,
2629  2354, 2344, 2356, 2357, 2357, 2352, 2355, 2355, 2358, 2359,
2630  2360, 2352, 2354, 2361, 2361, 2355, 2357, 2363, 2364, 2364,
2631  2366, 2355, 2361, 2365, 2365, 2367, 2368, 2369, 2370, 2371,
2632  2372, 2373, 2374, 2364, 2375, 2375, 2376, 2376, 2377, 2377,
2633  2378, 2379, 2379, 2380, 2381, 2382, 2383, 2384, 2387, 2375,
2634  2385, 2385, 2390, 2377, 2386, 2386, 2388, 2388, 2389, 2389,
2635  2391, 2392, 2393, 2393, 2395, 2385, 2394, 2394, 2396, 2397,
2636  2398, 2388, 2400, 2401, 2402, 2403, 2404, 2393, 2405, 2406,
2637 
2638  2406, 2407, 2408, 2409, 2410, 2410, 2411, 2412, 2412, 2413,
2639  2414, 2414, 2415, 2415, 2416, 2416, 2417, 2411, 2410, 2418,
2640  2420, 2412, 2419, 2419, 2414, 2419, 2421, 2419, 2422, 2423,
2641  2424, 2425, 2425, 2426, 2426, 2427, 2427, 2428, 2428, 2429,
2642  2429, 2430, 2430, 2431, 2431, 2434, 2434, 2426, 2435, 2435,
2643  2437, 2428, 2438, 2429, 2436, 2436, 2439, 2431, 2442, 2434,
2644  2440, 2440, 2441, 2441, 2443, 2444, 2444, 2447, 2436, 2445,
2645  2445, 2446, 2446, 2448, 2449, 2449, 2441, 2450, 2451, 2444,
2646  2452, 2452, 2453, 2453, 2454, 2446, 2455, 2457, 2447, 2456,
2647  2456, 2458, 2459, 2462, 2452, 2460, 2460, 2461, 2461, 2463,
2648 
2649  2464, 2465, 2466, 2467, 2468, 2468, 2469, 2470, 2470, 2460,
2650  2471, 2472, 2472, 2473, 2473, 2474, 2475, 2476, 2476, 2477,
2651  2477, 2478, 2478, 2479, 2479, 2480, 2480, 2481, 2481, 2482,
2652  2482, 2484, 2476, 2483, 2483, 2485, 2478, 2486, 2487, 2487,
2653  2480, 2488, 2488, 2489, 2482, 2490, 2491, 2492, 2493, 2494,
2654  2495, 2496, 2497, 2487, 2498, 2498, 2488, 2499, 2499, 2500,
2655  2500, 2501, 2501, 2502, 2502, 2503, 2504, 2504, 2505, 2498,
2656  2506, 2507, 2508, 2509, 2500, 2510, 2510, 2513, 2502, 2511,
2657  2511, 2512, 2512, 2514, 2514, 2515, 2515, 2516, 2517, 2518,
2658  2519, 2520, 2521, 2522, 2511, 2523, 2523, 2525, 2514, 2524,
2659 
2660  2524, 2526, 2526, 2527, 2527, 2528, 2529, 2530, 2531, 2532,
2661  2532, 2533, 2533, 2536, 2524, 2539, 2526, 2534, 2534, 2535,
2662  2535, 2537, 2537, 2540, 2532, 2538, 2538, 2541, 2542, 2543,
2663  2544, 2544, 2545, 2545, 2546, 2547, 2547, 2548, 2548, 2549,
2664  2550, 2551, 2552, 2553, 2553, 2545, 2554, 2555, 2556, 2556,
2665  2548, 2557, 2553, 2558, 2559, 2560, 2561, 2562, 2563, 2564,
2666  2564, 2565, 2566, 2566, 2567, 2567, 2568, 2568, 2569, 2570,
2667  2570, 2571, 2572, 2573, 2564, 2574, 2575, 2575, 2576, 2567,
2668  2577, 2577, 2578, 2579, 2570, 2580, 2581, 2581, 2582, 2583,
2669  2584, 2585, 2586, 2587, 2589, 2590, 2591, 2592, 2593, 2594,
2670 
2671  2595, 2595, 2596, 2596, 2597, 2598, 2599, 2599, 2600, 2600,
2672  2601, 2602, 2602, 2604, 2595, 2605, 2603, 2603, 2608, 2603,
2673  2599, 2603, 2609, 2610, 2620, 2602, 2611, 2611, 2612, 2612,
2674  2613, 2613, 2622, 2613, 2625, 2613, 2614, 2614, 2615, 2615,
2675  2616, 2616, 2612, 2616, 2626, 2616, 2617, 2617, 2618, 2618,
2676  2619, 2619, 2615, 2619, 2630, 2619, 2621, 2621, 2623, 2623,
2677  2624, 2624, 2618, 2627, 2627, 2628, 2628, 2629, 2629, 2631,
2678  2621, 2632, 2623, 2633, 2634, 2635, 2635, 2631, 2639, 2628,
2679  2636, 2636, 2631, 2640, 2631, 2637, 2637, 2638, 2638, 2641,
2680  2641, 2642, 2643, 2644, 2636, 2645, 2646, 2647, 2648, 2637,
2681 
2682  2649, 2638, 2650, 2651, 2652, 2652, 2653, 2653, 2654, 2654,
2683  2655, 2655, 2656, 2657, 2658, 2659, 2659, 2660, 2660, 2661,
2684  2661, 2662, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669,
2685  2659, 2670, 2670, 2671, 2661, 2672, 2672, 2673, 2673, 2674,
2686  2674, 2675, 2675, 2676, 2677, 2677, 2670, 2678, 2679, 2680,
2687  2681, 2682, 2682, 2683, 2674, 2684, 2684, 2685, 2686, 2677,
2688  2687, 2688, 2689, 2690, 2691, 2692, 2692, 2693, 2693, 2694,
2689  2695, 2695, 2696, 2697, 2697, 2698, 2699, 2700, 2700, 2701,
2690  2692, 2702, 2703, 2704, 2705, 2706, 2707, 2707, 2697, 2708,
2691  2709, 2709, 2710, 2711, 2712, 2713, 2713, 2714, 2714, 2715,
2692 
2693  2716, 2718, 2719, 2720, 2720, 2721, 2721, 2722, 2723, 2723,
2694  2713, 2724, 2724, 2725, 2726, 2726, 2727, 2730, 2720, 2731,
2695  2721, 2728, 2728, 2723, 2729, 2729, 2732, 2733, 2734, 2734,
2696  2735, 2736, 2737, 2738, 2739, 2740, 2728, 2741, 2743, 2744,
2697  2745, 2746, 2747, 2734, 2749, 2750, 2750, 2751, 2752, 2753,
2698  2753, 2754, 2755, 2755, 2756, 2755, 2757, 2755, 2758, 2759,
2699  2760, 2761, 2754, 2762, 2762, 2763, 2763, 2764, 2763, 2765,
2700  2763, 2766, 2766, 2767, 2766, 2768, 2766, 2762, 2769, 2769,
2701  2770, 2769, 2771, 2769, 2772, 2772, 2773, 2773, 2774, 2774,
2702  2775, 2775, 2776, 2776, 2777, 2778, 2779, 2779, 2772, 2780,
2703 
2704  2773, 2781, 2782, 2783, 2775, 2784, 2785, 2786, 2787, 2788,
2705  2788, 2789, 2789, 2790, 2790, 2791, 2791, 2792, 2792, 2793,
2706  2793, 2794, 2795, 2788, 2796, 2797, 2798, 2790, 2799, 2800,
2707  2801, 2792, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2808,
2708  2809, 2809, 2810, 2810, 2811, 2812, 2812, 2813, 2814, 2815,
2709  2815, 2816, 2816, 2808, 2817, 2818, 2818, 2819, 2819, 2820,
2710  2812, 2821, 2821, 2822, 2815, 2825, 2816, 2823, 2823, 2826,
2711  2818, 2824, 2824, 2827, 2828, 2829, 2829, 2830, 2831, 2832,
2712  2833, 2834, 2823, 2835, 2836, 2837, 2837, 2838, 2838, 2839,
2713  2829, 2840, 2840, 2841, 2841, 2842, 2843, 2844, 2845, 2845,
2714 
2715  2846, 2847, 2838, 2848, 2849, 2850, 2840, 2851, 2853, 2854,
2716  2854, 2855, 2855, 2845, 2856, 2856, 2857, 2858, 2859, 2860,
2717  2861, 2861, 2862, 2862, 2854, 2863, 2863, 2864, 2864, 2865,
2718  2866, 2866, 2867, 2868, 2870, 2861, 2869, 2869, 2872, 2873,
2719  2863, 2874, 2874, 2875, 2875, 2876, 2876, 2877, 2879, 2882,
2720  2883, 2884, 2885, 2886, 2886, 2887, 2874, 2888, 2889, 2889,
2721  2876, 2890, 2890, 2891, 2892, 2895, 2896, 2897, 2886, 2898,
2722  2899, 2899, 2889, 2900, 2900, 2890, 2900, 2912, 2900, 2907,
2723  2907, 2908, 2908, 2913, 2899, 2909, 2909, 2910, 2910, 2911,
2724  2911, 2914, 2914, 2907, 2915, 2916, 2917, 2918, 2919, 2920,
2725 
2726  2921, 2910, 2922, 2922, 2925, 2914, 2923, 2923, 2924, 2924,
2727  2926, 2927, 2928, 2928, 2929, 2930, 2930, 2931, 2932, 2933,
2728  2934, 2935, 2936, 2937, 2937, 2938, 2928, 2939, 2939, 2930,
2729  2940, 2940, 2941, 2942, 2942, 2943, 2943, 2944, 2937, 2945,
2730  2946, 2946, 2939, 2947, 2947, 2948, 2948, 2950, 2942, 2949,
2731  2949, 2951, 2951, 2952, 2953, 2946, 2954, 2954, 2955, 2957,
2732  2948, 2956, 2956, 2958, 2959, 2959, 2960, 2960, 2961, 2961,
2733  2962, 2963, 2963, 2964, 2965, 2965, 2956, 2966, 2966, 2959,
2734  2967, 2968, 2968, 2961, 2969, 2969, 2963, 2970, 2972, 2965,
2735  2971, 2971, 2966, 2973, 2974, 2977, 2968, 2975, 2975, 2976,
2736 
2737  2976, 2979, 2981, 2982, 2983, 2984, 2984, 2986, 2987, 2988,
2738  2989, 2989, 2975, 2990, 2990, 2991, 2992, 2994, 2995, 2996,
2739  2997, 2997, 2998, 2998, 2999, 2999, 3000, 3001, 3002, 3003,
2740  3004, 3006, 3006, 3007, 3007, 3008, 3009, 2998, 3010, 3010,
2741  3011, 3011, 3012, 3012, 3013, 3013, 3006, 3014, 3015, 3016,
2742  3017, 3017, 3010, 3018, 3019, 3021, 3012, 3020, 3020, 3022,
2743  3020, 3025, 3020, 3026, 3017, 3023, 3023, 3024, 3024, 3027,
2744  3027, 3028, 3028, 3029, 3029, 3030, 3030, 3031, 3032, 3032,
2745  3033, 3034, 3035, 3027, 3036, 3036, 3037, 3029, 3038, 3030,
2746  3039, 3039, 3032, 3040, 3040, 3041, 3042, 3042, 3036, 3046,
2747 
2748  3043, 3043, 3044, 3043, 3039, 3043, 3045, 3045, 3047, 3047,
2749  3042, 3048, 3052, 3044, 3049, 3049, 3050, 3050, 3051, 3051,
2750  3045, 3053, 3053, 3047, 3054, 3054, 3055, 3055, 3056, 3049,
2751  3057, 3050, 3058, 3058, 3059, 3059, 3060, 3061, 3063, 3054,
2752  3062, 3062, 3064, 3064, 3065, 3065, 3066, 3067, 3068, 3068,
2753  3069, 3069, 3070, 3070, 3071, 3062, 3074, 3064, 3072, 3072,
2754  3073, 3073, 3075, 3075, 3079, 3069, 3076, 3076, 3077, 3077,
2755  3078, 3078, 3081, 3072, 3080, 3080, 3082, 3075, 3083, 3083,
2756  3084, 3085, 3085, 3077, 3086, 3087, 3088, 3089, 3090, 3091,
2757  3091, 3093, 3093, 3083, 3095, 3097, 3097, 3098, 3098, 3099,
2758 
2759  3099, 3100, 3101, 3102, 3091, 3103, 3093, 3104, 3105, 3105,
2760  3097, 3106, 3098, 3107, 3108, 3108, 3109, 3109, 3110, 3110,
2761  3111, 3111, 3112, 3113, 3113, 3114, 3114, 3115, 3116, 3116,
2762  3119, 3120, 3110, 3126, 3111, 3121, 3121, 3113, 3122, 3122,
2763  3123, 3123, 3116, 3124, 3124, 3125, 3125, 3127, 3127, 3128,
2764  3128, 3129, 3122, 3130, 3130, 3131, 3134, 3124, 3132, 3132,
2765  3137, 3127, 3133, 3133, 3135, 3135, 3139, 3130, 3136, 3136,
2766  3138, 3138, 3132, 3138, 3140, 3138, 3141, 3142, 3135, 3143,
2767  3143, 3144, 3144, 3145, 3146, 3146, 3147, 3147, 3148, 3149,
2768  3149, 3150, 3150, 3143, 3151, 3151, 3152, 3153, 3153, 3146,
2769 
2770  3154, 3154, 3155, 3155, 3149, 3156, 3156, 3157, 3157, 3158,
2771  3159, 3159, 3153, 3160, 3160, 3161, 3161, 3155, 3162, 3162,
2772  3156, 3166, 3157, 3163, 3163, 3159, 3164, 3164, 3165, 3165,
2773  3161, 3167, 3167, 3168, 3169, 3169, 3170, 3170, 3163, 3171,
2774  3172, 3164, 3173, 3174, 3174, 3175, 3175, 3176, 3177, 3178,
2775  3179, 3180, 3182, 3182, 3183, 3183, 3184, 3184, 3174, 3185,
2776  3185, 3186, 3187, 3187, 3188, 3188, 3191, 3182, 3189, 3189,
2777  3192, 3184, 3190, 3190, 3193, 3194, 3195, 3187, 3196, 3197,
2778  3198, 3198, 3202, 3189, 3199, 3199, 3200, 3200, 3201, 3201,
2779  3203, 3203, 3204, 3204, 3198, 3205, 3205, 3206, 3206, 3208,
2780 
2781  3200, 3207, 3207, 3209, 3209, 3213, 3204, 3210, 3210, 3205,
2782  3211, 3211, 3212, 3212, 3216, 3207, 3214, 3214, 3215, 3215,
2783  3217, 3217, 3218, 3224, 3211, 3219, 3219, 3220, 3220, 3225,
2784  3214, 3221, 3221, 3226, 3226, 3227, 3228, 3228, 3229, 3219,
2785  3230, 3230, 3231, 3231, 3239, 3221, 3232, 3232, 3233, 3233,
2786  3234, 3234, 3235, 3235, 3236, 3236, 3247, 3231, 3237, 3237,
2787  3238, 3238, 3248, 3233, 3240, 3240, 3249, 3235, 3241, 3241,
2788  3242, 3242, 3250, 3237, 3243, 3243, 3244, 3244, 3245, 3245,
2789  3246, 3246, 3251, 3241, 3252, 3252, 3253, 3254, 3255, 3243,
2790  3256, 3257, 3264, 3245, 3258, 3258, 3259, 3259, 3261, 3261,
2791 
2792  3262, 3262, 3265, 3266, 3267, 3268, 3269, 3270, 3270, 3271,
2793  3271, 3272, 3273, 3273, 3274, 3274, 3275, 3275, 3276, 3276,
2794  3277, 3277, 3278, 3278, 3279, 3279, 3273, 3280, 3280, 3281,
2795  3282, 3282, 3276, 3283, 3284, 3290, 3278, 3291, 3279, 3285,
2796  3285, 3286, 3286, 3287, 3287, 3288, 3288, 3289, 3289, 3292,
2797  3292, 3293, 3293, 3294, 3294, 3286, 3295, 3295, 3302, 3288,
2798  3303, 3289, 3296, 3296, 3292, 3297, 3297, 3298, 3298, 3299,
2799  3299, 3300, 3300, 3301, 3301, 3304, 3305, 3306, 3307, 3309,
2800  3297, 3310, 3313, 3317, 3317, 3318, 3318, 3323, 3301, 3319,
2801  3319, 3320, 3320, 3321, 3321, 3322, 3322, 3317, 3324, 3325,
2802 
2803  3325, 3326, 3326, 3327, 3327, 3320, 3328, 3328, 3329, 3329,
2804  3330, 3330, 3340, 3325, 3331, 3331, 3344, 3327, 3332, 3332,
2805  3333, 3333, 3329, 3334, 3334, 3335, 3335, 3345, 3331, 3336,
2806  3336, 3337, 3337, 3332, 3338, 3338, 3339, 3339, 3334, 3341,
2807  3341, 3342, 3342, 3350, 3336, 3343, 3343, 3347, 3347, 3338,
2808  3373, 3339, 3348, 3348, 3341, 3374, 3342, 3349, 3349, 3376,
2809  3343, 3347, 3351, 3351, 3352, 3352, 3353, 3353, 3354, 3354,
2810  3355, 3355, 3356, 3356, 3357, 3357, 3351, 3389, 3352, 3358,
2811  3358, 3359, 3359, 3360, 3360, 3390, 3356, 3361, 3361, 3362,
2812  3362, 3363, 3363, 3391, 3358, 3364, 3364, 3365, 3365, 3366,
2813 
2814  3366, 3367, 3367, 3394, 3362, 3368, 3368, 3369, 3369, 3395,
2815  3364, 3370, 3370, 3396, 3366, 3399, 3367, 3371, 3371, 3372,
2816  3372, 3404, 3369, 3375, 3375, 3377, 3377, 3378, 3378, 3379,
2817  3379, 3419, 3371, 3380, 3380, 3381, 3381, 3382, 3382, 3377,
2818  3383, 3383, 3384, 3384, 3385, 3385, 3386, 3386, 3387, 3387,
2819  3388, 3388, 3392, 3392, 3393, 3393, 788, 3384, 3397, 3397,
2820  3398, 3398, 3400, 3400, 3401, 3401, 3402, 3402, 3403, 3403,
2821  3405, 3405, 787, 3397, 786, 3398, 783, 3400, 3406, 3406,
2822  782, 3402, 3407, 3407, 3408, 3408, 3409, 3409, 3410, 3410,
2823  781, 780, 779, 778, 774, 773, 3407, 772, 3408, 3412,
2824 
2825  3412, 3412, 3412, 3412, 3413, 3413, 3413, 3413, 3413, 3414,
2826  3414, 3414, 3414, 3414, 3415, 3415, 3415, 3415, 3415, 3416,
2827  3416, 3416, 3416, 3416, 3417, 3417, 3417, 3417, 3417, 3418,
2828  3418, 3418, 3418, 3418, 3420, 3420, 771, 3420, 3420, 3421,
2829  3421, 3421, 769, 3421, 3422, 3422, 3422, 3422, 768, 767,
2830  766, 765, 764, 762, 761, 760, 757, 756, 755, 753,
2831  752, 749, 748, 747, 746, 744, 741, 740, 739, 738,
2832  737, 736, 735, 734, 733, 732, 730, 728, 727, 726,
2833  723, 722, 721, 720, 719, 717, 715, 710, 708, 707,
2834  706, 702, 701, 700, 699, 697, 696, 695, 694, 688,
2835 
2836  687, 685, 684, 683, 682, 679, 678, 677, 674, 673,
2837  672, 671, 669, 668, 667, 666, 662, 661, 657, 656,
2838  653, 652, 651, 649, 648, 646, 645, 644, 643, 642,
2839  641, 640, 639, 638, 637, 632, 631, 630, 627, 626,
2840  625, 621, 620, 619, 618, 617, 616, 615, 614, 611,
2841  609, 608, 607, 606, 605, 604, 603, 602, 601, 599,
2842  598, 595, 594, 593, 592, 590, 587, 586, 585, 584,
2843  583, 582, 581, 580, 579, 578, 576, 575, 574, 573,
2844  572, 571, 570, 569, 568, 567, 565, 560, 558, 557,
2845  556, 554, 553, 552, 551, 549, 548, 547, 546, 540,
2846 
2847  539, 538, 537, 536, 535, 532, 531, 530, 529, 528,
2848  527, 526, 524, 523, 522, 521, 517, 516, 515, 514,
2849  513, 512, 510, 508, 507, 506, 504, 503, 502, 501,
2850  500, 499, 498, 497, 495, 494, 493, 492, 490, 486,
2851  485, 482, 479, 478, 476, 475, 474, 473, 472, 469,
2852  468, 467, 466, 463, 462, 459, 458, 457, 456, 453,
2853  452, 451, 449, 448, 447, 446, 441, 440, 439, 437,
2854  436, 434, 433, 432, 431, 430, 429, 428, 427, 426,
2855  425, 424, 423, 422, 421, 420, 419, 418, 415, 414,
2856  413, 411, 410, 409, 406, 405, 403, 402, 401, 400,
2857 
2858  399, 398, 397, 396, 394, 393, 391, 389, 388, 387,
2859  386, 385, 384, 382, 380, 379, 378, 376, 375, 374,
2860  373, 372, 371, 370, 369, 367, 366, 365, 363, 361,
2861  360, 357, 354, 353, 352, 351, 350, 349, 348, 347,
2862  344, 343, 342, 341, 338, 337, 336, 335, 334, 333,
2863  330, 329, 328, 326, 325, 324, 323, 320, 319, 318,
2864  317, 313, 312, 309, 308, 307, 305, 304, 303, 302,
2865  301, 300, 299, 297, 296, 295, 291, 290, 289, 286,
2866  285, 284, 283, 282, 281, 280, 278, 276, 274, 273,
2867  271, 270, 264, 263, 262, 261, 260, 259, 258, 257,
2868 
2869  256, 255, 254, 253, 252, 251, 250, 249, 248, 247,
2870  245, 244, 243, 242, 241, 240, 239, 234, 233, 232,
2871  231, 230, 228, 227, 226, 225, 224, 220, 219, 218,
2872  217, 213, 212, 209, 208, 207, 205, 204, 203, 202,
2873  201, 200, 198, 197, 196, 192, 191, 190, 187, 186,
2874  185, 184, 183, 182, 181, 180, 179, 177, 175, 174,
2875  172, 171, 169, 168, 165, 158, 156, 152, 149, 147,
2876  143, 141, 140, 139, 138, 137, 136, 135, 134, 132,
2877  131, 130, 129, 128, 127, 126, 125, 124, 123, 121,
2878  119, 118, 117, 116, 115, 113, 112, 111, 110, 108,
2879 
2880  104, 103, 102, 101, 98, 91, 89, 85, 82, 78,
2881  71, 63, 61, 60, 59, 55, 54, 53, 49, 44,
2882  41, 33, 32, 28, 25, 23, 19, 14, 13, 8,
2883  7, 6, 5, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2884  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2885  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2886  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2887  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2888  3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411, 3411,
2889  3411, 3411, 3411, 3411, 3411, 3411, 3411
2890 
2891  } ;
2892 
2893 /* Table of booleans, true if rule could match eol. */
2895  { 0,
2896 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2897  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2898  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2899  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2900  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2901  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2902  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2903  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2904  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2905  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2906  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2907  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2908  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2909  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2910  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2911  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2912  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2913  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2914  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2915  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2916  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2917  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2918  1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, };
2919 
2921  { 0,
2922  130, 134, 135, 136, 137, 139, 144, 153, 154, 155,
2923  156, 160, 161, 162, 164, 165, 166, 167, 168, 170,
2924  171, 172, 173, 174, 175, 176, 178, 179, 180, 182,
2925  183, 185, 186, 187, 188, 189, 194, 195, 196, 200,
2926  201, 202, 203, 207, 208, 209, 210, 211, 212, 213,
2927  214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
2928  224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
2929  234, 235, 236, 240, 241, 242, 243, 244, 245, 246,
2930  247, 253, 254, 255, 256, 261, 262, 263, 264, 266,
2931  267, 268, 269, 271, 272, 273, 274, 276, 277, 278,
2932 
2933  279, 281, 282, 283, 284, 286, 287, 288, 289, 293,
2934  294, 295, 296, 298, 299, 300, 301, 303, 304, 305,
2935  306, 308, 309, 310, 311, 313, 314, 315, 316, 318,
2936  319, 320, 321, 323, 324, 325, 326, 328, 329, 330,
2937  331, 333, 334, 335, 336, 338, 339, 340, 341, 343,
2938  344, 345, 346, 348, 349, 350, 351, 353, 354, 355,
2939  356, 358, 359, 360, 361, 363, 364, 365, 366, 368,
2940  369, 370, 371, 373, 374, 375, 376, 378, 379, 380,
2941  381, 383, 384, 385, 386, 388, 389, 390, 391, 395,
2942  396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
2943 
2944  406, 407, 408, 409, 410, 411, 412, 414, 415, 416,
2945  417, 418, 419, 420, 421, 422, 423, 424, 426, 427,
2946  428, 430, 431, 432, 433, 434, 438, 439, 440, 441,
2947  442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
2948  452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
2949  462, 463, 465, 466, 467, 468, 469, 470, 471, 472,
2950  473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
2951  483, 484, 489, 490, 491, 492, 493, 494, 495, 496,
2952  497, 498, 499, 500, 501, 502, 506, 507, 508, 509,
2953  510, 511, 512, 513, 514, 515, 516, 517, 525, 526,
2954 
2955  528, 529, 531, 532, 534, 535, 537, 538, 542, 543,
2956  544, 545, 546, 547, 548, 549, 550, 551, 552, 553,
2957  554, 555, 559, 560, 561, 562, 563, 564, 565, 566,
2958  570, 571, 572, 573, 579, 580, 581, 582, 583, 585,
2959  586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
2960  596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
2961  606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
2962  616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
2963  626, 627, 628, 629, 630, 631, 632, 633, 634, 638,
2964  639, 640, 641, 642, 644, 645, 646, 647, 648, 649,
2965 
2966  653, 654, 655, 657, 658, 659, 660, 661, 662, 663,
2967  664, 665, 666, 667, 668, 669, 670, 671, 672, 673,
2968  674, 675, 676, 677, 678, 679, 680, 681, 682, 683,
2969  684, 685, 686, 687, 688, 692, 693, 694, 695, 697,
2970  698, 699, 700, 705, 706, 708, 709, 710, 711, 713,
2971  714, 715, 716, 718, 719, 721
2972  } ;
2973 
2974 /* The intent behind this definition is that it'll catch
2975  * any uses of REJECT which flex missed.
2976  */
2977 #define REJECT reject_used_but_not_detected
2978 #define yymore() yymore_used_but_not_detected
2979 #define YY_MORE_ADJ 0
2980 #define YY_RESTORE_YY_MORE_OFFSET
2981 #line 1 "../../../../OS/src/OSParsers/OSParseosil.l"
2982 /* $Id: OSParseosil.cpp 5284 2017-12-08 13:52:50Z stefan $ */
3003 #line 23 "../../../../OS/src/OSParsers/OSParseosil.l"
3004 //#define OSILPARSERDEBUG
3005 
3006 #ifdef OSILPARSERDEBUG
3007  #define YY_PRINT printf("matched %i characters: %s\n", yyleng, yytext)
3008 #else
3009  #define YY_PRINT
3010 #endif
3011 
3012 #include <iostream>
3013 #include <sstream>
3014 
3015 #include "OSConfig.h"
3016 #include "OSDataStructures.h"
3017 #include "OSErrorClass.h"
3018 #include "OSMathUtil.h"
3019 #include "OSiLParserData.h"
3020 #include "OSParseosil.tab.hpp"
3021 #include "OSInstance.h"
3022 #include "OSGeneral.h"
3023 
3024 #ifdef HAVE_CSTDIO
3025 # include <cstdio>
3026 #else
3027 # ifdef HAVE_STDIO_H
3028 # include <stdio.h>
3029 # else
3030 # error "don't have header file for stdio"
3031 # endif
3032 #endif
3033 
3034 #ifdef HAVE_CTIME
3035 # include <ctime>
3036 #else
3037 # ifdef HAVE_TIME_H
3038 # include <time.h>
3039 # else
3040 # error "don't have header file for time"
3041 # endif
3042 #endif
3043 
3044 #ifdef HAVE_CMATH
3045 # include <cmath>
3046 #else
3047 # ifdef HAVE_MATH_H
3048 # include <math.h>
3049 # else
3050 # error "don't have header file for math"
3051 # endif
3052 #endif
3053 
3054 #ifdef HAVE_CSTRING
3055 # include <cstring>
3056 #else
3057 # ifdef HAVE_STRING_H
3058 # include <string.h>
3059 # else
3060 # error "don't have header file for string"
3061 # endif
3062 #endif
3063 
3064 
3065 #ifdef WIN_
3066  #define YY_NO_UNISTD_H
3067  #include <io.h>
3068  #include <process.h>
3069  #ifdef USE_OLD_UNISTD
3070  #include<sys/unistd.h>
3071  #endif
3072 #endif
3073 
3074 using std::cout;
3075 using std::endl;
3076 using std::ostringstream;
3077 
3078 
3079 
3080 
3081 
3082 
3083 
3084 
3085 
3086 #line 118 "../../../../OS/src/OSParsers/OSParseosil.l"
3087 #define YY_EXTRA_TYPE OSiLParserData*
3088 #line 3089 "../../../../OS/src/OSParsers/OSParseosil.cpp"
3089 
3090 #define INITIAL 0
3091 #define osilattributetext 1
3092 #define doublequoteattributetext 2
3093 #define singlequoteattributetext 3
3094 #define startelement 4
3095 #define elementtext 5
3096 #define itemtext 6
3097 #define comment 7
3098 #define xmldeclaration 8
3099 
3100 #ifndef YY_NO_UNISTD_H
3101 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3102  * down here because we want the user's section 1 to have been scanned first.
3103  * The user has a chance to override it with an option.
3104  */
3105 /* %if-c-only */
3106 #include <unistd.h>
3107 /* %endif */
3108 /* %if-c++-only */
3109 /* %endif */
3110 #endif
3111 
3112 #ifndef YY_EXTRA_TYPE
3113 #define YY_EXTRA_TYPE void *
3114 #endif
3115 
3116 /* %if-c-only Reentrant structure and macros (non-C++). */
3117 /* %if-reentrant */
3118 
3119 /* Holds the entire state of the reentrant scanner. */
3120 struct yyguts_t
3121  {
3122 
3123  /* User-defined. Not touched by flex. */
3125 
3126  /* The rest are the same as the globals declared in the non-reentrant scanner. */
3127  FILE *yyin_r, *yyout_r;
3130  YY_BUFFER_STATE * yy_buffer_stack;
3134  char *yy_c_buf_p;
3135  int yy_init;
3143 
3146 
3147  char *yytext_r;
3150 
3152 
3154 
3155  }; /* end struct yyguts_t */
3156 
3157 /* %if-c-only */
3158 
3159 static int yy_init_globals (yyscan_t yyscanner );
3160 
3161 /* %endif */
3162 
3163 /* %if-reentrant */
3164 
3165  /* This must go here because YYSTYPE and YYLTYPE are included
3166  * from bison output in section 1.*/
3167  # define yylval yyg->yylval_r
3168 
3169  # define yylloc yyg->yylloc_r
3170 
3172 
3173 int osillex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
3174 
3175 /* %endif */
3176 
3177 /* %endif End reentrant structures and macros. */
3178 
3179 /* Accessor methods to globals.
3180  These are made visible to non-reentrant scanners for convenience. */
3181 
3182 int osillex_destroy (yyscan_t yyscanner );
3183 
3184 int osilget_debug (yyscan_t yyscanner );
3185 
3186 void osilset_debug (int debug_flag ,yyscan_t yyscanner );
3187 
3188 YY_EXTRA_TYPE osilget_extra (yyscan_t yyscanner );
3189 
3190 void osilset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
3191 
3192 FILE *osilget_in (yyscan_t yyscanner );
3193 
3194 void osilset_in (FILE * in_str ,yyscan_t yyscanner );
3195 
3196 FILE *osilget_out (yyscan_t yyscanner );
3197 
3198 void osilset_out (FILE * out_str ,yyscan_t yyscanner );
3199 
3200 int osilget_leng (yyscan_t yyscanner );
3201 
3202 char *osilget_text (yyscan_t yyscanner );
3203 
3204 int osilget_lineno (yyscan_t yyscanner );
3205 
3206 void osilset_lineno (int line_number ,yyscan_t yyscanner );
3207 
3208 /* %if-bison-bridge */
3209 
3210 YYSTYPE * osilget_lval (yyscan_t yyscanner );
3211 
3212 void osilset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
3213 
3214  YYLTYPE *osilget_lloc (yyscan_t yyscanner );
3215 
3216  void osilset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
3217 
3218 /* %endif */
3219 
3220 /* Macros after this point can all be overridden by user definitions in
3221  * section 1.
3222  */
3223 
3224 #ifndef YY_SKIP_YYWRAP
3225 #ifdef __cplusplus
3226 extern "C" int osilwrap (yyscan_t yyscanner );
3227 #else
3228 extern int osilwrap (yyscan_t yyscanner );
3229 #endif
3230 #endif
3231 
3232 /* %not-for-header */
3233 
3234 /* %ok-for-header */
3235 
3236 /* %endif */
3237 
3238 #ifndef yytext_ptr
3239 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
3240 #endif
3241 
3242 #ifdef YY_NEED_STRLEN
3243 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
3244 #endif
3245 
3246 #ifndef YY_NO_INPUT
3247 /* %if-c-only Standard (non-C++) definition */
3248 /* %not-for-header */
3249 
3250 #ifdef __cplusplus
3251 static int yyinput (yyscan_t yyscanner );
3252 #else
3253 static int input (yyscan_t yyscanner );
3254 #endif
3255 /* %ok-for-header */
3256 
3257 /* %endif */
3258 #endif
3259 
3260 /* %if-c-only */
3261 
3262 /* %endif */
3263 
3264 /* Amount of stuff to slurp up with each read. */
3265 #ifndef YY_READ_BUF_SIZE
3266 #ifdef __ia64__
3267 /* On IA-64, the buffer size is 16k, not 8k */
3268 #define YY_READ_BUF_SIZE 16384
3269 #else
3270 #define YY_READ_BUF_SIZE 8192
3271 #endif /* __ia64__ */
3272 #endif
3273 
3274 /* Copy whatever the last rule matched to the standard output. */
3275 #ifndef ECHO
3276 /* %if-c-only Standard (non-C++) definition */
3277 /* This used to be an fputs(), but since the string might contain NUL's,
3278  * we now use fwrite().
3279  */
3280 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
3281 /* %endif */
3282 /* %if-c++-only C++ definition */
3283 /* %endif */
3284 #endif
3285 
3286 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
3287  * is returned in "result".
3288  */
3289 #ifndef YY_INPUT
3290 #define YY_INPUT(buf,result,max_size) \
3291 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
3292  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3293  { \
3294  int c = '*'; \
3295  size_t n; \
3296  for ( n = 0; n < max_size && \
3297  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3298  buf[n] = (char) c; \
3299  if ( c == '\n' ) \
3300  buf[n++] = (char) c; \
3301  if ( c == EOF && ferror( yyin ) ) \
3302  YY_FATAL_ERROR( "input in flex scanner failed" ); \
3303  result = n; \
3304  } \
3305  else \
3306  { \
3307  errno=0; \
3308  while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
3309  { \
3310  if( errno != EINTR) \
3311  { \
3312  YY_FATAL_ERROR( "input in flex scanner failed" ); \
3313  break; \
3314  } \
3315  errno=0; \
3316  clearerr(yyin); \
3317  } \
3318  }\
3319 \
3320 /* %if-c++-only C++ definition \ */\
3321 /* %endif */
3322 
3323 #endif
3324 
3325 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3326  * we don't want an extra ';' after the "return" because that will cause
3327  * some compilers to complain about unreachable statements.
3328  */
3329 #ifndef yyterminate
3330 #define yyterminate() return YY_NULL
3331 #endif
3332 
3333 /* Number of entries by which start-condition stack grows. */
3334 #ifndef YY_START_STACK_INCR
3335 #define YY_START_STACK_INCR 25
3336 #endif
3337 
3338 /* Report a fatal error. */
3339 #ifndef YY_FATAL_ERROR
3340 /* %if-c-only */
3341 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3342 /* %endif */
3343 /* %if-c++-only */
3344 /* %endif */
3345 #endif
3346 
3347 /* %if-tables-serialization structures and prototypes */
3348 /* %not-for-header */
3349 
3350 /* %ok-for-header */
3351 
3352 /* %not-for-header */
3353 
3354 /* %tables-yydmap generated elements */
3355 /* %endif */
3356 /* end tables serialization structures and prototypes */
3357 
3358 /* %ok-for-header */
3359 
3360 /* Default declaration of generated scanner - a define so the user can
3361  * easily add parameters.
3362  */
3363 #ifndef YY_DECL
3364 #define YY_DECL_IS_OURS 1
3365 /* %if-c-only Standard (non-C++) definition */
3366 
3367 extern int osillex \
3368  (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
3369 
3370 #define YY_DECL int osillex \
3371  (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
3372 /* %endif */
3373 /* %if-c++-only C++ definition */
3374 /* %endif */
3375 #endif /* !YY_DECL */
3376 
3377 /* Code executed at the beginning of each rule, after yytext and yyleng
3378  * have been set up.
3379  */
3380 #ifndef YY_USER_ACTION
3381 #define YY_USER_ACTION
3382 #endif
3383 
3384 /* Code executed at the end of each rule. */
3385 #ifndef YY_BREAK
3386 #define YY_BREAK break;
3387 #endif
3388 
3389 /* %% [6.0] YY_RULE_SETUP definition goes here */
3390 #define YY_RULE_SETUP \
3391  YY_USER_ACTION
3392 
3393 /* %not-for-header */
3394 
3397 YY_DECL
3398 {
3400  register char *yy_cp, *yy_bp;
3401  register int yy_act;
3402  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3403 
3404 /* %% [7.0] user's declarations go here */
3405 #line 128 "../../../../OS/src/OSParsers/OSParseosil.l"
3406 
3407 
3408 #line 3409 "../../../../OS/src/OSParsers/OSParseosil.cpp"
3409 
3410  yylval = yylval_param;
3411 
3412  yylloc = yylloc_param;
3413 
3414  if ( !yyg->yy_init )
3415  {
3416  yyg->yy_init = 1;
3417 
3418 #ifdef YY_USER_INIT
3419  YY_USER_INIT;
3420 #endif
3421 
3422  if ( ! yyg->yy_start )
3423  yyg->yy_start = 1; /* first start state */
3424 
3425  if ( ! yyin )
3426 /* %if-c-only */
3427  yyin = stdin;
3428 /* %endif */
3429 /* %if-c++-only */
3430 /* %endif */
3431 
3432  if ( ! yyout )
3433 /* %if-c-only */
3434  yyout = stdout;
3435 /* %endif */
3436 /* %if-c++-only */
3437 /* %endif */
3438 
3439  if ( ! YY_CURRENT_BUFFER ) {
3440  osilensure_buffer_stack (yyscanner);
3442  osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
3443  }
3444 
3445  osil_load_buffer_state(yyscanner );
3446  }
3447 
3448  while ( 1 ) /* loops until end-of-file is reached */
3449  {
3450 /* %% [8.0] yymore()-related code goes here */
3451  yy_cp = yyg->yy_c_buf_p;
3452 
3453  /* Support of yytext. */
3454  *yy_cp = yyg->yy_hold_char;
3455 
3456  /* yy_bp points to the position in yy_ch_buf of the start of
3457  * the current run.
3458  */
3459  yy_bp = yy_cp;
3460 
3461 /* %% [9.0] code to set up and find next match goes here */
3462  yy_current_state = yyg->yy_start;
3463 yy_match:
3464  do
3465  {
3466  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3467  if ( yy_accept[yy_current_state] )
3468  {
3471  }
3472  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3473  {
3474  yy_current_state = (int) yy_def[yy_current_state];
3475  if ( yy_current_state >= 3412 )
3476  yy_c = yy_meta[(unsigned int) yy_c];
3477  }
3478  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3479  ++yy_cp;
3480  }
3481  while ( yy_base[yy_current_state] != 5534 );
3482 
3483 yy_find_action:
3484 /* %% [10.0] code to find the action number goes here */
3485  yy_act = yy_accept[yy_current_state];
3486  if ( yy_act == 0 )
3487  { /* have to back up */
3488  yy_cp = yyg->yy_last_accepting_cpos;
3489  yy_current_state = yyg->yy_last_accepting_state;
3490  yy_act = yy_accept[yy_current_state];
3491  }
3492 
3494 
3495 /* %% [11.0] code for yylineno update goes here */
3496 
3497  if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3498  {
3499  int yyl;
3500  for ( yyl = 0; yyl < yyleng; ++yyl )
3501  if ( yytext[yyl] == '\n' )
3502 
3503  do{ yylineno++;
3504  yycolumn=0;
3505  }while(0)
3506 ;
3507  }
3508 
3509 do_action: /* This label is used only to access EOF actions. */
3510 
3511 /* %% [12.0] debug code goes here */
3512  if ( yy_flex_debug )
3513  {
3514  if ( yy_act == 0 )
3515  fprintf( stderr, "--scanner backing up\n" );
3516  else if ( yy_act < 457 )
3517  fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
3518  (long)yy_rule_linenum[yy_act], yytext );
3519  else if ( yy_act == 457 )
3520  fprintf( stderr, "--accepting default rule (\"%s\")\n",
3521  yytext );
3522  else if ( yy_act == 458 )
3523  fprintf( stderr, "--(end of buffer or a NUL)\n" );
3524  else
3525  fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
3526  }
3527 
3528  switch ( yy_act )
3529  { /* beginning of action switch */
3530 /* %% [13.0] actions go here */
3531  case 0: /* must back up */
3532  /* undo the effects of YY_DO_BEFORE_ACTION */
3533  *yy_cp = yyg->yy_hold_char;
3534  yy_cp = yyg->yy_last_accepting_cpos;
3535  yy_current_state = yyg->yy_last_accepting_state;
3536  goto yy_find_action;
3537 
3538 case 1:
3539 /* rule 1 can match eol */
3541 #line 130 "../../../../OS/src/OSParsers/OSParseosil.l"
3542 
3543  YY_BREAK
3544 /* General patterns matched in more than one element */
3545 case 2:
3547 #line 134 "../../../../OS/src/OSParsers/OSParseosil.l"
3548 {YY_PRINT; yylval->sval = yytext; return(QUOTE);}
3549  YY_BREAK
3550 case 3:
3552 #line 135 "../../../../OS/src/OSParsers/OSParseosil.l"
3553 {YY_PRINT; yylval->sval = yytext; return(TWOQUOTES);}
3554  YY_BREAK
3555 case 4:
3556 /* rule 4 can match eol */
3558 #line 136 "../../../../OS/src/OSParsers/OSParseosil.l"
3559 {YY_PRINT; return(GREATERTHAN);}
3560  YY_BREAK
3561 case 5:
3562 /* rule 5 can match eol */
3564 #line 137 "../../../../OS/src/OSParsers/OSParseosil.l"
3565 {YY_PRINT; yylval->ival = atoi(yytext); return(INTEGER);}
3566  YY_BREAK
3567 case 6:
3568 /* rule 6 can match eol */
3570 #line 139 "../../../../OS/src/OSParsers/OSParseosil.l"
3571 {YY_PRINT;
3572 char *yytextEnd;
3573 yylval->dval = os_strtod_wrap( yytext, &yytextEnd);
3574 return(DOUBLE);}
3575  YY_BREAK
3576 case 7:
3577 /* rule 7 can match eol */
3579 #line 144 "../../../../OS/src/OSParsers/OSParseosil.l"
3580 {YY_PRINT; return(ENDOFELEMENT);}
3581  YY_BREAK
3582 /* Patterns for attributes returning strings (that are potentially empty)*/
3583 /* ({xmlwhitespace}+id{equality}\"\") {YY_PRINT; return(EMPTYIDATT);} */
3584 /* ({xmlwhitespace}+id{equality}\'\') {YY_PRINT; return(EMPTYIDATT);} */
3585 /* ({xmlwhitespace}+id{equality}\") {YY_PRINT; BEGIN doublequoteattributetext; return(IDATT);} */
3586 /* ({xmlwhitespace}+id{equality}\') {YY_PRINT; BEGIN singlequoteattributetext; return(IDATT);} */
3587 case 8:
3588 /* rule 8 can match eol */
3590 #line 153 "../../../../OS/src/OSParsers/OSParseosil.l"
3592  YY_BREAK
3593 case 9:
3594 /* rule 9 can match eol */
3596 #line 154 "../../../../OS/src/OSParsers/OSParseosil.l"
3598  YY_BREAK
3599 case 10:
3600 /* rule 10 can match eol */
3602 #line 155 "../../../../OS/src/OSParsers/OSParseosil.l"
3604  YY_BREAK
3605 case 11:
3606 /* rule 11 can match eol */
3608 #line 156 "../../../../OS/src/OSParsers/OSParseosil.l"
3610  YY_BREAK
3611 /* Patterns for attributes returning numeric values*/
3612 case 12:
3613 /* rule 12 can match eol */
3615 #line 160 "../../../../OS/src/OSParsers/OSParseosil.l"
3616 {YY_PRINT; return(NUMBEROFQTERMSATT);}
3617  YY_BREAK
3618 case 13:
3619 /* rule 13 can match eol */
3621 #line 161 "../../../../OS/src/OSParsers/OSParseosil.l"
3622 {YY_PRINT; return(NUMBEROFCONESATT);}
3623  YY_BREAK
3624 case 14:
3625 /* rule 14 can match eol */
3627 #line 162 "../../../../OS/src/OSParsers/OSParseosil.l"
3628 {YY_PRINT; return(NUMBEROFSTAGESATT);}
3629  YY_BREAK
3630 case 15:
3631 /* rule 15 can match eol */
3633 #line 164 "../../../../OS/src/OSParsers/OSParseosil.l"
3634 {YY_PRINT; return(IDXONEATT);}
3635  YY_BREAK
3636 case 16:
3637 /* rule 16 can match eol */
3639 #line 165 "../../../../OS/src/OSParsers/OSParseosil.l"
3640 {YY_PRINT; return(IDXTWOATT);}
3641  YY_BREAK
3642 case 17:
3643 /* rule 17 can match eol */
3645 #line 166 "../../../../OS/src/OSParsers/OSParseosil.l"
3646 {YY_PRINT; return(STARTIDXATT);}
3647  YY_BREAK
3648 case 18:
3649 /* rule 18 can match eol */
3651 #line 167 "../../../../OS/src/OSParsers/OSParseosil.l"
3652 {YY_PRINT; return(HORIZONATT);}
3653  YY_BREAK
3654 case 19:
3655 /* rule 19 can match eol */
3657 #line 168 "../../../../OS/src/OSParsers/OSParseosil.l"
3658 {YY_PRINT; return(STARTATT);}
3659  YY_BREAK
3660 case 20:
3661 /* rule 20 can match eol */
3663 #line 170 "../../../../OS/src/OSParsers/OSParseosil.l"
3664 {YY_PRINT; return(MATRIXIDXATT);}
3665  YY_BREAK
3666 case 21:
3667 /* rule 21 can match eol */
3669 #line 171 "../../../../OS/src/OSParsers/OSParseosil.l"
3670 {YY_PRINT; return(LBMATRIXIDXATT);}
3671  YY_BREAK
3672 case 22:
3673 /* rule 22 can match eol */
3675 #line 172 "../../../../OS/src/OSParsers/OSParseosil.l"
3676 {YY_PRINT; return(LBCONEIDXATT);}
3677  YY_BREAK
3678 case 23:
3679 /* rule 23 can match eol */
3681 #line 173 "../../../../OS/src/OSParsers/OSParseosil.l"
3682 {YY_PRINT; return(UBMATRIXIDXATT);}
3683  YY_BREAK
3684 case 24:
3685 /* rule 24 can match eol */
3687 #line 174 "../../../../OS/src/OSParsers/OSParseosil.l"
3688 {YY_PRINT; return(UBCONEIDXATT);}
3689  YY_BREAK
3690 case 25:
3691 /* rule 25 can match eol */
3693 #line 175 "../../../../OS/src/OSParsers/OSParseosil.l"
3694 {YY_PRINT; return(TEMPLATEMATRIXIDXATT);}
3695  YY_BREAK
3696 case 26:
3697 /* rule 26 can match eol */
3699 #line 176 "../../../../OS/src/OSParsers/OSParseosil.l"
3700 {YY_PRINT; return(REFERENCEMATRIXIDXATT);}
3701  YY_BREAK
3702 case 27:
3703 /* rule 27 can match eol */
3705 #line 178 "../../../../OS/src/OSParsers/OSParseosil.l"
3707  YY_BREAK
3708 case 28:
3709 /* rule 28 can match eol */
3711 #line 179 "../../../../OS/src/OSParsers/OSParseosil.l"
3713  YY_BREAK
3714 case 29:
3715 /* rule 29 can match eol */
3717 #line 180 "../../../../OS/src/OSParsers/OSParseosil.l"
3719  YY_BREAK
3720 case 30:
3721 /* rule 30 can match eol */
3723 #line 182 "../../../../OS/src/OSParsers/OSParseosil.l"
3724 {YY_PRINT; return(ORDERCONEIDXATT);}
3725  YY_BREAK
3726 case 31:
3727 /* rule 31 can match eol */
3729 #line 183 "../../../../OS/src/OSParsers/OSParseosil.l"
3730 {YY_PRINT; return(CONSTANTMATRIXIDXATT);}
3731  YY_BREAK
3732 case 32:
3733 /* rule 32 can match eol */
3735 #line 185 "../../../../OS/src/OSParsers/OSParseosil.l"
3736 {YY_PRINT; return(NORMSCALEFACTORATT);}
3737  YY_BREAK
3738 case 33:
3739 /* rule 33 can match eol */
3741 #line 186 "../../../../OS/src/OSParsers/OSParseosil.l"
3742 {YY_PRINT; return(DISTORTIONMATRIXIDXATT);}
3743  YY_BREAK
3744 case 34:
3745 /* rule 34 can match eol */
3747 #line 187 "../../../../OS/src/OSParsers/OSParseosil.l"
3748 {YY_PRINT; return(AXISDIRECTIONATT);}
3749  YY_BREAK
3750 case 35:
3751 /* rule 35 can match eol */
3753 #line 188 "../../../../OS/src/OSParsers/OSParseosil.l"
3754 {YY_PRINT; return(FIRSTAXISDIRECTIONATT);}
3755  YY_BREAK
3756 case 36:
3757 /* rule 36 can match eol */
3759 #line 189 "../../../../OS/src/OSParsers/OSParseosil.l"
3760 {YY_PRINT; return(SECONDAXISDIRECTIONATT);}
3761  YY_BREAK
3762 /* Pattern for top level element
3763  Note: </osil> end tag only; rest is done in custom code (see OSInstance.cpp) */
3764 case 37:
3765 /* rule 37 can match eol */
3767 #line 194 "../../../../OS/src/OSParsers/OSParseosil.l"
3768 {YY_PRINT; return(OSILEND);}
3769  YY_BREAK
3770 case 38:
3771 /* rule 38 can match eol */
3773 #line 195 "../../../../OS/src/OSParsers/OSParseosil.l"
3774 {YY_PRINT; return(INSTANCEDATAEND);}
3775  YY_BREAK
3776 case 39:
3777 /* rule 39 can match eol */
3779 #line 196 "../../../../OS/src/OSParsers/OSParseosil.l"
3780 {YY_PRINT; return(INSTANCEDATASTARTEND);}
3781  YY_BREAK
3782 /* patterns for <quadraticCoefficients> */
3783 case 40:
3784 /* rule 40 can match eol */
3786 #line 200 "../../../../OS/src/OSParsers/OSParseosil.l"
3788  YY_BREAK
3789 case 41:
3790 /* rule 41 can match eol */
3792 #line 201 "../../../../OS/src/OSParsers/OSParseosil.l"
3794  YY_BREAK
3795 case 42:
3796 /* rule 42 can match eol */
3798 #line 202 "../../../../OS/src/OSParsers/OSParseosil.l"
3799 {YY_PRINT; return(QTERMSTART);}
3800  YY_BREAK
3801 case 43:
3802 /* rule 43 can match eol */
3804 #line 203 "../../../../OS/src/OSParsers/OSParseosil.l"
3805 {YY_PRINT; return(QTERMEND);}
3806  YY_BREAK
3807 /* Patterns for <cones> element */
3808 case 44:
3809 /* rule 44 can match eol */
3811 #line 207 "../../../../OS/src/OSParsers/OSParseosil.l"
3812 {YY_PRINT; return(CONESSTART);}
3813  YY_BREAK
3814 case 45:
3815 /* rule 45 can match eol */
3817 #line 208 "../../../../OS/src/OSParsers/OSParseosil.l"
3818 {YY_PRINT; return(CONESEND);}
3819  YY_BREAK
3820 case 46:
3821 /* rule 46 can match eol */
3823 #line 209 "../../../../OS/src/OSParsers/OSParseosil.l"
3824 {YY_PRINT; return(NONNEGATIVECONESTART);}
3825  YY_BREAK
3826 case 47:
3827 /* rule 47 can match eol */
3829 #line 210 "../../../../OS/src/OSParsers/OSParseosil.l"
3830 {YY_PRINT; return(NONNEGATIVECONEEND);}
3831  YY_BREAK
3832 case 48:
3833 /* rule 48 can match eol */
3835 #line 211 "../../../../OS/src/OSParsers/OSParseosil.l"
3836 {YY_PRINT; return(NONPOSITIVECONESTART);}
3837  YY_BREAK
3838 case 49:
3839 /* rule 49 can match eol */
3841 #line 212 "../../../../OS/src/OSParsers/OSParseosil.l"
3842 {YY_PRINT; return(NONPOSITIVECONEEND);}
3843  YY_BREAK
3844 case 50:
3845 /* rule 50 can match eol */
3847 #line 213 "../../../../OS/src/OSParsers/OSParseosil.l"
3848 {YY_PRINT; return(ORTHANTCONESTART);}
3849  YY_BREAK
3850 case 51:
3851 /* rule 51 can match eol */
3853 #line 214 "../../../../OS/src/OSParsers/OSParseosil.l"
3854 {YY_PRINT; return(ORTHANTCONEEND);}
3855  YY_BREAK
3856 case 52:
3857 /* rule 52 can match eol */
3859 #line 215 "../../../../OS/src/OSParsers/OSParseosil.l"
3860 {YY_PRINT; return(POLYHEDRALCONESTART);}
3861  YY_BREAK
3862 case 53:
3863 /* rule 53 can match eol */
3865 #line 216 "../../../../OS/src/OSParsers/OSParseosil.l"
3866 {YY_PRINT; return(POLYHEDRALCONEEND);}
3867  YY_BREAK
3868 case 54:
3869 /* rule 54 can match eol */
3871 #line 217 "../../../../OS/src/OSParsers/OSParseosil.l"
3872 {YY_PRINT; return(QUADRATICCONESTART);}
3873  YY_BREAK
3874 case 55:
3875 /* rule 55 can match eol */
3877 #line 218 "../../../../OS/src/OSParsers/OSParseosil.l"
3878 {YY_PRINT; return(QUADRATICCONEEND);}
3879  YY_BREAK
3880 case 56:
3881 /* rule 56 can match eol */
3883 #line 219 "../../../../OS/src/OSParsers/OSParseosil.l"
3885  YY_BREAK
3886 case 57:
3887 /* rule 57 can match eol */
3889 #line 220 "../../../../OS/src/OSParsers/OSParseosil.l"
3891  YY_BREAK
3892 case 58:
3893 /* rule 58 can match eol */
3895 #line 221 "../../../../OS/src/OSParsers/OSParseosil.l"
3896 {YY_PRINT; return(SEMIDEFINITECONESTART);}
3897  YY_BREAK
3898 case 59:
3899 /* rule 59 can match eol */
3901 #line 222 "../../../../OS/src/OSParsers/OSParseosil.l"
3902 {YY_PRINT; return(SEMIDEFINITECONEEND);}
3903  YY_BREAK
3904 case 60:
3905 /* rule 60 can match eol */
3907 #line 223 "../../../../OS/src/OSParsers/OSParseosil.l"
3908 {YY_PRINT; return(PRODUCTCONESTART);}
3909  YY_BREAK
3910 case 61:
3911 /* rule 61 can match eol */
3913 #line 224 "../../../../OS/src/OSParsers/OSParseosil.l"
3914 {YY_PRINT; return(PRODUCTCONEEND);}
3915  YY_BREAK
3916 case 62:
3917 /* rule 62 can match eol */
3919 #line 225 "../../../../OS/src/OSParsers/OSParseosil.l"
3920 {YY_PRINT; return(INTERSECTIONCONESTART);}
3921  YY_BREAK
3922 case 63:
3923 /* rule 63 can match eol */
3925 #line 226 "../../../../OS/src/OSParsers/OSParseosil.l"
3926 {YY_PRINT; return(INTERSECTIONCONEEND);}
3927  YY_BREAK
3928 case 64:
3929 /* rule 64 can match eol */
3931 #line 227 "../../../../OS/src/OSParsers/OSParseosil.l"
3932 {YY_PRINT; return(DUALCONESTART);}
3933  YY_BREAK
3934 case 65:
3935 /* rule 65 can match eol */
3937 #line 228 "../../../../OS/src/OSParsers/OSParseosil.l"
3938 {YY_PRINT; return(DUALCONEEND);}
3939  YY_BREAK
3940 case 66:
3941 /* rule 66 can match eol */
3943 #line 229 "../../../../OS/src/OSParsers/OSParseosil.l"
3944 {YY_PRINT; return(POLARCONESTART);}
3945  YY_BREAK
3946 case 67:
3947 /* rule 67 can match eol */
3949 #line 230 "../../../../OS/src/OSParsers/OSParseosil.l"
3950 {YY_PRINT; return(POLARCONEEND);}
3951  YY_BREAK
3952 case 68:
3953 /* rule 68 can match eol */
3955 #line 231 "../../../../OS/src/OSParsers/OSParseosil.l"
3956 {YY_PRINT; return(DIRECTIONSTART);}
3957  YY_BREAK
3958 case 69:
3959 /* rule 69 can match eol */
3961 #line 232 "../../../../OS/src/OSParsers/OSParseosil.l"
3962 {YY_PRINT; return(DIRECTIONEND);}
3963  YY_BREAK
3964 case 70:
3965 /* rule 70 can match eol */
3967 #line 233 "../../../../OS/src/OSParsers/OSParseosil.l"
3968 {YY_PRINT; return(FACTORSSTART);}
3969  YY_BREAK
3970 case 71:
3971 /* rule 71 can match eol */
3973 #line 234 "../../../../OS/src/OSParsers/OSParseosil.l"
3974 {YY_PRINT; return(FACTORSEND);}
3975  YY_BREAK
3976 case 72:
3977 /* rule 72 can match eol */
3979 #line 235 "../../../../OS/src/OSParsers/OSParseosil.l"
3980 {YY_PRINT; return(COMPONENTSSTART);}
3981  YY_BREAK
3982 case 73:
3983 /* rule 73 can match eol */
3985 #line 236 "../../../../OS/src/OSParsers/OSParseosil.l"
3986 {YY_PRINT; return(COMPONENTSEND);}
3987  YY_BREAK
3988 /* patterns for <timeDomain> element */
3989 case 74:
3990 /* rule 74 can match eol */
3992 #line 240 "../../../../OS/src/OSParsers/OSParseosil.l"
3993 {YY_PRINT; return(TIMEDOMAINSTART);}
3994  YY_BREAK
3995 case 75:
3996 /* rule 75 can match eol */
3998 #line 241 "../../../../OS/src/OSParsers/OSParseosil.l"
3999 {YY_PRINT; return(TIMEDOMAINEND);}
4000  YY_BREAK
4001 case 76:
4002 /* rule 76 can match eol */
4004 #line 242 "../../../../OS/src/OSParsers/OSParseosil.l"
4005 {YY_PRINT; return(STAGESSTART);}
4006  YY_BREAK
4007 case 77:
4008 /* rule 77 can match eol */
4010 #line 243 "../../../../OS/src/OSParsers/OSParseosil.l"
4011 {YY_PRINT; return(STAGESEND);}
4012  YY_BREAK
4013 case 78:
4014 /* rule 78 can match eol */
4016 #line 244 "../../../../OS/src/OSParsers/OSParseosil.l"
4017 {YY_PRINT; return(STAGESTART);}
4018  YY_BREAK
4019 case 79:
4020 /* rule 79 can match eol */
4022 #line 245 "../../../../OS/src/OSParsers/OSParseosil.l"
4023 {YY_PRINT; return(STAGEEND);}
4024  YY_BREAK
4025 case 80:
4026 /* rule 80 can match eol */
4028 #line 246 "../../../../OS/src/OSParsers/OSParseosil.l"
4029 {YY_PRINT; return(INTERVALSTART);}
4030  YY_BREAK
4031 case 81:
4032 /* rule 81 can match eol */
4034 #line 247 "../../../../OS/src/OSParsers/OSParseosil.l"
4035 {YY_PRINT; return(INTERVALEND);}
4036  YY_BREAK
4037 /* include file OSParseosgl.l.patterns --- patterns for OSgL schema elements */
4038 case 82:
4039 /* rule 82 can match eol */
4041 #line 253 "../../../../OS/src/OSParsers/OSParseosil.l"
4042 {YY_PRINT; return(BASE64START);}
4043  YY_BREAK
4044 case 83:
4045 /* rule 83 can match eol */
4047 #line 254 "../../../../OS/src/OSParsers/OSParseosil.l"
4048 {YY_PRINT; return(BASE64END);}
4049  YY_BREAK
4050 case 84:
4051 /* rule 84 can match eol */
4053 #line 255 "../../../../OS/src/OSParsers/OSParseosil.l"
4054 {YY_PRINT; return(ELSTART);}
4055  YY_BREAK
4056 case 85:
4057 /* rule 85 can match eol */
4059 #line 256 "../../../../OS/src/OSParsers/OSParseosil.l"
4060 {YY_PRINT; return(ELEND);}
4061  YY_BREAK
4062 /* The <item> element and the children of the file header element are treated specially
4063  because they may legitimately contain special characters */
4064 case 86:
4065 /* rule 86 can match eol */
4067 #line 261 "../../../../OS/src/OSParsers/OSParseosil.l"
4068 { YY_PRINT; return(ITEMEMPTY);}
4069  YY_BREAK
4070 case 87:
4071 /* rule 87 can match eol */
4073 #line 262 "../../../../OS/src/OSParsers/OSParseosil.l"
4074 { YY_PRINT; BEGIN itemtext; return(ITEMSTART);}
4075  YY_BREAK
4076 case 88:
4077 /* rule 88 can match eol */
4079 #line 263 "../../../../OS/src/OSParsers/OSParseosil.l"
4080 { YY_PRINT; return(ITEMEND);}
4081  YY_BREAK
4082 case 89:
4083 /* rule 89 can match eol */
4085 #line 264 "../../../../OS/src/OSParsers/OSParseosil.l"
4086 { YY_PRINT; return(ITEMSTARTANDEND);}
4087  YY_BREAK
4088 case 90:
4089 /* rule 90 can match eol */
4091 #line 266 "../../../../OS/src/OSParsers/OSParseosil.l"
4092 { YY_PRINT; return(FILENAMEEMPTY);}
4093  YY_BREAK
4094 case 91:
4095 /* rule 91 can match eol */
4097 #line 267 "../../../../OS/src/OSParsers/OSParseosil.l"
4098 { YY_PRINT; BEGIN itemtext; return(FILENAMESTART);}
4099  YY_BREAK
4100 case 92:
4101 /* rule 92 can match eol */
4103 #line 268 "../../../../OS/src/OSParsers/OSParseosil.l"
4104 { YY_PRINT; return(FILENAMEEND);}
4105  YY_BREAK
4106 case 93:
4107 /* rule 93 can match eol */
4109 #line 269 "../../../../OS/src/OSParsers/OSParseosil.l"
4110 { YY_PRINT; return(FILENAMESTARTANDEND);}
4111  YY_BREAK
4112 case 94:
4113 /* rule 94 can match eol */
4115 #line 271 "../../../../OS/src/OSParsers/OSParseosil.l"
4116 { YY_PRINT; return(FILESOURCEEMPTY);}
4117  YY_BREAK
4118 case 95:
4119 /* rule 95 can match eol */
4121 #line 272 "../../../../OS/src/OSParsers/OSParseosil.l"
4122 { YY_PRINT; BEGIN itemtext; return(FILESOURCESTART);}
4123  YY_BREAK
4124 case 96:
4125 /* rule 96 can match eol */
4127 #line 273 "../../../../OS/src/OSParsers/OSParseosil.l"
4128 { YY_PRINT; return(FILESOURCEEND);}
4129  YY_BREAK
4130 case 97:
4131 /* rule 97 can match eol */
4133 #line 274 "../../../../OS/src/OSParsers/OSParseosil.l"
4134 { YY_PRINT; return(FILESOURCESTARTANDEND);}
4135  YY_BREAK
4136 case 98:
4137 /* rule 98 can match eol */
4139 #line 276 "../../../../OS/src/OSParsers/OSParseosil.l"
4140 { YY_PRINT; return(FILEDESCRIPTIONEMPTY);}
4141  YY_BREAK
4142 case 99:
4143 /* rule 99 can match eol */
4145 #line 277 "../../../../OS/src/OSParsers/OSParseosil.l"
4147  YY_BREAK
4148 case 100:
4149 /* rule 100 can match eol */
4151 #line 278 "../../../../OS/src/OSParsers/OSParseosil.l"
4152 { YY_PRINT; return(FILEDESCRIPTIONEND);}
4153  YY_BREAK
4154 case 101:
4155 /* rule 101 can match eol */
4157 #line 279 "../../../../OS/src/OSParsers/OSParseosil.l"
4159  YY_BREAK
4160 case 102:
4161 /* rule 102 can match eol */
4163 #line 281 "../../../../OS/src/OSParsers/OSParseosil.l"
4164 { YY_PRINT; return(FILECREATOREMPTY);}
4165  YY_BREAK
4166 case 103:
4167 /* rule 103 can match eol */
4169 #line 282 "../../../../OS/src/OSParsers/OSParseosil.l"
4171  YY_BREAK
4172 case 104:
4173 /* rule 104 can match eol */
4175 #line 283 "../../../../OS/src/OSParsers/OSParseosil.l"
4176 { YY_PRINT; return(FILECREATOREND);}
4177  YY_BREAK
4178 case 105:
4179 /* rule 105 can match eol */
4181 #line 284 "../../../../OS/src/OSParsers/OSParseosil.l"
4182 { YY_PRINT; return(FILECREATORSTARTANDEND);}
4183  YY_BREAK
4184 case 106:
4185 /* rule 106 can match eol */
4187 #line 286 "../../../../OS/src/OSParsers/OSParseosil.l"
4188 { YY_PRINT; return(FILELICENCEEMPTY);}
4189  YY_BREAK
4190 case 107:
4191 /* rule 107 can match eol */
4193 #line 287 "../../../../OS/src/OSParsers/OSParseosil.l"
4195  YY_BREAK
4196 case 108:
4197 /* rule 108 can match eol */
4199 #line 288 "../../../../OS/src/OSParsers/OSParseosil.l"
4200 { YY_PRINT; return(FILELICENCEEND);}
4201  YY_BREAK
4202 case 109:
4203 /* rule 109 can match eol */
4205 #line 289 "../../../../OS/src/OSParsers/OSParseosil.l"
4206 { YY_PRINT; return(FILELICENCESTARTANDEND);}
4207  YY_BREAK
4208 /* Patterns for attributes returning strings (that are potentially empty)*/
4209 case 110:
4210 /* rule 110 can match eol */
4212 #line 293 "../../../../OS/src/OSParsers/OSParseosil.l"
4213 {YY_PRINT; return(EMPTYBASETRANSPOSEATT);}
4214  YY_BREAK
4215 case 111:
4216 /* rule 111 can match eol */
4218 #line 294 "../../../../OS/src/OSParsers/OSParseosil.l"
4219 {YY_PRINT; return(EMPTYBASETRANSPOSEATT);}
4220  YY_BREAK
4221 case 112:
4222 /* rule 112 can match eol */
4224 #line 295 "../../../../OS/src/OSParsers/OSParseosil.l"
4226  YY_BREAK
4227 case 113:
4228 /* rule 113 can match eol */
4230 #line 296 "../../../../OS/src/OSParsers/OSParseosil.l"
4232  YY_BREAK
4233 case 114:
4234 /* rule 114 can match eol */
4236 #line 298 "../../../../OS/src/OSParsers/OSParseosil.l"
4237 {YY_PRINT; return(EMPTYCATEGORYATT);}
4238  YY_BREAK
4239 case 115:
4240 /* rule 115 can match eol */
4242 #line 299 "../../../../OS/src/OSParsers/OSParseosil.l"
4243 {YY_PRINT; return(EMPTYCATEGORYATT);}
4244  YY_BREAK
4245 case 116:
4246 /* rule 116 can match eol */
4248 #line 300 "../../../../OS/src/OSParsers/OSParseosil.l"
4250  YY_BREAK
4251 case 117:
4252 /* rule 117 can match eol */
4254 #line 301 "../../../../OS/src/OSParsers/OSParseosil.l"
4256  YY_BREAK
4257 case 118:
4258 /* rule 118 can match eol */
4260 #line 303 "../../../../OS/src/OSParsers/OSParseosil.l"
4261 {YY_PRINT; return(EMPTYCONTYPEATT);}
4262  YY_BREAK
4263 case 119:
4264 /* rule 119 can match eol */
4266 #line 304 "../../../../OS/src/OSParsers/OSParseosil.l"
4267 {YY_PRINT; return(EMPTYCONTYPEATT);}
4268  YY_BREAK
4269 case 120:
4270 /* rule 120 can match eol */
4272 #line 305 "../../../../OS/src/OSParsers/OSParseosil.l"
4274  YY_BREAK
4275 case 121:
4276 /* rule 121 can match eol */
4278 #line 306 "../../../../OS/src/OSParsers/OSParseosil.l"
4280  YY_BREAK
4281 case 122:
4282 /* rule 122 can match eol */
4284 #line 308 "../../../../OS/src/OSParsers/OSParseosil.l"
4285 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
4286  YY_BREAK
4287 case 123:
4288 /* rule 123 can match eol */
4290 #line 309 "../../../../OS/src/OSParsers/OSParseosil.l"
4291 {YY_PRINT; return(EMPTYDESCRIPTIONATT);}
4292  YY_BREAK
4293 case 124:
4294 /* rule 124 can match eol */
4296 #line 310 "../../../../OS/src/OSParsers/OSParseosil.l"
4298  YY_BREAK
4299 case 125:
4300 /* rule 125 can match eol */
4302 #line 311 "../../../../OS/src/OSParsers/OSParseosil.l"
4304  YY_BREAK
4305 case 126:
4306 /* rule 126 can match eol */
4308 #line 313 "../../../../OS/src/OSParsers/OSParseosil.l"
4309 {YY_PRINT; return(EMPTYENUMTYPEATT);}
4310  YY_BREAK
4311 case 127:
4312 /* rule 127 can match eol */
4314 #line 314 "../../../../OS/src/OSParsers/OSParseosil.l"
4315 {YY_PRINT; return(EMPTYENUMTYPEATT);}
4316  YY_BREAK
4317 case 128:
4318 /* rule 128 can match eol */
4320 #line 315 "../../../../OS/src/OSParsers/OSParseosil.l"
4322  YY_BREAK
4323 case 129:
4324 /* rule 129 can match eol */
4326 #line 316 "../../../../OS/src/OSParsers/OSParseosil.l"
4328  YY_BREAK
4329 case 130:
4330 /* rule 130 can match eol */
4332 #line 318 "../../../../OS/src/OSParsers/OSParseosil.l"
4333 {YY_PRINT; return(EMPTYMATRIXCONTYPEATT);}
4334  YY_BREAK
4335 case 131:
4336 /* rule 131 can match eol */
4338 #line 319 "../../../../OS/src/OSParsers/OSParseosil.l"
4339 {YY_PRINT; return(EMPTYMATRIXCONTYPEATT);}
4340  YY_BREAK
4341 case 132:
4342 /* rule 132 can match eol */
4344 #line 320 "../../../../OS/src/OSParsers/OSParseosil.l"
4346  YY_BREAK
4347 case 133:
4348 /* rule 133 can match eol */
4350 #line 321 "../../../../OS/src/OSParsers/OSParseosil.l"
4352  YY_BREAK
4353 case 134:
4354 /* rule 134 can match eol */
4356 #line 323 "../../../../OS/src/OSParsers/OSParseosil.l"
4357 {YY_PRINT; return(EMPTYMATRIXOBJTYPEATT);}
4358  YY_BREAK
4359 case 135:
4360 /* rule 135 can match eol */
4362 #line 324 "../../../../OS/src/OSParsers/OSParseosil.l"
4363 {YY_PRINT; return(EMPTYMATRIXOBJTYPEATT);}
4364  YY_BREAK
4365 case 136:
4366 /* rule 136 can match eol */
4368 #line 325 "../../../../OS/src/OSParsers/OSParseosil.l"
4370  YY_BREAK
4371 case 137:
4372 /* rule 137 can match eol */
4374 #line 326 "../../../../OS/src/OSParsers/OSParseosil.l"
4376  YY_BREAK
4377 case 138:
4378 /* rule 138 can match eol */
4380 #line 328 "../../../../OS/src/OSParsers/OSParseosil.l"
4381 {YY_PRINT; return(EMPTYMATRIXTYPEATT);}
4382  YY_BREAK
4383 case 139:
4384 /* rule 139 can match eol */
4386 #line 329 "../../../../OS/src/OSParsers/OSParseosil.l"
4387 {YY_PRINT; return(EMPTYMATRIXTYPEATT);}
4388  YY_BREAK
4389 case 140:
4390 /* rule 140 can match eol */
4392 #line 330 "../../../../OS/src/OSParsers/OSParseosil.l"
4394  YY_BREAK
4395 case 141:
4396 /* rule 141 can match eol */
4398 #line 331 "../../../../OS/src/OSParsers/OSParseosil.l"
4400  YY_BREAK
4401 case 142:
4402 /* rule 142 can match eol */
4404 #line 333 "../../../../OS/src/OSParsers/OSParseosil.l"
4405 {YY_PRINT; return(EMPTYMATRIXVARTYPEATT);}
4406  YY_BREAK
4407 case 143:
4408 /* rule 143 can match eol */
4410 #line 334 "../../../../OS/src/OSParsers/OSParseosil.l"
4411 {YY_PRINT; return(EMPTYMATRIXVARTYPEATT);}
4412  YY_BREAK
4413 case 144:
4414 /* rule 144 can match eol */
4416 #line 335 "../../../../OS/src/OSParsers/OSParseosil.l"
4418  YY_BREAK
4419 case 145:
4420 /* rule 145 can match eol */
4422 #line 336 "../../../../OS/src/OSParsers/OSParseosil.l"
4424  YY_BREAK
4425 case 146:
4426 /* rule 146 can match eol */
4428 #line 338 "../../../../OS/src/OSParsers/OSParseosil.l"
4429 {YY_PRINT; return(EMPTYNAMEATT);}
4430  YY_BREAK
4431 case 147:
4432 /* rule 147 can match eol */
4434 #line 339 "../../../../OS/src/OSParsers/OSParseosil.l"
4435 {YY_PRINT; return(EMPTYNAMEATT);}
4436  YY_BREAK
4437 case 148:
4438 /* rule 148 can match eol */
4440 #line 340 "../../../../OS/src/OSParsers/OSParseosil.l"
4442  YY_BREAK
4443 case 149:
4444 /* rule 149 can match eol */
4446 #line 341 "../../../../OS/src/OSParsers/OSParseosil.l"
4448  YY_BREAK
4449 case 150:
4450 /* rule 150 can match eol */
4452 #line 343 "../../../../OS/src/OSParsers/OSParseosil.l"
4453 {YY_PRINT; return(EMPTYOBJTYPEATT);}
4454  YY_BREAK
4455 case 151:
4456 /* rule 151 can match eol */
4458 #line 344 "../../../../OS/src/OSParsers/OSParseosil.l"
4459 {YY_PRINT; return(EMPTYOBJTYPEATT);}
4460  YY_BREAK
4461 case 152:
4462 /* rule 152 can match eol */
4464 #line 345 "../../../../OS/src/OSParsers/OSParseosil.l"
4466  YY_BREAK
4467 case 153:
4468 /* rule 153 can match eol */
4470 #line 346 "../../../../OS/src/OSParsers/OSParseosil.l"
4472  YY_BREAK
4473 case 154:
4474 /* rule 154 can match eol */
4476 #line 348 "../../../../OS/src/OSParsers/OSParseosil.l"
4477 {YY_PRINT; return(EMPTYROWMAJORATT);}
4478  YY_BREAK
4479 case 155:
4480 /* rule 155 can match eol */
4482 #line 349 "../../../../OS/src/OSParsers/OSParseosil.l"
4483 {YY_PRINT; return(EMPTYROWMAJORATT);}
4484  YY_BREAK
4485 case 156:
4486 /* rule 156 can match eol */
4488 #line 350 "../../../../OS/src/OSParsers/OSParseosil.l"
4490  YY_BREAK
4491 case 157:
4492 /* rule 157 can match eol */
4494 #line 351 "../../../../OS/src/OSParsers/OSParseosil.l"
4496  YY_BREAK
4497 case 158:
4498 /* rule 158 can match eol */
4500 #line 353 "../../../../OS/src/OSParsers/OSParseosil.l"
4501 {YY_PRINT; return(EMPTYSHAPEATT);}
4502  YY_BREAK
4503 case 159:
4504 /* rule 159 can match eol */
4506 #line 354 "../../../../OS/src/OSParsers/OSParseosil.l"
4507 {YY_PRINT; return(EMPTYSHAPEATT);}
4508  YY_BREAK
4509 case 160:
4510 /* rule 160 can match eol */
4512 #line 355 "../../../../OS/src/OSParsers/OSParseosil.l"
4514  YY_BREAK
4515 case 161:
4516 /* rule 161 can match eol */
4518 #line 356 "../../../../OS/src/OSParsers/OSParseosil.l"
4520  YY_BREAK
4521 case 162:
4522 /* rule 162 can match eol */
4524 #line 358 "../../../../OS/src/OSParsers/OSParseosil.l"
4525 {YY_PRINT; return(EMPTYSOLVERATT);}
4526  YY_BREAK
4527 case 163:
4528 /* rule 163 can match eol */
4530 #line 359 "../../../../OS/src/OSParsers/OSParseosil.l"
4531 {YY_PRINT; return(EMPTYSOLVERATT);}
4532  YY_BREAK
4533 case 164:
4534 /* rule 164 can match eol */
4536 #line 360 "../../../../OS/src/OSParsers/OSParseosil.l"
4538  YY_BREAK
4539 case 165:
4540 /* rule 165 can match eol */
4542 #line 361 "../../../../OS/src/OSParsers/OSParseosil.l"
4544  YY_BREAK
4545 case 166:
4546 /* rule 166 can match eol */
4548 #line 363 "../../../../OS/src/OSParsers/OSParseosil.l"
4549 {YY_PRINT; return(EMPTYSYMMETRYATT);}
4550  YY_BREAK
4551 case 167:
4552 /* rule 167 can match eol */
4554 #line 364 "../../../../OS/src/OSParsers/OSParseosil.l"
4555 {YY_PRINT; return(EMPTYSYMMETRYATT);}
4556  YY_BREAK
4557 case 168:
4558 /* rule 168 can match eol */
4560 #line 365 "../../../../OS/src/OSParsers/OSParseosil.l"
4562  YY_BREAK
4563 case 169:
4564 /* rule 169 can match eol */
4566 #line 366 "../../../../OS/src/OSParsers/OSParseosil.l"
4568  YY_BREAK
4569 case 170:
4570 /* rule 170 can match eol */
4572 #line 368 "../../../../OS/src/OSParsers/OSParseosil.l"
4573 {YY_PRINT; return(EMPTYTYPEATT);}
4574  YY_BREAK
4575 case 171:
4576 /* rule 171 can match eol */
4578 #line 369 "../../../../OS/src/OSParsers/OSParseosil.l"
4579 {YY_PRINT; return(EMPTYTYPEATT);}
4580  YY_BREAK
4581 case 172:
4582 /* rule 172 can match eol */
4584 #line 370 "../../../../OS/src/OSParsers/OSParseosil.l"
4586  YY_BREAK
4587 case 173:
4588 /* rule 173 can match eol */
4590 #line 371 "../../../../OS/src/OSParsers/OSParseosil.l"
4592  YY_BREAK
4593 case 174:
4594 /* rule 174 can match eol */
4596 #line 373 "../../../../OS/src/OSParsers/OSParseosil.l"
4597 {YY_PRINT; return(EMPTYUNITATT);}
4598  YY_BREAK
4599 case 175:
4600 /* rule 175 can match eol */
4602 #line 374 "../../../../OS/src/OSParsers/OSParseosil.l"
4603 {YY_PRINT; return(EMPTYUNITATT);}
4604  YY_BREAK
4605 case 176:
4606 /* rule 176 can match eol */
4608 #line 375 "../../../../OS/src/OSParsers/OSParseosil.l"
4610  YY_BREAK
4611 case 177:
4612 /* rule 177 can match eol */
4614 #line 376 "../../../../OS/src/OSParsers/OSParseosil.l"
4616  YY_BREAK
4617 case 178:
4618 /* rule 178 can match eol */
4620 #line 378 "../../../../OS/src/OSParsers/OSParseosil.l"
4621 {YY_PRINT; return(EMPTYVALUEATT);}
4622  YY_BREAK
4623 case 179:
4624 /* rule 179 can match eol */
4626 #line 379 "../../../../OS/src/OSParsers/OSParseosil.l"
4627 {YY_PRINT; return(EMPTYVALUEATT);}
4628  YY_BREAK
4629 case 180:
4630 /* rule 180 can match eol */
4632 #line 380 "../../../../OS/src/OSParsers/OSParseosil.l"
4634  YY_BREAK
4635 case 181:
4636 /* rule 181 can match eol */
4638 #line 381 "../../../../OS/src/OSParsers/OSParseosil.l"
4640  YY_BREAK
4641 case 182:
4642 /* rule 182 can match eol */
4644 #line 383 "../../../../OS/src/OSParsers/OSParseosil.l"
4645 {YY_PRINT; return(EMPTYVARTYPEATT);}
4646  YY_BREAK
4647 case 183:
4648 /* rule 183 can match eol */
4650 #line 384 "../../../../OS/src/OSParsers/OSParseosil.l"
4651 {YY_PRINT; return(EMPTYVARTYPEATT);}
4652  YY_BREAK
4653 case 184:
4654 /* rule 184 can match eol */
4656 #line 385 "../../../../OS/src/OSParsers/OSParseosil.l"
4658  YY_BREAK
4659 case 185:
4660 /* rule 185 can match eol */
4662 #line 386 "../../../../OS/src/OSParsers/OSParseosil.l"
4664  YY_BREAK
4665 case 186:
4666 /* rule 186 can match eol */
4668 #line 388 "../../../../OS/src/OSParsers/OSParseosil.l"
4669 {YY_PRINT; return(EMPTYVALUETYPEATT);}
4670  YY_BREAK
4671 case 187:
4672 /* rule 187 can match eol */
4674 #line 389 "../../../../OS/src/OSParsers/OSParseosil.l"
4675 {YY_PRINT; return(EMPTYVALUETYPEATT);}
4676  YY_BREAK
4677 case 188:
4678 /* rule 188 can match eol */
4680 #line 390 "../../../../OS/src/OSParsers/OSParseosil.l"
4682  YY_BREAK
4683 case 189:
4684 /* rule 189 can match eol */
4686 #line 391 "../../../../OS/src/OSParsers/OSParseosil.l"
4688  YY_BREAK
4689 /* Patterns for attributes returning numeric values*/
4690 case 190:
4691 /* rule 190 can match eol */
4693 #line 395 "../../../../OS/src/OSParsers/OSParseosil.l"
4694 {YY_PRINT; return(NUMBEROFBLOCKSATT);}
4695  YY_BREAK
4696 case 191:
4697 /* rule 191 can match eol */
4699 #line 396 "../../../../OS/src/OSParsers/OSParseosil.l"
4700 {YY_PRINT; return(NUMBEROFCOLUMNSATT);}
4701  YY_BREAK
4702 case 192:
4703 /* rule 192 can match eol */
4705 #line 397 "../../../../OS/src/OSParsers/OSParseosil.l"
4706 {YY_PRINT; return(NUMBEROFCONATT);}
4707  YY_BREAK
4708 case 193:
4709 /* rule 193 can match eol */
4711 #line 398 "../../../../OS/src/OSParsers/OSParseosil.l"
4712 {YY_PRINT; return(NUMBEROFCONSTRAINTSATT);}
4713  YY_BREAK
4714 case 194:
4715 /* rule 194 can match eol */
4717 #line 399 "../../../../OS/src/OSParsers/OSParseosil.l"
4718 {YY_PRINT; return(NUMBEROFELATT);}
4719  YY_BREAK
4720 case 195:
4721 /* rule 195 can match eol */
4723 #line 400 "../../../../OS/src/OSParsers/OSParseosil.l"
4725  YY_BREAK
4726 case 196:
4727 /* rule 196 can match eol */
4729 #line 401 "../../../../OS/src/OSParsers/OSParseosil.l"
4730 {YY_PRINT; return(NUMBEROFITEMSATT);}
4731  YY_BREAK
4732 case 197:
4733 /* rule 197 can match eol */
4735 #line 402 "../../../../OS/src/OSParsers/OSParseosil.l"
4736 {YY_PRINT; return(NUMBEROFMATRICESATT);}
4737  YY_BREAK
4738 case 198:
4739 /* rule 198 can match eol */
4741 #line 403 "../../../../OS/src/OSParsers/OSParseosil.l"
4742 {YY_PRINT; return(NUMBEROFMATRIXCONATT);}
4743  YY_BREAK
4744 case 199:
4745 /* rule 199 can match eol */
4747 #line 404 "../../../../OS/src/OSParsers/OSParseosil.l"
4748 {YY_PRINT; return(NUMBEROFMATRIXOBJATT);}
4749  YY_BREAK
4750 case 200:
4751 /* rule 200 can match eol */
4753 #line 405 "../../../../OS/src/OSParsers/OSParseosil.l"
4754 {YY_PRINT; return(NUMBEROFMATRIXVARATT);}
4755  YY_BREAK
4756 case 201:
4757 /* rule 201 can match eol */
4759 #line 406 "../../../../OS/src/OSParsers/OSParseosil.l"
4760 {YY_PRINT; return(NUMBEROFOBJATT);}
4761  YY_BREAK
4762 case 202:
4763 /* rule 202 can match eol */
4765 #line 407 "../../../../OS/src/OSParsers/OSParseosil.l"
4766 {YY_PRINT; return(NUMBEROFOBJECTIVESATT);}
4767  YY_BREAK
4768 case 203:
4769 /* rule 203 can match eol */
4771 #line 408 "../../../../OS/src/OSParsers/OSParseosil.l"
4772 {YY_PRINT; return(NUMBEROFROWSATT);}
4773  YY_BREAK
4774 case 204:
4775 /* rule 204 can match eol */
4777 #line 409 "../../../../OS/src/OSParsers/OSParseosil.l"
4778 {YY_PRINT; return(NUMBEROFVALUESATT);}
4779  YY_BREAK
4780 case 205:
4781 /* rule 205 can match eol */
4783 #line 410 "../../../../OS/src/OSParsers/OSParseosil.l"
4784 {YY_PRINT; return(NUMBEROFVARATT);}
4785  YY_BREAK
4786 case 206:
4787 /* rule 206 can match eol */
4789 #line 411 "../../../../OS/src/OSParsers/OSParseosil.l"
4790 {YY_PRINT; return(NUMBEROFVARIABLESATT);}
4791  YY_BREAK
4792 case 207:
4793 /* rule 207 can match eol */
4795 #line 412 "../../../../OS/src/OSParsers/OSParseosil.l"
4796 {YY_PRINT; return(NUMBEROFVARIDXATT);}
4797  YY_BREAK
4798 case 208:
4799 /* rule 208 can match eol */
4801 #line 414 "../../../../OS/src/OSParsers/OSParseosil.l"
4802 {YY_PRINT; return(BASEMATRIXIDXATT);}
4803  YY_BREAK
4804 case 209:
4805 /* rule 209 can match eol */
4807 #line 415 "../../../../OS/src/OSParsers/OSParseosil.l"
4809  YY_BREAK
4810 case 210:
4811 /* rule 210 can match eol */
4813 #line 416 "../../../../OS/src/OSParsers/OSParseosil.l"
4815  YY_BREAK
4816 case 211:
4817 /* rule 211 can match eol */
4819 #line 417 "../../../../OS/src/OSParsers/OSParseosil.l"
4820 {YY_PRINT; return(BASEMATRIXSTARTROWATT);}
4821  YY_BREAK
4822 case 212:
4823 /* rule 212 can match eol */
4825 #line 418 "../../../../OS/src/OSParsers/OSParseosil.l"
4826 {YY_PRINT; return(BASEMATRIXSTARTCOLATT);}
4827  YY_BREAK
4828 case 213:
4829 /* rule 213 can match eol */
4831 #line 419 "../../../../OS/src/OSParsers/OSParseosil.l"
4832 {YY_PRINT; return(BASEMATRIXENDROWATT);}
4833  YY_BREAK
4834 case 214:
4835 /* rule 214 can match eol */
4837 #line 420 "../../../../OS/src/OSParsers/OSParseosil.l"
4838 {YY_PRINT; return(BASEMATRIXENDCOLATT);}
4839  YY_BREAK
4840 case 215:
4841 /* rule 215 can match eol */
4843 #line 421 "../../../../OS/src/OSParsers/OSParseosil.l"
4844 {YY_PRINT; return(SCALARMULTIPLIERATT);}
4845  YY_BREAK
4846 case 216:
4847 /* rule 216 can match eol */
4849 #line 422 "../../../../OS/src/OSParsers/OSParseosil.l"
4850 {YY_PRINT; return(BLOCKROWIDXATT);}
4851  YY_BREAK
4852 case 217:
4853 /* rule 217 can match eol */
4855 #line 423 "../../../../OS/src/OSParsers/OSParseosil.l"
4856 {YY_PRINT; return(BLOCKCOLIDXATT);}
4857  YY_BREAK
4858 case 218:
4859 /* rule 218 can match eol */
4861 #line 424 "../../../../OS/src/OSParsers/OSParseosil.l"
4862 {YY_PRINT; return(CONSTANTATT);}
4863  YY_BREAK
4864 case 219:
4865 /* rule 219 can match eol */
4867 #line 426 "../../../../OS/src/OSParsers/OSParseosil.l"
4868 {YY_PRINT; return(MATRIXVARIDXATT);}
4869  YY_BREAK
4870 case 220:
4871 /* rule 220 can match eol */
4873 #line 427 "../../../../OS/src/OSParsers/OSParseosil.l"
4874 {YY_PRINT; return(MATRIXOBJIDXATT);}
4875  YY_BREAK
4876 case 221:
4877 /* rule 221 can match eol */
4879 #line 428 "../../../../OS/src/OSParsers/OSParseosil.l"
4880 {YY_PRINT; return(MATRIXCONIDXATT);}
4881  YY_BREAK
4882 case 222:
4883 /* rule 222 can match eol */
4885 #line 430 "../../../../OS/src/OSParsers/OSParseosil.l"
4886 {YY_PRINT; return(IDXATT);}
4887  YY_BREAK
4888 case 223:
4889 /* rule 223 can match eol */
4891 #line 431 "../../../../OS/src/OSParsers/OSParseosil.l"
4892 {YY_PRINT; return(INCRATT);}
4893  YY_BREAK
4894 case 224:
4895 /* rule 224 can match eol */
4897 #line 432 "../../../../OS/src/OSParsers/OSParseosil.l"
4898 {YY_PRINT; return(MULTATT);}
4899  YY_BREAK
4900 case 225:
4901 /* rule 225 can match eol */
4903 #line 433 "../../../../OS/src/OSParsers/OSParseosil.l"
4904 {YY_PRINT; return(COEFATT);}
4905  YY_BREAK
4906 case 226:
4907 /* rule 226 can match eol */
4909 #line 434 "../../../../OS/src/OSParsers/OSParseosil.l"
4910 {YY_PRINT; return(SIZEOFATT);}
4911  YY_BREAK
4912 /* Patterns for the <matrices> element */
4913 case 227:
4914 /* rule 227 can match eol */
4916 #line 438 "../../../../OS/src/OSParsers/OSParseosil.l"
4917 {YY_PRINT; return(MATRICESSTART);}
4918  YY_BREAK
4919 case 228:
4920 /* rule 228 can match eol */
4922 #line 439 "../../../../OS/src/OSParsers/OSParseosil.l"
4923 {YY_PRINT; return(MATRICESEND);}
4924  YY_BREAK
4925 case 229:
4926 /* rule 229 can match eol */
4928 #line 440 "../../../../OS/src/OSParsers/OSParseosil.l"
4929 {YY_PRINT; return(MATRIXSTART);}
4930  YY_BREAK
4931 case 230:
4932 /* rule 230 can match eol */
4934 #line 441 "../../../../OS/src/OSParsers/OSParseosil.l"
4935 {YY_PRINT; return(MATRIXEND);}
4936  YY_BREAK
4937 case 231:
4938 /* rule 231 can match eol */
4940 #line 442 "../../../../OS/src/OSParsers/OSParseosil.l"
4941 {YY_PRINT; return(BASEMATRIXSTART);}
4942  YY_BREAK
4943 case 232:
4944 /* rule 232 can match eol */
4946 #line 443 "../../../../OS/src/OSParsers/OSParseosil.l"
4947 {YY_PRINT; return(BASEMATRIXEND);}
4948  YY_BREAK
4949 case 233:
4950 /* rule 233 can match eol */
4952 #line 444 "../../../../OS/src/OSParsers/OSParseosil.l"
4953 {YY_PRINT; return(BLOCKSSTART);}
4954  YY_BREAK
4955 case 234:
4956 /* rule 234 can match eol */
4958 #line 445 "../../../../OS/src/OSParsers/OSParseosil.l"
4959 {YY_PRINT; return(BLOCKSEND);}
4960  YY_BREAK
4961 case 235:
4962 /* rule 235 can match eol */
4964 #line 446 "../../../../OS/src/OSParsers/OSParseosil.l"
4965 {YY_PRINT; return(BLOCKSTART);}
4966  YY_BREAK
4967 case 236:
4968 /* rule 236 can match eol */
4970 #line 447 "../../../../OS/src/OSParsers/OSParseosil.l"
4971 {YY_PRINT; return(BLOCKEND);}
4972  YY_BREAK
4973 case 237:
4974 /* rule 237 can match eol */
4976 #line 448 "../../../../OS/src/OSParsers/OSParseosil.l"
4977 {YY_PRINT; return(ELEMENTSSTART);}
4978  YY_BREAK
4979 case 238:
4980 /* rule 238 can match eol */
4982 #line 449 "../../../../OS/src/OSParsers/OSParseosil.l"
4983 {YY_PRINT; return(ELEMENTSEND);}
4984  YY_BREAK
4985 case 239:
4986 /* rule 239 can match eol */
4988 #line 450 "../../../../OS/src/OSParsers/OSParseosil.l"
4989 {YY_PRINT; return(CONSTANTELEMENTSSTART);}
4990  YY_BREAK
4991 case 240:
4992 /* rule 240 can match eol */
4994 #line 451 "../../../../OS/src/OSParsers/OSParseosil.l"
4995 {YY_PRINT; return(CONSTANTELEMENTSEND);}
4996  YY_BREAK
4997 case 241:
4998 /* rule 241 can match eol */
5000 #line 452 "../../../../OS/src/OSParsers/OSParseosil.l"
5002  YY_BREAK
5003 case 242:
5004 /* rule 242 can match eol */
5006 #line 453 "../../../../OS/src/OSParsers/OSParseosil.l"
5008  YY_BREAK
5009 case 243:
5010 /* rule 243 can match eol */
5012 #line 454 "../../../../OS/src/OSParsers/OSParseosil.l"
5014  YY_BREAK
5015 case 244:
5016 /* rule 244 can match eol */
5018 #line 455 "../../../../OS/src/OSParsers/OSParseosil.l"
5020  YY_BREAK
5021 case 245:
5022 /* rule 245 can match eol */
5024 #line 456 "../../../../OS/src/OSParsers/OSParseosil.l"
5026  YY_BREAK
5027 case 246:
5028 /* rule 246 can match eol */
5030 #line 457 "../../../../OS/src/OSParsers/OSParseosil.l"
5032  YY_BREAK
5033 case 247:
5034 /* rule 247 can match eol */
5036 #line 458 "../../../../OS/src/OSParsers/OSParseosil.l"
5037 {YY_PRINT; return(LINEARELEMENTSSTART);}
5038  YY_BREAK
5039 case 248:
5040 /* rule 248 can match eol */
5042 #line 459 "../../../../OS/src/OSParsers/OSParseosil.l"
5043 {YY_PRINT; return(LINEARELEMENTSEND);}
5044  YY_BREAK
5045 case 249:
5046 /* rule 249 can match eol */
5048 #line 460 "../../../../OS/src/OSParsers/OSParseosil.l"
5049 {YY_PRINT; return(GENERALELEMENTSSTART);}
5050  YY_BREAK
5051 case 250:
5052 /* rule 250 can match eol */
5054 #line 461 "../../../../OS/src/OSParsers/OSParseosil.l"
5055 {YY_PRINT; return(GENERALELEMENTSEND);}
5056  YY_BREAK
5057 case 251:
5058 /* rule 251 can match eol */
5060 #line 462 "../../../../OS/src/OSParsers/OSParseosil.l"
5062  YY_BREAK
5063 case 252:
5064 /* rule 252 can match eol */
5066 #line 463 "../../../../OS/src/OSParsers/OSParseosil.l"
5068  YY_BREAK
5069 case 253:
5070 /* rule 253 can match eol */
5072 #line 465 "../../../../OS/src/OSParsers/OSParseosil.l"
5073 {YY_PRINT; return(STARTVECTORSTART);}
5074  YY_BREAK
5075 case 254:
5076 /* rule 254 can match eol */
5078 #line 466 "../../../../OS/src/OSParsers/OSParseosil.l"
5079 {YY_PRINT; return(STARTVECTOREND);}
5080  YY_BREAK
5081 case 255:
5082 /* rule 255 can match eol */
5084 #line 467 "../../../../OS/src/OSParsers/OSParseosil.l"
5085 {YY_PRINT; return(INDEXSTART);}
5086  YY_BREAK
5087 case 256:
5088 /* rule 256 can match eol */
5090 #line 468 "../../../../OS/src/OSParsers/OSParseosil.l"
5091 {YY_PRINT; return(INDEXEND);}
5092  YY_BREAK
5093 case 257:
5094 /* rule 257 can match eol */
5096 #line 469 "../../../../OS/src/OSParsers/OSParseosil.l"
5097 {YY_PRINT; return(VALUESTART);}
5098  YY_BREAK
5099 case 258:
5100 /* rule 258 can match eol */
5102 #line 470 "../../../../OS/src/OSParsers/OSParseosil.l"
5103 {YY_PRINT; return(VALUEEND);}
5104  YY_BREAK
5105 case 259:
5106 /* rule 259 can match eol */
5108 #line 471 "../../../../OS/src/OSParsers/OSParseosil.l"
5109 {YY_PRINT; return(NONZEROSSTART);}
5110  YY_BREAK
5111 case 260:
5112 /* rule 260 can match eol */
5114 #line 472 "../../../../OS/src/OSParsers/OSParseosil.l"
5115 {YY_PRINT; return(NONZEROSEND);}
5116  YY_BREAK
5117 case 261:
5118 /* rule 261 can match eol */
5120 #line 473 "../../../../OS/src/OSParsers/OSParseosil.l"
5121 {YY_PRINT; return(INDEXESSTART);}
5122  YY_BREAK
5123 case 262:
5124 /* rule 262 can match eol */
5126 #line 474 "../../../../OS/src/OSParsers/OSParseosil.l"
5127 {YY_PRINT; return(INDEXESEND);}
5128  YY_BREAK
5129 case 263:
5130 /* rule 263 can match eol */
5132 #line 475 "../../../../OS/src/OSParsers/OSParseosil.l"
5133 {YY_PRINT; return(VALUESSTART);}
5134  YY_BREAK
5135 case 264:
5136 /* rule 264 can match eol */
5138 #line 476 "../../../../OS/src/OSParsers/OSParseosil.l"
5139 {YY_PRINT; return(VALUESEND);}
5140  YY_BREAK
5141 case 265:
5142 /* rule 265 can match eol */
5144 #line 477 "../../../../OS/src/OSParsers/OSParseosil.l"
5145 {YY_PRINT; return(COLOFFSETSTART);}
5146  YY_BREAK
5147 case 266:
5148 /* rule 266 can match eol */
5150 #line 478 "../../../../OS/src/OSParsers/OSParseosil.l"
5151 {YY_PRINT; return(COLOFFSETEND);}
5152  YY_BREAK
5153 case 267:
5154 /* rule 267 can match eol */
5156 #line 479 "../../../../OS/src/OSParsers/OSParseosil.l"
5157 {YY_PRINT; return(ROWOFFSETSTART);}
5158  YY_BREAK
5159 case 268:
5160 /* rule 268 can match eol */
5162 #line 480 "../../../../OS/src/OSParsers/OSParseosil.l"
5163 {YY_PRINT; return(ROWOFFSETEND);}
5164  YY_BREAK
5165 case 269:
5166 /* rule 269 can match eol */
5168 #line 481 "../../../../OS/src/OSParsers/OSParseosil.l"
5169 {YY_PRINT; return(VARIDXSTART);}
5170  YY_BREAK
5171 case 270:
5172 /* rule 270 can match eol */
5174 #line 482 "../../../../OS/src/OSParsers/OSParseosil.l"
5175 {YY_PRINT; return(VARIDXEND);}
5176  YY_BREAK
5177 case 271:
5178 /* rule 271 can match eol */
5180 #line 483 "../../../../OS/src/OSParsers/OSParseosil.l"
5181 {YY_PRINT; return(TRANSFORMATIONSTART);}
5182  YY_BREAK
5183 case 272:
5184 /* rule 272 can match eol */
5186 #line 484 "../../../../OS/src/OSParsers/OSParseosil.l"
5187 {YY_PRINT; return(TRANSFORMATIONEND);}
5188  YY_BREAK
5189 /* Patterns for <matrices> element */
5190 case 273:
5191 /* rule 273 can match eol */
5193 #line 489 "../../../../OS/src/OSParsers/OSParseosil.l"
5194 {YY_PRINT; return(MATRIXPROGRAMMINGSTART);}
5195  YY_BREAK
5196 case 274:
5197 /* rule 274 can match eol */
5199 #line 490 "../../../../OS/src/OSParsers/OSParseosil.l"
5200 {YY_PRINT; return(MATRIXPROGRAMMINGEND);}
5201  YY_BREAK
5202 case 275:
5203 /* rule 275 can match eol */
5205 #line 491 "../../../../OS/src/OSParsers/OSParseosil.l"
5206 {YY_PRINT; return(MATRIXVARIABLESSTART);}
5207  YY_BREAK
5208 case 276:
5209 /* rule 276 can match eol */
5211 #line 492 "../../../../OS/src/OSParsers/OSParseosil.l"
5212 {YY_PRINT; return(MATRIXVARIABLESEND);}
5213  YY_BREAK
5214 case 277:
5215 /* rule 277 can match eol */
5217 #line 493 "../../../../OS/src/OSParsers/OSParseosil.l"
5218 {YY_PRINT; return(MATRIXVARSTART);}
5219  YY_BREAK
5220 case 278:
5221 /* rule 278 can match eol */
5223 #line 494 "../../../../OS/src/OSParsers/OSParseosil.l"
5224 {YY_PRINT; return(MATRIXVAREND);}
5225  YY_BREAK
5226 case 279:
5227 /* rule 279 can match eol */
5229 #line 495 "../../../../OS/src/OSParsers/OSParseosil.l"
5230 {YY_PRINT; return(MATRIXOBJECTIVESSTART);}
5231  YY_BREAK
5232 case 280:
5233 /* rule 280 can match eol */
5235 #line 496 "../../../../OS/src/OSParsers/OSParseosil.l"
5236 {YY_PRINT; return(MATRIXOBJECTIVESEND);}
5237  YY_BREAK
5238 case 281:
5239 /* rule 281 can match eol */
5241 #line 497 "../../../../OS/src/OSParsers/OSParseosil.l"
5242 {YY_PRINT; return(MATRIXOBJSTART);}
5243  YY_BREAK
5244 case 282:
5245 /* rule 282 can match eol */
5247 #line 498 "../../../../OS/src/OSParsers/OSParseosil.l"
5248 {YY_PRINT; return(MATRIXOBJEND);}
5249  YY_BREAK
5250 case 283:
5251 /* rule 283 can match eol */
5253 #line 499 "../../../../OS/src/OSParsers/OSParseosil.l"
5254 {YY_PRINT; return(MATRIXCONSTRAINTSSTART);}
5255  YY_BREAK
5256 case 284:
5257 /* rule 284 can match eol */
5259 #line 500 "../../../../OS/src/OSParsers/OSParseosil.l"
5260 {YY_PRINT; return(MATRIXCONSTRAINTSEND);}
5261  YY_BREAK
5262 case 285:
5263 /* rule 285 can match eol */
5265 #line 501 "../../../../OS/src/OSParsers/OSParseosil.l"
5266 {YY_PRINT; return(MATRIXCONSTART);}
5267  YY_BREAK
5268 case 286:
5269 /* rule 286 can match eol */
5271 #line 502 "../../../../OS/src/OSParsers/OSParseosil.l"
5272 {YY_PRINT; return(MATRIXCONEND);}
5273  YY_BREAK
5274 /* Other patterns shared among all three major schemas */
5275 case 287:
5276 /* rule 287 can match eol */
5278 #line 506 "../../../../OS/src/OSParsers/OSParseosil.l"
5279 {YY_PRINT; return(CONSTART);}
5280  YY_BREAK
5281 case 288:
5282 /* rule 288 can match eol */
5284 #line 507 "../../../../OS/src/OSParsers/OSParseosil.l"
5285 {YY_PRINT; return(CONEND);}
5286  YY_BREAK
5287 case 289:
5288 /* rule 289 can match eol */
5290 #line 508 "../../../../OS/src/OSParsers/OSParseosil.l"
5291 {YY_PRINT; return(CONSTRAINTSSTART);}
5292  YY_BREAK
5293 case 290:
5294 /* rule 290 can match eol */
5296 #line 509 "../../../../OS/src/OSParsers/OSParseosil.l"
5297 {YY_PRINT; return(CONSTRAINTSEND);}
5298  YY_BREAK
5299 case 291:
5300 /* rule 291 can match eol */
5302 #line 510 "../../../../OS/src/OSParsers/OSParseosil.l"
5303 {YY_PRINT; return(OBJSTART);}
5304  YY_BREAK
5305 case 292:
5306 /* rule 292 can match eol */
5308 #line 511 "../../../../OS/src/OSParsers/OSParseosil.l"
5309 {YY_PRINT; return(OBJEND);}
5310  YY_BREAK
5311 case 293:
5312 /* rule 293 can match eol */
5314 #line 512 "../../../../OS/src/OSParsers/OSParseosil.l"
5315 {YY_PRINT; return(OBJECTIVESSTART);}
5316  YY_BREAK
5317 case 294:
5318 /* rule 294 can match eol */
5320 #line 513 "../../../../OS/src/OSParsers/OSParseosil.l"
5321 {YY_PRINT; return(OBJECTIVESEND);}
5322  YY_BREAK
5323 case 295:
5324 /* rule 295 can match eol */
5326 #line 514 "../../../../OS/src/OSParsers/OSParseosil.l"
5327 {YY_PRINT; return(VARSTART);}
5328  YY_BREAK
5329 case 296:
5330 /* rule 296 can match eol */
5332 #line 515 "../../../../OS/src/OSParsers/OSParseosil.l"
5333 {YY_PRINT; return(VAREND);}
5334  YY_BREAK
5335 case 297:
5336 /* rule 297 can match eol */
5338 #line 516 "../../../../OS/src/OSParsers/OSParseosil.l"
5339 {YY_PRINT; return(VARIABLESSTART);}
5340  YY_BREAK
5341 case 298:
5342 /* rule 298 can match eol */
5344 #line 517 "../../../../OS/src/OSParsers/OSParseosil.l"
5345 {YY_PRINT; return(VARIABLESEND);}
5346  YY_BREAK
5347 /* The remaining patterns are shared between OSoL and OSrL.
5348  Since they have similar structure, the patterns are grouped by schema elements */
5349 /* Patterns for major headings in OSoL and OSrL */
5350 case 299:
5351 /* rule 299 can match eol */
5353 #line 525 "../../../../OS/src/OSParsers/OSParseosil.l"
5354 {YY_PRINT; return(GENERALSTART);}
5355  YY_BREAK
5356 case 300:
5357 /* rule 300 can match eol */
5359 #line 526 "../../../../OS/src/OSParsers/OSParseosil.l"
5360 {YY_PRINT; return(GENERALEND);}
5361  YY_BREAK
5362 case 301:
5363 /* rule 301 can match eol */
5365 #line 528 "../../../../OS/src/OSParsers/OSParseosil.l"
5366 {YY_PRINT; return(SYSTEMSTART);}
5367  YY_BREAK
5368 case 302:
5369 /* rule 302 can match eol */
5371 #line 529 "../../../../OS/src/OSParsers/OSParseosil.l"
5372 {YY_PRINT; return(SYSTEMEND);}
5373  YY_BREAK
5374 case 303:
5375 /* rule 303 can match eol */
5377 #line 531 "../../../../OS/src/OSParsers/OSParseosil.l"
5378 {YY_PRINT; return(SERVICESTART);}
5379  YY_BREAK
5380 case 304:
5381 /* rule 304 can match eol */
5383 #line 532 "../../../../OS/src/OSParsers/OSParseosil.l"
5384 {YY_PRINT; return(SERVICEEND);}
5385  YY_BREAK
5386 case 305:
5387 /* rule 305 can match eol */
5389 #line 534 "../../../../OS/src/OSParsers/OSParseosil.l"
5390 {YY_PRINT; return(JOBSTART);}
5391  YY_BREAK
5392 case 306:
5393 /* rule 306 can match eol */
5395 #line 535 "../../../../OS/src/OSParsers/OSParseosil.l"
5396 {YY_PRINT; return(JOBEND);}
5397  YY_BREAK
5398 case 307:
5399 /* rule 307 can match eol */
5401 #line 537 "../../../../OS/src/OSParsers/OSParseosil.l"
5402 {YY_PRINT; return(OPTIMIZATIONSTART);}
5403  YY_BREAK
5404 case 308:
5405 /* rule 308 can match eol */
5407 #line 538 "../../../../OS/src/OSParsers/OSParseosil.l"
5408 {YY_PRINT; return(OPTIMIZATIONEND);}
5409  YY_BREAK
5410 /* Patterns for representing a basis in LP */
5411 case 309:
5412 /* rule 309 can match eol */
5414 #line 542 "../../../../OS/src/OSParsers/OSParseosil.l"
5415 {YY_PRINT; return(ATEQUALITYSTART);}
5416  YY_BREAK
5417 case 310:
5418 /* rule 310 can match eol */
5420 #line 543 "../../../../OS/src/OSParsers/OSParseosil.l"
5421 {YY_PRINT; return(ATEQUALITYEND);}
5422  YY_BREAK
5423 case 311:
5424 /* rule 311 can match eol */
5426 #line 544 "../../../../OS/src/OSParsers/OSParseosil.l"
5427 {YY_PRINT; return(ATLOWERSTART);}
5428  YY_BREAK
5429 case 312:
5430 /* rule 312 can match eol */
5432 #line 545 "../../../../OS/src/OSParsers/OSParseosil.l"
5433 {YY_PRINT; return(ATLOWEREND);}
5434  YY_BREAK
5435 case 313:
5436 /* rule 313 can match eol */
5438 #line 546 "../../../../OS/src/OSParsers/OSParseosil.l"
5439 {YY_PRINT; return(ATUPPERSTART);}
5440  YY_BREAK
5441 case 314:
5442 /* rule 314 can match eol */
5444 #line 547 "../../../../OS/src/OSParsers/OSParseosil.l"
5445 {YY_PRINT; return(ATUPPEREND);}
5446  YY_BREAK
5447 case 315:
5448 /* rule 315 can match eol */
5450 #line 548 "../../../../OS/src/OSParsers/OSParseosil.l"
5451 {YY_PRINT; return(BASICSTART);}
5452  YY_BREAK
5453 case 316:
5454 /* rule 316 can match eol */
5456 #line 549 "../../../../OS/src/OSParsers/OSParseosil.l"
5457 {YY_PRINT; return(BASICEND);}
5458  YY_BREAK
5459 case 317:
5460 /* rule 317 can match eol */
5462 #line 550 "../../../../OS/src/OSParsers/OSParseosil.l"
5463 {YY_PRINT; return(ISFREESTART);}
5464  YY_BREAK
5465 case 318:
5466 /* rule 318 can match eol */
5468 #line 551 "../../../../OS/src/OSParsers/OSParseosil.l"
5469 {YY_PRINT; return(ISFREEEND);}
5470  YY_BREAK
5471 case 319:
5472 /* rule 319 can match eol */
5474 #line 552 "../../../../OS/src/OSParsers/OSParseosil.l"
5475 {YY_PRINT; return(SUPERBASICSTART);}
5476  YY_BREAK
5477 case 320:
5478 /* rule 320 can match eol */
5480 #line 553 "../../../../OS/src/OSParsers/OSParseosil.l"
5481 {YY_PRINT; return(SUPERBASICEND);}
5482  YY_BREAK
5483 case 321:
5484 /* rule 321 can match eol */
5486 #line 554 "../../../../OS/src/OSParsers/OSParseosil.l"
5487 {YY_PRINT; return(UNKNOWNSTART);}
5488  YY_BREAK
5489 case 322:
5490 /* rule 322 can match eol */
5492 #line 555 "../../../../OS/src/OSParsers/OSParseosil.l"
5493 {YY_PRINT; return(UNKNOWNEND);}
5494  YY_BREAK
5495 /* Patterns for the <general> element */
5496 case 323:
5497 /* rule 323 can match eol */
5499 #line 559 "../../../../OS/src/OSParsers/OSParseosil.l"
5500 {YY_PRINT; return(SERVICEURISTART);}
5501  YY_BREAK
5502 case 324:
5503 /* rule 324 can match eol */
5505 #line 560 "../../../../OS/src/OSParsers/OSParseosil.l"
5506 {YY_PRINT; return(SERVICEURIEND);}
5507  YY_BREAK
5508 case 325:
5509 /* rule 325 can match eol */
5511 #line 561 "../../../../OS/src/OSParsers/OSParseosil.l"
5512 {YY_PRINT; return(SERVICENAMESTART);}
5513  YY_BREAK
5514 case 326:
5515 /* rule 326 can match eol */
5517 #line 562 "../../../../OS/src/OSParsers/OSParseosil.l"
5518 {YY_PRINT; return(SERVICENAMEEND);}
5519  YY_BREAK
5520 case 327:
5521 /* rule 327 can match eol */
5523 #line 563 "../../../../OS/src/OSParsers/OSParseosil.l"
5524 {YY_PRINT; return(INSTANCENAMESTART);}
5525  YY_BREAK
5526 case 328:
5527 /* rule 328 can match eol */
5529 #line 564 "../../../../OS/src/OSParsers/OSParseosil.l"
5530 {YY_PRINT; return(INSTANCENAMEEND);}
5531  YY_BREAK
5532 case 329:
5533 /* rule 329 can match eol */
5535 #line 565 "../../../../OS/src/OSParsers/OSParseosil.l"
5536 {YY_PRINT; return(JOBIDSTART);}
5537  YY_BREAK
5538 case 330:
5539 /* rule 330 can match eol */
5541 #line 566 "../../../../OS/src/OSParsers/OSParseosil.l"
5542 {YY_PRINT; return(JOBIDEND);}
5543  YY_BREAK
5544 /* Other patterns */
5545 case 331:
5546 /* rule 331 can match eol */
5548 #line 570 "../../../../OS/src/OSParsers/OSParseosil.l"
5549 {YY_PRINT; return(ENUMERATIONSTART);}
5550  YY_BREAK
5551 case 332:
5552 /* rule 332 can match eol */
5554 #line 571 "../../../../OS/src/OSParsers/OSParseosil.l"
5555 {YY_PRINT; return(ENUMERATIONEND);}
5556  YY_BREAK
5557 case 333:
5558 /* rule 333 can match eol */
5560 #line 572 "../../../../OS/src/OSParsers/OSParseosil.l"
5561 {YY_PRINT; return(OTHERSTART);}
5562  YY_BREAK
5563 case 334:
5564 /* rule 334 can match eol */
5566 #line 573 "../../../../OS/src/OSParsers/OSParseosil.l"
5567 {YY_PRINT; return(OTHEREND);}
5568  YY_BREAK
5569 /* include file OSParseosnl.l.patterns --- patterns for OSnL schema elements */
5570 /* patterns for <nonlinearExpressions> */
5571 case 335:
5572 /* rule 335 can match eol */
5574 #line 579 "../../../../OS/src/OSParsers/OSParseosil.l"
5576  YY_BREAK
5577 case 336:
5578 /* rule 336 can match eol */
5580 #line 580 "../../../../OS/src/OSParsers/OSParseosil.l"
5582  YY_BREAK
5583 case 337:
5584 /* rule 337 can match eol */
5586 #line 581 "../../../../OS/src/OSParsers/OSParseosil.l"
5588  YY_BREAK
5589 case 338:
5590 /* rule 338 can match eol */
5592 #line 582 "../../../../OS/src/OSParsers/OSParseosil.l"
5593 {YY_PRINT; return(NLSTART);}
5594  YY_BREAK
5595 case 339:
5596 /* rule 339 can match eol */
5598 #line 583 "../../../../OS/src/OSParsers/OSParseosil.l"
5599 {YY_PRINT; return(NLEND);}
5600  YY_BREAK
5601 case 340:
5602 /* rule 340 can match eol */
5604 #line 585 "../../../../OS/src/OSParsers/OSParseosil.l"
5605 {YY_PRINT; return(TIMESSTART);}
5606  YY_BREAK
5607 case 341:
5608 /* rule 341 can match eol */
5610 #line 586 "../../../../OS/src/OSParsers/OSParseosil.l"
5611 {YY_PRINT; return(TIMESEND);}
5612  YY_BREAK
5613 case 342:
5614 /* rule 342 can match eol */
5616 #line 587 "../../../../OS/src/OSParsers/OSParseosil.l"
5617 {YY_PRINT; return(DIVIDESTART);}
5618  YY_BREAK
5619 case 343:
5620 /* rule 343 can match eol */
5622 #line 588 "../../../../OS/src/OSParsers/OSParseosil.l"
5623 {YY_PRINT; return(DIVIDEEND);}
5624  YY_BREAK
5625 case 344:
5626 /* rule 344 can match eol */
5628 #line 589 "../../../../OS/src/OSParsers/OSParseosil.l"
5629 {YY_PRINT; return(PLUSSTART);}
5630  YY_BREAK
5631 case 345:
5632 /* rule 345 can match eol */
5634 #line 590 "../../../../OS/src/OSParsers/OSParseosil.l"
5635 {YY_PRINT; return(PLUSEND);}
5636  YY_BREAK
5637 case 346:
5638 /* rule 346 can match eol */
5640 #line 591 "../../../../OS/src/OSParsers/OSParseosil.l"
5641 {YY_PRINT; return(MINUSSTART);}
5642  YY_BREAK
5643 case 347:
5644 /* rule 347 can match eol */
5646 #line 592 "../../../../OS/src/OSParsers/OSParseosil.l"
5647 {YY_PRINT; return(MINUSEND);}
5648  YY_BREAK
5649 case 348:
5650 /* rule 348 can match eol */
5652 #line 593 "../../../../OS/src/OSParsers/OSParseosil.l"
5653 {YY_PRINT; return(NEGATESTART);}
5654  YY_BREAK
5655 case 349:
5656 /* rule 349 can match eol */
5658 #line 594 "../../../../OS/src/OSParsers/OSParseosil.l"
5659 {YY_PRINT; return(NEGATEEND);}
5660  YY_BREAK
5661 case 350:
5662 /* rule 350 can match eol */
5664 #line 595 "../../../../OS/src/OSParsers/OSParseosil.l"
5665 {YY_PRINT; return(POWERSTART);}
5666  YY_BREAK
5667 case 351:
5668 /* rule 351 can match eol */
5670 #line 596 "../../../../OS/src/OSParsers/OSParseosil.l"
5671 {YY_PRINT; return(POWEREND);}
5672  YY_BREAK
5673 case 352:
5674 /* rule 352 can match eol */
5676 #line 597 "../../../../OS/src/OSParsers/OSParseosil.l"
5677 {YY_PRINT; return(LNSTART);}
5678  YY_BREAK
5679 case 353:
5680 /* rule 353 can match eol */
5682 #line 598 "../../../../OS/src/OSParsers/OSParseosil.l"
5683 {YY_PRINT; return(LNEND);}
5684  YY_BREAK
5685 case 354:
5686 /* rule 354 can match eol */
5688 #line 599 "../../../../OS/src/OSParsers/OSParseosil.l"
5689 {YY_PRINT; return(SQRTSTART);}
5690  YY_BREAK
5691 case 355:
5692 /* rule 355 can match eol */
5694 #line 600 "../../../../OS/src/OSParsers/OSParseosil.l"
5695 {YY_PRINT; return(SQRTEND);}
5696  YY_BREAK
5697 case 356:
5698 /* rule 356 can match eol */
5700 #line 601 "../../../../OS/src/OSParsers/OSParseosil.l"
5701 {YY_PRINT; return(SQRTSTART);}
5702  YY_BREAK
5703 case 357:
5704 /* rule 357 can match eol */
5706 #line 602 "../../../../OS/src/OSParsers/OSParseosil.l"
5707 {YY_PRINT; return(SQRTEND);}
5708  YY_BREAK
5709 case 358:
5710 /* rule 358 can match eol */
5712 #line 603 "../../../../OS/src/OSParsers/OSParseosil.l"
5713 {YY_PRINT; return(SQUARESTART);}
5714  YY_BREAK
5715 case 359:
5716 /* rule 359 can match eol */
5718 #line 604 "../../../../OS/src/OSParsers/OSParseosil.l"
5719 {YY_PRINT; return(SQUAREEND);}
5720  YY_BREAK
5721 case 360:
5722 /* rule 360 can match eol */
5724 #line 605 "../../../../OS/src/OSParsers/OSParseosil.l"
5725 {YY_PRINT; return(SINSTART);}
5726  YY_BREAK
5727 case 361:
5728 /* rule 361 can match eol */
5730 #line 606 "../../../../OS/src/OSParsers/OSParseosil.l"
5731 {YY_PRINT; return(SINEND);}
5732  YY_BREAK
5733 case 362:
5734 /* rule 362 can match eol */
5736 #line 607 "../../../../OS/src/OSParsers/OSParseosil.l"
5737 {YY_PRINT; return(COSSTART);}
5738  YY_BREAK
5739 case 363:
5740 /* rule 363 can match eol */
5742 #line 608 "../../../../OS/src/OSParsers/OSParseosil.l"
5743 {YY_PRINT; return(COSEND);}
5744  YY_BREAK
5745 case 364:
5746 /* rule 364 can match eol */
5748 #line 609 "../../../../OS/src/OSParsers/OSParseosil.l"
5749 {YY_PRINT; return(EXPSTART);}
5750  YY_BREAK
5751 case 365:
5752 /* rule 365 can match eol */
5754 #line 610 "../../../../OS/src/OSParsers/OSParseosil.l"
5755 {YY_PRINT; return(EXPEND);}
5756  YY_BREAK
5757 case 366:
5758 /* rule 366 can match eol */
5760 #line 611 "../../../../OS/src/OSParsers/OSParseosil.l"
5761 {YY_PRINT; return(ABSSTART);}
5762  YY_BREAK
5763 case 367:
5764 /* rule 367 can match eol */
5766 #line 612 "../../../../OS/src/OSParsers/OSParseosil.l"
5767 {YY_PRINT; return(ABSEND);}
5768  YY_BREAK
5769 case 368:
5770 /* rule 368 can match eol */
5772 #line 613 "../../../../OS/src/OSParsers/OSParseosil.l"
5773 {YY_PRINT; return(ERFSTART);}
5774  YY_BREAK
5775 case 369:
5776 /* rule 369 can match eol */
5778 #line 614 "../../../../OS/src/OSParsers/OSParseosil.l"
5779 {YY_PRINT; return(ERFEND);}
5780  YY_BREAK
5781 case 370:
5782 /* rule 370 can match eol */
5784 #line 615 "../../../../OS/src/OSParsers/OSParseosil.l"
5785 {YY_PRINT; return(IFSTART);}
5786  YY_BREAK
5787 case 371:
5788 /* rule 371 can match eol */
5790 #line 616 "../../../../OS/src/OSParsers/OSParseosil.l"
5791 {YY_PRINT; return(IFEND);}
5792  YY_BREAK
5793 case 372:
5794 /* rule 372 can match eol */
5796 #line 617 "../../../../OS/src/OSParsers/OSParseosil.l"
5797 {YY_PRINT; return(MAXSTART);}
5798  YY_BREAK
5799 case 373:
5800 /* rule 373 can match eol */
5802 #line 618 "../../../../OS/src/OSParsers/OSParseosil.l"
5803 {YY_PRINT; return(MAXEND);}
5804  YY_BREAK
5805 case 374:
5806 /* rule 374 can match eol */
5808 #line 619 "../../../../OS/src/OSParsers/OSParseosil.l"
5809 {YY_PRINT; return(MINSTART);}
5810  YY_BREAK
5811 case 375:
5812 /* rule 375 can match eol */
5814 #line 620 "../../../../OS/src/OSParsers/OSParseosil.l"
5815 {YY_PRINT; return(MINEND);}
5816  YY_BREAK
5817 case 376:
5818 /* rule 376 can match eol */
5820 #line 621 "../../../../OS/src/OSParsers/OSParseosil.l"
5821 {YY_PRINT; return(SUMSTART);}
5822  YY_BREAK
5823 case 377:
5824 /* rule 377 can match eol */
5826 #line 622 "../../../../OS/src/OSParsers/OSParseosil.l"
5827 {YY_PRINT; return(SUMEND);}
5828  YY_BREAK
5829 case 378:
5830 /* rule 378 can match eol */
5832 #line 623 "../../../../OS/src/OSParsers/OSParseosil.l"
5833 {YY_PRINT; return(ALLDIFFSTART);}
5834  YY_BREAK
5835 case 379:
5836 /* rule 379 can match eol */
5838 #line 624 "../../../../OS/src/OSParsers/OSParseosil.l"
5839 {YY_PRINT; return(ALLDIFFEND);}
5840  YY_BREAK
5841 case 380:
5842 /* rule 380 can match eol */
5844 #line 625 "../../../../OS/src/OSParsers/OSParseosil.l"
5845 {YY_PRINT; return(PRODUCTSTART);}
5846  YY_BREAK
5847 case 381:
5848 /* rule 381 can match eol */
5850 #line 626 "../../../../OS/src/OSParsers/OSParseosil.l"
5851 {YY_PRINT; return(PRODUCTEND);}
5852  YY_BREAK
5853 case 382:
5854 /* rule 382 can match eol */
5856 #line 627 "../../../../OS/src/OSParsers/OSParseosil.l"
5857 {YY_PRINT; return(NUMBERSTART);}
5858  YY_BREAK
5859 case 383:
5860 /* rule 383 can match eol */
5862 #line 628 "../../../../OS/src/OSParsers/OSParseosil.l"
5863 {YY_PRINT; return(NUMBEREND);}
5864  YY_BREAK
5865 case 384:
5866 /* rule 384 can match eol */
5868 #line 629 "../../../../OS/src/OSParsers/OSParseosil.l"
5869 {YY_PRINT; return(ESTART);}
5870  YY_BREAK
5871 case 385:
5872 /* rule 385 can match eol */
5874 #line 630 "../../../../OS/src/OSParsers/OSParseosil.l"
5875 {YY_PRINT; return(EEND);}
5876  YY_BREAK
5877 case 386:
5878 /* rule 386 can match eol */
5880 #line 631 "../../../../OS/src/OSParsers/OSParseosil.l"
5881 {YY_PRINT; return(PISTART);}
5882  YY_BREAK
5883 case 387:
5884 /* rule 387 can match eol */
5886 #line 632 "../../../../OS/src/OSParsers/OSParseosil.l"
5887 {YY_PRINT; return(PIEND);}
5888  YY_BREAK
5889 case 388:
5890 /* rule 388 can match eol */
5892 #line 633 "../../../../OS/src/OSParsers/OSParseosil.l"
5893 {YY_PRINT; return(VARIABLESTART);}
5894  YY_BREAK
5895 case 389:
5896 /* rule 389 can match eol */
5898 #line 634 "../../../../OS/src/OSParsers/OSParseosil.l"
5899 {YY_PRINT; return(VARIABLEEND);}
5900  YY_BREAK
5901 /* patterns for <matrixExpressions> */
5902 case 390:
5903 /* rule 390 can match eol */
5905 #line 638 "../../../../OS/src/OSParsers/OSParseosil.l"
5906 {YY_PRINT; return(MATRIXEXPRESSIONSSTART);}
5907  YY_BREAK
5908 case 391:
5909 /* rule 391 can match eol */
5911 #line 639 "../../../../OS/src/OSParsers/OSParseosil.l"
5912 {YY_PRINT; return(MATRIXEXPRESSIONSEND);}
5913  YY_BREAK
5914 case 392:
5915 /* rule 392 can match eol */
5917 #line 640 "../../../../OS/src/OSParsers/OSParseosil.l"
5918 {YY_PRINT; return(NUMBEROFEXPR);}
5919  YY_BREAK
5920 case 393:
5921 /* rule 393 can match eol */
5923 #line 641 "../../../../OS/src/OSParsers/OSParseosil.l"
5924 {YY_PRINT; return(EXPRSTART);}
5925  YY_BREAK
5926 case 394:
5927 /* rule 394 can match eol */
5929 #line 642 "../../../../OS/src/OSParsers/OSParseosil.l"
5930 {YY_PRINT; return(EXPREND);}
5931  YY_BREAK
5932 case 395:
5933 /* rule 395 can match eol */
5935 #line 644 "../../../../OS/src/OSParsers/OSParseosil.l"
5936 {YY_PRINT; return(MATRIXDETERMINANTSTART);}
5937  YY_BREAK
5938 case 396:
5939 /* rule 396 can match eol */
5941 #line 645 "../../../../OS/src/OSParsers/OSParseosil.l"
5942 {YY_PRINT; return(MATRIXDETERMINANTEND);}
5943  YY_BREAK
5944 case 397:
5945 /* rule 397 can match eol */
5947 #line 646 "../../../../OS/src/OSParsers/OSParseosil.l"
5948 {YY_PRINT; return(MATRIXTRACESTART);}
5949  YY_BREAK
5950 case 398:
5951 /* rule 398 can match eol */
5953 #line 647 "../../../../OS/src/OSParsers/OSParseosil.l"
5954 {YY_PRINT; return(MATRIXTRACEEND);}
5955  YY_BREAK
5956 case 399:
5957 /* rule 399 can match eol */
5959 #line 648 "../../../../OS/src/OSParsers/OSParseosil.l"
5960 {YY_PRINT; return(MATRIXTOSCALARSTART);}
5961  YY_BREAK
5962 case 400:
5963 /* rule 400 can match eol */
5965 #line 649 "../../../../OS/src/OSParsers/OSParseosil.l"
5966 {YY_PRINT; return(MATRIXTOSCALAREND);}
5967  YY_BREAK
5968 /* patterns for <matrixTerms> in <matrixConstraints> and <matrixObjectives>*/
5969 case 401:
5970 /* rule 401 can match eol */
5972 #line 653 "../../../../OS/src/OSParsers/OSParseosil.l"
5973 {YY_PRINT; return(NUMBEROFMATRIXTERMSATT);}
5974  YY_BREAK
5975 case 402:
5976 /* rule 402 can match eol */
5978 #line 654 "../../../../OS/src/OSParsers/OSParseosil.l"
5979 {YY_PRINT; return(MATRIXTERMSTART);}
5980  YY_BREAK
5981 case 403:
5982 /* rule 403 can match eol */
5984 #line 655 "../../../../OS/src/OSParsers/OSParseosil.l"
5985 {YY_PRINT; return(MATRIXTERMEND);}
5986  YY_BREAK
5987 case 404:
5988 /* rule 404 can match eol */
5990 #line 657 "../../../../OS/src/OSParsers/OSParseosil.l"
5991 {YY_PRINT; return(MATRIXREFERENCESTART);}
5992  YY_BREAK
5993 case 405:
5994 /* rule 405 can match eol */
5996 #line 658 "../../../../OS/src/OSParsers/OSParseosil.l"
5997 {YY_PRINT; return(MATRIXREFERENCEEND);}
5998  YY_BREAK
5999 case 406:
6000 /* rule 406 can match eol */
6002 #line 659 "../../../../OS/src/OSParsers/OSParseosil.l"
6003 {YY_PRINT; return(MATRIXDIAGONALSTART);}
6004  YY_BREAK
6005 case 407:
6006 /* rule 407 can match eol */
6008 #line 660 "../../../../OS/src/OSParsers/OSParseosil.l"
6009 {YY_PRINT; return(MATRIXDIAGONALEND);}
6010  YY_BREAK
6011 case 408:
6012 /* rule 408 can match eol */
6014 #line 661 "../../../../OS/src/OSParsers/OSParseosil.l"
6015 {YY_PRINT; return(MATRIXDOTTIMESSTART);}
6016  YY_BREAK
6017 case 409:
6018 /* rule 409 can match eol */
6020 #line 662 "../../../../OS/src/OSParsers/OSParseosil.l"
6021 {YY_PRINT; return(MATRIXDOTTIMESEND);}
6022  YY_BREAK
6023 case 410:
6024 /* rule 410 can match eol */
6026 #line 663 "../../../../OS/src/OSParsers/OSParseosil.l"
6027 {YY_PRINT; return(MATRIXINVERSESTART);}
6028  YY_BREAK
6029 case 411:
6030 /* rule 411 can match eol */
6032 #line 664 "../../../../OS/src/OSParsers/OSParseosil.l"
6033 {YY_PRINT; return(MATRIXINVERSEEND);}
6034  YY_BREAK
6035 case 412:
6036 /* rule 412 can match eol */
6038 #line 665 "../../../../OS/src/OSParsers/OSParseosil.l"
6040  YY_BREAK
6041 case 413:
6042 /* rule 413 can match eol */
6044 #line 666 "../../../../OS/src/OSParsers/OSParseosil.l"
6045 {YY_PRINT; return(MATRIXLOWERTRIANGLEEND);}
6046  YY_BREAK
6047 case 414:
6048 /* rule 414 can match eol */
6050 #line 667 "../../../../OS/src/OSParsers/OSParseosil.l"
6052  YY_BREAK
6053 case 415:
6054 /* rule 415 can match eol */
6056 #line 668 "../../../../OS/src/OSParsers/OSParseosil.l"
6057 {YY_PRINT; return(MATRIXUPPERTRIANGLEEND);}
6058  YY_BREAK
6059 case 416:
6060 /* rule 416 can match eol */
6062 #line 669 "../../../../OS/src/OSParsers/OSParseosil.l"
6063 {YY_PRINT; return(MATRIXMERGESTART);}
6064  YY_BREAK
6065 case 417:
6066 /* rule 417 can match eol */
6068 #line 670 "../../../../OS/src/OSParsers/OSParseosil.l"
6069 {YY_PRINT; return(MATRIXMERGEEND);}
6070  YY_BREAK
6071 case 418:
6072 /* rule 418 can match eol */
6074 #line 671 "../../../../OS/src/OSParsers/OSParseosil.l"
6075 {YY_PRINT; return(MATRIXMINUSSTART);}
6076  YY_BREAK
6077 case 419:
6078 /* rule 419 can match eol */
6080 #line 672 "../../../../OS/src/OSParsers/OSParseosil.l"
6081 {YY_PRINT; return(MATRIXMINUSEND);}
6082  YY_BREAK
6083 case 420:
6084 /* rule 420 can match eol */
6086 #line 673 "../../../../OS/src/OSParsers/OSParseosil.l"
6087 {YY_PRINT; return(MATRIXNEGATESTART);}
6088  YY_BREAK
6089 case 421:
6090 /* rule 421 can match eol */
6092 #line 674 "../../../../OS/src/OSParsers/OSParseosil.l"
6093 {YY_PRINT; return(MATRIXNEGATEEND);}
6094  YY_BREAK
6095 case 422:
6096 /* rule 422 can match eol */
6098 #line 675 "../../../../OS/src/OSParsers/OSParseosil.l"
6099 {YY_PRINT; return(MATRIXPLUSSTART);}
6100  YY_BREAK
6101 case 423:
6102 /* rule 423 can match eol */
6104 #line 676 "../../../../OS/src/OSParsers/OSParseosil.l"
6105 {YY_PRINT; return(MATRIXPLUSEND);}
6106  YY_BREAK
6107 case 424:
6108 /* rule 424 can match eol */
6110 #line 677 "../../../../OS/src/OSParsers/OSParseosil.l"
6111 {YY_PRINT; return(MATRIXTIMESSTART);}
6112  YY_BREAK
6113 case 425:
6114 /* rule 425 can match eol */
6116 #line 678 "../../../../OS/src/OSParsers/OSParseosil.l"
6117 {YY_PRINT; return(MATRIXTIMESEND);}
6118  YY_BREAK
6119 case 426:
6120 /* rule 426 can match eol */
6122 #line 679 "../../../../OS/src/OSParsers/OSParseosil.l"
6123 {YY_PRINT; return(MATRIXPRODUCTSTART);}
6124  YY_BREAK
6125 case 427:
6126 /* rule 427 can match eol */
6128 #line 680 "../../../../OS/src/OSParsers/OSParseosil.l"
6129 {YY_PRINT; return(MATRIXPRODUCTEND);}
6130  YY_BREAK
6131 case 428:
6132 /* rule 428 can match eol */
6134 #line 681 "../../../../OS/src/OSParsers/OSParseosil.l"
6135 {YY_PRINT; return(MATRIXSCALARTIMESSTART);}
6136  YY_BREAK
6137 case 429:
6138 /* rule 429 can match eol */
6140 #line 682 "../../../../OS/src/OSParsers/OSParseosil.l"
6141 {YY_PRINT; return(MATRIXSCALARTIMESEND);}
6142  YY_BREAK
6143 case 430:
6144 /* rule 430 can match eol */
6146 #line 683 "../../../../OS/src/OSParsers/OSParseosil.l"
6147 {YY_PRINT; return(MATRIXSUBMATRIXATSTART);}
6148  YY_BREAK
6149 case 431:
6150 /* rule 431 can match eol */
6152 #line 684 "../../../../OS/src/OSParsers/OSParseosil.l"
6153 {YY_PRINT; return(MATRIXSUBMATRIXATEND);}
6154  YY_BREAK
6155 case 432:
6156 /* rule 432 can match eol */
6158 #line 685 "../../../../OS/src/OSParsers/OSParseosil.l"
6159 {YY_PRINT; return(MATRIXTRANSPOSESTART);}
6160  YY_BREAK
6161 case 433:
6162 /* rule 433 can match eol */
6164 #line 686 "../../../../OS/src/OSParsers/OSParseosil.l"
6165 {YY_PRINT; return(MATRIXTRANSPOSEEND);}
6166  YY_BREAK
6167 case 434:
6168 /* rule 434 can match eol */
6170 #line 687 "../../../../OS/src/OSParsers/OSParseosil.l"
6171 {YY_PRINT; return(IDENTITYMATRIXSTART);}
6172  YY_BREAK
6173 case 435:
6174 /* rule 435 can match eol */
6176 #line 688 "../../../../OS/src/OSParsers/OSParseosil.l"
6177 {YY_PRINT; return(IDENTITYMATRIXEND);}
6178  YY_BREAK
6179 /* attributes returning strings (that are potentially empty)*/
6180 case 436:
6181 /* rule 436 can match eol */
6183 #line 692 "../../../../OS/src/OSParsers/OSParseosil.l"
6184 {YY_PRINT; return(EMPTYIDATT);}
6185  YY_BREAK
6186 case 437:
6187 /* rule 437 can match eol */
6189 #line 693 "../../../../OS/src/OSParsers/OSParseosil.l"
6190 {YY_PRINT; return(EMPTYIDATT);}
6191  YY_BREAK
6192 case 438:
6193 /* rule 438 can match eol */
6195 #line 694 "../../../../OS/src/OSParsers/OSParseosil.l"
6197  YY_BREAK
6198 case 439:
6199 /* rule 439 can match eol */
6201 #line 695 "../../../../OS/src/OSParsers/OSParseosil.l"
6203  YY_BREAK
6204 case 440:
6205 /* rule 440 can match eol */
6207 #line 697 "../../../../OS/src/OSParsers/OSParseosil.l"
6209  YY_BREAK
6210 case 441:
6211 /* rule 441 can match eol */
6213 #line 698 "../../../../OS/src/OSParsers/OSParseosil.l"
6215  YY_BREAK
6216 case 442:
6217 /* rule 442 can match eol */
6219 #line 699 "../../../../OS/src/OSParsers/OSParseosil.l"
6221  YY_BREAK
6222 case 443:
6223 /* rule 443 can match eol */
6225 #line 700 "../../../../OS/src/OSParsers/OSParseosil.l"
6227  YY_BREAK
6228 /* last section of OSParseosil.l */
6229 /* environments and comments */
6230 case 444:
6231 /* rule 444 can match eol */
6233 #line 705 "../../../../OS/src/OSParsers/OSParseosil.l"
6234 { YY_PRINT; yylval->sval = strdup( yytext); yyextra->errorText = yylval->sval; /* yylval->sval = yytext;*/ return (ELEMENTTEXT); }
6235  YY_BREAK
6236 case 445:
6237 /* rule 445 can match eol */
6239 #line 706 "../../../../OS/src/OSParsers/OSParseosil.l"
6240 { YY_PRINT; yylval->sval = strdup( yytext); BEGIN 0; yyextra->errorText = yylval->sval; /*yylval->sval = yytext;*/ return (ITEMTEXT); }
6241  YY_BREAK
6242 case 446:
6244 #line 708 "../../../../OS/src/OSParsers/OSParseosil.l"
6245 BEGIN comment;
6246  YY_BREAK
6247 case 447:
6248 #line 710 "../../../../OS/src/OSParsers/OSParseosil.l"
6249 case 448:
6250 /* rule 448 can match eol */
6252 #line 710 "../../../../OS/src/OSParsers/OSParseosil.l"
6253 ;
6254  YY_BREAK
6255 case 449:
6257 #line 711 "../../../../OS/src/OSParsers/OSParseosil.l"
6258 BEGIN 0;
6259  YY_BREAK
6260 case 450:
6262 #line 713 "../../../../OS/src/OSParsers/OSParseosil.l"
6263 BEGIN xmldeclaration;
6264  YY_BREAK
6265 case 451:
6266 #line 715 "../../../../OS/src/OSParsers/OSParseosil.l"
6267 case 452:
6268 /* rule 452 can match eol */
6270 #line 715 "../../../../OS/src/OSParsers/OSParseosil.l"
6271 ;
6272  YY_BREAK
6273 case 453:
6275 #line 716 "../../../../OS/src/OSParsers/OSParseosil.l"
6276 BEGIN 0;
6277  YY_BREAK
6278 case 454:
6279 /* rule 454 can match eol */
6281 #line 718 "../../../../OS/src/OSParsers/OSParseosil.l"
6282 {YY_PRINT; BEGIN 0; yylval->sval = strdup(yytext); return(ATTRIBUTETEXT);}
6283  YY_BREAK
6284 case 455:
6285 /* rule 455 can match eol */
6287 #line 719 "../../../../OS/src/OSParsers/OSParseosil.l"
6288 {YY_PRINT; BEGIN 0; yylval->sval = strdup(yytext); return(ATTRIBUTETEXT);}
6289  YY_BREAK
6290 case 456:
6292 #line 721 "../../../../OS/src/OSParsers/OSParseosil.l"
6293 {
6294  std::string error;
6295  std::ostringstream outStr;
6296  outStr << "encountered a spurious character in the lexer" << endl;
6297  outStr << "The first character is: ";
6298  outStr << yytext;
6299  outStr << endl;
6300  outStr << "See line number: " << yylineno << endl;
6301  error = outStr.str();
6302  throw ErrorClass( error);
6303 }
6304  YY_BREAK
6305 case 457:
6307 #line 733 "../../../../OS/src/OSParsers/OSParseosil.l"
6308 ECHO;
6309  YY_BREAK
6310 #line 6311 "../../../../OS/src/OSParsers/OSParseosil.cpp"
6311 case YY_STATE_EOF(INITIAL):
6317 case YY_STATE_EOF(itemtext):
6318 case YY_STATE_EOF(comment):
6319 case YY_STATE_EOF(xmldeclaration):
6320  yyterminate();
6321 
6322  case YY_END_OF_BUFFER:
6323  {
6324  /* Amount of text matched not including the EOB char. */
6325  int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
6326 
6327  /* Undo the effects of YY_DO_BEFORE_ACTION. */
6328  *yy_cp = yyg->yy_hold_char;
6330 
6331  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6332  {
6333  /* We're scanning a new file or input source. It's
6334  * possible that this happened because the user
6335  * just pointed yyin at a new source and called
6336  * osillex(). If so, then we have to assure
6337  * consistency between YY_CURRENT_BUFFER and our
6338  * globals. Here is the right place to do so, because
6339  * this is the first action (other than possibly a
6340  * back-up) that will match for the new input source.
6341  */
6342  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6343  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6344  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6345  }
6346 
6347  /* Note that here we test for yy_c_buf_p "<=" to the position
6348  * of the first EOB in the buffer, since yy_c_buf_p will
6349  * already have been incremented past the NUL character
6350  * (since all states make transitions on EOB to the
6351  * end-of-buffer state). Contrast this with the test
6352  * in input().
6353  */
6354  if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
6355  { /* This was really a NUL. */
6356  yy_state_type yy_next_state;
6357 
6358  yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
6359 
6360  yy_current_state = yy_get_previous_state( yyscanner );
6361 
6362  /* Okay, we're now positioned to make the NUL
6363  * transition. We couldn't have
6364  * yy_get_previous_state() go ahead and do it
6365  * for us because it doesn't know how to deal
6366  * with the possibility of jamming (and we don't
6367  * want to build jamming into it because then it
6368  * will run more slowly).
6369  */
6370 
6371  yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
6372 
6373  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
6374 
6375  if ( yy_next_state )
6376  {
6377  /* Consume the NUL. */
6378  yy_cp = ++yyg->yy_c_buf_p;
6379  yy_current_state = yy_next_state;
6380  goto yy_match;
6381  }
6382 
6383  else
6384  {
6385 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6386  yy_cp = yyg->yy_c_buf_p;
6387  goto yy_find_action;
6388  }
6389  }
6390 
6391  else switch ( yy_get_next_buffer( yyscanner ) )
6392  {
6393  case EOB_ACT_END_OF_FILE:
6394  {
6395  yyg->yy_did_buffer_switch_on_eof = 0;
6396 
6397  if ( osilwrap(yyscanner ) )
6398  {
6399  /* Note: because we've taken care in
6400  * yy_get_next_buffer() to have set up
6401  * yytext, we can now set up
6402  * yy_c_buf_p so that if some total
6403  * hoser (like flex itself) wants to
6404  * call the scanner after we return the
6405  * YY_NULL, it'll still work - another
6406  * YY_NULL will get returned.
6407  */
6408  yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
6409 
6410  yy_act = YY_STATE_EOF(YY_START);
6411  goto do_action;
6412  }
6413 
6414  else
6415  {
6416  if ( ! yyg->yy_did_buffer_switch_on_eof )
6417  YY_NEW_FILE;
6418  }
6419  break;
6420  }
6421 
6422  case EOB_ACT_CONTINUE_SCAN:
6423  yyg->yy_c_buf_p =
6424  yyg->yytext_ptr + yy_amount_of_matched_text;
6425 
6426  yy_current_state = yy_get_previous_state( yyscanner );
6427 
6428  yy_cp = yyg->yy_c_buf_p;
6429  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
6430  goto yy_match;
6431 
6432  case EOB_ACT_LAST_MATCH:
6433  yyg->yy_c_buf_p =
6434  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
6435 
6436  yy_current_state = yy_get_previous_state( yyscanner );
6437 
6438  yy_cp = yyg->yy_c_buf_p;
6439  yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
6440  goto yy_find_action;
6441  }
6442  break;
6443  }
6444 
6445  default:
6447  "fatal flex scanner internal error--no action found" );
6448  } /* end of action switch */
6449  } /* end of scanning one token */
6450 } /* end of osillex */
6451 /* %ok-for-header */
6452 
6453 /* %if-c++-only */
6454 /* %not-for-header */
6455 
6456 /* %ok-for-header */
6457 
6458 /* %endif */
6459 
6460 /* yy_get_next_buffer - try to read in a new buffer
6461  *
6462  * Returns a code representing an action:
6463  * EOB_ACT_LAST_MATCH -
6464  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6465  * EOB_ACT_END_OF_FILE - end of file
6466  */
6467 /* %if-c-only */
6468 static int yy_get_next_buffer (yyscan_t yyscanner)
6469 /* %endif */
6470 /* %if-c++-only */
6471 /* %endif */
6472 {
6473  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6474  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6475  register char *source = yyg->yytext_ptr;
6476  register int number_to_move, i;
6477  int ret_val;
6478 
6479  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
6481  "fatal flex scanner internal error--end of buffer missed" );
6482 
6483  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6484  { /* Don't try to fill the buffer, so this is an EOF. */
6485  if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
6486  {
6487  /* We matched a single character, the EOB, so
6488  * treat this as a final EOF.
6489  */
6490  return EOB_ACT_END_OF_FILE;
6491  }
6492 
6493  else
6494  {
6495  /* We matched some text prior to the EOB, first
6496  * process it.
6497  */
6498  return EOB_ACT_LAST_MATCH;
6499  }
6500  }
6501 
6502  /* Try to read more data. */
6503 
6504  /* First move last chars to start of buffer. */
6505  number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
6506 
6507  for ( i = 0; i < number_to_move; ++i )
6508  *(dest++) = *(source++);
6509 
6510  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6511  /* don't do the read, it's not guaranteed to return an EOF,
6512  * just force an EOF
6513  */
6514  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
6515 
6516  else
6517  {
6518  int num_to_read =
6519  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6520 
6521  while ( num_to_read <= 0 )
6522  { /* Not enough room in the buffer - grow it. */
6523 
6524  /* just a shorter name for the current buffer */
6525  YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
6526 
6527  int yy_c_buf_p_offset =
6528  (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
6529 
6530  if ( b->yy_is_our_buffer )
6531  {
6532  int new_size = b->yy_buf_size * 2;
6533 
6534  if ( new_size <= 0 )
6535  b->yy_buf_size += b->yy_buf_size / 8;
6536  else
6537  b->yy_buf_size *= 2;
6538 
6539  b->yy_ch_buf = (char *)
6540  /* Include room in for 2 EOB chars. */
6541  osilrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
6542  }
6543  else
6544  /* Can't grow it, we don't own it. */
6545  b->yy_ch_buf = 0;
6546 
6547  if ( ! b->yy_ch_buf )
6549  "fatal error - scanner input buffer overflow" );
6550 
6551  yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
6552 
6553  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6554  number_to_move - 1;
6555 
6556  }
6557 
6558  if ( num_to_read > YY_READ_BUF_SIZE )
6559  num_to_read = YY_READ_BUF_SIZE;
6560 
6561  /* Read in more data. */
6562  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6563  yyg->yy_n_chars, (size_t) num_to_read );
6564 
6565  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
6566  }
6567 
6568  if ( yyg->yy_n_chars == 0 )
6569  {
6570  if ( number_to_move == YY_MORE_ADJ )
6571  {
6572  ret_val = EOB_ACT_END_OF_FILE;
6573  osilrestart(yyin ,yyscanner);
6574  }
6575 
6576  else
6577  {
6578  ret_val = EOB_ACT_LAST_MATCH;
6579  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6581  }
6582  }
6583 
6584  else
6585  ret_val = EOB_ACT_CONTINUE_SCAN;
6586 
6587  if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6588  /* Extend the array by 50%, plus the number we really need. */
6589  yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
6590  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) osilrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
6591  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6592  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6593  }
6594 
6595  yyg->yy_n_chars += number_to_move;
6598 
6599  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6600 
6601  return ret_val;
6602 }
6603 
6604 /* yy_get_previous_state - get the state just before the EOB char was reached */
6605 
6606 /* %if-c-only */
6607 /* %not-for-header */
6608 
6610 /* %endif */
6611 /* %if-c++-only */
6612 /* %endif */
6613 {
6615  register char *yy_cp;
6616  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6617 
6618 /* %% [15.0] code to get the start state into yy_current_state goes here */
6619  yy_current_state = yyg->yy_start;
6620 
6621  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
6622  {
6623 /* %% [16.0] code to find the next state goes here */
6624  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6625  if ( yy_accept[yy_current_state] )
6626  {
6629  }
6630  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6631  {
6632  yy_current_state = (int) yy_def[yy_current_state];
6633  if ( yy_current_state >= 3412 )
6634  yy_c = yy_meta[(unsigned int) yy_c];
6635  }
6636  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6637  }
6638 
6639  return yy_current_state;
6640 }
6641 
6642 /* yy_try_NUL_trans - try to make a transition on the NUL character
6643  *
6644  * synopsis
6645  * next_state = yy_try_NUL_trans( current_state );
6646  */
6647 /* %if-c-only */
6648  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
6649 /* %endif */
6650 /* %if-c++-only */
6651 /* %endif */
6652 {
6653  register int yy_is_jam;
6654  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
6655 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6656  register char *yy_cp = yyg->yy_c_buf_p;
6657 
6658  register YY_CHAR yy_c = 1;
6659  if ( yy_accept[yy_current_state] )
6660  {
6663  }
6664  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6665  {
6666  yy_current_state = (int) yy_def[yy_current_state];
6667  if ( yy_current_state >= 3412 )
6668  yy_c = yy_meta[(unsigned int) yy_c];
6669  }
6670  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6671  yy_is_jam = (yy_current_state == 3411);
6672 
6673  return yy_is_jam ? 0 : yy_current_state;
6674 }
6675 
6676 /* %if-c-only */
6677 
6678 /* %endif */
6679 
6680 /* %if-c-only */
6681 #ifndef YY_NO_INPUT
6682 #ifdef __cplusplus
6683  static int yyinput (yyscan_t yyscanner)
6684 #else
6685  static int input (yyscan_t yyscanner)
6686 #endif
6687 
6688 /* %endif */
6689 /* %if-c++-only */
6690 /* %endif */
6691 {
6692  int c;
6693  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6694 
6695  *yyg->yy_c_buf_p = yyg->yy_hold_char;
6696 
6697  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
6698  {
6699  /* yy_c_buf_p now points to the character we want to return.
6700  * If this occurs *before* the EOB characters, then it's a
6701  * valid NUL; if not, then we've hit the end of the buffer.
6702  */
6703  if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
6704  /* This was really a NUL. */
6705  *yyg->yy_c_buf_p = '\0';
6706 
6707  else
6708  { /* need more input */
6709  int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
6710  ++yyg->yy_c_buf_p;
6711 
6712  switch ( yy_get_next_buffer( yyscanner ) )
6713  {
6714  case EOB_ACT_LAST_MATCH:
6715  /* This happens because yy_g_n_b()
6716  * sees that we've accumulated a
6717  * token and flags that we need to
6718  * try matching the token before
6719  * proceeding. But for input(),
6720  * there's no matching to consider.
6721  * So convert the EOB_ACT_LAST_MATCH
6722  * to EOB_ACT_END_OF_FILE.
6723  */
6724 
6725  /* Reset buffer status. */
6726  osilrestart(yyin ,yyscanner);
6727 
6728  /*FALLTHROUGH*/
6729 
6730  case EOB_ACT_END_OF_FILE:
6731  {
6732  if ( osilwrap(yyscanner ) )
6733  return EOF;
6734 
6735  if ( ! yyg->yy_did_buffer_switch_on_eof )
6736  YY_NEW_FILE;
6737 #ifdef __cplusplus
6738  return yyinput(yyscanner);
6739 #else
6740  return input(yyscanner);
6741 #endif
6742  }
6743 
6744  case EOB_ACT_CONTINUE_SCAN:
6745  yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
6746  break;
6747  }
6748  }
6749  }
6750 
6751  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
6752  *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
6753  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
6754 
6755 /* %% [19.0] update BOL and yylineno */
6756  if ( c == '\n' )
6757 
6758  do{ yylineno++;
6759  yycolumn=0;
6760  }while(0)
6761 ;
6762 
6763  return c;
6764 }
6765 /* %if-c-only */
6766 #endif /* ifndef YY_NO_INPUT */
6767 /* %endif */
6768 
6774 /* %if-c-only */
6775  void osilrestart (FILE * input_file , yyscan_t yyscanner)
6776 /* %endif */
6777 /* %if-c++-only */
6778 /* %endif */
6779 {
6780  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6781 
6782  if ( ! YY_CURRENT_BUFFER ){
6783  osilensure_buffer_stack (yyscanner);
6785  osil_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
6786  }
6787 
6788  osil_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
6789  osil_load_buffer_state(yyscanner );
6790 }
6791 
6796 /* %if-c-only */
6797  void osil_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
6798 /* %endif */
6799 /* %if-c++-only */
6800 /* %endif */
6801 {
6802  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6803 
6804  /* TODO. We should be able to replace this entire function body
6805  * with
6806  * osilpop_buffer_state();
6807  * osilpush_buffer_state(new_buffer);
6808  */
6809  osilensure_buffer_stack (yyscanner);
6810  if ( YY_CURRENT_BUFFER == new_buffer )
6811  return;
6812 
6813  if ( YY_CURRENT_BUFFER )
6814  {
6815  /* Flush out information for old buffer. */
6816  *yyg->yy_c_buf_p = yyg->yy_hold_char;
6817  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
6818  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
6819  }
6820 
6821  YY_CURRENT_BUFFER_LVALUE = new_buffer;
6822  osil_load_buffer_state(yyscanner );
6823 
6824  /* We don't actually know whether we did this switch during
6825  * EOF (osilwrap()) processing, but the only time this flag
6826  * is looked at is after osilwrap() is called, so it's safe
6827  * to go ahead and always set it.
6828  */
6829  yyg->yy_did_buffer_switch_on_eof = 1;
6830 }
6831 
6832 /* %if-c-only */
6833 static void osil_load_buffer_state (yyscan_t yyscanner)
6834 /* %endif */
6835 /* %if-c++-only */
6836 /* %endif */
6837 {
6838  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6839  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6840  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6841  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6842  yyg->yy_hold_char = *yyg->yy_c_buf_p;
6843 }
6844 
6851 /* %if-c-only */
6852  YY_BUFFER_STATE osil_create_buffer (FILE * file, int size , yyscan_t yyscanner)
6853 /* %endif */
6854 /* %if-c++-only */
6855 /* %endif */
6856 {
6857  YY_BUFFER_STATE b;
6858 
6859  b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
6860  if ( ! b )
6861  YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
6862 
6863  b->yy_buf_size = size;
6864 
6865  /* yy_ch_buf has to be 2 characters longer than the size given because
6866  * we need to put in 2 end-of-buffer characters.
6867  */
6868  b->yy_ch_buf = (char *) osilalloc(b->yy_buf_size + 2 ,yyscanner );
6869  if ( ! b->yy_ch_buf )
6870  YY_FATAL_ERROR( "out of dynamic memory in osil_create_buffer()" );
6871 
6872  b->yy_is_our_buffer = 1;
6873 
6874  osil_init_buffer(b,file ,yyscanner);
6875 
6876  return b;
6877 }
6878 
6883 /* %if-c-only */
6884  void osil_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
6885 /* %endif */
6886 /* %if-c++-only */
6887 /* %endif */
6888 {
6889  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6890 
6891  if ( ! b )
6892  return;
6893 
6894  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6896 
6897  if ( b->yy_is_our_buffer )
6898  osilfree((void *) b->yy_ch_buf ,yyscanner );
6899 
6900  osilfree((void *) b ,yyscanner );
6901 }
6902 
6903 /* %if-c-only */
6904 
6905 #ifndef __cplusplus
6906 extern int isatty (int );
6907 #endif /* __cplusplus */
6908 
6909 /* %endif */
6910 
6911 /* %if-c++-only */
6912 /* %endif */
6913 
6914 /* Initializes or reinitializes a buffer.
6915  * This function is sometimes called more than once on the same buffer,
6916  * such as during a osilrestart() or at EOF.
6917  */
6918 /* %if-c-only */
6919  static void osil_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
6920 /* %endif */
6921 /* %if-c++-only */
6922 /* %endif */
6923 
6924 {
6925  int oerrno = errno;
6926  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6927 
6928  osil_flush_buffer(b ,yyscanner);
6929 
6930  b->yy_input_file = file;
6931  b->yy_fill_buffer = 1;
6932 
6933  /* If b is the current buffer, then osil_init_buffer was _probably_
6934  * called from osilrestart() or through yy_get_next_buffer.
6935  * In that case, we don't want to reset the lineno or column.
6936  */
6937  if (b != YY_CURRENT_BUFFER){
6938  b->yy_bs_lineno = 1;
6939  b->yy_bs_column = 0;
6940  }
6941 
6942 /* %if-c-only */
6943 
6944  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6945 
6946 /* %endif */
6947 /* %if-c++-only */
6948 /* %endif */
6949  errno = oerrno;
6950 }
6951 
6956 /* %if-c-only */
6957  void osil_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
6958 /* %endif */
6959 /* %if-c++-only */
6960 /* %endif */
6961 {
6962  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6963  if ( ! b )
6964  return;
6965 
6966  b->yy_n_chars = 0;
6967 
6968  /* We always need two end-of-buffer characters. The first causes
6969  * a transition to the end-of-buffer state. The second causes
6970  * a jam in that state.
6971  */
6974 
6975  b->yy_buf_pos = &b->yy_ch_buf[0];
6976 
6977  b->yy_at_bol = 1;
6979 
6980  if ( b == YY_CURRENT_BUFFER )
6981  osil_load_buffer_state(yyscanner );
6982 }
6983 
6984 /* %if-c-or-c++ */
6991 /* %if-c-only */
6992 void osilpush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
6993 /* %endif */
6994 /* %if-c++-only */
6995 /* %endif */
6996 {
6997  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
6998  if (new_buffer == NULL)
6999  return;
7000 
7001  osilensure_buffer_stack(yyscanner);
7002 
7003  /* This block is copied from osil_switch_to_buffer. */
7004  if ( YY_CURRENT_BUFFER )
7005  {
7006  /* Flush out information for old buffer. */
7007  *yyg->yy_c_buf_p = yyg->yy_hold_char;
7008  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
7009  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
7010  }
7011 
7012  /* Only push if top exists. Otherwise, replace top. */
7013  if (YY_CURRENT_BUFFER)
7014  yyg->yy_buffer_stack_top++;
7015  YY_CURRENT_BUFFER_LVALUE = new_buffer;
7016 
7017  /* copied from osil_switch_to_buffer. */
7018  osil_load_buffer_state(yyscanner );
7019  yyg->yy_did_buffer_switch_on_eof = 1;
7020 }
7021 /* %endif */
7022 
7023 /* %if-c-or-c++ */
7028 /* %if-c-only */
7030 /* %endif */
7031 /* %if-c++-only */
7032 /* %endif */
7033 {
7034  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7035  if (!YY_CURRENT_BUFFER)
7036  return;
7037 
7039  YY_CURRENT_BUFFER_LVALUE = NULL;
7040  if (yyg->yy_buffer_stack_top > 0)
7041  --yyg->yy_buffer_stack_top;
7042 
7043  if (YY_CURRENT_BUFFER) {
7044  osil_load_buffer_state(yyscanner );
7045  yyg->yy_did_buffer_switch_on_eof = 1;
7046  }
7047 }
7048 /* %endif */
7049 
7050 /* %if-c-or-c++ */
7051 /* Allocates the stack if it does not exist.
7052  * Guarantees space for at least one push.
7053  */
7054 /* %if-c-only */
7055 static void osilensure_buffer_stack (yyscan_t yyscanner)
7056 /* %endif */
7057 /* %if-c++-only */
7058 /* %endif */
7059 {
7060  int num_to_alloc;
7061  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7062 
7063  if (!yyg->yy_buffer_stack) {
7064 
7065  /* First allocation is just for 2 elements, since we don't know if this
7066  * scanner will even need a stack. We use 2 instead of 1 to avoid an
7067  * immediate realloc on the next call.
7068  */
7069  num_to_alloc = 1;
7070  yyg->yy_buffer_stack = (struct yy_buffer_state**)osilalloc
7071  (num_to_alloc * sizeof(struct yy_buffer_state*)
7072  , yyscanner);
7073  if ( ! yyg->yy_buffer_stack )
7074  YY_FATAL_ERROR( "out of dynamic memory in osilensure_buffer_stack()" );
7075 
7076  memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
7077 
7078  yyg->yy_buffer_stack_max = num_to_alloc;
7079  yyg->yy_buffer_stack_top = 0;
7080  return;
7081  }
7082 
7083  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
7084 
7085  /* Increase the buffer to prepare for a possible push. */
7086  int grow_size = 8 /* arbitrary grow size */;
7087 
7088  num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
7090  (yyg->yy_buffer_stack,
7091  num_to_alloc * sizeof(struct yy_buffer_state*)
7092  , yyscanner);
7093  if ( ! yyg->yy_buffer_stack )
7094  YY_FATAL_ERROR( "out of dynamic memory in osilensure_buffer_stack()" );
7095 
7096  /* zero only the new slots.*/
7097  memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
7098  yyg->yy_buffer_stack_max = num_to_alloc;
7099  }
7100 }
7101 /* %endif */
7102 
7103 /* %if-c-only */
7110 YY_BUFFER_STATE osil_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
7111 {
7112  YY_BUFFER_STATE b;
7113 
7114  if ( size < 2 ||
7115  base[size-2] != YY_END_OF_BUFFER_CHAR ||
7116  base[size-1] != YY_END_OF_BUFFER_CHAR )
7117  /* They forgot to leave room for the EOB's. */
7118  return 0;
7119 
7120  b = (YY_BUFFER_STATE) osilalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
7121  if ( ! b )
7122  YY_FATAL_ERROR( "out of dynamic memory in osil_scan_buffer()" );
7123 
7124  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
7125  b->yy_buf_pos = b->yy_ch_buf = base;
7126  b->yy_is_our_buffer = 0;
7127  b->yy_input_file = 0;
7128  b->yy_n_chars = b->yy_buf_size;
7129  b->yy_is_interactive = 0;
7130  b->yy_at_bol = 1;
7131  b->yy_fill_buffer = 0;
7133 
7134  osil_switch_to_buffer(b ,yyscanner );
7135 
7136  return b;
7137 }
7138 /* %endif */
7139 
7140 /* %if-c-only */
7149 YY_BUFFER_STATE osil_scan_string (yyconst char * yystr , yyscan_t yyscanner)
7150 {
7151 
7152  return osil_scan_bytes(yystr,strlen(yystr) ,yyscanner);
7153 }
7154 /* %endif */
7155 
7156 /* %if-c-only */
7164 YY_BUFFER_STATE osil_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
7165 {
7166  YY_BUFFER_STATE b;
7167  char *buf;
7168  yy_size_t n;
7169  int i;
7170 
7171  /* Get memory for full buffer, including space for trailing EOB's. */
7172  n = _yybytes_len + 2;
7173  buf = (char *) osilalloc(n ,yyscanner );
7174  if ( ! buf )
7175  YY_FATAL_ERROR( "out of dynamic memory in osil_scan_bytes()" );
7176 
7177  for ( i = 0; i < _yybytes_len; ++i )
7178  buf[i] = yybytes[i];
7179 
7180  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
7181 
7182  b = osil_scan_buffer(buf,n ,yyscanner);
7183  if ( ! b )
7184  YY_FATAL_ERROR( "bad buffer in osil_scan_bytes()" );
7185 
7186  /* It's okay to grow etc. this buffer, and we should throw it
7187  * away when we're done.
7188  */
7189  b->yy_is_our_buffer = 1;
7190 
7191  return b;
7192 }
7193 /* %endif */
7194 
7195 #ifndef YY_EXIT_FAILURE
7196 #define YY_EXIT_FAILURE 2
7197 #endif
7198 
7199 /* %if-c-only */
7200 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
7201 {
7202  (void) fprintf( stderr, "%s\n", msg );
7203  exit( YY_EXIT_FAILURE );
7204 }
7205 /* %endif */
7206 /* %if-c++-only */
7207 /* %endif */
7208 
7209 /* Redefine yyless() so it works in section 3 code. */
7210 
7211 #undef yyless
7212 #define yyless(n) \
7213  do \
7214  { \
7215  /* Undo effects of setting up yytext. */ \
7216  int yyless_macro_arg = (n); \
7217  YY_LESS_LINENO(yyless_macro_arg);\
7218  yytext[yyleng] = yyg->yy_hold_char; \
7219  yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
7220  yyg->yy_hold_char = *yyg->yy_c_buf_p; \
7221  *yyg->yy_c_buf_p = '\0'; \
7222  yyleng = yyless_macro_arg; \
7223  } \
7224  while ( 0 )
7225 
7226 /* Accessor methods (get/set functions) to struct members. */
7227 
7228 /* %if-c-only */
7229 /* %if-reentrant */
7230 
7235 {
7236  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7237  return yyextra;
7238 }
7239 
7240 /* %endif */
7241 
7245 int osilget_lineno (yyscan_t yyscanner)
7246 {
7247  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7248 
7249  if (! YY_CURRENT_BUFFER)
7250  return 0;
7251 
7252  return yylineno;
7253 }
7254 
7258 int osilget_column (yyscan_t yyscanner)
7259 {
7260  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7261 
7262  if (! YY_CURRENT_BUFFER)
7263  return 0;
7264 
7265  return yycolumn;
7266 }
7267 
7271 FILE *osilget_in (yyscan_t yyscanner)
7272 {
7273  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7274  return yyin;
7275 }
7276 
7280 FILE *osilget_out (yyscan_t yyscanner)
7281 {
7282  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7283  return yyout;
7284 }
7285 
7289 int osilget_leng (yyscan_t yyscanner)
7290 {
7291  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7292  return yyleng;
7293 }
7294 
7299 char *osilget_text (yyscan_t yyscanner)
7300 {
7301  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7302  return yytext;
7303 }
7304 
7305 /* %if-reentrant */
7306 
7311 void osilset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
7312 {
7313  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7314  yyextra = user_defined ;
7315 }
7316 
7317 /* %endif */
7318 
7323 void osilset_lineno (int line_number , yyscan_t yyscanner)
7324 {
7325  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7326 
7327  /* lineno is only valid if an input buffer exists. */
7328  if (! YY_CURRENT_BUFFER )
7329  yy_fatal_error( "osilset_lineno called with no buffer" , yyscanner);
7330 
7331  yylineno = line_number;
7332 }
7333 
7338 void osilset_column (int column_no , yyscan_t yyscanner)
7339 {
7340  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7341 
7342  /* column is only valid if an input buffer exists. */
7343  if (! YY_CURRENT_BUFFER )
7344  yy_fatal_error( "osilset_column called with no buffer" , yyscanner);
7345 
7346  yycolumn = column_no;
7347 }
7348 
7355 void osilset_in (FILE * in_str , yyscan_t yyscanner)
7356 {
7357  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7358  yyin = in_str ;
7359 }
7360 
7361 void osilset_out (FILE * out_str , yyscan_t yyscanner)
7362 {
7363  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7364  yyout = out_str ;
7365 }
7366 
7367 int osilget_debug (yyscan_t yyscanner)
7368 {
7369  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7370  return yy_flex_debug;
7371 }
7372 
7373 void osilset_debug (int bdebug , yyscan_t yyscanner)
7374 {
7375  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7376  yy_flex_debug = bdebug ;
7377 }
7378 
7379 /* %endif */
7380 
7381 /* %if-reentrant */
7382 /* Accessor methods for yylval and yylloc */
7383 
7384 /* %if-bison-bridge */
7385 
7387 {
7388  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7389  return yylval;
7390 }
7391 
7392 void osilset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
7393 {
7394  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7395  yylval = yylval_param;
7396 }
7397 
7399 {
7400  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7401  return yylloc;
7402 }
7403 
7404 void osilset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
7405 {
7406  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7407  yylloc = yylloc_param;
7408 }
7409 
7410 /* %endif */
7411 
7412 /* User-visible API */
7413 
7414 /* osillex_init is special because it creates the scanner itself, so it is
7415  * the ONLY reentrant function that doesn't take the scanner as the last argument.
7416  * That's why we explicitly handle the declaration, instead of using our macros.
7417  */
7418 
7419 int osillex_init(yyscan_t* ptr_yy_globals)
7420 
7421 {
7422  if (ptr_yy_globals == NULL){
7423  errno = EINVAL;
7424  return 1;
7425  }
7426 
7427  *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), NULL );
7428 
7429  if (*ptr_yy_globals == NULL){
7430  errno = ENOMEM;
7431  return 1;
7432  }
7433 
7434  /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
7435  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
7436 
7437  return yy_init_globals ( *ptr_yy_globals );
7438 }
7439 
7440 /* osillex_init_extra has the same functionality as osillex_init, but follows the
7441  * convention of taking the scanner as the last argument. Note however, that
7442  * this is a *pointer* to a scanner, as it will be allocated by this call (and
7443  * is the reason, too, why this function also must handle its own declaration).
7444  * The user defined value in the first argument will be available to osilalloc in
7445  * the yyextra field.
7446  */
7447 
7448 int osillex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
7449 
7450 {
7451  struct yyguts_t dummy_yyguts;
7452 
7453  osilset_extra (yy_user_defined, &dummy_yyguts);
7454 
7455  if (ptr_yy_globals == NULL){
7456  errno = EINVAL;
7457  return 1;
7458  }
7459 
7460  *ptr_yy_globals = (yyscan_t) osilalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
7461 
7462  if (*ptr_yy_globals == NULL){
7463  errno = ENOMEM;
7464  return 1;
7465  }
7466 
7467  /* By setting to 0xAA, we expose bugs in
7468  yy_init_globals. Leave at 0x00 for releases. */
7469  memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
7470 
7471  osilset_extra (yy_user_defined, *ptr_yy_globals);
7472 
7473  return yy_init_globals ( *ptr_yy_globals );
7474 }
7475 
7476 /* %endif if-c-only */
7477 
7478 /* %if-c-only */
7479 static int yy_init_globals (yyscan_t yyscanner)
7480 {
7481  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7482  /* Initialization is the same as for the non-reentrant scanner.
7483  * This function is called from osillex_destroy(), so don't allocate here.
7484  */
7485 
7486  yyg->yy_buffer_stack = 0;
7487  yyg->yy_buffer_stack_top = 0;
7488  yyg->yy_buffer_stack_max = 0;
7489  yyg->yy_c_buf_p = (char *) 0;
7490  yyg->yy_init = 0;
7491  yyg->yy_start = 0;
7492 
7493  yyg->yy_start_stack_ptr = 0;
7494  yyg->yy_start_stack_depth = 0;
7495  yyg->yy_start_stack = NULL;
7496 
7497 /* Defined in main.c */
7498 #ifdef YY_STDINIT
7499  yyin = stdin;
7500  yyout = stdout;
7501 #else
7502  yyin = (FILE *) 0;
7503  yyout = (FILE *) 0;
7504 #endif
7505 
7506  /* For future reference: Set errno on error, since we are called by
7507  * osillex_init()
7508  */
7509  return 0;
7510 }
7511 /* %endif */
7512 
7513 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7514 /* osillex_destroy is for both reentrant and non-reentrant scanners. */
7515 int osillex_destroy (yyscan_t yyscanner)
7516 {
7517  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
7518 
7519  /* Pop the buffer stack, destroying each element. */
7520  while(YY_CURRENT_BUFFER){
7522  YY_CURRENT_BUFFER_LVALUE = NULL;
7523  osilpop_buffer_state(yyscanner);
7524  }
7525 
7526  /* Destroy the stack itself. */
7527  osilfree(yyg->yy_buffer_stack ,yyscanner);
7528  yyg->yy_buffer_stack = NULL;
7529 
7530  /* Destroy the start condition stack. */
7531  osilfree(yyg->yy_start_stack ,yyscanner );
7532  yyg->yy_start_stack = NULL;
7533 
7534  /* Reset the globals. This is important in a non-reentrant scanner so the next time
7535  * osillex() is called, initialization will occur. */
7536  yy_init_globals( yyscanner);
7537 
7538 /* %if-reentrant */
7539  /* Destroy the main struct (reentrant only). */
7540  osilfree ( yyscanner , yyscanner );
7541  yyscanner = NULL;
7542 /* %endif */
7543  return 0;
7544 }
7545 /* %endif */
7546 
7547 /*
7548  * Internal utility routines.
7549  */
7550 
7551 #ifndef yytext_ptr
7552 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
7553 {
7554  register int i;
7555  for ( i = 0; i < n; ++i )
7556  s1[i] = s2[i];
7557 }
7558 #endif
7559 
7560 #ifdef YY_NEED_STRLEN
7561 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
7562 {
7563  register int n;
7564  for ( n = 0; s[n]; ++n )
7565  ;
7566 
7567  return n;
7568 }
7569 #endif
7570 
7571 void *osilalloc (yy_size_t size , yyscan_t yyscanner)
7572 {
7573  return (void *) malloc( size );
7574 }
7575 
7576 void *osilrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
7577 {
7578  /* The cast to (char *) in the following accommodates both
7579  * implementations that use char* generic pointers, and those
7580  * that use void* generic pointers. It works with the latter
7581  * because both ANSI C and C++ allow castless assignment from
7582  * any pointer type to void*, and deal with argument conversions
7583  * as though doing an assignment.
7584  */
7585  return (void *) realloc( (char *) ptr, size );
7586 }
7587 
7588 void osilfree (void * ptr , yyscan_t yyscanner)
7589 {
7590  free( (char *) ptr ); /* see osilrealloc() for (char *) cast */
7591 }
7592 
7593 /* %if-tables-serialization definitions */
7594 /* %define-yytables The name for this specific scanner's tables. */
7595 #define YYTABLES_NAME "yytables"
7596 /* %endif */
7597 
7598 /* %ok-for-header */
7599 
7600 #line 733 "../../../../OS/src/OSParsers/OSParseosil.l"
7601 
7602 
7603 
7604 
#define BASEMATRIXSTARTCOLATT
#define EMPTYMATRIXTYPEATT
#define YY_CURRENT_BUFFER_LVALUE
register char * yy_bp
#define MATRICESEND
#define GENERALEND
#define ELEMENTSSTART
#define SYSTEMEND
#define ENUMTYPEATT
#define EOB_ACT_LAST_MATCH
static void osilensure_buffer_stack(yyscan_t yyscanner)
#define ABSSTART
#define SEMIDEFINITECONESTART
#define POLYHEDRALCONESTART
int osilget_leng(yyscan_t yyscanner)
Get the length of the current token.
#define yylval
#define INSTANCENAMEEND
#define FILEDESCRIPTIONSTART
#define singlequoteattributetext
#define FILECREATOREMPTY
#define INSTANCENAMESTART
size_t yy_buffer_stack_top
index of top of stack.
#define MATRIXOBJECTIVESSTART
#define osilattributetext
YY_BUFFER_STATE osil_scan_bytes(yyconst char *bytes, int len, yyscan_t yyscanner)
Setup the input buffer state to scan the given bytes.
#define CONSTRAINTSEND
#define EMPTYCATEGORYATT
#define EMPTYSOLVERATT
#define FILELICENCESTARTANDEND
#define SYMMETRYATT
static yy_state_type yy_get_previous_state(yyscan_t yyscanner)
#define STARTIDXATT
int yy_start_stack_depth
#define comment
#define EMPTYROWMAJORATT
#define MATRIXNEGATEEND
#define SQUAREEND
#define MATRIXSUBMATRIXATSTART
#define ELEND
#define osilwrap(n)
static int yy_get_next_buffer(yyscan_t yyscanner)
#define COMPONENTSEND
#define MATRIXMINUSSTART
#define ELSTART
#define MATRIXTOSCALARSTART
#define DESCRIPTIONATT
static yyconst flex_int32_t yy_ec[256]
#define HORIZONATT
#define EMPTYVALUEATT
#define IDENTITYMATRIXEND
#define COEFATT
#define NONZEROSSTART
#define CONREFERENCEELEMENTSEND
int osilget_column(yyscan_t yyscanner)
Get the current column number.
static yyconst flex_int32_t yy_rule_can_match_eol[458]
YY_BUFFER_STATE osil_create_buffer(FILE *file, int size, yyscan_t yyscanner)
Allocate and initialize an input buffer state.
#define MATRIXCONSTRAINTSSTART
#define VARIDXSTART
#define BEGIN
#define YY_BUFFER_EOF_PENDING
unsigned char flex_uint8_t
Definition: OSParseosil.cpp:78
#define MATRIXCONSTRAINTSEND
#define YY_RESTORE_YY_MORE_OFFSET
#define BLOCKSEND
#define EMPTYMATRIXVARTYPEATT
#define NUMBEREND
#define JOBEND
#define FILELICENCEEND
FILE * yyin_r
#define UNKNOWNSTART
#define STARTATT
#define DIVIDESTART
#define scanner
#define LINEARELEMENTSEND
#define MATRIXOBJIDXATT
#define BASEMATRIXSTART
#define NUMBEROFVALUESATT
#define VARIABLEEND
#define BLOCKCOLIDXATT
#define MATRIXDIAGONALSTART
#define xmldeclaration
#define UNKNOWNEND
#define ROWOFFSETEND
static void osil_load_buffer_state(yyscan_t yyscanner)
#define NUMBEROFROWSATT
#define MATRIXVARIDXATT
#define ENUMERATIONSTART
#define MATRIXREFERENCEEND
#define OSILEND
#define INTERVALEND
#define NUMBEROFCONATT
#define NUMBEROFMATRIXOBJATT
#define FILENAMEEND
#define MATRIXTERMSTART
#define BASEMATRIXSTARTROWATT
#define MATRIXPLUSEND
char yy_hold_char
#define MATRIXMINUSEND
#define NUMBEROFELATT
#define PRODUCTCONESTART
#define PISTART
#define MATRIXVARSTART
static void yy_fatal_error(yyconst char msg[], yyscan_t yyscanner)
#define NUMBEROFCONESATT
#define QUADRATICCOEFFICIENTSSTART
#define EOB_ACT_CONTINUE_SCAN
#define MATRIXEXPRESSIONSEND
#define MINEND
int yy_more_flag
#define ITEMTEXT
if(!yyg->yy_init)
static yyconst flex_int16_t yy_base[3423]
#define itemtext
#define MATRIXDETERMINANTSTART
#define VARIABLESTART
#define ROWMAJORATT
int yy_bs_lineno
The line count.
void osil_delete_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Destroy the buffer.
#define LNSTART
#define SECONDAXISDIRECTIONATT
#define NUMBEROFMATRIXTERMSATT
#define OTHEREND
size_t yy_size_t
#define EXPEND
char * yytext_r
#define MATRIXMERGEEND
#define QTERMEND
#define YY_EXTRA_TYPE
#define YY_INPUT(buf, result, max_size)
#define ISFREESTART
YYSTYPE * osilget_lval(yyscan_t yyscanner)
#define TIMEDOMAINSTART
#define NEGATEEND
#define YY_EXIT_FAILURE
#define ESTART
#define EXPSTART
#define QUOTE
#define TIMEDOMAINEND
#define POWEREND
#define TARGETMATRIXFIRSTCOLATT
#define DIVIDEEND
#define LINEARELEMENTSSTART
#define YY_BUFFER_NEW
int isatty(int)
size_t yy_buffer_stack_max
capacity of stack.
#define MATRIXSTART
#define EMPTYMATRIXCONTYPEATT
#define INSTANCEDATASTARTEND
#define MATRIXOBJECTIVESEND
#define EMPTYNAMEATT
#define SYSTEMSTART
#define FILEDESCRIPTIONSTARTANDEND
#define MATRIXTIMESSTART
int yy_state_type
#define IDXONEATT
yy_size_t yy_buf_size
#define INITIAL
#define VALUESTART
#define MATRIXINVERSEEND
YY_EXTRA_TYPE yyextra_r
#define INTERSECTIONCONESTART
#define SEMIDEFINITECONEEND
#define UBMATRIXIDXATT
#define COLOFFSETEND
#define EMPTYSHAPEATT
#define VARIABLESEND
#define BLOCKSTART
#define NAMEATT
#define QUADRATICCOEFFICIENTSEND
#define MATRIXDOTTIMESSTART
#define MATRIXREFERENCESTART
#define EMPTYTYPEATT
int osilget_debug(yyscan_t yyscanner)
#define PRODUCTCONEEND
register int yy_act
#define SINSTART
#define TARGETMATRIXFIRSTROWATT
#define ECHO
#define OBJTYPEATT
#define SQUARESTART
#define EMPTYVALUETYPEATT
unsigned int flex_uint32_t
Definition: OSParseosil.cpp:80
#define NONPOSITIVECONEEND
#define STAGESEND
#define POWERSTART
#define AXISDIRECTIONATT
double os_strtod_wrap(const char *str, char **strEnd)
Definition: OSMathUtil.cpp:125
#define YY_END_OF_BUFFER_CHAR
#define yyconst
#define BLOCKROWIDXATT
#define GENERALELEMENTSEND
#define VALUESEND
char * yy_c_buf_p
struct yy_buffer_state * YY_BUFFER_STATE
void osilset_lineno(int line_number, yyscan_t yyscanner)
Set the current line number.
#define CONSTART
#define OPTIMIZATIONEND
#define GREATERTHAN
#define SINEND
#define NLEND
#define MAXEND
#define MATRIXPRODUCTSTART
FILE * osilget_out(yyscan_t yyscanner)
Get the output stream.
#define FILEDESCRIPTIONEND
#define MATRIXTRANSPOSEEND
#define EOB_ACT_END_OF_FILE
#define OBJEND
#define CONSTRAINTSSTART
#define MATRIXVARTYPEATT
#define MATRIXEND
#define FILENAMESTARTANDEND
#define OBJREFERENCEELEMENTSEND
static int yy_init_globals(yyscan_t yyscanner)
#define NONPOSITIVECONESTART
#define MATRIXSCALARTIMESEND
#define BASEMATRIXENDROWATT
char * osilget_text(yyscan_t yyscanner)
Get the current token.
int yy_did_buffer_switch_on_eof
#define FACTORSEND
#define MATRIXCONSTART
static yyconst flex_int16_t yy_def[3423]
#define YY_BREAK
#define NONLINEAREXPRESSIONSSTART
#define NUMBEROFVARIABLESATT
#define INDEXSTART
#define YY_STATE_EOF(state)
#define ATLOWERSTART
#define INTERSECTIONCONEEND
int yy_bs_column
The column count.
#define CONTYPEATT
#define VAREND
int osillex_init(void **ptr_yy_globals)
#define SERVICEURISTART
#define startelement
#define NUMBEROFENUMERATIONSATT
#define YY_SC_TO_UI(c)
#define UBCONEIDXATT
short int flex_int16_t
Definition: OSParseosil.cpp:76
#define MINUSEND
#define MATRIXPRODUCTEND
#define POLARCONESTART
#define FILECREATORSTART
#define CATEGORYATT
#define SERVICENAMEEND
#define CONEND
#define FILENAMESTART
#define ITEMEMPTY
YYLTYPE * osilget_lloc(yyscan_t yyscanner)
int osillex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, yyscan_t yyscanner)
#define VARSTART
#define ITEMSTARTANDEND
#define IDXATT
#define yylineno
#define OBJREFERENCEELEMENTSSTART
#define MATRIXUPPERTRIANGLESTART
#define NORMSCALEFACTORATT
#define CONREFERENCEMATRIXIDXATT
#define MATRIXOBJSTART
#define yyout
#define JOBIDEND
#define EXPRSTART
static int input(yyscan_t yyscanner)
#define FILESOURCESTART
void osilset_debug(int debug_flag, yyscan_t yyscanner)
#define MATRIXCONIDXATT
#define POLYHEDRALCONEEND
#define MATRIXCONTYPEATT
void * osilalloc(yy_size_t, yyscan_t yyscanner)
#define MATRIXPROGRAMMINGSTART
#define PLUSSTART
#define NUMBEROFMATRIXVARATT
#define INDEXEND
#define BASEMATRIXEND
CONST unsigned char * s1
Definition: OSdtoa.cpp:1814
#define CONESEND
#define MATRIXTRACESTART
#define MATRIXLOWERTRIANGLESTART
int yy_flex_debug_r
void osilset_extra(OSiLParserData *parserData, void *yyscanner)
#define VARTYPEATT
YY_DECL register yy_state_type yy_current_state
The main scanner function which does all the work.
#define MATRIXIDXATT
#define MATRIXVARIABLESSTART
#define yyextra
#define BLOCKEND
#define ROTATEDQUADRATICCONEEND
#define FILESOURCEEMPTY
#define SERVICEEND
#define VALUEEND
#define OBJECTIVESSTART
#define NONNEGATIVECONEEND
#define ITEMEND
#define ISFREEEND
int yy_start_stack_ptr
#define EMPTYOBJTYPEATT
#define MATRIXINVERSESTART
#define FILESOURCEEND
#define EMPTYVARTYPEATT
static yyconst flex_int16_t yy_rule_linenum[457]
#define POLARCONEEND
int * yy_start_stack
#define ERFSTART
#define FILECREATORSTARTANDEND
#define MATRIXMERGESTART
#define OPTIMIZATIONSTART
void osil_flush_buffer(YY_BUFFER_STATE b, yyscan_t yyscanner)
Discard all buffered characters.
#define ABSEND
#define CONESSTART
#define OBJSTART
YY_BUFFER_STATE osil_scan_buffer(char *base, yy_size_t size, yyscan_t yyscanner)
Setup the input buffer state to scan directly from a user-specified character buffer.
#define YY_READ_BUF_SIZE
#define SOLVERATT
#define YY_END_OF_BUFFER
#define ATLOWEREND
#define MATRICESSTART
#define REFERENCEMATRIXIDXATT
#define NUMBEROFBLOCKSATT
#define QUADRATICCONESTART
#define MATRIXTERMEND
void osilset_in(FILE *in_str, yyscan_t yyscanner)
Set the input stream.
register char * yy_cp
void fint fint fint fint fint fint fint fint fint fint real real real real real real real real * s
#define SERVICEURIEND
#define VARIABLESSTART
#define MINSTART
#define YY_BUFFER_NORMAL
#define NUMBEROFEXPR
#define OTHERSTART
static yyconst flex_int32_t yy_meta[64]
#define SERVICESTART
#define yy_flex_debug
#define NUMBEROFMATRIXCONATT
static yyconst flex_int16_t yy_nxt[5598]
#define NEGATESTART
#define NUMBEROFNONLINEAREXPRESSIONS
#define VALUEATT
#define FILESOURCESTARTANDEND
#define MATRIXDIAGONALEND
#define elementtext
#define MATRIXTYPEATT
static int
Definition: OSdtoa.cpp:2173
#define DUALCONESTART
#define EMPTYSYMMETRYATT
#define EXPREND
#define OBJECTIVESEND
int osillex_init_extra(YY_EXTRA_TYPE user_defined, yyscan_t *scanner)
#define MATRIXTOSCALAREND
#define PRODUCTSTART
void osilrestart(FILE *input_file, yyscan_t yyscanner)
Immediately switch to a different input stream.
#define IDATT
#define FILEDESCRIPTIONEMPTY
#define INTEGER
void osilset_out(FILE *out_str, yyscan_t yyscanner)
#define BLOCKSSTART
#define ELEMENTTEXT
#define NLSTART
#define IDENTITYMATRIXSTART
#define SUPERBASICSTART
int osilget_lineno(yyscan_t yyscanner)
Get the current line number.
static yyconst flex_int16_t yy_chk[5598]
yy_state_type yy_last_accepting_state
#define YY_MORE_ADJ
#define MATRIXNEGATESTART
#define MATRIXCONEND
#define EMPTYSEMIDEFINITENESSATT
#define SCALARMULTIPLIERATT
#define EMPTYENUMTYPEATT
#define IFSTART
int flex_int32_t
Definition: OSParseosil.cpp:77
#define LNEND
#define TRANSFORMATIONEND
#define yyin
#define FACTORSSTART
#define STAGEEND
#define INCLUDEDIAGONALATT
#define NUMBERSTART
#define SUMSTART
#define STAGESTART
#define STAGESSTART
#define ORDERCONEIDXATT
#define ENDOFELEMENT
#define DISTORTIONMATRIXIDXATT
#define ORTHANTCONESTART
#define INSTANCEDATAEND
#define GENERALELEMENTSSTART
#define SEMIDEFINITENESSATT
#define BASE64START
#define MATRIXSUBMATRIXATEND
#define COMPONENTSSTART
#define yylloc
#define OBJREFERENCEMATRIXIDXATT
#define MATRIXOBJEND
void osilset_lloc(YYLTYPE *yylloc_param, yyscan_t yyscanner)
void osilpush_buffer_state(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Pushes the new state onto the stack.
#define MATRIXTIMESEND
#define INDEXESEND
static void osil_init_buffer(YY_BUFFER_STATE b, FILE *file, yyscan_t yyscanner)
#define FILELICENCESTART
#define MATRIXEXPRESSIONSSTART
#define YY_BUF_SIZE
#define MATRIXDOTTIMESEND
#define STRINGVALUEDELEMENTSEND
#define FILELICENCEEMPTY
#define NUMBEROFOBJECTIVESATT
#define NUMBEROFVARATT
#define yyleng
#define yytext
#define ORTHANTCONEEND
#define BASE64END
#define VARREFERENCEELEMENTSSTART
void osilset_lval(YYSTYPE *yylval_param, yyscan_t yyscanner)
YYLTYPE * yylloc_r
unsigned short int flex_uint16_t
Definition: OSParseosil.cpp:79
#define EMPTYMATRIXOBJTYPEATT
flex_int32_t yy_verify
void * yyscan_t
#define CONSTANTELEMENTSSTART
#define DOUBLE
#define COLOFFSETSTART
#define MATRIXPLUSSTART
#define YY_DECL
#define MATRIXSCALARTIMESSTART
#define TRANSFORMATIONSTART
#define GENERALSTART
#define NUMBEROFCOLUMNSATT
#define JOBIDSTART
#define ELEMENTSEND
#define EMPTYIDATT
#define VARREFERENCEELEMENTSEND
#define ROTATEDQUADRATICCONESTART
#define MATRIXLOWERTRIANGLEEND
static void
Definition: OSdtoa.cpp:1741
#define YY_DO_BEFORE_ACTION
void osilpop_buffer_state(yyscan_t yyscanner)
Removes and deletes the top of the stack, if present.
#define MATRIXVARIABLESEND
#define STARTVECTOREND
#define CONSTANTELEMENTSEND
unsigned char YY_CHAR
#define TWOQUOTES
#define TIMESEND
#define yyterminate()
#define VALUESSTART
#define CONREFERENCEELEMENTSSTART
#define MAXSTART
flex_int32_t yy_nxt
#define MATRIXPROGRAMMINGEND
#define DUALCONEEND
#define LBMATRIXIDXATT
#define INCRATT
#define MATRIXOBJTYPEATT
#define ENUMERATIONEND
#define NUMBEROFCONSTRAINTSATT
#define SQRTEND
#define PLUSEND
#define YY_RULE_SETUP
#define CONSTANTATT
static yyconst flex_int16_t yy_accept[3412]
#define ATUPPEREND
YY_BUFFER_STATE osil_scan_string(yyconst char *yy_str, yyscan_t yyscanner)
Setup the input buffer state to scan a string.
YYSTYPE * yylval_r
FILE * yyout_r
#define MATRIXDETERMINANTEND
#define SERVICENAMESTART
#define NONLINEAREXPRESSIONSEND
#define NONNEGATIVECONESTART
#define PRODUCTEND
#define MATRIXVAREND
#define EEND
#define UNITATT
#define BASICEND
#define ROWOFFSETSTART
#define BASEMATRIXIDXATT
#define NUMBEROFVARIDXATT
#define YY_FATAL_ERROR(msg)
#define SQRTSTART
#define TIMESSTART
#define INDEXESSTART
#define YY_PRINT
#define FILENAMEEMPTY
#define YY_START
#define BASETRANSPOSEATT
#define SUPERBASICEND
#define EMPTYUNITATT
#define ATTRIBUTETEXT
#define BASICSTART
#define VARIDXEND
#define COSSTART
#define YY_CURRENT_BUFFER
#define TEMPLATEMATRIXIDXATT
#define doublequoteattributetext
#define ALLDIFFEND
#define PIEND
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
#define EMPTYINCLUDEDIAGONALATT
char * yy_last_accepting_cpos
#define EMPTYCONTYPEATT
#define NUMBEROFQTERMSATT
#define SUMEND
#define NONZEROSEND
#define DIRECTIONSTART
#define ATUPPERSTART
used for throwing exceptions.
Definition: OSErrorClass.h:31
#define SHAPEATT
#define NUMBEROFSTAGESATT
void fint * n
#define JOBSTART
#define ATEQUALITYEND
#define DIRECTIONEND
#define ALLDIFFSTART
#define FILECREATOREND
return b
Definition: OSdtoa.cpp:1719
signed char flex_int8_t
Definition: OSParseosil.cpp:75
#define INTERVALSTART
#define LBCONEIDXATT
#define ERFEND
#define NUMBEROFITEMSATT
#define MINUSSTART
real c
#define MULTATT
#define ATEQUALITYSTART
#define NUMBEROFMATRICESATT
#define EMPTYBASETRANSPOSEATT
#define MATRIXUPPERTRIANGLEEND
static yy_state_type yy_try_NUL_trans(yy_state_type current_state, yyscan_t yyscanner)
void * osilrealloc(void *, yy_size_t, yyscan_t yyscanner)
int osillex_destroy(void *scanner)
struct yyguts_t * yyg
void osilfree(void *, yyscan_t yyscanner)
#define MATRIXTRACEEND
#define YY_NEW_FILE
#define CONSTANTMATRIXIDXATT
#define QUADRATICCONEEND
void osilset_column(int column_no, yyscan_t yyscanner)
Set the current column.
#define VARREFERENCEMATRIXIDXATT
void osil_switch_to_buffer(YY_BUFFER_STATE new_buffer, yyscan_t yyscanner)
Switch to a different input buffer.
#define TYPEATT
#define NUMBEROFOBJATT
#define FIRSTAXISDIRECTIONATT
static YYSIZE_T const char * yystr
#define STRINGVALUEDELEMENTSSTART
#define SIZEOFATT
#define EMPTYDESCRIPTIONATT
#define VALUETYPEATT
#define IFEND
#define BASEMATRIXENDCOLATT
#define ITEMSTART
FILE * osilget_in(yyscan_t yyscanner)
Get the input stream.
#define QTERMSTART
#define STARTVECTORSTART
#define IDXTWOATT
YY_EXTRA_TYPE osilget_extra(yyscan_t yyscanner)
Get the user-defined data for this scanner.
#define MATRIXTRANSPOSESTART
#define COSEND
#define yycolumn