langscan 1.2-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. data/AUTHORS.txt +19 -0
  2. data/History.txt +126 -0
  3. data/Manifest.txt +167 -0
  4. data/README.rdoc +91 -0
  5. data/Rakefile +40 -0
  6. data/ext/langscan/_make_c.rb +20 -0
  7. data/ext/langscan/_make_h.rb +30 -0
  8. data/ext/langscan/_template.c +134 -0
  9. data/ext/langscan/_template.h +53 -0
  10. data/ext/langscan/c/c/Makefile +188 -0
  11. data/ext/langscan/c/c/c.c +134 -0
  12. data/ext/langscan/c/c/c.h +66 -0
  13. data/ext/langscan/c/c/ctok.c +4629 -0
  14. data/ext/langscan/c/c/ctok.l +212 -0
  15. data/ext/langscan/c/c/extconf.rb +3 -0
  16. data/ext/langscan/c/c/modulename.txt +1 -0
  17. data/ext/langscan/c/c/tokenlist.txt +13 -0
  18. data/ext/langscan/csharp/csharp/Makefile +188 -0
  19. data/ext/langscan/csharp/csharp/csharp.c +134 -0
  20. data/ext/langscan/csharp/csharp/csharp.h +65 -0
  21. data/ext/langscan/csharp/csharp/csharptok.c +2971 -0
  22. data/ext/langscan/csharp/csharp/csharptok.l +200 -0
  23. data/ext/langscan/csharp/csharp/extconf.rb +3 -0
  24. data/ext/langscan/csharp/csharp/modulename.txt +1 -0
  25. data/ext/langscan/csharp/csharp/tokenlist.txt +12 -0
  26. data/ext/langscan/d/d/Makefile +188 -0
  27. data/ext/langscan/d/d/d.c +134 -0
  28. data/ext/langscan/d/d/d.h +64 -0
  29. data/ext/langscan/d/d/dtok.c +5468 -0
  30. data/ext/langscan/d/d/dtok.l +282 -0
  31. data/ext/langscan/d/d/extconf.rb +3 -0
  32. data/ext/langscan/d/d/modulename.txt +1 -0
  33. data/ext/langscan/d/d/tokenlist.txt +11 -0
  34. data/ext/langscan/elisp/elisp/Makefile +188 -0
  35. data/ext/langscan/elisp/elisp/elisp.c +134 -0
  36. data/ext/langscan/elisp/elisp/elisp.h +62 -0
  37. data/ext/langscan/elisp/elisp/elisptok.c +2108 -0
  38. data/ext/langscan/elisp/elisp/elisptok.l +151 -0
  39. data/ext/langscan/elisp/elisp/extconf.rb +3 -0
  40. data/ext/langscan/elisp/elisp/modulename.txt +1 -0
  41. data/ext/langscan/elisp/elisp/tokenlist.txt +9 -0
  42. data/ext/langscan/java/java/Makefile +188 -0
  43. data/ext/langscan/java/java/extconf.rb +3 -0
  44. data/ext/langscan/java/java/java.c +134 -0
  45. data/ext/langscan/java/java/java.h +64 -0
  46. data/ext/langscan/java/java/javatok.c +2097 -0
  47. data/ext/langscan/java/java/javatok.l +155 -0
  48. data/ext/langscan/java/java/modulename.txt +1 -0
  49. data/ext/langscan/java/java/tokenlist.txt +11 -0
  50. data/ext/langscan/javascript/javascript/Makefile +188 -0
  51. data/ext/langscan/javascript/javascript/extconf.rb +3 -0
  52. data/ext/langscan/javascript/javascript/javascript.c +134 -0
  53. data/ext/langscan/javascript/javascript/javascript.h +63 -0
  54. data/ext/langscan/javascript/javascript/javascripttok.c +2058 -0
  55. data/ext/langscan/javascript/javascript/javascripttok.l +147 -0
  56. data/ext/langscan/javascript/javascript/modulename.txt +1 -0
  57. data/ext/langscan/javascript/javascript/tokenlist.txt +10 -0
  58. data/ext/langscan/pairmatcher/pairmatcher/Makefile +188 -0
  59. data/ext/langscan/pairmatcher/pairmatcher/extconf.rb +3 -0
  60. data/ext/langscan/pairmatcher/pairmatcher/pairmatcher.c +890 -0
  61. data/ext/langscan/php/php/Makefile +188 -0
  62. data/ext/langscan/php/php/extconf.rb +3 -0
  63. data/ext/langscan/php/php/modulename.txt +1 -0
  64. data/ext/langscan/php/php/php.c +134 -0
  65. data/ext/langscan/php/php/php.h +64 -0
  66. data/ext/langscan/php/php/phptok.c +2413 -0
  67. data/ext/langscan/php/php/phptok.l +212 -0
  68. data/ext/langscan/php/php/tokenlist.txt +11 -0
  69. data/ext/langscan/post-distclean.rb +21 -0
  70. data/ext/langscan/pre-config.rb +57 -0
  71. data/ext/langscan/python/python/Makefile +188 -0
  72. data/ext/langscan/python/python/extconf.rb +3 -0
  73. data/ext/langscan/python/python/modulename.txt +1 -0
  74. data/ext/langscan/python/python/python.c +134 -0
  75. data/ext/langscan/python/python/python.h +61 -0
  76. data/ext/langscan/python/python/pythontok.c +2109 -0
  77. data/ext/langscan/python/python/pythontok.l +155 -0
  78. data/ext/langscan/python/python/tokenlist.txt +8 -0
  79. data/ext/langscan/ruby/compat/ripper/Makefile +189 -0
  80. data/ext/langscan/ruby/compat/ripper/depend +1 -0
  81. data/ext/langscan/ruby/compat/ripper/extconf.rb +4 -0
  82. data/ext/langscan/ruby/compat/ripper/include/eventids1.c +251 -0
  83. data/ext/langscan/ruby/compat/ripper/include/eventids2.c +277 -0
  84. data/ext/langscan/ruby/compat/ripper/include/lex.c +138 -0
  85. data/ext/langscan/ruby/compat/ripper/ripper.c +14420 -0
  86. data/ext/langscan/scheme/scheme/Makefile +188 -0
  87. data/ext/langscan/scheme/scheme/extconf.rb +3 -0
  88. data/ext/langscan/scheme/scheme/modulename.txt +1 -0
  89. data/ext/langscan/scheme/scheme/scheme.c +134 -0
  90. data/ext/langscan/scheme/scheme/scheme.h +60 -0
  91. data/ext/langscan/scheme/scheme/schemetok.c +2454 -0
  92. data/ext/langscan/scheme/scheme/schemetok.l +177 -0
  93. data/ext/langscan/scheme/scheme/tokenlist.txt +7 -0
  94. data/ext/langscan/sh/sh/Makefile +188 -0
  95. data/ext/langscan/sh/sh/extconf.rb +3 -0
  96. data/ext/langscan/sh/sh/modulename.txt +1 -0
  97. data/ext/langscan/sh/sh/sh.c +134 -0
  98. data/ext/langscan/sh/sh/sh.h +61 -0
  99. data/ext/langscan/sh/sh/shtok.c +2477 -0
  100. data/ext/langscan/sh/sh/shtok.l +325 -0
  101. data/ext/langscan/sh/sh/tokenlist.txt +8 -0
  102. data/lib/langscan.rb +124 -0
  103. data/lib/langscan/_common.rb +50 -0
  104. data/lib/langscan/_easyscanner.rb +78 -0
  105. data/lib/langscan/_pairmatcher.rb +46 -0
  106. data/lib/langscan/_type.rb +125 -0
  107. data/lib/langscan/autoconf.rb +51 -0
  108. data/lib/langscan/automake.rb +51 -0
  109. data/lib/langscan/brainfuck.rb +48 -0
  110. data/lib/langscan/c.rb +144 -0
  111. data/lib/langscan/c/c.so +0 -0
  112. data/lib/langscan/csharp.rb +101 -0
  113. data/lib/langscan/csharp/csharp.so +0 -0
  114. data/lib/langscan/css.rb +109 -0
  115. data/lib/langscan/d.rb +201 -0
  116. data/lib/langscan/d/d.so +0 -0
  117. data/lib/langscan/eiffel.rb +167 -0
  118. data/lib/langscan/elisp.rb +132 -0
  119. data/lib/langscan/elisp/elisp.so +0 -0
  120. data/lib/langscan/io.rb +84 -0
  121. data/lib/langscan/java.rb +95 -0
  122. data/lib/langscan/java/java.so +0 -0
  123. data/lib/langscan/javascript.rb +97 -0
  124. data/lib/langscan/javascript/javascript.so +0 -0
  125. data/lib/langscan/lua.rb +116 -0
  126. data/lib/langscan/ocaml.rb +298 -0
  127. data/lib/langscan/ocaml/camlexer.ml +28 -0
  128. data/lib/langscan/ocaml/lexer.mll +230 -0
  129. data/lib/langscan/ocaml/types.ml +36 -0
  130. data/lib/langscan/pairmatcher/pairmatcher.so +0 -0
  131. data/lib/langscan/perl.rb +87 -0
  132. data/lib/langscan/perl/tokenizer.pl +231 -0
  133. data/lib/langscan/php.rb +80 -0
  134. data/lib/langscan/php/php.so +0 -0
  135. data/lib/langscan/python.rb +101 -0
  136. data/lib/langscan/python/python.so +0 -0
  137. data/lib/langscan/rpmspec.rb +71 -0
  138. data/lib/langscan/ruby.rb +164 -0
  139. data/lib/langscan/ruby/compat/README +5 -0
  140. data/lib/langscan/ruby/compat/ripper.rb +4 -0
  141. data/lib/langscan/ruby/compat/ripper.so +0 -0
  142. data/lib/langscan/ruby/compat/ripper/core.rb +918 -0
  143. data/lib/langscan/ruby/compat/ripper/filter.rb +70 -0
  144. data/lib/langscan/ruby/compat/ripper/lexer.rb +179 -0
  145. data/lib/langscan/ruby/compat/ripper/sexp.rb +100 -0
  146. data/lib/langscan/scheme.rb +160 -0
  147. data/lib/langscan/scheme/scheme.so +0 -0
  148. data/lib/langscan/sh.rb +116 -0
  149. data/lib/langscan/sh/sh.so +0 -0
  150. data/lib/langscan/text.rb +37 -0
  151. data/metaconfig +2 -0
  152. data/script/console +10 -0
  153. data/script/destroy +14 -0
  154. data/script/generate +14 -0
  155. data/script/makemanifest.rb +21 -0
  156. data/setup.rb +1604 -0
  157. data/tasks/extconf.rake +13 -0
  158. data/tasks/extconf/langscan.rake +42 -0
  159. data/test/langscan/brainfuck/test/test_scan.rb +55 -0
  160. data/test/langscan/c/test/test_scan.rb +216 -0
  161. data/test/langscan/c/test/test_token.rb +41 -0
  162. data/test/langscan/csharp/test/test_scan.rb +157 -0
  163. data/test/langscan/css/test/test_css.rb +79 -0
  164. data/test/langscan/d/test/test_scan.rb +233 -0
  165. data/test/langscan/d/test/test_token.rb +205 -0
  166. data/test/langscan/eiffel/test/test_eiffel.rb +95 -0
  167. data/test/langscan/elisp/test/test_elisp.rb +177 -0
  168. data/test/langscan/io/test/test_io.rb +79 -0
  169. data/test/langscan/java/test/test_java.rb +74 -0
  170. data/test/langscan/javascript/test/test_javascript.rb +39 -0
  171. data/test/langscan/lua/test/test_lua.rb +69 -0
  172. data/test/langscan/ocaml/test/test_ocaml.rb +161 -0
  173. data/test/langscan/php/test/test_scan.rb +138 -0
  174. data/test/langscan/python/test/test_scan.rb +105 -0
  175. data/test/langscan/rpmspec/test/test_rpmspec.rb +51 -0
  176. data/test/langscan/ruby/test/test_scan.rb +71 -0
  177. data/test/langscan/scheme/test/test_scan.rb +198 -0
  178. data/test/test_helper.rb +7 -0
  179. data/test/test_langscan.rb +123 -0
  180. metadata +320 -0
@@ -0,0 +1,66 @@
1
+ #ifndef LANGSCAN_C_H
2
+ #define LANGSCAN_C_H
3
+
4
+ #define LANGSCAN_C_TOKEN_LIST \
5
+ LANGSCAN_C_TOKEN(classdecl) \
6
+ LANGSCAN_C_TOKEN(classdef) \
7
+ LANGSCAN_C_TOKEN(classref) \
8
+ LANGSCAN_C_TOKEN(preproc_beg) \
9
+ LANGSCAN_C_TOKEN(preproc_end) \
10
+ LANGSCAN_C_TOKEN(character) \
11
+ LANGSCAN_C_TOKEN(integer) \
12
+ LANGSCAN_C_TOKEN(floating) \
13
+ LANGSCAN_C_TOKEN(string) \
14
+ LANGSCAN_C_TOKEN(ident) \
15
+ LANGSCAN_C_TOKEN(punct) \
16
+ LANGSCAN_C_TOKEN(comment) \
17
+ LANGSCAN_C_TOKEN(space)
18
+
19
+ typedef enum {
20
+ langscan_c_eof = 0,
21
+ #define LANGSCAN_C_TOKEN(name) langscan_c_##name,
22
+ LANGSCAN_C_TOKEN_LIST
23
+ #undef LANGSCAN_C_TOKEN
24
+ } langscan_c_token_t;
25
+
26
+ typedef struct {
27
+ int beg_lineno;
28
+ int beg_columnno;
29
+ int beg_byteno;
30
+ int end_lineno;
31
+ int end_columnno;
32
+ int end_byteno;
33
+ int eof;
34
+ char *text;
35
+ int leng;
36
+ size_t (*user_read)(void **user_data_p, char *buf, size_t maxlen);
37
+ void *user_data;
38
+ } langscan_c_lex_extra_t;
39
+
40
+ typedef struct langscan_c_tokenizer_tag {
41
+ langscan_c_lex_extra_t *extra;
42
+ void *scanner;
43
+ } langscan_c_tokenizer_t;
44
+
45
+ typedef size_t (*user_read_t)(void **user_data_p, char *buf, size_t maxlen);
46
+
47
+ langscan_c_tokenizer_t *langscan_c_make_tokenizer(user_read_t user_read, void *user_data);
48
+ langscan_c_token_t langscan_c_get_token(langscan_c_tokenizer_t *tokenizer);
49
+ void langscan_c_free_tokenizer(langscan_c_tokenizer_t *tokenizer);
50
+
51
+ user_read_t langscan_c_tokenizer_get_user_read(langscan_c_tokenizer_t *tokenizer);
52
+ void *langscan_c_tokenizer_get_user_data(langscan_c_tokenizer_t *tokenizer);
53
+
54
+ const char *langscan_c_token_name(langscan_c_token_t token);
55
+ #define langscan_c_curtoken_beg_lineno(tokenizer) ((tokenizer)->extra->beg_lineno)
56
+ #define langscan_c_curtoken_beg_columnno(tokenizer) ((tokenizer)->extra->beg_columnno)
57
+ #define langscan_c_curtoken_beg_byteno(tokenizer) ((tokenizer)->extra->beg_byteno)
58
+ #define langscan_c_curtoken_end_lineno(tokenizer) ((tokenizer)->extra->end_lineno)
59
+ #define langscan_c_curtoken_end_columnno(tokenizer) ((tokenizer)->extra->end_columnno)
60
+ #define langscan_c_curtoken_end_byteno(tokenizer) ((tokenizer)->extra->end_byteno)
61
+ #define langscan_c_curtoken_text(tokenizer) ((tokenizer)->extra->text)
62
+ #define langscan_c_curtoken_leng(tokenizer) ((tokenizer)->extra->leng)
63
+
64
+ void langscan_c_extract_functions(langscan_c_tokenizer_t *);
65
+
66
+ #endif
@@ -0,0 +1,4629 @@
1
+
2
+ #line 3 "<stdout>"
3
+
4
+ #define YY_INT_ALIGNED short int
5
+
6
+ /* A lexical scanner generated by flex */
7
+
8
+ #define FLEX_SCANNER
9
+ #define YY_FLEX_MAJOR_VERSION 2
10
+ #define YY_FLEX_MINOR_VERSION 5
11
+ #define YY_FLEX_SUBMINOR_VERSION 35
12
+ #if YY_FLEX_SUBMINOR_VERSION > 0
13
+ #define FLEX_BETA
14
+ #endif
15
+
16
+ /* First, we deal with platform-specific or compiler-specific issues. */
17
+
18
+ /* begin standard C headers. */
19
+ #include <stdio.h>
20
+ #include <string.h>
21
+ #include <errno.h>
22
+ #include <stdlib.h>
23
+
24
+ /* end standard C headers. */
25
+
26
+ /* flex integer type definitions */
27
+
28
+ #ifndef FLEXINT_H
29
+ #define FLEXINT_H
30
+
31
+ /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
+
33
+ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
+
35
+ /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36
+ * if you want the limit (max/min) macros for int types.
37
+ */
38
+ #ifndef __STDC_LIMIT_MACROS
39
+ #define __STDC_LIMIT_MACROS 1
40
+ #endif
41
+
42
+ #include <inttypes.h>
43
+ typedef int8_t flex_int8_t;
44
+ typedef uint8_t flex_uint8_t;
45
+ typedef int16_t flex_int16_t;
46
+ typedef uint16_t flex_uint16_t;
47
+ typedef int32_t flex_int32_t;
48
+ typedef uint32_t flex_uint32_t;
49
+ #else
50
+ typedef signed char flex_int8_t;
51
+ typedef short int flex_int16_t;
52
+ typedef int flex_int32_t;
53
+ typedef unsigned char flex_uint8_t;
54
+ typedef unsigned short int flex_uint16_t;
55
+ typedef unsigned int flex_uint32_t;
56
+
57
+ /* Limits of integral types. */
58
+ #ifndef INT8_MIN
59
+ #define INT8_MIN (-128)
60
+ #endif
61
+ #ifndef INT16_MIN
62
+ #define INT16_MIN (-32767-1)
63
+ #endif
64
+ #ifndef INT32_MIN
65
+ #define INT32_MIN (-2147483647-1)
66
+ #endif
67
+ #ifndef INT8_MAX
68
+ #define INT8_MAX (127)
69
+ #endif
70
+ #ifndef INT16_MAX
71
+ #define INT16_MAX (32767)
72
+ #endif
73
+ #ifndef INT32_MAX
74
+ #define INT32_MAX (2147483647)
75
+ #endif
76
+ #ifndef UINT8_MAX
77
+ #define UINT8_MAX (255U)
78
+ #endif
79
+ #ifndef UINT16_MAX
80
+ #define UINT16_MAX (65535U)
81
+ #endif
82
+ #ifndef UINT32_MAX
83
+ #define UINT32_MAX (4294967295U)
84
+ #endif
85
+
86
+ #endif /* ! C99 */
87
+
88
+ #endif /* ! FLEXINT_H */
89
+
90
+ #ifdef __cplusplus
91
+
92
+ /* The "const" storage-class-modifier is valid. */
93
+ #define YY_USE_CONST
94
+
95
+ #else /* ! __cplusplus */
96
+
97
+ /* C99 requires __STDC__ to be defined as 1. */
98
+ #if defined (__STDC__)
99
+
100
+ #define YY_USE_CONST
101
+
102
+ #endif /* defined (__STDC__) */
103
+ #endif /* ! __cplusplus */
104
+
105
+ #ifdef YY_USE_CONST
106
+ #define yyconst const
107
+ #else
108
+ #define yyconst
109
+ #endif
110
+
111
+ /* Returned upon end-of-file. */
112
+ #define YY_NULL 0
113
+
114
+ /* Promotes a possibly negative, possibly signed char to an unsigned
115
+ * integer for use as an array index. If the signed char is negative,
116
+ * we want to instead treat it as an 8-bit unsigned char, hence the
117
+ * double cast.
118
+ */
119
+ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
+
121
+ /* An opaque pointer. */
122
+ #ifndef YY_TYPEDEF_YY_SCANNER_T
123
+ #define YY_TYPEDEF_YY_SCANNER_T
124
+ typedef void* yyscan_t;
125
+ #endif
126
+
127
+ /* For convenience, these vars (plus the bison vars far below)
128
+ are macros in the reentrant scanner. */
129
+ #define yyin yyg->yyin_r
130
+ #define yyout yyg->yyout_r
131
+ #define yyextra yyg->yyextra_r
132
+ #define yyleng yyg->yyleng_r
133
+ #define yytext yyg->yytext_r
134
+ #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135
+ #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136
+ #define yy_flex_debug yyg->yy_flex_debug_r
137
+
138
+ /* Enter a start condition. This macro really ought to take a parameter,
139
+ * but we do it the disgusting crufty way forced on us by the ()-less
140
+ * definition of BEGIN.
141
+ */
142
+ #define BEGIN yyg->yy_start = 1 + 2 *
143
+
144
+ /* Translate the current start state into a value that can be later handed
145
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
146
+ * compatibility.
147
+ */
148
+ #define YY_START ((yyg->yy_start - 1) / 2)
149
+ #define YYSTATE YY_START
150
+
151
+ /* Action number for EOF rule of a given start state. */
152
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
153
+
154
+ /* Special action meaning "start processing a new file". */
155
+ #define YY_NEW_FILE langscan_c_lex_restart(yyin ,yyscanner )
156
+
157
+ #define YY_END_OF_BUFFER_CHAR 0
158
+
159
+ /* Size of default input buffer. */
160
+ #ifndef YY_BUF_SIZE
161
+ #ifdef __ia64__
162
+ /* On IA-64, the buffer size is 16k, not 8k.
163
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
164
+ * Ditto for the __ia64__ case accordingly.
165
+ */
166
+ #define YY_BUF_SIZE 32768
167
+ #else
168
+ #define YY_BUF_SIZE 16384
169
+ #endif /* __ia64__ */
170
+ #endif
171
+
172
+ /* The state buf must be large enough to hold one state per character in the main buffer.
173
+ */
174
+ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
175
+
176
+ #ifndef YY_TYPEDEF_YY_BUFFER_STATE
177
+ #define YY_TYPEDEF_YY_BUFFER_STATE
178
+ typedef struct yy_buffer_state *YY_BUFFER_STATE;
179
+ #endif
180
+
181
+ #define EOB_ACT_CONTINUE_SCAN 0
182
+ #define EOB_ACT_END_OF_FILE 1
183
+ #define EOB_ACT_LAST_MATCH 2
184
+
185
+ #define YY_LESS_LINENO(n)
186
+
187
+ /* Return all but the first "n" matched characters back to the input stream. */
188
+ #define yyless(n) \
189
+ do \
190
+ { \
191
+ /* Undo effects of setting up yytext. */ \
192
+ int yyless_macro_arg = (n); \
193
+ YY_LESS_LINENO(yyless_macro_arg);\
194
+ *yy_cp = yyg->yy_hold_char; \
195
+ YY_RESTORE_YY_MORE_OFFSET \
196
+ yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
197
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
198
+ } \
199
+ while ( 0 )
200
+
201
+ #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
202
+
203
+ #ifndef YY_TYPEDEF_YY_SIZE_T
204
+ #define YY_TYPEDEF_YY_SIZE_T
205
+ typedef size_t yy_size_t;
206
+ #endif
207
+
208
+ #ifndef YY_STRUCT_YY_BUFFER_STATE
209
+ #define YY_STRUCT_YY_BUFFER_STATE
210
+ struct yy_buffer_state
211
+ {
212
+ FILE *yy_input_file;
213
+
214
+ char *yy_ch_buf; /* input buffer */
215
+ char *yy_buf_pos; /* current position in input buffer */
216
+
217
+ /* Size of input buffer in bytes, not including room for EOB
218
+ * characters.
219
+ */
220
+ yy_size_t yy_buf_size;
221
+
222
+ /* Number of characters read into yy_ch_buf, not including EOB
223
+ * characters.
224
+ */
225
+ int yy_n_chars;
226
+
227
+ /* Whether we "own" the buffer - i.e., we know we created it,
228
+ * and can realloc() it to grow it, and should free() it to
229
+ * delete it.
230
+ */
231
+ int yy_is_our_buffer;
232
+
233
+ /* Whether this is an "interactive" input source; if so, and
234
+ * if we're using stdio for input, then we want to use getc()
235
+ * instead of fread(), to make sure we stop fetching input after
236
+ * each newline.
237
+ */
238
+ int yy_is_interactive;
239
+
240
+ /* Whether we're considered to be at the beginning of a line.
241
+ * If so, '^' rules will be active on the next match, otherwise
242
+ * not.
243
+ */
244
+ int yy_at_bol;
245
+
246
+ int yy_bs_lineno; /**< The line count. */
247
+ int yy_bs_column; /**< The column count. */
248
+
249
+ /* Whether to try to fill the input buffer when we reach the
250
+ * end of it.
251
+ */
252
+ int yy_fill_buffer;
253
+
254
+ int yy_buffer_status;
255
+
256
+ #define YY_BUFFER_NEW 0
257
+ #define YY_BUFFER_NORMAL 1
258
+ /* When an EOF's been seen but there's still some text to process
259
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
260
+ * shouldn't try reading from the input source any more. We might
261
+ * still have a bunch of tokens to match, though, because of
262
+ * possible backing-up.
263
+ *
264
+ * When we actually see the EOF, we change the status to "new"
265
+ * (via langscan_c_lex_restart()), so that the user can continue scanning by
266
+ * just pointing yyin at a new input file.
267
+ */
268
+ #define YY_BUFFER_EOF_PENDING 2
269
+
270
+ };
271
+ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
272
+
273
+ /* We provide macros for accessing buffer states in case in the
274
+ * future we want to put the buffer states in a more general
275
+ * "scanner state".
276
+ *
277
+ * Returns the top of the stack, or NULL.
278
+ */
279
+ #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
280
+ ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
281
+ : NULL)
282
+
283
+ /* Same as previous macro, but useful when we know that the buffer stack is not
284
+ * NULL or when we need an lvalue. For internal use only.
285
+ */
286
+ #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
287
+
288
+ void langscan_c_lex_restart (FILE *input_file ,yyscan_t yyscanner );
289
+ void langscan_c_lex__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
290
+ YY_BUFFER_STATE langscan_c_lex__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
291
+ void langscan_c_lex__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
292
+ void langscan_c_lex__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293
+ void langscan_c_lex_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
294
+ void langscan_c_lex_pop_buffer_state (yyscan_t yyscanner );
295
+
296
+ static void langscan_c_lex_ensure_buffer_stack (yyscan_t yyscanner );
297
+ static void langscan_c_lex__load_buffer_state (yyscan_t yyscanner );
298
+ static void langscan_c_lex__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
299
+
300
+ #define YY_FLUSH_BUFFER langscan_c_lex__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
301
+
302
+ YY_BUFFER_STATE langscan_c_lex__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
303
+ YY_BUFFER_STATE langscan_c_lex__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
304
+ YY_BUFFER_STATE langscan_c_lex__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
305
+
306
+ void *langscan_c_lex_alloc (yy_size_t ,yyscan_t yyscanner );
307
+ void *langscan_c_lex_realloc (void *,yy_size_t ,yyscan_t yyscanner );
308
+ void langscan_c_lex_free (void * ,yyscan_t yyscanner );
309
+
310
+ #define yy_new_buffer langscan_c_lex__create_buffer
311
+
312
+ #define yy_set_interactive(is_interactive) \
313
+ { \
314
+ if ( ! YY_CURRENT_BUFFER ){ \
315
+ langscan_c_lex_ensure_buffer_stack (yyscanner); \
316
+ YY_CURRENT_BUFFER_LVALUE = \
317
+ langscan_c_lex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
318
+ } \
319
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
320
+ }
321
+
322
+ #define yy_set_bol(at_bol) \
323
+ { \
324
+ if ( ! YY_CURRENT_BUFFER ){\
325
+ langscan_c_lex_ensure_buffer_stack (yyscanner); \
326
+ YY_CURRENT_BUFFER_LVALUE = \
327
+ langscan_c_lex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
328
+ } \
329
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
330
+ }
331
+
332
+ #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
333
+
334
+ /* Begin user sect3 */
335
+
336
+ #define langscan_c_lex_wrap(n) 1
337
+ #define YY_SKIP_YYWRAP
338
+
339
+ typedef unsigned char YY_CHAR;
340
+
341
+ typedef int yy_state_type;
342
+
343
+ #define yytext_ptr yytext_r
344
+
345
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
346
+ static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
347
+ static int yy_get_next_buffer (yyscan_t yyscanner );
348
+ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
349
+
350
+ /* Done after the current pattern has been matched and before the
351
+ * corresponding action - sets up yytext.
352
+ */
353
+ #define YY_DO_BEFORE_ACTION \
354
+ yyg->yytext_ptr = yy_bp; \
355
+ yyleng = (size_t) (yy_cp - yy_bp); \
356
+ yyg->yy_hold_char = *yy_cp; \
357
+ *yy_cp = '\0'; \
358
+ yyg->yy_c_buf_p = yy_cp;
359
+
360
+ #define YY_NUM_RULES 25
361
+ #define YY_END_OF_BUFFER 26
362
+ /* This struct is not used in this scanner,
363
+ but its presence is necessary. */
364
+ struct yy_trans_info
365
+ {
366
+ flex_int32_t yy_verify;
367
+ flex_int32_t yy_nxt;
368
+ };
369
+ static yyconst flex_int16_t yy_accept[795] =
370
+ { 0,
371
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372
+ 26, 24, 14, 15, 24, 24, 24, 24, 24, 24,
373
+ 24, 24, 24, 24, 19, 20, 24, 24, 24, 23,
374
+ 24, 23, 23, 24, 14, 1, 3, 24, 5, 5,
375
+ 5, 6, 5, 5, 5, 9, 8, 8, 8, 14,
376
+ 24, 0, 17, 0, 0, 0, 22, 0, 16, 22,
377
+ 19, 0, 19, 0, 20, 20, 24, 24, 23, 23,
378
+ 23, 14, 1, 2, 0, 0, 5, 4, 5, 5,
379
+ 5, 5, 5, 0, 0, 8, 7, 8, 8, 0,
380
+ 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
381
+
382
+ 0, 22, 0, 0, 16, 22, 21, 23, 23, 0,
383
+ 0, 5, 5, 5, 5, 0, 0, 8, 8, 0,
384
+ 0, 0, 0, 0, 22, 0, 16, 21, 23, 23,
385
+ 0, 0, 0, 0, 0, 4, 5, 5, 5, 5,
386
+ 0, 0, 0, 0, 0, 7, 8, 8, 0, 23,
387
+ 23, 0, 0, 0, 5, 5, 5, 5, 0, 0,
388
+ 0, 8, 8, 0, 0, 23, 0, 0, 0, 0,
389
+ 0, 0, 4, 0, 0, 5, 5, 0, 0, 0,
390
+ 0, 0, 0, 7, 0, 0, 8, 0, 12, 10,
391
+ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
392
+
393
+ 4, 0, 0, 0, 0, 4, 4, 4, 0, 0,
394
+ 0, 0, 0, 7, 0, 0, 0, 0, 7, 0,
395
+ 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
396
+ 0, 12, 10, 0, 13, 11, 0, 0, 0, 0,
397
+ 0, 0, 0, 0, 4, 0, 4, 0, 0, 0,
398
+ 0, 4, 0, 0, 0, 0, 0, 0, 0, 4,
399
+ 4, 4, 0, 0, 4, 4, 4, 0, 0, 0,
400
+ 0, 0, 0, 0, 0, 7, 0, 7, 0, 0,
401
+ 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
402
+ 7, 10, 0, 0, 7, 0, 0, 0, 0, 0,
403
+
404
+ 0, 13, 11, 0, 0, 0, 0, 0, 0, 0,
405
+ 4, 0, 0, 4, 0, 0, 12, 10, 0, 0,
406
+ 0, 4, 4, 4, 0, 0, 0, 0, 0, 0,
407
+ 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
408
+ 0, 0, 0, 0, 7, 0, 0, 7, 0, 0,
409
+ 12, 10, 0, 0, 0, 7, 10, 0, 0, 0,
410
+ 0, 0, 0, 0, 0, 0, 0, 7, 11, 0,
411
+ 0, 0, 0, 0, 12, 10, 0, 0, 0, 0,
412
+ 0, 0, 0, 0, 4, 4, 4, 0, 0, 13,
413
+ 11, 0, 0, 0, 4, 4, 4, 0, 0, 0,
414
+
415
+ 0, 0, 0, 12, 10, 0, 0, 0, 0, 0,
416
+ 0, 0, 0, 7, 10, 0, 0, 13, 11, 0,
417
+ 0, 0, 7, 11, 0, 0, 0, 0, 0, 12,
418
+ 10, 0, 0, 0, 0, 4, 4, 4, 0, 4,
419
+ 4, 4, 0, 0, 0, 0, 4, 4, 4, 0,
420
+ 0, 0, 13, 11, 0, 0, 0, 0, 0, 0,
421
+ 0, 0, 4, 4, 4, 0, 12, 10, 0, 0,
422
+ 0, 0, 7, 10, 0, 7, 0, 0, 0, 0,
423
+ 7, 10, 0, 0, 0, 13, 11, 0, 0, 0,
424
+ 0, 0, 0, 0, 0, 7, 11, 0, 0, 0,
425
+
426
+ 4, 4, 4, 0, 0, 0, 0, 0, 0, 0,
427
+ 0, 4, 4, 4, 0, 4, 4, 4, 0, 0,
428
+ 0, 0, 4, 4, 4, 0, 13, 11, 0, 0,
429
+ 0, 0, 4, 4, 4, 0, 4, 4, 4, 0,
430
+ 0, 0, 0, 4, 4, 4, 0, 0, 0, 0,
431
+ 0, 7, 10, 0, 0, 0, 0, 0, 0, 0,
432
+ 0, 7, 10, 0, 7, 0, 0, 0, 0, 7,
433
+ 10, 0, 13, 11, 0, 0, 0, 0, 7, 11,
434
+ 0, 7, 0, 0, 0, 0, 7, 11, 0, 0,
435
+ 0, 0, 0, 4, 4, 4, 0, 0, 0, 4,
436
+
437
+ 4, 4, 0, 12, 10, 0, 0, 0, 0, 0,
438
+ 0, 4, 4, 4, 0, 0, 4, 4, 4, 0,
439
+ 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
440
+ 0, 0, 0, 4, 4, 4, 0, 4, 4, 4,
441
+ 0, 0, 0, 0, 4, 4, 4, 0, 0, 0,
442
+ 7, 10, 0, 0, 0, 7, 10, 0, 12, 10,
443
+ 0, 0, 0, 0, 0, 0, 7, 10, 0, 0,
444
+ 7, 10, 0, 0, 0, 7, 11, 0, 0, 0,
445
+ 0, 0, 0, 0, 0, 7, 11, 0, 7, 0,
446
+ 0, 0, 0, 7, 11, 0, 0, 0, 0, 4,
447
+
448
+ 4, 4, 12, 10, 0, 0, 0, 0, 0, 4,
449
+ 4, 4, 0, 0, 0, 4, 4, 4, 0, 13,
450
+ 11, 0, 0, 0, 0, 0, 0, 4, 4, 4,
451
+ 0, 0, 4, 4, 4, 0, 0, 0, 0, 7,
452
+ 10, 12, 0, 0, 0, 0, 0, 7, 11, 0,
453
+ 0, 0, 7, 11, 0, 13, 11, 0, 0, 0,
454
+ 0, 0, 0, 7, 11, 0, 0, 7, 11, 0,
455
+ 0, 0, 0, 0, 4, 4, 4, 13, 11, 0,
456
+ 0, 0, 0, 0, 0, 0, 7, 11, 13, 0,
457
+ 0, 0, 0, 0
458
+
459
+ } ;
460
+
461
+ static yyconst flex_int32_t yy_ec[256] =
462
+ { 0,
463
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
464
+ 1, 4, 4, 1, 1, 1, 1, 1, 1, 1,
465
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466
+ 1, 2, 5, 6, 7, 1, 8, 9, 10, 1,
467
+ 1, 11, 12, 1, 13, 14, 15, 16, 17, 17,
468
+ 17, 18, 18, 18, 18, 19, 19, 20, 21, 22,
469
+ 23, 24, 1, 1, 25, 25, 25, 25, 26, 27,
470
+ 28, 28, 28, 28, 28, 29, 28, 28, 28, 28,
471
+ 28, 28, 28, 28, 30, 28, 28, 31, 28, 28,
472
+ 1, 32, 1, 33, 28, 1, 34, 25, 35, 25,
473
+
474
+ 26, 27, 28, 28, 28, 28, 28, 36, 28, 28,
475
+ 28, 28, 28, 37, 38, 39, 40, 28, 28, 41,
476
+ 28, 28, 42, 43, 1, 1, 1, 1, 1, 1,
477
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
479
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
480
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
481
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
482
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
483
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
484
+
485
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
487
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
488
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
489
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
490
+ 1, 1, 1, 1, 1
491
+ } ;
492
+
493
+ static yyconst flex_int32_t yy_meta[44] =
494
+ { 0,
495
+ 1, 2, 3, 1, 1, 1, 1, 1, 1, 4,
496
+ 1, 1, 1, 1, 2, 5, 5, 5, 5, 6,
497
+ 2, 1, 1, 1, 5, 5, 5, 7, 7, 7,
498
+ 7, 1, 1, 5, 5, 7, 7, 7, 7, 7,
499
+ 7, 6, 1
500
+ } ;
501
+
502
+ static yyconst flex_int16_t yy_base[943] =
503
+ { 0,
504
+ 0, 42, 42, 44, 52, 46, 70, 48, 91, 50,
505
+ 1083, 9762, 52, 9762, 1054, 52, 1052, 50, 1042, 1036,
506
+ 48, 90, 45, 122, 132, 160, 43, 1035, 44, 0,
507
+ 1034, 1018, 1012, 92, 68, 9762, 9762, 1046, 138, 199,
508
+ 100, 9762, 0, 1007, 997, 9762, 154, 182, 108, 150,
509
+ 9762, 128, 9762, 188, 1014, 205, 231, 1008, 0, 148,
510
+ 140, 193, 158, 0, 0, 196, 994, 990, 0, 978,
511
+ 972, 226, 9762, 9762, 241, 127, 972, 9762, 159, 87,
512
+ 0, 973, 969, 249, 171, 967, 9762, 203, 180, 221,
513
+ 257, 260, 263, 0, 9762, 986, 280, 283, 292, 0,
514
+
515
+ 299, 9762, 973, 223, 0, 0, 284, 939, 936, 964,
516
+ 319, 204, 219, 934, 922, 943, 304, 246, 232, 320,
517
+ 0, 313, 0, 269, 346, 934, 9762, 313, 905, 900,
518
+ 920, 317, 356, 364, 405, 389, 267, 309, 892, 894,
519
+ 917, 335, 353, 378, 400, 398, 297, 312, 916, 415,
520
+ 883, 910, 446, 487, 420, 255, 425, 880, 893, 430,
521
+ 457, 435, 315, 171, 372, 440, 881, 528, 569, 610,
522
+ 651, 692, 733, 461, 375, 450, 472, 878, 489, 494,
523
+ 511, 525, 539, 542, 491, 443, 522, 203, 9762, 9762,
524
+ 875, 441, 336, 458, 469, 868, 774, 815, 856, 897,
525
+
526
+ 938, 979, 1020, 553, 554, 474, 9762, 9762, 857, 584,
527
+ 595, 506, 508, 854, 617, 640, 654, 665, 676, 681,
528
+ 703, 564, 567, 9762, 853, 643, 696, 523, 852, 536,
529
+ 580, 597, 667, 478, 9762, 9762, 851, 679, 566, 1061,
530
+ 1102, 1143, 1184, 1225, 1266, 592, 842, 1307, 1348, 1389,
531
+ 1430, 1471, 581, 725, 841, 618, 740, 748, 1512, 763,
532
+ 771, 778, 804, 705, 572, 9762, 9762, 834, 807, 625,
533
+ 800, 829, 840, 845, 867, 870, 633, 830, 872, 892,
534
+ 894, 899, 921, 639, 923, 828, 648, 931, 945, 953,
535
+ 968, 976, 983, 869, 9762, 827, 990, 826, 823, 662,
536
+
537
+ 687, 716, 720, 818, 1553, 1594, 1635, 1676, 1717, 1758,
538
+ 1799, 803, 741, 801, 728, 946, 777, 776, 1013, 1024,
539
+ 1840, 1027, 1050, 1058, 768, 1881, 1922, 812, 1065, 761,
540
+ 785, 1091, 1094, 1963, 1117, 1127, 1147, 760, 1035, 1087,
541
+ 1150, 1173, 1195, 1198, 1200, 753, 786, 748, 895, 1113,
542
+ 746, 722, 1175, 1220, 1222, 948, 999, 721, 1236, 1250,
543
+ 1114, 1270, 720, 793, 1273, 1281, 1296, 1298, 1318, 719,
544
+ 714, 2004, 2045, 1130, 711, 704, 2086, 2127, 699, 2168,
545
+ 2209, 2250, 2291, 2332, 2373, 2414, 2455, 1149, 1282, 693,
546
+ 690, 1332, 1341, 2496, 1352, 1355, 1378, 678, 2537, 2578,
547
+
548
+ 1400, 1403, 1172, 663, 638, 1414, 1425, 636, 1455, 1460,
549
+ 1496, 1501, 1537, 1542, 1578, 1221, 1423, 630, 624, 1544,
550
+ 1585, 1601, 1327, 1363, 623, 1630, 1646, 616, 1237, 613,
551
+ 606, 2619, 2660, 2701, 2742, 2783, 2824, 2865, 1438, 1238,
552
+ 597, 583, 2906, 2947, 2988, 3029, 3070, 3111, 3152, 3193,
553
+ 3234, 1284, 580, 565, 3275, 3316, 553, 3357, 3398, 3439,
554
+ 3480, 3521, 3562, 3603, 3644, 1295, 551, 550, 1660, 1671,
555
+ 1701, 1706, 1485, 1608, 1468, 548, 1742, 1747, 1783, 1788,
556
+ 1824, 1829, 1865, 1870, 1366, 541, 524, 1906, 1911, 507,
557
+ 1947, 1952, 1988, 1993, 2029, 2034, 2070, 3685, 3726, 3767,
558
+
559
+ 3808, 3849, 3890, 3931, 3972, 1509, 4013, 4054, 4095, 4136,
560
+ 4177, 4218, 4259, 4300, 1520, 1401, 500, 490, 4341, 4382,
561
+ 4423, 4464, 4505, 4546, 4587, 1426, 474, 468, 4628, 4669,
562
+ 4710, 4751, 4792, 4833, 4874, 1556, 1443, 466, 459, 4915,
563
+ 4956, 4997, 5038, 5079, 5120, 5161, 5202, 5243, 2075, 2111,
564
+ 2116, 1731, 1772, 2152, 2157, 1610, 2193, 2198, 2234, 2239,
565
+ 2275, 2280, 2316, 1643, 435, 2321, 2357, 2362, 2398, 2403,
566
+ 2439, 1484, 428, 425, 2444, 2480, 2485, 2521, 1813, 1854,
567
+ 1669, 423, 2526, 2562, 2567, 2603, 2608, 2644, 2649, 2685,
568
+ 5284, 5325, 5366, 5407, 5448, 5489, 5530, 5571, 5612, 5653,
569
+
570
+ 5694, 5735, 1507, 418, 413, 5776, 5817, 5858, 5899, 5940,
571
+ 5981, 6022, 6063, 6104, 1508, 1684, 1549, 403, 401, 6145,
572
+ 6186, 6227, 6268, 6309, 6350, 6391, 6432, 1714, 6473, 6514,
573
+ 6555, 6596, 6637, 6678, 6719, 6760, 1755, 1571, 394, 386,
574
+ 6801, 6842, 6883, 6924, 6965, 7006, 7047, 2690, 2726, 2731,
575
+ 1895, 1936, 2767, 2772, 2808, 1977, 2018, 1597, 385, 384,
576
+ 2813, 2849, 2854, 2890, 2895, 2931, 2936, 2972, 1623, 1796,
577
+ 383, 378, 2977, 3013, 3018, 2059, 2100, 3054, 3059, 1837,
578
+ 3095, 3100, 3136, 3141, 3177, 3182, 3218, 1878, 377, 3223,
579
+ 3259, 3264, 3300, 3305, 3341, 7088, 7129, 7170, 7211, 7252,
580
+
581
+ 7293, 7334, 361, 359, 7375, 7416, 7457, 7498, 7539, 7580,
582
+ 7621, 7662, 7703, 7744, 7785, 7826, 7867, 7908, 1672, 358,
583
+ 349, 7949, 7990, 8031, 8072, 8113, 8154, 8195, 8236, 8277,
584
+ 1689, 1919, 1730, 330, 316, 3346, 3382, 3387, 3423, 2141,
585
+ 2182, 293, 3428, 3464, 3469, 3505, 3510, 2223, 2264, 3546,
586
+ 3551, 3587, 2305, 2346, 1771, 260, 254, 3592, 3628, 3633,
587
+ 3669, 3674, 3710, 3715, 3751, 1812, 1960, 243, 220, 8318,
588
+ 8359, 8400, 8441, 8482, 8523, 8564, 8605, 188, 172, 8646,
589
+ 8687, 3756, 3792, 3797, 3833, 3838, 2387, 2428, 159, 3874,
590
+ 3879, 8728, 3915, 9762, 8770, 8777, 8780, 8786, 8789, 8795,
591
+
592
+ 8802, 8809, 150, 138, 97, 8816, 8823, 8830, 8837, 8844,
593
+ 80, 64, 8851, 8858, 8865, 8872, 8879, 8886, 8893, 8900,
594
+ 8907, 8914, 8921, 8928, 8935, 8942, 8949, 8956, 8963, 8970,
595
+ 8977, 8984, 8991, 8998, 9005, 9012, 9019, 9026, 9033, 9040,
596
+ 9047, 9054, 9061, 9068, 9075, 9082, 9089, 9096, 9103, 9110,
597
+ 9117, 9124, 9131, 9138, 9145, 9152, 9159, 9166, 9173, 9180,
598
+ 9187, 9194, 9201, 9208, 9215, 9222, 9229, 9236, 9243, 9250,
599
+ 9257, 9264, 9271, 9278, 9285, 9292, 9299, 9306, 9313, 9320,
600
+ 9327, 9334, 9341, 9348, 9355, 9362, 9369, 9376, 9383, 9390,
601
+ 9397, 9404, 9411, 9418, 9425, 9432, 9439, 9446, 9453, 9460,
602
+
603
+ 9467, 9474, 9481, 9488, 9495, 9502, 9509, 9516, 9523, 9530,
604
+ 9537, 9544, 9551, 9558, 9565, 9572, 9579, 9586, 9593, 9600,
605
+ 9607, 9614, 9621, 9628, 9635, 9642, 9649, 9656, 9663, 9670,
606
+ 9677, 9684, 9691, 9698, 9705, 9712, 9719, 9726, 9733, 9740,
607
+ 9747, 9754
608
+ } ;
609
+
610
+ static yyconst flex_int16_t yy_def[943] =
611
+ { 0,
612
+ 794, 1, 1, 1, 1, 5, 5, 7, 1, 9,
613
+ 794, 794, 794, 794, 794, 795, 794, 794, 796, 794,
614
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 797,
615
+ 794, 797, 797, 794, 794, 794, 794, 794, 798, 798,
616
+ 40, 794, 799, 799, 799, 794, 800, 800, 48, 794,
617
+ 794, 795, 794, 795, 794, 796, 794, 801, 802, 57,
618
+ 25, 794, 794, 803, 26, 794, 794, 794, 797, 797,
619
+ 797, 794, 794, 794, 794, 794, 40, 794, 40, 40,
620
+ 799, 799, 799, 794, 794, 48, 794, 48, 48, 795,
621
+ 795, 795, 795, 804, 794, 794, 794, 794, 794, 805,
622
+
623
+ 794, 794, 801, 806, 802, 60, 803, 797, 797, 807,
624
+ 808, 40, 40, 799, 799, 809, 810, 48, 48, 795,
625
+ 811, 794, 812, 794, 794, 813, 794, 794, 797, 797,
626
+ 807, 814, 808, 808, 808, 808, 40, 40, 799, 799,
627
+ 809, 815, 810, 810, 810, 810, 48, 48, 813, 797,
628
+ 797, 816, 817, 808, 40, 40, 799, 799, 818, 819,
629
+ 810, 48, 48, 820, 794, 797, 816, 817, 817, 807,
630
+ 821, 817, 817, 820, 794, 40, 799, 818, 819, 819,
631
+ 809, 822, 819, 819, 820, 794, 48, 820, 794, 794,
632
+ 823, 824, 825, 794, 807, 807, 826, 826, 816, 808,
633
+
634
+ 826, 827, 817, 820, 820, 820, 794, 794, 828, 829,
635
+ 825, 794, 809, 809, 830, 830, 818, 810, 830, 831,
636
+ 819, 820, 820, 794, 832, 833, 825, 794, 823, 834,
637
+ 824, 824, 824, 825, 794, 794, 835, 836, 837, 817,
638
+ 826, 826, 816, 826, 826, 816, 816, 838, 838, 839,
639
+ 817, 838, 840, 841, 828, 842, 829, 829, 829, 829,
640
+ 829, 829, 825, 825, 825, 794, 794, 843, 844, 845,
641
+ 819, 830, 830, 818, 830, 830, 818, 818, 846, 846,
642
+ 847, 819, 846, 848, 849, 832, 850, 833, 833, 833,
643
+ 833, 833, 825, 825, 794, 851, 852, 853, 835, 854,
644
+
645
+ 836, 836, 836, 839, 826, 826, 838, 838, 839, 838,
646
+ 838, 839, 839, 839, 840, 855, 807, 807, 841, 841,
647
+ 841, 841, 808, 808, 856, 857, 829, 858, 859, 843,
648
+ 860, 844, 844, 844, 844, 844, 844, 847, 830, 830,
649
+ 846, 846, 847, 846, 846, 847, 847, 847, 848, 861,
650
+ 862, 862, 849, 849, 849, 863, 863, 864, 865, 833,
651
+ 866, 867, 851, 868, 852, 852, 852, 852, 852, 853,
652
+ 869, 838, 838, 870, 871, 871, 872, 841, 856, 857,
653
+ 857, 840, 873, 857, 857, 857, 857, 858, 874, 807,
654
+ 807, 859, 859, 859, 859, 808, 808, 875, 876, 844,
655
+
656
+ 846, 846, 877, 878, 878, 879, 849, 864, 865, 865,
657
+ 848, 880, 865, 865, 865, 866, 881, 862, 862, 867,
658
+ 867, 867, 863, 863, 882, 883, 852, 869, 870, 871,
659
+ 871, 872, 872, 884, 872, 872, 885, 885, 840, 840,
660
+ 807, 807, 886, 886, 870, 887, 886, 886, 886, 888,
661
+ 857, 889, 871, 871, 890, 859, 875, 876, 876, 858,
662
+ 891, 876, 876, 876, 876, 877, 878, 878, 879, 879,
663
+ 892, 879, 893, 893, 848, 862, 894, 894, 877, 895,
664
+ 894, 894, 896, 865, 897, 878, 878, 898, 867, 882,
665
+ 883, 883, 866, 899, 883, 883, 883, 900, 900, 901,
666
+
667
+ 900, 902, 902, 903, 872, 904, 872, 886, 886, 870,
668
+ 886, 886, 886, 886, 870, 870, 871, 871, 905, 905,
669
+ 906, 857, 905, 905, 905, 889, 871, 871, 890, 890,
670
+ 907, 890, 890, 885, 885, 858, 858, 807, 807, 908,
671
+ 908, 889, 909, 908, 908, 908, 910, 876, 911, 911,
672
+ 912, 913, 913, 914, 879, 915, 879, 894, 894, 877,
673
+ 894, 894, 894, 877, 878, 916, 916, 917, 865, 916,
674
+ 916, 897, 878, 878, 898, 898, 918, 898, 919, 919,
675
+ 866, 862, 920, 920, 897, 921, 920, 920, 922, 883,
676
+ 900, 900, 900, 900, 902, 902, 923, 923, 872, 923,
677
+
678
+ 924, 924, 906, 925, 925, 886, 900, 905, 905, 906,
679
+ 905, 905, 905, 905, 906, 906, 906, 925, 925, 926,
680
+ 926, 927, 926, 902, 902, 928, 890, 929, 890, 908,
681
+ 908, 889, 908, 908, 908, 908, 889, 889, 871, 871,
682
+ 930, 930, 931, 876, 930, 930, 930, 911, 911, 911,
683
+ 913, 913, 932, 932, 879, 933, 933, 917, 934, 934,
684
+ 894, 911, 916, 916, 917, 916, 916, 916, 917, 917,
685
+ 934, 934, 935, 935, 936, 913, 913, 937, 898, 938,
686
+ 898, 920, 920, 897, 920, 920, 920, 897, 878, 939,
687
+ 939, 940, 883, 939, 939, 900, 923, 923, 923, 923,
688
+
689
+ 924, 924, 925, 925, 905, 923, 926, 926, 926, 926,
690
+ 902, 902, 941, 941, 890, 941, 924, 924, 931, 925,
691
+ 925, 908, 926, 930, 930, 931, 930, 930, 930, 930,
692
+ 931, 931, 931, 925, 925, 911, 932, 932, 932, 933,
693
+ 933, 934, 916, 932, 935, 935, 935, 913, 913, 942,
694
+ 942, 898, 933, 933, 940, 934, 934, 920, 935, 939,
695
+ 939, 940, 939, 939, 939, 940, 940, 934, 934, 923,
696
+ 926, 941, 941, 941, 941, 924, 924, 925, 925, 930,
697
+ 941, 932, 935, 942, 942, 942, 933, 933, 934, 939,
698
+ 942, 941, 942, 0, 794, 794, 794, 794, 794, 794,
699
+
700
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
701
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
702
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
703
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
704
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
705
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
706
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
707
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
708
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
709
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
710
+
711
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
712
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
713
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
714
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
715
+ 794, 794
716
+ } ;
717
+
718
+ static yyconst flex_int16_t yy_nxt[9806] =
719
+ { 0,
720
+ 12, 13, 14, 13, 15, 16, 12, 17, 18, 19,
721
+ 20, 21, 22, 23, 24, 25, 26, 26, 26, 12,
722
+ 12, 27, 28, 29, 30, 30, 30, 30, 30, 30,
723
+ 30, 12, 31, 30, 32, 30, 30, 33, 30, 30,
724
+ 30, 12, 34, 35, 37, 35, 37, 35, 36, 35,
725
+ 36, 35, 36, 50, 36, 50, 36, 53, 51, 51,
726
+ 57, 57, 57, 57, 67, 51, 51, 68, 55, 72,
727
+ 51, 50, 51, 38, 73, 38, 39, 39, 39, 39,
728
+ 39, 39, 39, 54, 52, 39, 40, 39, 39, 41,
729
+ 39, 39, 39, 42, 43, 43, 43, 43, 43, 43,
730
+
731
+ 43, 123, 51, 43, 44, 43, 43, 45, 43, 43,
732
+ 43, 46, 51, 51, 51, 47, 47, 47, 47, 47,
733
+ 47, 47, 77, 113, 47, 48, 47, 47, 49, 47,
734
+ 47, 47, 58, 53, 51, 77, 59, 110, 80, 75,
735
+ 75, 111, 121, 86, 51, 60, 89, 61, 61, 61,
736
+ 62, 50, 76, 50, 107, 84, 84, 78, 78, 54,
737
+ 63, 63, 64, 106, 106, 106, 106, 63, 85, 142,
738
+ 794, 63, 64, 60, 87, 65, 65, 65, 65, 78,
739
+ 794, 116, 132, 84, 84, 117, 63, 63, 66, 66,
740
+ 90, 189, 112, 63, 77, 66, 85, 63, 132, 66,
741
+
742
+ 75, 75, 87, 91, 92, 93, 60, 96, 62, 62,
743
+ 62, 62, 190, 76, 55, 86, 119, 88, 78, 78,
744
+ 97, 98, 99, 189, 66, 66, 53, 72, 94, 50,
745
+ 142, 66, 73, 104, 79, 66, 118, 127, 86, 77,
746
+ 78, 137, 75, 75, 190, 100, 57, 57, 57, 57,
747
+ 84, 84, 54, 142, 77, 76, 101, 102, 138, 102,
748
+ 78, 78, 53, 85, 142, 53, 102, 86, 53, 87,
749
+ 142, 148, 120, 120, 120, 120, 120, 120, 90, 90,
750
+ 90, 86, 78, 147, 125, 125, 125, 125, 54, 95,
751
+ 77, 54, 95, 176, 54, 122, 122, 122, 122, 122,
752
+
753
+ 122, 95, 77, 142, 155, 144, 84, 55, 55, 55,
754
+ 124, 124, 128, 128, 125, 125, 125, 125, 145, 128,
755
+ 134, 75, 95, 128, 146, 53, 132, 132, 55, 55,
756
+ 55, 75, 86, 135, 162, 90, 90, 90, 136, 136,
757
+ 132, 128, 128, 156, 77, 142, 163, 86, 128, 84,
758
+ 86, 54, 128, 187, 144, 84, 235, 134, 75, 132,
759
+ 136, 125, 125, 125, 125, 134, 75, 145, 132, 132,
760
+ 135, 132, 102, 146, 102, 136, 136, 236, 135, 144,
761
+ 84, 102, 191, 136, 136, 209, 192, 142, 142, 210,
762
+ 134, 75, 145, 142, 142, 142, 132, 136, 146, 144,
763
+
764
+ 84, 144, 84, 135, 132, 136, 134, 75, 136, 136,
765
+ 160, 132, 145, 132, 161, 153, 164, 164, 146, 154,
766
+ 146, 174, 174, 132, 136, 136, 164, 164, 132, 165,
767
+ 136, 180, 181, 142, 175, 142, 185, 185, 142, 165,
768
+ 182, 193, 193, 188, 183, 142, 136, 169, 170, 186,
769
+ 184, 211, 211, 225, 194, 77, 171, 226, 144, 84,
770
+ 172, 232, 204, 204, 212, 173, 173, 160, 237, 132,
771
+ 86, 161, 238, 193, 193, 205, 132, 146, 132, 239,
772
+ 206, 207, 233, 240, 132, 77, 194, 173, 134, 75,
773
+ 180, 181, 222, 222, 189, 180, 181, 153, 235, 182,
774
+
775
+ 132, 154, 208, 183, 182, 223, 136, 136, 183, 184,
776
+ 132, 224, 181, 181, 184, 190, 268, 364, 270, 236,
777
+ 269, 142, 271, 227, 227, 213, 216, 217, 136, 169,
778
+ 170, 214, 190, 296, 142, 182, 228, 297, 171, 218,
779
+ 180, 181, 172, 180, 181, 219, 230, 173, 173, 220,
780
+ 164, 142, 182, 221, 204, 204, 183, 86, 142, 184,
781
+ 142, 142, 184, 331, 253, 222, 222, 205, 254, 173,
782
+ 169, 170, 206, 207, 189, 132, 132, 284, 223, 171,
783
+ 170, 285, 188, 172, 224, 258, 204, 189, 173, 173,
784
+ 132, 316, 235, 132, 208, 190, 263, 263, 259, 188,
785
+
786
+ 232, 317, 239, 260, 261, 190, 306, 132, 190, 264,
787
+ 173, 170, 170, 236, 265, 266, 132, 232, 273, 274,
788
+ 132, 233, 318, 132, 195, 262, 300, 182, 256, 196,
789
+ 196, 275, 174, 364, 142, 142, 267, 276, 233, 181,
790
+ 142, 273, 274, 270, 289, 222, 287, 340, 142, 350,
791
+ 182, 196, 198, 199, 275, 274, 274, 290, 287, 351,
792
+ 276, 171, 185, 291, 142, 200, 144, 84, 277, 188,
793
+ 201, 201, 300, 142, 278, 160, 193, 273, 274, 161,
794
+ 352, 234, 280, 281, 292, 146, 182, 232, 331, 234,
795
+ 275, 182, 201, 169, 170, 282, 276, 293, 293, 302,
796
+
797
+ 132, 283, 202, 132, 180, 181, 203, 302, 233, 256,
798
+ 294, 173, 173, 220, 132, 328, 295, 221, 234, 329,
799
+ 303, 132, 234, 184, 300, 235, 320, 204, 303, 230,
800
+ 364, 287, 142, 173, 169, 170, 302, 236, 316, 321,
801
+ 302, 258, 204, 171, 322, 323, 236, 172, 317, 258,
802
+ 204, 239, 173, 173, 259, 373, 142, 303, 142, 260,
803
+ 261, 303, 259, 142, 258, 204, 324, 260, 261, 318,
804
+ 142, 331, 258, 204, 173, 242, 243, 259, 256, 258,
805
+ 204, 262, 260, 261, 171, 259, 132, 132, 244, 262,
806
+ 260, 261, 259, 245, 245, 331, 270, 260, 261, 211,
807
+
808
+ 402, 180, 181, 364, 262, 263, 263, 227, 333, 263,
809
+ 182, 132, 262, 132, 183, 245, 242, 243, 264, 262,
810
+ 184, 334, 389, 265, 266, 171, 335, 336, 132, 244,
811
+ 273, 274, 390, 300, 245, 245, 230, 364, 287, 182,
812
+ 142, 273, 274, 275, 331, 267, 274, 274, 337, 276,
813
+ 182, 256, 132, 391, 275, 142, 245, 243, 243, 277,
814
+ 276, 300, 230, 287, 142, 278, 132, 256, 273, 274,
815
+ 246, 273, 274, 342, 343, 247, 247, 220, 132, 361,
816
+ 182, 339, 182, 362, 275, 230, 344, 276, 142, 235,
817
+ 276, 132, 345, 342, 343, 343, 343, 247, 134, 75,
818
+
819
+ 180, 181, 182, 142, 142, 350, 344, 153, 347, 220,
820
+ 236, 154, 345, 221, 348, 351, 136, 136, 177, 184,
821
+ 132, 166, 342, 343, 354, 222, 104, 142, 158, 157,
822
+ 132, 182, 289, 222, 151, 344, 352, 355, 136, 242,
823
+ 243, 345, 150, 356, 104, 290, 289, 222, 171, 144,
824
+ 84, 291, 244, 142, 289, 222, 316, 245, 245, 290,
825
+ 204, 140, 145, 359, 357, 291, 375, 360, 146, 289,
826
+ 222, 139, 292, 291, 132, 130, 129, 289, 222, 245,
827
+ 249, 250, 290, 104, 293, 293, 292, 376, 291, 171,
828
+ 290, 366, 293, 251, 292, 95, 291, 294, 252, 252,
829
+
830
+ 144, 84, 86, 295, 367, 115, 114, 77, 109, 292,
831
+ 368, 108, 51, 145, 320, 204, 51, 292, 104, 146,
832
+ 252, 169, 170, 95, 236, 320, 204, 321, 320, 204,
833
+ 202, 369, 322, 323, 203, 83, 273, 274, 321, 173,
834
+ 173, 321, 82, 322, 323, 220, 322, 323, 74, 339,
835
+ 71, 134, 75, 70, 324, 276, 51, 51, 51, 134,
836
+ 75, 173, 169, 170, 135, 324, 393, 263, 324, 136,
837
+ 136, 171, 135, 56, 51, 172, 51, 136, 136, 394,
838
+ 173, 173, 794, 794, 395, 396, 794, 794, 273, 274,
839
+ 794, 136, 333, 263, 794, 333, 263, 182, 794, 136,
840
+
841
+ 794, 275, 173, 242, 243, 334, 397, 276, 334, 794,
842
+ 335, 336, 171, 335, 336, 794, 244, 794, 333, 263,
843
+ 794, 245, 245, 350, 417, 794, 794, 222, 333, 263,
844
+ 794, 334, 337, 404, 418, 337, 335, 336, 794, 794,
845
+ 316, 334, 794, 245, 242, 243, 335, 336, 333, 263,
846
+ 430, 342, 343, 171, 405, 419, 794, 244, 337, 389,
847
+ 182, 334, 245, 245, 344, 794, 335, 336, 337, 390,
848
+ 345, 431, 794, 794, 342, 343, 354, 222, 794, 794,
849
+ 794, 794, 350, 182, 245, 243, 243, 344, 337, 355,
850
+ 391, 794, 467, 345, 132, 356, 343, 343, 246, 342,
851
+
852
+ 343, 342, 343, 247, 247, 142, 794, 794, 220, 347,
853
+ 182, 794, 401, 468, 344, 348, 357, 794, 345, 794,
854
+ 345, 354, 222, 354, 222, 247, 242, 243, 794, 794,
855
+ 794, 417, 406, 794, 355, 202, 407, 410, 411, 305,
856
+ 356, 418, 356, 794, 245, 245, 412, 316, 316, 794,
857
+ 413, 289, 222, 794, 794, 794, 414, 430, 317, 794,
858
+ 359, 357, 419, 357, 360, 794, 245, 242, 243, 794,
859
+ 291, 421, 293, 794, 366, 293, 171, 415, 431, 318,
860
+ 244, 794, 366, 293, 422, 245, 245, 367, 794, 794,
861
+ 423, 292, 389, 368, 389, 367, 263, 366, 293, 366,
862
+
863
+ 293, 368, 453, 794, 527, 350, 426, 245, 308, 309,
864
+ 427, 424, 367, 794, 369, 467, 368, 171, 368, 366,
865
+ 293, 310, 369, 454, 794, 528, 311, 311, 144, 84,
866
+ 794, 794, 367, 393, 263, 794, 468, 369, 368, 369,
867
+ 794, 145, 393, 263, 794, 794, 394, 146, 311, 308,
868
+ 309, 395, 396, 393, 263, 394, 134, 75, 171, 369,
869
+ 395, 396, 310, 794, 144, 84, 394, 311, 311, 135,
870
+ 794, 395, 396, 397, 136, 136, 417, 145, 794, 134,
871
+ 75, 794, 397, 146, 794, 794, 573, 794, 794, 311,
872
+ 309, 309, 135, 397, 794, 794, 136, 136, 136, 132,
873
+
874
+ 794, 342, 343, 313, 342, 343, 794, 574, 314, 314,
875
+ 220, 316, 794, 182, 401, 470, 411, 344, 794, 136,
876
+ 345, 430, 794, 345, 471, 794, 354, 222, 472, 794,
877
+ 314, 169, 170, 417, 473, 406, 389, 293, 794, 407,
878
+ 202, 794, 431, 486, 203, 356, 527, 794, 506, 173,
879
+ 173, 794, 507, 389, 794, 474, 410, 411, 317, 794,
880
+ 794, 410, 411, 390, 487, 412, 357, 528, 794, 413,
881
+ 412, 173, 308, 309, 413, 414, 794, 794, 556, 318,
882
+ 414, 171, 557, 794, 391, 310, 180, 181, 351, 794,
883
+ 311, 311, 794, 794, 417, 182, 415, 411, 411, 183,
884
+
885
+ 794, 415, 478, 479, 573, 184, 350, 794, 794, 352,
886
+ 475, 412, 311, 258, 204, 480, 476, 316, 316, 316,
887
+ 794, 481, 326, 382, 794, 574, 327, 703, 703, 604,
888
+ 506, 260, 261, 794, 607, 794, 794, 352, 410, 411,
889
+ 430, 794, 482, 410, 411, 421, 293, 483, 704, 704,
890
+ 605, 484, 412, 262, 242, 243, 413, 414, 422, 316,
891
+ 794, 431, 414, 202, 423, 794, 628, 305, 794, 703,
892
+ 629, 794, 245, 245, 794, 794, 390, 794, 415, 410,
893
+ 411, 389, 794, 415, 794, 424, 421, 293, 412, 794,
894
+ 704, 527, 413, 794, 245, 242, 243, 391, 414, 422,
895
+
896
+ 794, 794, 421, 293, 171, 423, 794, 350, 244, 180,
897
+ 181, 488, 528, 245, 245, 489, 794, 742, 182, 415,
898
+ 350, 423, 183, 794, 411, 794, 424, 794, 184, 794,
899
+ 659, 492, 493, 350, 794, 245, 308, 309, 672, 794,
900
+ 494, 794, 424, 742, 495, 171, 794, 366, 293, 310,
901
+ 496, 660, 794, 556, 311, 311, 426, 662, 794, 794,
902
+ 427, 470, 411, 467, 672, 794, 368, 794, 794, 794,
903
+ 471, 497, 470, 411, 472, 794, 311, 308, 309, 680,
904
+ 473, 471, 389, 681, 468, 472, 171, 369, 794, 418,
905
+ 310, 473, 778, 794, 506, 311, 311, 794, 706, 389,
906
+
907
+ 794, 474, 550, 479, 703, 794, 794, 470, 411, 778,
908
+ 419, 471, 474, 779, 794, 551, 554, 311, 309, 309,
909
+ 555, 552, 794, 794, 389, 704, 473, 132, 460, 794,
910
+ 779, 313, 273, 274, 720, 794, 314, 314, 794, 794,
911
+ 389, 182, 553, 559, 560, 275, 794, 474, 559, 560,
912
+ 778, 276, 412, 794, 794, 721, 561, 412, 314, 308,
913
+ 309, 561, 562, 794, 794, 628, 794, 562, 202, 723,
914
+ 794, 779, 372, 273, 274, 527, 794, 311, 311, 794,
915
+ 794, 417, 182, 563, 560, 560, 275, 794, 563, 289,
916
+ 222, 789, 276, 350, 794, 794, 528, 564, 359, 311,
917
+
918
+ 308, 309, 360, 565, 794, 794, 556, 794, 291, 171,
919
+ 744, 794, 769, 310, 180, 181, 742, 794, 311, 311,
920
+ 794, 794, 417, 182, 468, 559, 560, 183, 794, 292,
921
+ 559, 560, 789, 184, 412, 794, 794, 672, 561, 412,
922
+ 311, 320, 204, 561, 562, 794, 794, 417, 794, 562,
923
+ 377, 493, 794, 769, 378, 180, 181, 756, 794, 322,
924
+ 323, 794, 794, 794, 182, 563, 567, 568, 183, 794,
925
+ 563, 410, 411, 794, 184, 412, 794, 794, 757, 569,
926
+ 483, 324, 381, 382, 484, 570, 794, 794, 680, 794,
927
+ 414, 383, 759, 794, 794, 384, 273, 274, 573, 794,
928
+
929
+ 385, 386, 794, 794, 794, 182, 571, 576, 493, 275,
930
+ 794, 415, 421, 293, 794, 276, 577, 794, 794, 574,
931
+ 578, 488, 387, 258, 204, 489, 579, 794, 794, 628,
932
+ 794, 423, 326, 781, 794, 794, 327, 273, 274, 778,
933
+ 794, 260, 261, 794, 794, 794, 182, 580, 492, 493,
934
+ 275, 794, 424, 492, 493, 794, 276, 494, 794, 794,
935
+ 779, 495, 494, 262, 333, 263, 495, 496, 794, 794,
936
+ 680, 794, 496, 399, 791, 794, 794, 400, 342, 343,
937
+ 789, 794, 335, 336, 794, 794, 794, 182, 497, 493,
938
+ 493, 344, 794, 497, 584, 585, 794, 345, 417, 794,
939
+
940
+ 794, 769, 581, 494, 337, 308, 309, 586, 582, 794,
941
+ 794, 794, 794, 587, 202, 794, 794, 794, 372, 342,
942
+ 343, 794, 794, 311, 311, 794, 794, 794, 182, 419,
943
+ 492, 493, 344, 794, 588, 492, 493, 794, 345, 589,
944
+ 794, 794, 794, 590, 494, 311, 308, 309, 495, 496,
945
+ 794, 794, 794, 794, 496, 171, 794, 794, 794, 310,
946
+ 273, 274, 794, 794, 311, 311, 794, 794, 794, 182,
947
+ 497, 492, 493, 275, 794, 497, 649, 560, 794, 276,
948
+ 494, 794, 794, 794, 495, 471, 311, 433, 382, 650,
949
+ 496, 794, 794, 794, 794, 651, 434, 794, 794, 794,
950
+
951
+ 435, 273, 274, 794, 794, 436, 437, 794, 794, 794,
952
+ 182, 497, 649, 560, 275, 794, 652, 354, 222, 794,
953
+ 276, 471, 794, 794, 794, 650, 406, 438, 320, 204,
954
+ 407, 651, 794, 794, 794, 794, 356, 377, 794, 794,
955
+ 794, 378, 342, 343, 794, 794, 322, 323, 794, 794,
956
+ 794, 182, 652, 654, 568, 344, 794, 357, 470, 411,
957
+ 794, 345, 471, 794, 794, 794, 655, 554, 324, 381,
958
+ 382, 555, 656, 794, 794, 794, 794, 473, 383, 794,
959
+ 794, 794, 384, 342, 343, 794, 794, 385, 386, 794,
960
+ 794, 794, 182, 657, 470, 411, 344, 794, 474, 559,
961
+
962
+ 560, 794, 345, 471, 794, 794, 794, 472, 412, 387,
963
+ 381, 382, 561, 473, 794, 794, 794, 794, 562, 383,
964
+ 794, 794, 794, 384, 273, 274, 794, 794, 385, 386,
965
+ 794, 794, 794, 182, 474, 559, 560, 275, 794, 563,
966
+ 560, 560, 794, 276, 412, 794, 794, 794, 561, 350,
967
+ 387, 382, 382, 564, 562, 794, 794, 794, 794, 565,
968
+ 316, 794, 794, 794, 439, 273, 274, 794, 794, 440,
969
+ 441, 794, 794, 794, 182, 563, 559, 560, 275, 794,
970
+ 468, 559, 560, 794, 276, 483, 794, 794, 794, 661,
971
+ 412, 442, 444, 445, 561, 562, 794, 794, 794, 794,
972
+
973
+ 562, 383, 794, 794, 794, 446, 342, 343, 794, 794,
974
+ 447, 448, 794, 794, 794, 182, 563, 559, 560, 344,
975
+ 794, 563, 664, 665, 794, 345, 412, 794, 794, 794,
976
+ 561, 412, 449, 381, 382, 666, 562, 794, 794, 794,
977
+ 794, 667, 450, 794, 794, 794, 451, 342, 343, 794,
978
+ 794, 385, 386, 794, 794, 794, 182, 563, 664, 665,
979
+ 344, 794, 668, 665, 665, 794, 345, 412, 794, 794,
980
+ 794, 666, 350, 387, 381, 382, 670, 667, 794, 794,
981
+ 794, 794, 671, 383, 794, 794, 794, 384, 342, 343,
982
+ 794, 794, 385, 386, 794, 794, 794, 182, 668, 410,
983
+
984
+ 411, 344, 794, 672, 664, 665, 794, 345, 483, 794,
985
+ 794, 794, 484, 412, 387, 381, 382, 666, 414, 794,
986
+ 794, 794, 794, 667, 383, 794, 794, 794, 384, 342,
987
+ 343, 794, 794, 385, 386, 794, 794, 794, 182, 415,
988
+ 664, 665, 344, 794, 668, 576, 493, 794, 345, 412,
989
+ 794, 794, 794, 666, 577, 387, 381, 382, 578, 667,
990
+ 794, 794, 794, 794, 579, 383, 794, 794, 794, 384,
991
+ 794, 794, 794, 794, 385, 386, 794, 794, 794, 794,
992
+ 668, 576, 493, 794, 794, 580, 674, 585, 794, 794,
993
+ 577, 794, 794, 794, 578, 577, 387, 393, 263, 675,
994
+
995
+ 579, 794, 794, 794, 794, 676, 455, 794, 794, 794,
996
+ 456, 794, 794, 794, 794, 395, 396, 794, 794, 794,
997
+ 794, 580, 576, 493, 794, 794, 677, 683, 684, 794,
998
+ 794, 678, 794, 794, 794, 679, 494, 397, 459, 460,
999
+ 685, 579, 794, 794, 794, 794, 686, 461, 794, 794,
1000
+ 794, 462, 794, 794, 794, 794, 463, 464, 794, 794,
1001
+ 794, 794, 580, 683, 684, 794, 794, 687, 684, 684,
1002
+ 794, 794, 494, 794, 794, 794, 685, 417, 465, 333,
1003
+ 263, 688, 686, 794, 794, 794, 794, 689, 399, 794,
1004
+ 794, 794, 400, 794, 794, 794, 794, 335, 336, 794,
1005
+
1006
+ 794, 794, 794, 687, 366, 293, 794, 794, 574, 683,
1007
+ 684, 794, 794, 426, 794, 794, 794, 427, 494, 337,
1008
+ 433, 382, 685, 368, 794, 794, 794, 794, 686, 434,
1009
+ 794, 794, 794, 435, 794, 794, 794, 794, 436, 437,
1010
+ 794, 794, 794, 794, 369, 683, 684, 794, 794, 687,
1011
+ 691, 692, 794, 794, 494, 794, 794, 794, 685, 494,
1012
+ 438, 433, 382, 693, 686, 794, 794, 794, 794, 694,
1013
+ 434, 794, 794, 794, 435, 794, 794, 794, 794, 436,
1014
+ 437, 794, 794, 794, 794, 687, 492, 493, 794, 794,
1015
+ 695, 649, 560, 794, 794, 589, 794, 794, 794, 590,
1016
+
1017
+ 471, 438, 499, 445, 650, 496, 794, 794, 794, 794,
1018
+ 651, 434, 794, 794, 794, 500, 794, 794, 794, 794,
1019
+ 501, 502, 794, 794, 794, 794, 497, 649, 560, 794,
1020
+ 794, 652, 649, 560, 794, 794, 471, 794, 794, 794,
1021
+ 650, 554, 503, 433, 382, 736, 651, 794, 794, 794,
1022
+ 794, 651, 504, 794, 794, 794, 505, 794, 794, 794,
1023
+ 794, 436, 437, 794, 794, 794, 794, 652, 738, 665,
1024
+ 794, 794, 652, 738, 665, 794, 794, 471, 794, 794,
1025
+ 794, 739, 471, 438, 433, 382, 739, 740, 794, 794,
1026
+ 794, 794, 740, 434, 794, 794, 794, 435, 794, 794,
1027
+
1028
+ 794, 794, 436, 437, 794, 794, 794, 794, 741, 470,
1029
+ 411, 794, 794, 741, 559, 560, 794, 794, 554, 794,
1030
+ 794, 794, 555, 483, 438, 169, 170, 661, 473, 794,
1031
+ 794, 794, 794, 562, 171, 794, 794, 794, 172, 794,
1032
+ 794, 794, 794, 173, 173, 794, 794, 794, 794, 474,
1033
+ 649, 560, 794, 794, 563, 664, 665, 794, 794, 471,
1034
+ 794, 794, 794, 650, 412, 173, 169, 170, 666, 651,
1035
+ 794, 794, 794, 794, 667, 171, 794, 794, 794, 172,
1036
+ 794, 794, 794, 794, 173, 173, 794, 794, 794, 794,
1037
+ 652, 664, 665, 794, 794, 668, 665, 665, 794, 794,
1038
+
1039
+ 412, 794, 794, 794, 666, 350, 173, 509, 510, 670,
1040
+ 667, 794, 794, 794, 794, 671, 383, 794, 794, 794,
1041
+ 511, 794, 794, 794, 794, 512, 513, 794, 794, 794,
1042
+ 794, 668, 664, 665, 794, 794, 672, 664, 665, 794,
1043
+ 794, 483, 794, 794, 794, 743, 412, 514, 509, 510,
1044
+ 666, 667, 794, 794, 794, 794, 667, 383, 794, 794,
1045
+ 794, 511, 794, 794, 794, 794, 512, 513, 794, 794,
1046
+ 794, 794, 668, 664, 665, 794, 794, 668, 746, 684,
1047
+ 794, 794, 412, 794, 794, 794, 666, 577, 514, 510,
1048
+ 510, 747, 667, 794, 794, 794, 794, 748, 316, 794,
1049
+
1050
+ 794, 794, 515, 794, 794, 794, 794, 516, 517, 794,
1051
+ 794, 794, 794, 668, 746, 684, 794, 794, 749, 421,
1052
+ 293, 794, 794, 577, 794, 794, 794, 747, 488, 518,
1053
+ 258, 204, 489, 748, 794, 794, 794, 794, 423, 326,
1054
+ 794, 794, 794, 327, 794, 794, 794, 794, 260, 261,
1055
+ 794, 794, 794, 794, 749, 751, 692, 794, 794, 424,
1056
+ 576, 493, 794, 794, 577, 794, 794, 794, 752, 678,
1057
+ 262, 509, 510, 679, 753, 794, 794, 794, 794, 579,
1058
+ 383, 794, 794, 794, 511, 794, 794, 794, 794, 512,
1059
+ 513, 794, 794, 794, 794, 754, 576, 493, 794, 794,
1060
+
1061
+ 580, 683, 684, 794, 794, 577, 794, 794, 794, 578,
1062
+ 494, 514, 509, 510, 685, 579, 794, 794, 794, 794,
1063
+ 686, 383, 794, 794, 794, 511, 794, 794, 794, 794,
1064
+ 512, 513, 794, 794, 794, 794, 580, 683, 684, 794,
1065
+ 794, 687, 684, 684, 794, 794, 494, 794, 794, 794,
1066
+ 685, 417, 514, 509, 510, 688, 686, 794, 794, 794,
1067
+ 794, 689, 383, 794, 794, 794, 511, 794, 794, 794,
1068
+ 794, 512, 513, 794, 794, 794, 794, 687, 683, 684,
1069
+ 794, 794, 574, 683, 684, 794, 794, 589, 794, 794,
1070
+ 794, 758, 494, 514, 520, 521, 685, 686, 794, 794,
1071
+
1072
+ 794, 794, 686, 383, 794, 794, 794, 522, 794, 794,
1073
+ 794, 794, 523, 524, 794, 794, 794, 794, 687, 683,
1074
+ 684, 794, 794, 687, 761, 762, 794, 794, 494, 794,
1075
+ 794, 794, 685, 494, 525, 381, 382, 763, 686, 794,
1076
+ 794, 794, 794, 764, 450, 794, 794, 794, 451, 794,
1077
+ 794, 794, 794, 385, 386, 794, 794, 794, 794, 687,
1078
+ 761, 762, 794, 794, 765, 762, 762, 794, 794, 494,
1079
+ 794, 794, 794, 763, 417, 387, 530, 460, 767, 764,
1080
+ 794, 794, 794, 794, 768, 531, 794, 794, 794, 532,
1081
+ 794, 794, 794, 794, 533, 534, 794, 794, 794, 794,
1082
+
1083
+ 765, 492, 493, 794, 794, 769, 761, 762, 794, 794,
1084
+ 589, 794, 794, 794, 590, 494, 535, 393, 263, 763,
1085
+ 496, 794, 794, 794, 794, 764, 455, 794, 794, 794,
1086
+ 456, 794, 794, 794, 794, 395, 396, 794, 794, 794,
1087
+ 794, 497, 761, 762, 794, 794, 765, 649, 560, 794,
1088
+ 794, 494, 794, 794, 794, 763, 554, 397, 459, 460,
1089
+ 736, 764, 794, 794, 794, 794, 651, 461, 794, 794,
1090
+ 794, 462, 794, 794, 794, 794, 463, 464, 794, 794,
1091
+ 794, 794, 765, 738, 665, 794, 794, 652, 738, 665,
1092
+ 794, 794, 471, 794, 794, 794, 739, 471, 465, 459,
1093
+
1094
+ 460, 739, 740, 794, 794, 794, 794, 740, 461, 794,
1095
+ 794, 794, 462, 794, 794, 794, 794, 463, 464, 794,
1096
+ 794, 794, 794, 741, 738, 665, 794, 794, 741, 664,
1097
+ 665, 794, 794, 554, 794, 794, 794, 782, 483, 465,
1098
+ 460, 460, 743, 740, 794, 794, 794, 794, 667, 389,
1099
+ 794, 794, 794, 536, 794, 794, 794, 794, 537, 538,
1100
+ 794, 794, 794, 794, 741, 738, 665, 794, 794, 668,
1101
+ 746, 684, 794, 794, 471, 794, 794, 794, 739, 577,
1102
+ 539, 541, 542, 747, 740, 794, 794, 794, 794, 748,
1103
+ 461, 794, 794, 794, 543, 794, 794, 794, 794, 544,
1104
+
1105
+ 545, 794, 794, 794, 794, 741, 746, 684, 794, 794,
1106
+ 749, 746, 684, 794, 794, 577, 794, 794, 794, 747,
1107
+ 678, 546, 459, 460, 783, 748, 794, 794, 794, 794,
1108
+ 748, 547, 794, 794, 794, 548, 794, 794, 794, 794,
1109
+ 463, 464, 794, 794, 794, 794, 749, 785, 762, 794,
1110
+ 794, 749, 785, 762, 794, 794, 577, 794, 794, 794,
1111
+ 786, 577, 465, 459, 460, 786, 787, 794, 794, 794,
1112
+ 794, 787, 461, 794, 794, 794, 462, 794, 794, 794,
1113
+ 794, 463, 464, 794, 794, 794, 794, 788, 576, 493,
1114
+ 794, 794, 788, 683, 684, 794, 794, 678, 794, 794,
1115
+
1116
+ 794, 679, 589, 465, 459, 460, 758, 579, 794, 794,
1117
+ 794, 794, 686, 461, 794, 794, 794, 462, 794, 794,
1118
+ 794, 794, 463, 464, 794, 794, 794, 794, 580, 746,
1119
+ 684, 794, 794, 687, 761, 762, 794, 794, 577, 794,
1120
+ 794, 794, 747, 494, 465, 459, 460, 763, 748, 794,
1121
+ 794, 794, 794, 764, 461, 794, 794, 794, 462, 794,
1122
+ 794, 794, 794, 463, 464, 794, 794, 794, 794, 749,
1123
+ 761, 762, 794, 794, 765, 762, 762, 794, 794, 494,
1124
+ 794, 794, 794, 763, 417, 465, 592, 510, 767, 764,
1125
+ 794, 794, 794, 794, 768, 434, 794, 794, 794, 593,
1126
+
1127
+ 794, 794, 794, 794, 594, 595, 794, 794, 794, 794,
1128
+ 765, 761, 762, 794, 794, 769, 761, 762, 794, 794,
1129
+ 589, 794, 794, 794, 790, 494, 596, 592, 510, 763,
1130
+ 764, 794, 794, 794, 794, 764, 434, 794, 794, 794,
1131
+ 593, 794, 794, 794, 794, 594, 595, 794, 794, 794,
1132
+ 794, 765, 761, 762, 794, 794, 765, 738, 665, 794,
1133
+ 794, 494, 794, 794, 794, 763, 554, 596, 320, 204,
1134
+ 782, 764, 794, 794, 794, 794, 740, 377, 794, 794,
1135
+ 794, 378, 794, 794, 794, 794, 322, 323, 794, 794,
1136
+ 794, 794, 765, 746, 684, 794, 794, 741, 785, 762,
1137
+
1138
+ 794, 794, 678, 794, 794, 794, 783, 577, 324, 592,
1139
+ 510, 786, 748, 794, 794, 794, 794, 787, 434, 794,
1140
+ 794, 794, 593, 794, 794, 794, 794, 594, 595, 794,
1141
+ 794, 794, 794, 749, 785, 762, 794, 794, 788, 785,
1142
+ 762, 794, 794, 577, 794, 794, 794, 786, 678, 596,
1143
+ 242, 243, 793, 787, 794, 794, 794, 794, 787, 171,
1144
+ 794, 794, 794, 244, 794, 794, 794, 794, 245, 245,
1145
+ 794, 794, 794, 794, 788, 761, 762, 794, 794, 788,
1146
+ 785, 762, 794, 794, 589, 794, 794, 794, 790, 577,
1147
+ 245, 242, 243, 786, 764, 794, 794, 794, 794, 787,
1148
+
1149
+ 171, 794, 794, 794, 244, 794, 794, 794, 794, 245,
1150
+ 245, 794, 794, 794, 794, 765, 785, 762, 794, 794,
1151
+ 788, 794, 794, 794, 794, 678, 794, 794, 794, 793,
1152
+ 794, 245, 598, 521, 794, 787, 794, 794, 794, 794,
1153
+ 794, 434, 794, 794, 794, 599, 794, 794, 794, 794,
1154
+ 600, 601, 794, 794, 794, 794, 788, 794, 794, 794,
1155
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1156
+ 794, 794, 602, 433, 382, 794, 794, 794, 794, 794,
1157
+ 794, 794, 504, 794, 794, 794, 505, 794, 794, 794,
1158
+ 794, 436, 437, 794, 794, 794, 794, 794, 794, 794,
1159
+
1160
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1161
+ 794, 794, 794, 438, 433, 382, 794, 794, 794, 794,
1162
+ 794, 794, 794, 434, 794, 794, 794, 435, 794, 794,
1163
+ 794, 794, 436, 437, 794, 794, 794, 794, 794, 794,
1164
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1165
+ 794, 794, 794, 794, 438, 509, 510, 794, 794, 794,
1166
+ 794, 794, 794, 794, 383, 794, 794, 794, 511, 794,
1167
+ 794, 794, 794, 512, 513, 794, 794, 794, 794, 794,
1168
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1169
+ 794, 794, 794, 794, 794, 514, 509, 510, 794, 794,
1170
+
1171
+ 794, 794, 794, 794, 794, 383, 794, 794, 794, 511,
1172
+ 794, 794, 794, 794, 512, 513, 794, 794, 794, 794,
1173
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1174
+ 794, 794, 794, 794, 794, 794, 514, 510, 510, 794,
1175
+ 794, 794, 794, 794, 794, 794, 316, 794, 794, 794,
1176
+ 515, 794, 794, 794, 794, 516, 517, 794, 794, 794,
1177
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1178
+ 794, 794, 794, 794, 794, 794, 794, 518, 509, 510,
1179
+ 794, 794, 794, 794, 794, 794, 794, 450, 794, 794,
1180
+ 794, 606, 794, 794, 794, 794, 512, 513, 794, 794,
1181
+
1182
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1183
+ 794, 794, 794, 794, 794, 794, 794, 794, 514, 509,
1184
+ 510, 794, 794, 794, 794, 794, 794, 794, 383, 794,
1185
+ 794, 794, 511, 794, 794, 794, 794, 512, 513, 794,
1186
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1187
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 514,
1188
+ 509, 510, 794, 794, 794, 794, 794, 794, 794, 383,
1189
+ 794, 794, 794, 511, 794, 794, 794, 794, 512, 513,
1190
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1191
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1192
+
1193
+ 514, 509, 510, 794, 794, 794, 794, 794, 794, 794,
1194
+ 383, 794, 794, 794, 511, 794, 794, 794, 794, 512,
1195
+ 513, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1196
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1197
+ 794, 514, 609, 610, 794, 794, 794, 794, 794, 794,
1198
+ 794, 383, 794, 794, 794, 611, 794, 794, 794, 794,
1199
+ 612, 613, 794, 794, 794, 794, 794, 794, 794, 794,
1200
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1201
+ 794, 794, 614, 609, 610, 794, 794, 794, 794, 794,
1202
+ 794, 794, 383, 794, 794, 794, 611, 794, 794, 794,
1203
+
1204
+ 794, 612, 613, 794, 794, 794, 794, 794, 794, 794,
1205
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1206
+ 794, 794, 794, 614, 610, 610, 794, 794, 794, 794,
1207
+ 794, 794, 794, 316, 794, 794, 794, 616, 794, 794,
1208
+ 794, 794, 617, 618, 794, 794, 794, 794, 794, 794,
1209
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1210
+ 794, 794, 794, 794, 619, 381, 382, 794, 794, 794,
1211
+ 794, 794, 794, 794, 450, 794, 794, 794, 451, 794,
1212
+ 794, 794, 794, 385, 386, 794, 794, 794, 794, 794,
1213
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1214
+
1215
+ 794, 794, 794, 794, 794, 387, 609, 610, 794, 794,
1216
+ 794, 794, 794, 794, 794, 383, 794, 794, 794, 611,
1217
+ 794, 794, 794, 794, 612, 613, 794, 794, 794, 794,
1218
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1219
+ 794, 794, 794, 794, 794, 794, 614, 609, 610, 794,
1220
+ 794, 794, 794, 794, 794, 794, 383, 794, 794, 794,
1221
+ 611, 794, 794, 794, 794, 612, 613, 794, 794, 794,
1222
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1223
+ 794, 794, 794, 794, 794, 794, 794, 614, 609, 610,
1224
+ 794, 794, 794, 794, 794, 794, 794, 383, 794, 794,
1225
+
1226
+ 794, 611, 794, 794, 794, 794, 612, 613, 794, 794,
1227
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1228
+ 794, 794, 794, 794, 794, 794, 794, 794, 614, 530,
1229
+ 460, 794, 794, 794, 794, 794, 794, 794, 531, 794,
1230
+ 794, 794, 532, 794, 794, 794, 794, 533, 534, 794,
1231
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1232
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 535,
1233
+ 530, 460, 794, 794, 794, 794, 794, 794, 794, 531,
1234
+ 794, 794, 794, 532, 794, 794, 794, 794, 533, 534,
1235
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1236
+
1237
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1238
+ 535, 621, 542, 794, 794, 794, 794, 794, 794, 794,
1239
+ 531, 794, 794, 794, 622, 794, 794, 794, 794, 623,
1240
+ 624, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1241
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1242
+ 794, 625, 530, 460, 794, 794, 794, 794, 794, 794,
1243
+ 794, 626, 794, 794, 794, 627, 794, 794, 794, 794,
1244
+ 533, 534, 794, 794, 794, 794, 794, 794, 794, 794,
1245
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1246
+ 794, 794, 535, 530, 460, 794, 794, 794, 794, 794,
1247
+
1248
+ 794, 794, 531, 794, 794, 794, 532, 794, 794, 794,
1249
+ 794, 533, 534, 794, 794, 794, 794, 794, 794, 794,
1250
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1251
+ 794, 794, 794, 535, 169, 170, 794, 794, 794, 794,
1252
+ 794, 794, 794, 171, 794, 794, 794, 172, 794, 794,
1253
+ 794, 794, 173, 173, 794, 794, 794, 794, 794, 794,
1254
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1255
+ 794, 794, 794, 794, 173, 169, 170, 794, 794, 794,
1256
+ 794, 794, 794, 794, 171, 794, 794, 794, 172, 794,
1257
+ 794, 794, 794, 173, 173, 794, 794, 794, 794, 794,
1258
+
1259
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1260
+ 794, 794, 794, 794, 794, 173, 631, 632, 794, 794,
1261
+ 794, 794, 794, 794, 794, 461, 794, 794, 794, 633,
1262
+ 794, 794, 794, 794, 634, 635, 794, 794, 794, 794,
1263
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1264
+ 794, 794, 794, 794, 794, 794, 636, 631, 632, 794,
1265
+ 794, 794, 794, 794, 794, 794, 461, 794, 794, 794,
1266
+ 633, 794, 794, 794, 794, 634, 635, 794, 794, 794,
1267
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1268
+ 794, 794, 794, 794, 794, 794, 794, 636, 632, 632,
1269
+
1270
+ 794, 794, 794, 794, 794, 794, 794, 389, 794, 794,
1271
+ 794, 637, 794, 794, 794, 794, 638, 639, 794, 794,
1272
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1273
+ 794, 794, 794, 794, 794, 794, 794, 794, 640, 333,
1274
+ 263, 794, 794, 794, 794, 794, 794, 794, 399, 794,
1275
+ 794, 794, 400, 794, 794, 794, 794, 335, 336, 794,
1276
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1277
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 337,
1278
+ 631, 632, 794, 794, 794, 794, 794, 794, 794, 461,
1279
+ 794, 794, 794, 633, 794, 794, 794, 794, 634, 635,
1280
+
1281
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1282
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1283
+ 636, 631, 632, 794, 794, 794, 794, 794, 794, 794,
1284
+ 461, 794, 794, 794, 633, 794, 794, 794, 794, 634,
1285
+ 635, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1286
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1287
+ 794, 636, 631, 632, 794, 794, 794, 794, 794, 794,
1288
+ 794, 461, 794, 794, 794, 633, 794, 794, 794, 794,
1289
+ 634, 635, 794, 794, 794, 794, 794, 794, 794, 794,
1290
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1291
+
1292
+ 794, 794, 636, 642, 643, 794, 794, 794, 794, 794,
1293
+ 794, 794, 461, 794, 794, 794, 644, 794, 794, 794,
1294
+ 794, 645, 646, 794, 794, 794, 794, 794, 794, 794,
1295
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1296
+ 794, 794, 794, 647, 459, 460, 794, 794, 794, 794,
1297
+ 794, 794, 794, 547, 794, 794, 794, 548, 794, 794,
1298
+ 794, 794, 463, 464, 794, 794, 794, 794, 794, 794,
1299
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1300
+ 794, 794, 794, 794, 465, 592, 510, 794, 794, 794,
1301
+ 794, 794, 794, 794, 434, 794, 794, 794, 593, 794,
1302
+
1303
+ 794, 794, 794, 594, 595, 794, 794, 794, 794, 794,
1304
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1305
+ 794, 794, 794, 794, 794, 596, 592, 510, 794, 794,
1306
+ 794, 794, 794, 794, 794, 434, 794, 794, 794, 593,
1307
+ 794, 794, 794, 794, 594, 595, 794, 794, 794, 794,
1308
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1309
+ 794, 794, 794, 794, 794, 794, 596, 592, 510, 794,
1310
+ 794, 794, 794, 794, 794, 794, 504, 794, 794, 794,
1311
+ 696, 794, 794, 794, 794, 594, 595, 794, 794, 794,
1312
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1313
+
1314
+ 794, 794, 794, 794, 794, 794, 794, 596, 592, 510,
1315
+ 794, 794, 794, 794, 794, 794, 794, 434, 794, 794,
1316
+ 794, 593, 794, 794, 794, 794, 594, 595, 794, 794,
1317
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1318
+ 794, 794, 794, 794, 794, 794, 794, 794, 596, 242,
1319
+ 243, 794, 794, 794, 794, 794, 794, 794, 171, 794,
1320
+ 794, 794, 244, 794, 794, 794, 794, 245, 245, 794,
1321
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1322
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 245,
1323
+ 242, 243, 794, 794, 794, 794, 794, 794, 794, 171,
1324
+
1325
+ 794, 794, 794, 244, 794, 794, 794, 794, 245, 245,
1326
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1327
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1328
+ 245, 698, 610, 794, 794, 794, 794, 794, 794, 794,
1329
+ 434, 794, 794, 794, 699, 794, 794, 794, 794, 700,
1330
+ 701, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1331
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1332
+ 794, 702, 698, 610, 794, 794, 794, 794, 794, 794,
1333
+ 794, 434, 794, 794, 794, 699, 794, 794, 794, 794,
1334
+ 700, 701, 794, 794, 794, 794, 794, 794, 794, 794,
1335
+
1336
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1337
+ 794, 794, 702, 433, 382, 794, 794, 794, 794, 794,
1338
+ 794, 794, 504, 794, 794, 794, 505, 794, 794, 794,
1339
+ 794, 436, 437, 794, 794, 794, 794, 794, 794, 794,
1340
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1341
+ 794, 794, 794, 438, 698, 610, 794, 794, 794, 794,
1342
+ 794, 794, 794, 434, 794, 794, 794, 699, 794, 794,
1343
+ 794, 794, 700, 701, 794, 794, 794, 794, 794, 794,
1344
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1345
+ 794, 794, 794, 794, 702, 308, 309, 794, 794, 794,
1346
+
1347
+ 794, 794, 794, 794, 171, 794, 794, 794, 310, 794,
1348
+ 794, 794, 794, 311, 311, 794, 794, 794, 794, 794,
1349
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1350
+ 794, 794, 794, 794, 794, 311, 308, 309, 794, 794,
1351
+ 794, 794, 794, 794, 794, 171, 794, 794, 794, 310,
1352
+ 794, 794, 794, 794, 311, 311, 794, 794, 794, 794,
1353
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1354
+ 794, 794, 794, 794, 794, 794, 311, 509, 510, 794,
1355
+ 794, 794, 794, 794, 794, 794, 450, 794, 794, 794,
1356
+ 606, 794, 794, 794, 794, 512, 513, 794, 794, 794,
1357
+
1358
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1359
+ 794, 794, 794, 794, 794, 794, 794, 514, 592, 510,
1360
+ 794, 794, 794, 794, 794, 794, 794, 434, 794, 794,
1361
+ 794, 593, 794, 794, 794, 794, 594, 595, 794, 794,
1362
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1363
+ 794, 794, 794, 794, 794, 794, 794, 794, 596, 609,
1364
+ 610, 794, 794, 794, 794, 794, 794, 794, 383, 794,
1365
+ 794, 794, 611, 794, 794, 794, 794, 612, 613, 794,
1366
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1367
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 614,
1368
+
1369
+ 609, 610, 794, 794, 794, 794, 794, 794, 794, 383,
1370
+ 794, 794, 794, 611, 794, 794, 794, 794, 612, 613,
1371
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1372
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1373
+ 614, 610, 610, 794, 794, 794, 794, 794, 794, 794,
1374
+ 316, 794, 794, 794, 616, 794, 794, 794, 794, 617,
1375
+ 618, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1376
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1377
+ 794, 619, 609, 610, 794, 794, 794, 794, 794, 794,
1378
+ 794, 450, 794, 794, 794, 705, 794, 794, 794, 794,
1379
+
1380
+ 612, 613, 794, 794, 794, 794, 794, 794, 794, 794,
1381
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1382
+ 794, 794, 614, 609, 610, 794, 794, 794, 794, 794,
1383
+ 794, 794, 383, 794, 794, 794, 611, 794, 794, 794,
1384
+ 794, 612, 613, 794, 794, 794, 794, 794, 794, 794,
1385
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1386
+ 794, 794, 794, 614, 609, 610, 794, 794, 794, 794,
1387
+ 794, 794, 794, 383, 794, 794, 794, 611, 794, 794,
1388
+ 794, 794, 612, 613, 794, 794, 794, 794, 794, 794,
1389
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1390
+
1391
+ 794, 794, 794, 794, 614, 609, 610, 794, 794, 794,
1392
+ 794, 794, 794, 794, 383, 794, 794, 794, 611, 794,
1393
+ 794, 794, 794, 612, 613, 794, 794, 794, 794, 794,
1394
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1395
+ 794, 794, 794, 794, 794, 614, 708, 632, 794, 794,
1396
+ 794, 794, 794, 794, 794, 531, 794, 794, 794, 709,
1397
+ 794, 794, 794, 794, 710, 711, 794, 794, 794, 794,
1398
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1399
+ 794, 794, 794, 794, 794, 794, 712, 708, 632, 794,
1400
+ 794, 794, 794, 794, 794, 794, 531, 794, 794, 794,
1401
+
1402
+ 709, 794, 794, 794, 794, 710, 711, 794, 794, 794,
1403
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1404
+ 794, 794, 794, 794, 794, 794, 794, 712, 393, 263,
1405
+ 794, 794, 794, 794, 794, 794, 794, 455, 794, 794,
1406
+ 794, 456, 794, 794, 794, 794, 395, 396, 794, 794,
1407
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1408
+ 794, 794, 794, 794, 794, 794, 794, 794, 397, 708,
1409
+ 632, 794, 794, 794, 794, 794, 794, 794, 531, 794,
1410
+ 794, 794, 709, 794, 794, 794, 794, 710, 711, 794,
1411
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1412
+
1413
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 712,
1414
+ 242, 243, 794, 794, 794, 794, 794, 794, 794, 171,
1415
+ 794, 794, 794, 244, 794, 794, 794, 794, 245, 245,
1416
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1417
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1418
+ 245, 242, 243, 794, 794, 794, 794, 794, 794, 794,
1419
+ 171, 794, 794, 794, 244, 794, 794, 794, 794, 245,
1420
+ 245, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1421
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1422
+ 794, 245, 714, 643, 794, 794, 794, 794, 794, 794,
1423
+
1424
+ 794, 531, 794, 794, 794, 715, 794, 794, 794, 794,
1425
+ 716, 717, 794, 794, 794, 794, 794, 794, 794, 794,
1426
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1427
+ 794, 794, 718, 530, 460, 794, 794, 794, 794, 794,
1428
+ 794, 794, 626, 794, 794, 794, 627, 794, 794, 794,
1429
+ 794, 533, 534, 794, 794, 794, 794, 794, 794, 794,
1430
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1431
+ 794, 794, 794, 535, 530, 460, 794, 794, 794, 794,
1432
+ 794, 794, 794, 531, 794, 794, 794, 532, 794, 794,
1433
+ 794, 794, 533, 534, 794, 794, 794, 794, 794, 794,
1434
+
1435
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1436
+ 794, 794, 794, 794, 535, 631, 632, 794, 794, 794,
1437
+ 794, 794, 794, 794, 461, 794, 794, 794, 633, 794,
1438
+ 794, 794, 794, 634, 635, 794, 794, 794, 794, 794,
1439
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1440
+ 794, 794, 794, 794, 794, 636, 631, 632, 794, 794,
1441
+ 794, 794, 794, 794, 794, 461, 794, 794, 794, 633,
1442
+ 794, 794, 794, 794, 634, 635, 794, 794, 794, 794,
1443
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1444
+ 794, 794, 794, 794, 794, 794, 636, 632, 632, 794,
1445
+
1446
+ 794, 794, 794, 794, 794, 794, 389, 794, 794, 794,
1447
+ 637, 794, 794, 794, 794, 638, 639, 794, 794, 794,
1448
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1449
+ 794, 794, 794, 794, 794, 794, 794, 640, 631, 632,
1450
+ 794, 794, 794, 794, 794, 794, 794, 547, 794, 794,
1451
+ 794, 722, 794, 794, 794, 794, 634, 635, 794, 794,
1452
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1453
+ 794, 794, 794, 794, 794, 794, 794, 794, 636, 631,
1454
+ 632, 794, 794, 794, 794, 794, 794, 794, 461, 794,
1455
+ 794, 794, 633, 794, 794, 794, 794, 634, 635, 794,
1456
+
1457
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1458
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 636,
1459
+ 631, 632, 794, 794, 794, 794, 794, 794, 794, 461,
1460
+ 794, 794, 794, 633, 794, 794, 794, 794, 634, 635,
1461
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1462
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1463
+ 636, 631, 632, 794, 794, 794, 794, 794, 794, 794,
1464
+ 461, 794, 794, 794, 633, 794, 794, 794, 794, 634,
1465
+ 635, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1466
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1467
+
1468
+ 794, 636, 725, 726, 794, 794, 794, 794, 794, 794,
1469
+ 794, 461, 794, 794, 794, 727, 794, 794, 794, 794,
1470
+ 728, 729, 794, 794, 794, 794, 794, 794, 794, 794,
1471
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1472
+ 794, 794, 730, 725, 726, 794, 794, 794, 794, 794,
1473
+ 794, 794, 461, 794, 794, 794, 727, 794, 794, 794,
1474
+ 794, 728, 729, 794, 794, 794, 794, 794, 794, 794,
1475
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1476
+ 794, 794, 794, 730, 726, 726, 794, 794, 794, 794,
1477
+ 794, 794, 794, 389, 794, 794, 794, 732, 794, 794,
1478
+
1479
+ 794, 794, 733, 734, 794, 794, 794, 794, 794, 794,
1480
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1481
+ 794, 794, 794, 794, 735, 459, 460, 794, 794, 794,
1482
+ 794, 794, 794, 794, 547, 794, 794, 794, 548, 794,
1483
+ 794, 794, 794, 463, 464, 794, 794, 794, 794, 794,
1484
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1485
+ 794, 794, 794, 794, 794, 465, 725, 726, 794, 794,
1486
+ 794, 794, 794, 794, 794, 461, 794, 794, 794, 727,
1487
+ 794, 794, 794, 794, 728, 729, 794, 794, 794, 794,
1488
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1489
+
1490
+ 794, 794, 794, 794, 794, 794, 730, 725, 726, 794,
1491
+ 794, 794, 794, 794, 794, 794, 461, 794, 794, 794,
1492
+ 727, 794, 794, 794, 794, 728, 729, 794, 794, 794,
1493
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1494
+ 794, 794, 794, 794, 794, 794, 794, 730, 725, 726,
1495
+ 794, 794, 794, 794, 794, 794, 794, 461, 794, 794,
1496
+ 794, 727, 794, 794, 794, 794, 728, 729, 794, 794,
1497
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1498
+ 794, 794, 794, 794, 794, 794, 794, 794, 730, 592,
1499
+ 510, 794, 794, 794, 794, 794, 794, 794, 504, 794,
1500
+
1501
+ 794, 794, 696, 794, 794, 794, 794, 594, 595, 794,
1502
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1503
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 596,
1504
+ 698, 610, 794, 794, 794, 794, 794, 794, 794, 434,
1505
+ 794, 794, 794, 699, 794, 794, 794, 794, 700, 701,
1506
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1507
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1508
+ 702, 698, 610, 794, 794, 794, 794, 794, 794, 794,
1509
+ 434, 794, 794, 794, 699, 794, 794, 794, 794, 700,
1510
+ 701, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1511
+
1512
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1513
+ 794, 702, 698, 610, 794, 794, 794, 794, 794, 794,
1514
+ 794, 504, 794, 794, 794, 770, 794, 794, 794, 794,
1515
+ 700, 701, 794, 794, 794, 794, 794, 794, 794, 794,
1516
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1517
+ 794, 794, 702, 698, 610, 794, 794, 794, 794, 794,
1518
+ 794, 794, 434, 794, 794, 794, 699, 794, 794, 794,
1519
+ 794, 700, 701, 794, 794, 794, 794, 794, 794, 794,
1520
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1521
+ 794, 794, 794, 702, 308, 309, 794, 794, 794, 794,
1522
+
1523
+ 794, 794, 794, 171, 794, 794, 794, 310, 794, 794,
1524
+ 794, 794, 311, 311, 794, 794, 794, 794, 794, 794,
1525
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1526
+ 794, 794, 794, 794, 311, 308, 309, 794, 794, 794,
1527
+ 794, 794, 794, 794, 171, 794, 794, 794, 310, 794,
1528
+ 794, 794, 794, 311, 311, 794, 794, 794, 794, 794,
1529
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1530
+ 794, 794, 794, 794, 794, 311, 609, 610, 794, 794,
1531
+ 794, 794, 794, 794, 794, 450, 794, 794, 794, 705,
1532
+ 794, 794, 794, 794, 612, 613, 794, 794, 794, 794,
1533
+
1534
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1535
+ 794, 794, 794, 794, 794, 794, 614, 698, 610, 794,
1536
+ 794, 794, 794, 794, 794, 794, 434, 794, 794, 794,
1537
+ 699, 794, 794, 794, 794, 700, 701, 794, 794, 794,
1538
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1539
+ 794, 794, 794, 794, 794, 794, 794, 702, 708, 632,
1540
+ 794, 794, 794, 794, 794, 794, 794, 531, 794, 794,
1541
+ 794, 709, 794, 794, 794, 794, 710, 711, 794, 794,
1542
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1543
+ 794, 794, 794, 794, 794, 794, 794, 794, 712, 708,
1544
+
1545
+ 632, 794, 794, 794, 794, 794, 794, 794, 531, 794,
1546
+ 794, 794, 709, 794, 794, 794, 794, 710, 711, 794,
1547
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1548
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 712,
1549
+ 708, 632, 794, 794, 794, 794, 794, 794, 794, 626,
1550
+ 794, 794, 794, 771, 794, 794, 794, 794, 710, 711,
1551
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1552
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1553
+ 712, 708, 632, 794, 794, 794, 794, 794, 794, 794,
1554
+ 531, 794, 794, 794, 709, 794, 794, 794, 794, 710,
1555
+
1556
+ 711, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1557
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1558
+ 794, 712, 242, 243, 794, 794, 794, 794, 794, 794,
1559
+ 794, 171, 794, 794, 794, 244, 794, 794, 794, 794,
1560
+ 245, 245, 794, 794, 794, 794, 794, 794, 794, 794,
1561
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1562
+ 794, 794, 245, 242, 243, 794, 794, 794, 794, 794,
1563
+ 794, 794, 171, 794, 794, 794, 244, 794, 794, 794,
1564
+ 794, 245, 245, 794, 794, 794, 794, 794, 794, 794,
1565
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1566
+
1567
+ 794, 794, 794, 245, 773, 726, 794, 794, 794, 794,
1568
+ 794, 794, 794, 531, 794, 794, 794, 774, 794, 794,
1569
+ 794, 794, 775, 776, 794, 794, 794, 794, 794, 794,
1570
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1571
+ 794, 794, 794, 794, 777, 773, 726, 794, 794, 794,
1572
+ 794, 794, 794, 794, 531, 794, 794, 794, 774, 794,
1573
+ 794, 794, 794, 775, 776, 794, 794, 794, 794, 794,
1574
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1575
+ 794, 794, 794, 794, 794, 777, 530, 460, 794, 794,
1576
+ 794, 794, 794, 794, 794, 626, 794, 794, 794, 627,
1577
+
1578
+ 794, 794, 794, 794, 533, 534, 794, 794, 794, 794,
1579
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1580
+ 794, 794, 794, 794, 794, 794, 535, 773, 726, 794,
1581
+ 794, 794, 794, 794, 794, 794, 531, 794, 794, 794,
1582
+ 774, 794, 794, 794, 794, 775, 776, 794, 794, 794,
1583
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1584
+ 794, 794, 794, 794, 794, 794, 794, 777, 308, 309,
1585
+ 794, 794, 794, 794, 794, 794, 794, 171, 794, 794,
1586
+ 794, 310, 794, 794, 794, 794, 311, 311, 794, 794,
1587
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1588
+
1589
+ 794, 794, 794, 794, 794, 794, 794, 794, 311, 308,
1590
+ 309, 794, 794, 794, 794, 794, 794, 794, 171, 794,
1591
+ 794, 794, 310, 794, 794, 794, 794, 311, 311, 794,
1592
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1593
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 311,
1594
+ 631, 632, 794, 794, 794, 794, 794, 794, 794, 547,
1595
+ 794, 794, 794, 722, 794, 794, 794, 794, 634, 635,
1596
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1597
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1598
+ 636, 708, 632, 794, 794, 794, 794, 794, 794, 794,
1599
+
1600
+ 531, 794, 794, 794, 709, 794, 794, 794, 794, 710,
1601
+ 711, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1602
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1603
+ 794, 712, 725, 726, 794, 794, 794, 794, 794, 794,
1604
+ 794, 461, 794, 794, 794, 727, 794, 794, 794, 794,
1605
+ 728, 729, 794, 794, 794, 794, 794, 794, 794, 794,
1606
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1607
+ 794, 794, 730, 725, 726, 794, 794, 794, 794, 794,
1608
+ 794, 794, 461, 794, 794, 794, 727, 794, 794, 794,
1609
+ 794, 728, 729, 794, 794, 794, 794, 794, 794, 794,
1610
+
1611
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1612
+ 794, 794, 794, 730, 726, 726, 794, 794, 794, 794,
1613
+ 794, 794, 794, 389, 794, 794, 794, 732, 794, 794,
1614
+ 794, 794, 733, 734, 794, 794, 794, 794, 794, 794,
1615
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1616
+ 794, 794, 794, 794, 735, 725, 726, 794, 794, 794,
1617
+ 794, 794, 794, 794, 547, 794, 794, 794, 780, 794,
1618
+ 794, 794, 794, 728, 729, 794, 794, 794, 794, 794,
1619
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1620
+ 794, 794, 794, 794, 794, 730, 725, 726, 794, 794,
1621
+
1622
+ 794, 794, 794, 794, 794, 461, 794, 794, 794, 727,
1623
+ 794, 794, 794, 794, 728, 729, 794, 794, 794, 794,
1624
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1625
+ 794, 794, 794, 794, 794, 794, 730, 725, 726, 794,
1626
+ 794, 794, 794, 794, 794, 794, 461, 794, 794, 794,
1627
+ 727, 794, 794, 794, 794, 728, 729, 794, 794, 794,
1628
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1629
+ 794, 794, 794, 794, 794, 794, 794, 730, 725, 726,
1630
+ 794, 794, 794, 794, 794, 794, 794, 461, 794, 794,
1631
+ 794, 727, 794, 794, 794, 794, 728, 729, 794, 794,
1632
+
1633
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1634
+ 794, 794, 794, 794, 794, 794, 794, 794, 730, 698,
1635
+ 610, 794, 794, 794, 794, 794, 794, 794, 504, 794,
1636
+ 794, 794, 770, 794, 794, 794, 794, 700, 701, 794,
1637
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1638
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 702,
1639
+ 708, 632, 794, 794, 794, 794, 794, 794, 794, 626,
1640
+ 794, 794, 794, 771, 794, 794, 794, 794, 710, 711,
1641
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1642
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1643
+
1644
+ 712, 773, 726, 794, 794, 794, 794, 794, 794, 794,
1645
+ 531, 794, 794, 794, 774, 794, 794, 794, 794, 775,
1646
+ 776, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1647
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1648
+ 794, 777, 773, 726, 794, 794, 794, 794, 794, 794,
1649
+ 794, 531, 794, 794, 794, 774, 794, 794, 794, 794,
1650
+ 775, 776, 794, 794, 794, 794, 794, 794, 794, 794,
1651
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1652
+ 794, 794, 777, 773, 726, 794, 794, 794, 794, 794,
1653
+ 794, 794, 626, 794, 794, 794, 792, 794, 794, 794,
1654
+
1655
+ 794, 775, 776, 794, 794, 794, 794, 794, 794, 794,
1656
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1657
+ 794, 794, 794, 777, 773, 726, 794, 794, 794, 794,
1658
+ 794, 794, 794, 531, 794, 794, 794, 774, 794, 794,
1659
+ 794, 794, 775, 776, 794, 794, 794, 794, 794, 794,
1660
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1661
+ 794, 794, 794, 794, 777, 308, 309, 794, 794, 794,
1662
+ 794, 794, 794, 794, 171, 794, 794, 794, 310, 794,
1663
+ 794, 794, 794, 311, 311, 794, 794, 794, 794, 794,
1664
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1665
+
1666
+ 794, 794, 794, 794, 794, 311, 308, 309, 794, 794,
1667
+ 794, 794, 794, 794, 794, 171, 794, 794, 794, 310,
1668
+ 794, 794, 794, 794, 311, 311, 794, 794, 794, 794,
1669
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1670
+ 794, 794, 794, 794, 794, 794, 311, 725, 726, 794,
1671
+ 794, 794, 794, 794, 794, 794, 547, 794, 794, 794,
1672
+ 780, 794, 794, 794, 794, 728, 729, 794, 794, 794,
1673
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1674
+ 794, 794, 794, 794, 794, 794, 794, 730, 773, 726,
1675
+ 794, 794, 794, 794, 794, 794, 794, 531, 794, 794,
1676
+
1677
+ 794, 774, 794, 794, 794, 794, 775, 776, 794, 794,
1678
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1679
+ 794, 794, 794, 794, 794, 794, 794, 794, 777, 773,
1680
+ 726, 794, 794, 794, 794, 794, 794, 794, 626, 794,
1681
+ 794, 794, 792, 794, 794, 794, 794, 775, 776, 794,
1682
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1683
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 777,
1684
+ 52, 52, 52, 52, 52, 52, 52, 55, 55, 55,
1685
+ 794, 55, 55, 55, 69, 794, 69, 77, 77, 794,
1686
+ 77, 77, 77, 81, 794, 81, 86, 86, 794, 86,
1687
+
1688
+ 794, 86, 103, 103, 103, 103, 103, 103, 103, 105,
1689
+ 105, 794, 105, 105, 105, 105, 126, 126, 126, 126,
1690
+ 126, 126, 126, 131, 131, 131, 131, 131, 131, 131,
1691
+ 133, 133, 133, 133, 133, 133, 133, 141, 141, 141,
1692
+ 141, 141, 141, 141, 143, 143, 143, 143, 143, 143,
1693
+ 143, 149, 149, 149, 149, 149, 149, 149, 152, 152,
1694
+ 152, 152, 152, 152, 152, 159, 159, 159, 159, 159,
1695
+ 159, 159, 167, 167, 167, 167, 167, 167, 167, 168,
1696
+ 168, 168, 168, 168, 168, 168, 178, 178, 178, 178,
1697
+ 178, 178, 178, 179, 179, 179, 179, 179, 179, 179,
1698
+
1699
+ 188, 188, 188, 188, 188, 188, 188, 197, 197, 197,
1700
+ 197, 197, 197, 197, 215, 215, 215, 215, 215, 215,
1701
+ 215, 229, 229, 229, 229, 229, 229, 229, 231, 231,
1702
+ 231, 231, 231, 231, 231, 234, 234, 234, 234, 234,
1703
+ 234, 234, 241, 241, 241, 241, 241, 241, 241, 248,
1704
+ 248, 248, 248, 248, 248, 248, 255, 255, 255, 255,
1705
+ 255, 255, 255, 257, 257, 257, 257, 257, 257, 257,
1706
+ 272, 272, 272, 272, 272, 272, 272, 279, 279, 279,
1707
+ 279, 279, 279, 279, 286, 286, 286, 286, 286, 286,
1708
+ 286, 288, 288, 288, 288, 288, 288, 288, 298, 298,
1709
+
1710
+ 298, 298, 298, 298, 298, 299, 299, 299, 299, 299,
1711
+ 299, 299, 301, 301, 301, 301, 301, 301, 301, 304,
1712
+ 304, 304, 304, 304, 304, 304, 307, 307, 307, 307,
1713
+ 307, 307, 307, 312, 312, 312, 312, 312, 312, 312,
1714
+ 315, 315, 315, 315, 315, 315, 315, 319, 319, 319,
1715
+ 319, 319, 319, 319, 325, 325, 325, 325, 325, 325,
1716
+ 325, 330, 330, 330, 330, 330, 330, 330, 332, 332,
1717
+ 332, 332, 332, 332, 332, 338, 338, 338, 338, 338,
1718
+ 338, 338, 341, 341, 341, 341, 341, 341, 341, 346,
1719
+ 346, 346, 346, 346, 346, 346, 349, 349, 349, 349,
1720
+
1721
+ 349, 349, 349, 353, 353, 353, 353, 353, 353, 353,
1722
+ 358, 358, 358, 358, 358, 358, 358, 363, 363, 363,
1723
+ 363, 363, 363, 363, 365, 365, 365, 365, 365, 365,
1724
+ 365, 370, 370, 370, 370, 370, 370, 370, 371, 371,
1725
+ 371, 371, 371, 371, 371, 374, 374, 374, 374, 374,
1726
+ 374, 374, 379, 379, 379, 379, 379, 379, 379, 380,
1727
+ 380, 380, 380, 380, 380, 380, 388, 388, 388, 388,
1728
+ 388, 388, 388, 392, 392, 392, 392, 392, 392, 392,
1729
+ 398, 398, 398, 398, 398, 398, 398, 403, 403, 403,
1730
+ 403, 403, 403, 403, 141, 141, 141, 141, 141, 141,
1731
+
1732
+ 141, 143, 143, 143, 143, 143, 143, 143, 408, 408,
1733
+ 408, 408, 408, 408, 408, 409, 409, 409, 409, 409,
1734
+ 409, 409, 416, 416, 416, 416, 416, 416, 416, 420,
1735
+ 420, 420, 420, 420, 420, 420, 425, 425, 425, 425,
1736
+ 425, 425, 425, 428, 428, 428, 428, 428, 428, 428,
1737
+ 429, 429, 429, 429, 429, 429, 429, 167, 167, 167,
1738
+ 167, 167, 167, 167, 432, 432, 432, 432, 432, 432,
1739
+ 432, 443, 443, 443, 443, 443, 443, 443, 452, 452,
1740
+ 452, 452, 452, 452, 452, 457, 457, 457, 457, 457,
1741
+ 457, 457, 458, 458, 458, 458, 458, 458, 458, 466,
1742
+
1743
+ 466, 466, 466, 466, 466, 466, 178, 178, 178, 178,
1744
+ 178, 178, 178, 469, 469, 469, 469, 469, 469, 469,
1745
+ 477, 477, 477, 477, 477, 477, 477, 485, 485, 485,
1746
+ 485, 485, 485, 485, 490, 490, 490, 490, 490, 490,
1747
+ 490, 491, 491, 491, 491, 491, 491, 491, 498, 498,
1748
+ 498, 498, 498, 498, 498, 168, 168, 168, 168, 168,
1749
+ 168, 168, 508, 508, 508, 508, 508, 508, 508, 257,
1750
+ 257, 257, 257, 257, 257, 257, 519, 519, 519, 519,
1751
+ 519, 519, 519, 526, 526, 526, 526, 526, 526, 526,
1752
+ 529, 529, 529, 529, 529, 529, 529, 540, 540, 540,
1753
+
1754
+ 540, 540, 540, 540, 549, 549, 549, 549, 549, 549,
1755
+ 549, 179, 179, 179, 179, 179, 179, 179, 558, 558,
1756
+ 558, 558, 558, 558, 558, 288, 288, 288, 288, 288,
1757
+ 288, 288, 566, 566, 566, 566, 566, 566, 566, 572,
1758
+ 572, 572, 572, 572, 572, 572, 575, 575, 575, 575,
1759
+ 575, 575, 575, 583, 583, 583, 583, 583, 583, 583,
1760
+ 591, 591, 591, 591, 591, 591, 591, 319, 319, 319,
1761
+ 319, 319, 319, 319, 241, 241, 241, 241, 241, 241,
1762
+ 241, 597, 597, 597, 597, 597, 597, 597, 603, 603,
1763
+ 603, 603, 603, 603, 603, 608, 608, 608, 608, 608,
1764
+
1765
+ 608, 608, 615, 615, 615, 615, 615, 615, 615, 620,
1766
+ 620, 620, 620, 620, 620, 620, 630, 630, 630, 630,
1767
+ 630, 630, 630, 332, 332, 332, 332, 332, 332, 332,
1768
+ 641, 641, 641, 641, 641, 641, 641, 648, 648, 648,
1769
+ 648, 648, 648, 648, 353, 353, 353, 353, 353, 353,
1770
+ 353, 272, 272, 272, 272, 272, 272, 272, 653, 653,
1771
+ 653, 653, 653, 653, 653, 658, 658, 658, 658, 658,
1772
+ 658, 658, 663, 663, 663, 663, 663, 663, 663, 669,
1773
+ 669, 669, 669, 669, 669, 669, 673, 673, 673, 673,
1774
+ 673, 673, 673, 179, 179, 179, 179, 179, 179, 179,
1775
+
1776
+ 682, 682, 682, 682, 682, 682, 682, 365, 365, 365,
1777
+ 365, 365, 365, 365, 690, 690, 690, 690, 690, 690,
1778
+ 690, 697, 697, 697, 697, 697, 697, 697, 307, 307,
1779
+ 307, 307, 307, 307, 307, 312, 312, 312, 312, 312,
1780
+ 312, 312, 707, 707, 707, 707, 707, 707, 707, 392,
1781
+ 392, 392, 392, 392, 392, 392, 713, 713, 713, 713,
1782
+ 713, 713, 713, 719, 719, 719, 719, 719, 719, 719,
1783
+ 724, 724, 724, 724, 724, 724, 724, 731, 731, 731,
1784
+ 731, 731, 731, 731, 737, 737, 737, 737, 737, 737,
1785
+ 737, 341, 341, 341, 341, 341, 341, 341, 346, 346,
1786
+
1787
+ 346, 346, 346, 346, 346, 745, 745, 745, 745, 745,
1788
+ 745, 745, 420, 420, 420, 420, 420, 420, 420, 750,
1789
+ 750, 750, 750, 750, 750, 750, 755, 755, 755, 755,
1790
+ 755, 755, 755, 760, 760, 760, 760, 760, 760, 760,
1791
+ 766, 766, 766, 766, 766, 766, 766, 772, 772, 772,
1792
+ 772, 772, 772, 772, 784, 784, 784, 784, 784, 784,
1793
+ 784, 11, 794, 794, 794, 794, 794, 794, 794, 794,
1794
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1795
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1796
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
1797
+
1798
+ 794, 794, 794, 794, 794
1799
+ } ;
1800
+
1801
+ static yyconst flex_int16_t yy_chk[9806] =
1802
+ { 0,
1803
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1804
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1805
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1806
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1807
+ 1, 1, 1, 2, 3, 4, 4, 6, 2, 8,
1808
+ 4, 10, 6, 13, 8, 13, 10, 16, 18, 21,
1809
+ 23, 23, 23, 23, 27, 27, 29, 29, 812, 35,
1810
+ 21, 35, 18, 3, 35, 4, 5, 5, 5, 5,
1811
+ 5, 5, 5, 16, 811, 5, 5, 5, 5, 5,
1812
+ 5, 5, 5, 5, 7, 7, 7, 7, 7, 7,
1813
+
1814
+ 7, 805, 22, 7, 7, 7, 7, 7, 7, 7,
1815
+ 7, 9, 22, 22, 34, 9, 9, 9, 9, 9,
1816
+ 9, 9, 80, 80, 9, 9, 9, 9, 9, 9,
1817
+ 9, 9, 24, 52, 34, 41, 24, 76, 41, 39,
1818
+ 39, 76, 804, 49, 24, 25, 49, 25, 25, 25,
1819
+ 25, 50, 39, 50, 803, 47, 47, 39, 39, 52,
1820
+ 25, 25, 25, 60, 60, 60, 60, 25, 47, 789,
1821
+ 61, 25, 25, 26, 47, 26, 26, 26, 26, 39,
1822
+ 61, 85, 779, 48, 48, 85, 63, 63, 26, 26,
1823
+ 54, 164, 79, 63, 79, 26, 48, 63, 778, 26,
1824
+
1825
+ 40, 40, 48, 54, 54, 54, 62, 56, 62, 62,
1826
+ 62, 62, 164, 40, 56, 89, 89, 48, 40, 40,
1827
+ 56, 56, 56, 188, 66, 66, 90, 72, 54, 72,
1828
+ 769, 66, 72, 104, 40, 66, 88, 104, 88, 112,
1829
+ 40, 112, 75, 75, 188, 56, 57, 57, 57, 57,
1830
+ 84, 84, 90, 768, 113, 75, 57, 57, 113, 57,
1831
+ 75, 75, 91, 84, 757, 92, 57, 119, 93, 84,
1832
+ 756, 119, 91, 91, 91, 92, 92, 92, 93, 93,
1833
+ 93, 118, 75, 118, 124, 124, 124, 124, 91, 97,
1834
+ 156, 92, 98, 156, 93, 97, 97, 97, 98, 98,
1835
+
1836
+ 98, 99, 137, 742, 137, 117, 117, 99, 99, 99,
1837
+ 101, 101, 107, 107, 101, 101, 101, 101, 117, 107,
1838
+ 111, 111, 122, 107, 117, 120, 735, 132, 122, 122,
1839
+ 122, 132, 147, 111, 147, 120, 120, 120, 111, 111,
1840
+ 734, 128, 128, 138, 138, 142, 148, 148, 128, 142,
1841
+ 163, 120, 128, 163, 143, 143, 193, 133, 133, 721,
1842
+ 111, 125, 125, 125, 125, 134, 134, 143, 720, 704,
1843
+ 133, 703, 125, 143, 125, 133, 133, 193, 134, 144,
1844
+ 144, 125, 165, 134, 134, 175, 165, 689, 672, 175,
1845
+ 136, 136, 144, 671, 660, 659, 640, 133, 144, 146,
1846
+
1847
+ 146, 145, 145, 136, 639, 134, 135, 135, 136, 136,
1848
+ 145, 619, 146, 618, 145, 135, 150, 150, 146, 135,
1849
+ 145, 155, 155, 605, 135, 135, 157, 157, 604, 150,
1850
+ 136, 160, 160, 582, 155, 574, 162, 162, 573, 157,
1851
+ 160, 166, 166, 192, 160, 565, 135, 153, 153, 162,
1852
+ 160, 176, 176, 186, 166, 155, 153, 186, 161, 161,
1853
+ 153, 192, 174, 174, 176, 153, 153, 161, 194, 539,
1854
+ 162, 161, 194, 177, 177, 174, 538, 161, 528, 195,
1855
+ 174, 174, 192, 195, 527, 176, 177, 153, 154, 154,
1856
+ 179, 179, 185, 185, 206, 180, 180, 154, 234, 179,
1857
+
1858
+ 518, 154, 174, 179, 180, 185, 154, 154, 180, 179,
1859
+ 517, 185, 181, 181, 180, 206, 212, 490, 213, 234,
1860
+ 212, 181, 213, 187, 187, 181, 182, 182, 154, 168,
1861
+ 168, 181, 185, 228, 487, 182, 187, 228, 168, 182,
1862
+ 183, 183, 168, 184, 184, 182, 230, 168, 168, 183,
1863
+ 230, 486, 184, 183, 204, 204, 184, 187, 476, 183,
1864
+ 468, 467, 184, 457, 205, 222, 222, 204, 205, 168,
1865
+ 169, 169, 204, 204, 205, 454, 239, 223, 222, 169,
1866
+ 239, 223, 231, 169, 222, 210, 210, 223, 169, 169,
1867
+ 453, 253, 265, 442, 204, 205, 211, 211, 210, 232,
1868
+
1869
+ 231, 253, 246, 210, 210, 222, 246, 441, 223, 211,
1870
+ 169, 170, 170, 265, 211, 211, 431, 232, 215, 215,
1871
+ 170, 231, 253, 430, 170, 210, 428, 215, 256, 170,
1872
+ 170, 215, 256, 425, 419, 270, 211, 215, 232, 270,
1873
+ 418, 216, 216, 277, 226, 226, 408, 277, 405, 284,
1874
+ 216, 170, 171, 171, 216, 217, 217, 226, 287, 284,
1875
+ 216, 171, 287, 226, 217, 171, 218, 218, 217, 233,
1876
+ 171, 171, 300, 404, 217, 218, 300, 219, 219, 218,
1877
+ 284, 238, 220, 220, 226, 218, 219, 233, 398, 301,
1878
+ 219, 220, 171, 172, 172, 220, 219, 227, 227, 238,
1879
+
1880
+ 391, 220, 172, 390, 221, 221, 172, 301, 233, 379,
1881
+ 227, 172, 172, 221, 376, 264, 227, 221, 302, 264,
1882
+ 238, 375, 303, 221, 371, 264, 254, 254, 301, 370,
1883
+ 363, 358, 352, 172, 173, 173, 302, 227, 315, 254,
1884
+ 303, 257, 257, 173, 254, 254, 264, 173, 315, 258,
1885
+ 258, 313, 173, 173, 257, 313, 351, 302, 348, 257,
1886
+ 257, 303, 258, 346, 260, 260, 254, 258, 258, 315,
1887
+ 338, 330, 261, 261, 173, 197, 197, 260, 325, 262,
1888
+ 262, 257, 260, 260, 197, 261, 318, 317, 197, 258,
1889
+ 261, 261, 262, 197, 197, 331, 347, 262, 262, 331,
1890
+
1891
+ 347, 271, 271, 364, 260, 263, 263, 364, 269, 269,
1892
+ 271, 314, 261, 312, 271, 197, 198, 198, 263, 262,
1893
+ 271, 269, 328, 263, 263, 198, 269, 269, 304, 198,
1894
+ 272, 272, 328, 299, 198, 198, 298, 296, 286, 272,
1895
+ 278, 273, 273, 272, 268, 263, 274, 274, 269, 272,
1896
+ 273, 255, 247, 328, 273, 274, 198, 199, 199, 274,
1897
+ 273, 237, 229, 225, 214, 274, 199, 209, 275, 275,
1898
+ 199, 276, 276, 279, 279, 199, 199, 275, 196, 294,
1899
+ 276, 275, 279, 294, 276, 191, 279, 275, 178, 294,
1900
+ 276, 167, 279, 280, 280, 281, 281, 199, 200, 200,
1901
+
1902
+ 282, 282, 280, 159, 281, 349, 280, 200, 281, 282,
1903
+ 294, 200, 280, 282, 281, 349, 200, 200, 158, 282,
1904
+ 152, 151, 283, 283, 285, 285, 149, 141, 140, 139,
1905
+ 131, 283, 288, 288, 130, 283, 349, 285, 200, 201,
1906
+ 201, 283, 129, 285, 126, 288, 289, 289, 201, 356,
1907
+ 356, 288, 201, 116, 290, 290, 316, 201, 201, 289,
1908
+ 316, 115, 356, 290, 285, 289, 316, 290, 356, 291,
1909
+ 291, 114, 288, 290, 110, 109, 108, 292, 292, 201,
1910
+ 202, 202, 291, 103, 293, 293, 289, 316, 291, 202,
1911
+ 292, 297, 297, 202, 290, 96, 292, 293, 202, 202,
1912
+
1913
+ 357, 357, 86, 293, 297, 83, 82, 77, 71, 291,
1914
+ 297, 70, 68, 357, 319, 319, 67, 292, 58, 357,
1915
+ 202, 203, 203, 55, 293, 320, 320, 319, 322, 322,
1916
+ 203, 297, 319, 319, 203, 45, 339, 339, 320, 203,
1917
+ 203, 322, 44, 320, 320, 339, 322, 322, 38, 339,
1918
+ 33, 323, 323, 32, 319, 339, 31, 28, 20, 324,
1919
+ 324, 203, 240, 240, 323, 320, 329, 329, 322, 323,
1920
+ 323, 240, 324, 19, 17, 240, 15, 324, 324, 329,
1921
+ 240, 240, 11, 0, 329, 329, 0, 0, 340, 340,
1922
+ 0, 323, 332, 332, 0, 333, 333, 340, 0, 324,
1923
+
1924
+ 0, 340, 240, 241, 241, 332, 329, 340, 333, 0,
1925
+ 332, 332, 241, 333, 333, 0, 241, 0, 335, 335,
1926
+ 0, 241, 241, 350, 361, 0, 0, 350, 336, 336,
1927
+ 0, 335, 332, 350, 361, 333, 335, 335, 0, 0,
1928
+ 374, 336, 0, 241, 242, 242, 336, 336, 337, 337,
1929
+ 374, 341, 341, 242, 350, 361, 0, 242, 335, 388,
1930
+ 341, 337, 242, 242, 341, 0, 337, 337, 336, 388,
1931
+ 341, 374, 0, 0, 342, 342, 353, 353, 0, 0,
1932
+ 0, 0, 403, 342, 242, 243, 243, 342, 337, 353,
1933
+ 388, 0, 403, 342, 243, 353, 343, 343, 243, 344,
1934
+
1935
+ 344, 345, 345, 243, 243, 343, 0, 0, 344, 343,
1936
+ 345, 0, 344, 403, 345, 343, 353, 0, 344, 0,
1937
+ 345, 354, 354, 355, 355, 243, 244, 244, 0, 0,
1938
+ 0, 416, 355, 0, 354, 244, 355, 359, 359, 244,
1939
+ 354, 416, 355, 0, 244, 244, 359, 429, 440, 0,
1940
+ 359, 360, 360, 0, 0, 0, 359, 429, 440, 0,
1941
+ 360, 354, 416, 355, 360, 0, 244, 245, 245, 0,
1942
+ 360, 362, 362, 0, 365, 365, 245, 359, 429, 440,
1943
+ 245, 0, 366, 366, 362, 245, 245, 365, 0, 0,
1944
+ 362, 360, 389, 365, 452, 366, 389, 367, 367, 368,
1945
+
1946
+ 368, 366, 389, 0, 452, 466, 367, 245, 248, 248,
1947
+ 367, 362, 368, 0, 365, 466, 367, 248, 368, 369,
1948
+ 369, 248, 366, 389, 0, 452, 248, 248, 423, 423,
1949
+ 0, 0, 369, 392, 392, 0, 466, 367, 369, 368,
1950
+ 0, 423, 393, 393, 0, 0, 392, 423, 248, 249,
1951
+ 249, 392, 392, 395, 395, 393, 396, 396, 249, 369,
1952
+ 393, 393, 249, 0, 424, 424, 395, 249, 249, 396,
1953
+ 0, 395, 395, 392, 396, 396, 485, 424, 0, 397,
1954
+ 397, 0, 393, 424, 0, 0, 485, 0, 0, 249,
1955
+ 250, 250, 397, 395, 0, 0, 396, 397, 397, 250,
1956
+
1957
+ 0, 401, 401, 250, 402, 402, 0, 485, 250, 250,
1958
+ 401, 516, 0, 402, 401, 406, 406, 402, 0, 397,
1959
+ 401, 516, 0, 402, 406, 0, 407, 407, 406, 0,
1960
+ 250, 251, 251, 417, 406, 407, 526, 417, 0, 407,
1961
+ 251, 0, 516, 417, 251, 407, 526, 0, 439, 251,
1962
+ 251, 0, 439, 537, 0, 406, 409, 409, 439, 0,
1963
+ 0, 410, 410, 537, 417, 409, 407, 526, 0, 409,
1964
+ 410, 251, 252, 252, 410, 409, 0, 0, 475, 439,
1965
+ 410, 252, 475, 0, 537, 252, 473, 473, 475, 0,
1966
+ 252, 252, 0, 0, 572, 473, 409, 411, 411, 473,
1967
+
1968
+ 0, 410, 412, 412, 572, 473, 411, 0, 0, 475,
1969
+ 411, 412, 252, 259, 259, 412, 411, 603, 615, 506,
1970
+ 0, 412, 259, 506, 0, 572, 259, 603, 615, 506,
1971
+ 515, 259, 259, 0, 515, 0, 0, 411, 413, 413,
1972
+ 515, 0, 412, 414, 414, 420, 420, 413, 603, 615,
1973
+ 506, 413, 414, 259, 305, 305, 414, 413, 420, 617,
1974
+ 0, 515, 414, 305, 420, 0, 536, 305, 0, 617,
1975
+ 536, 0, 305, 305, 0, 0, 536, 0, 413, 415,
1976
+ 415, 638, 0, 414, 0, 420, 421, 421, 415, 0,
1977
+ 617, 638, 415, 0, 305, 306, 306, 536, 415, 421,
1978
+
1979
+ 0, 0, 422, 422, 306, 421, 0, 658, 306, 474,
1980
+ 474, 422, 638, 306, 306, 422, 0, 658, 474, 415,
1981
+ 556, 422, 474, 0, 556, 0, 421, 0, 474, 0,
1982
+ 556, 426, 426, 669, 0, 306, 307, 307, 658, 0,
1983
+ 426, 0, 422, 669, 426, 307, 0, 427, 427, 307,
1984
+ 426, 556, 0, 564, 307, 307, 427, 564, 0, 0,
1985
+ 427, 469, 469, 564, 669, 0, 427, 0, 0, 0,
1986
+ 469, 426, 470, 470, 469, 0, 307, 308, 308, 581,
1987
+ 469, 470, 719, 581, 564, 470, 308, 427, 0, 581,
1988
+ 308, 470, 719, 0, 616, 308, 308, 0, 616, 731,
1989
+
1990
+ 0, 469, 471, 471, 616, 0, 0, 472, 472, 731,
1991
+ 581, 471, 470, 719, 0, 471, 472, 308, 309, 309,
1992
+ 472, 471, 0, 0, 628, 616, 472, 309, 628, 0,
1993
+ 731, 309, 552, 552, 628, 0, 309, 309, 0, 0,
1994
+ 733, 552, 471, 477, 477, 552, 0, 472, 478, 478,
1995
+ 733, 552, 477, 0, 0, 628, 477, 478, 309, 310,
1996
+ 310, 478, 477, 0, 0, 637, 0, 478, 310, 637,
1997
+ 0, 733, 310, 553, 553, 637, 0, 310, 310, 0,
1998
+ 0, 755, 553, 477, 479, 479, 553, 0, 478, 480,
1999
+ 480, 755, 553, 479, 0, 0, 637, 479, 480, 310,
2000
+
2001
+ 311, 311, 480, 479, 0, 0, 670, 0, 480, 311,
2002
+ 670, 0, 755, 311, 579, 579, 670, 0, 311, 311,
2003
+ 0, 0, 766, 579, 479, 481, 481, 579, 0, 480,
2004
+ 482, 482, 766, 579, 481, 0, 0, 670, 481, 482,
2005
+ 311, 321, 321, 482, 481, 0, 0, 680, 0, 482,
2006
+ 321, 680, 0, 766, 321, 580, 580, 680, 0, 321,
2007
+ 321, 0, 0, 0, 580, 481, 483, 483, 580, 0,
2008
+ 482, 484, 484, 0, 580, 483, 0, 0, 680, 483,
2009
+ 484, 321, 326, 326, 484, 483, 0, 0, 688, 0,
2010
+ 484, 326, 688, 0, 0, 326, 651, 651, 688, 0,
2011
+
2012
+ 326, 326, 0, 0, 0, 651, 483, 488, 488, 651,
2013
+ 0, 484, 489, 489, 0, 651, 488, 0, 0, 688,
2014
+ 488, 489, 326, 327, 327, 489, 488, 0, 0, 732,
2015
+ 0, 489, 327, 732, 0, 0, 327, 652, 652, 732,
2016
+ 0, 327, 327, 0, 0, 0, 652, 488, 491, 491,
2017
+ 652, 0, 489, 492, 492, 0, 652, 491, 0, 0,
2018
+ 732, 491, 492, 327, 334, 334, 492, 491, 0, 0,
2019
+ 767, 0, 492, 334, 767, 0, 0, 334, 656, 656,
2020
+ 767, 0, 334, 334, 0, 0, 0, 656, 491, 493,
2021
+ 493, 656, 0, 492, 494, 494, 0, 656, 493, 0,
2022
+
2023
+ 0, 767, 493, 494, 334, 372, 372, 494, 493, 0,
2024
+ 0, 0, 0, 494, 372, 0, 0, 0, 372, 657,
2025
+ 657, 0, 0, 372, 372, 0, 0, 0, 657, 493,
2026
+ 495, 495, 657, 0, 494, 496, 496, 0, 657, 495,
2027
+ 0, 0, 0, 495, 496, 372, 373, 373, 496, 495,
2028
+ 0, 0, 0, 0, 496, 373, 0, 0, 0, 373,
2029
+ 676, 676, 0, 0, 373, 373, 0, 0, 0, 676,
2030
+ 495, 497, 497, 676, 0, 496, 549, 549, 0, 676,
2031
+ 497, 0, 0, 0, 497, 549, 373, 377, 377, 549,
2032
+ 497, 0, 0, 0, 0, 549, 377, 0, 0, 0,
2033
+
2034
+ 377, 677, 677, 0, 0, 377, 377, 0, 0, 0,
2035
+ 677, 497, 550, 550, 677, 0, 549, 551, 551, 0,
2036
+ 677, 550, 0, 0, 0, 550, 551, 377, 378, 378,
2037
+ 551, 550, 0, 0, 0, 0, 551, 378, 0, 0,
2038
+ 0, 378, 740, 740, 0, 0, 378, 378, 0, 0,
2039
+ 0, 740, 550, 554, 554, 740, 0, 551, 555, 555,
2040
+ 0, 740, 554, 0, 0, 0, 554, 555, 378, 380,
2041
+ 380, 555, 554, 0, 0, 0, 0, 555, 380, 0,
2042
+ 0, 0, 380, 741, 741, 0, 0, 380, 380, 0,
2043
+ 0, 0, 741, 554, 557, 557, 741, 0, 555, 558,
2044
+
2045
+ 558, 0, 741, 557, 0, 0, 0, 557, 558, 380,
2046
+ 381, 381, 558, 557, 0, 0, 0, 0, 558, 381,
2047
+ 0, 0, 0, 381, 748, 748, 0, 0, 381, 381,
2048
+ 0, 0, 0, 748, 557, 559, 559, 748, 0, 558,
2049
+ 560, 560, 0, 748, 559, 0, 0, 0, 559, 560,
2050
+ 381, 382, 382, 560, 559, 0, 0, 0, 0, 560,
2051
+ 382, 0, 0, 0, 382, 749, 749, 0, 0, 382,
2052
+ 382, 0, 0, 0, 749, 559, 561, 561, 749, 0,
2053
+ 560, 562, 562, 0, 749, 561, 0, 0, 0, 561,
2054
+ 562, 382, 383, 383, 562, 561, 0, 0, 0, 0,
2055
+
2056
+ 562, 383, 0, 0, 0, 383, 753, 753, 0, 0,
2057
+ 383, 383, 0, 0, 0, 753, 561, 563, 563, 753,
2058
+ 0, 562, 566, 566, 0, 753, 563, 0, 0, 0,
2059
+ 563, 566, 383, 384, 384, 566, 563, 0, 0, 0,
2060
+ 0, 566, 384, 0, 0, 0, 384, 754, 754, 0,
2061
+ 0, 384, 384, 0, 0, 0, 754, 563, 567, 567,
2062
+ 754, 0, 566, 568, 568, 0, 754, 567, 0, 0,
2063
+ 0, 567, 568, 384, 385, 385, 568, 567, 0, 0,
2064
+ 0, 0, 568, 385, 0, 0, 0, 385, 787, 787,
2065
+ 0, 0, 385, 385, 0, 0, 0, 787, 567, 569,
2066
+
2067
+ 569, 787, 0, 568, 570, 570, 0, 787, 569, 0,
2068
+ 0, 0, 569, 570, 385, 386, 386, 570, 569, 0,
2069
+ 0, 0, 0, 570, 386, 0, 0, 0, 386, 788,
2070
+ 788, 0, 0, 386, 386, 0, 0, 0, 788, 569,
2071
+ 571, 571, 788, 0, 570, 575, 575, 0, 788, 571,
2072
+ 0, 0, 0, 571, 575, 386, 387, 387, 575, 571,
2073
+ 0, 0, 0, 0, 575, 387, 0, 0, 0, 387,
2074
+ 0, 0, 0, 0, 387, 387, 0, 0, 0, 0,
2075
+ 571, 576, 576, 0, 0, 575, 577, 577, 0, 0,
2076
+ 576, 0, 0, 0, 576, 577, 387, 394, 394, 577,
2077
+
2078
+ 576, 0, 0, 0, 0, 577, 394, 0, 0, 0,
2079
+ 394, 0, 0, 0, 0, 394, 394, 0, 0, 0,
2080
+ 0, 576, 578, 578, 0, 0, 577, 583, 583, 0,
2081
+ 0, 578, 0, 0, 0, 578, 583, 394, 399, 399,
2082
+ 583, 578, 0, 0, 0, 0, 583, 399, 0, 0,
2083
+ 0, 399, 0, 0, 0, 0, 399, 399, 0, 0,
2084
+ 0, 0, 578, 584, 584, 0, 0, 583, 585, 585,
2085
+ 0, 0, 584, 0, 0, 0, 584, 585, 399, 400,
2086
+ 400, 585, 584, 0, 0, 0, 0, 585, 400, 0,
2087
+ 0, 0, 400, 0, 0, 0, 0, 400, 400, 0,
2088
+
2089
+ 0, 0, 0, 584, 586, 586, 0, 0, 585, 587,
2090
+ 587, 0, 0, 586, 0, 0, 0, 586, 587, 400,
2091
+ 432, 432, 587, 586, 0, 0, 0, 0, 587, 432,
2092
+ 0, 0, 0, 432, 0, 0, 0, 0, 432, 432,
2093
+ 0, 0, 0, 0, 586, 588, 588, 0, 0, 587,
2094
+ 589, 589, 0, 0, 588, 0, 0, 0, 588, 589,
2095
+ 432, 433, 433, 589, 588, 0, 0, 0, 0, 589,
2096
+ 433, 0, 0, 0, 433, 0, 0, 0, 0, 433,
2097
+ 433, 0, 0, 0, 0, 588, 590, 590, 0, 0,
2098
+ 589, 648, 648, 0, 0, 590, 0, 0, 0, 590,
2099
+
2100
+ 648, 433, 434, 434, 648, 590, 0, 0, 0, 0,
2101
+ 648, 434, 0, 0, 0, 434, 0, 0, 0, 0,
2102
+ 434, 434, 0, 0, 0, 0, 590, 649, 649, 0,
2103
+ 0, 648, 650, 650, 0, 0, 649, 0, 0, 0,
2104
+ 649, 650, 434, 435, 435, 650, 649, 0, 0, 0,
2105
+ 0, 650, 435, 0, 0, 0, 435, 0, 0, 0,
2106
+ 0, 435, 435, 0, 0, 0, 0, 649, 653, 653,
2107
+ 0, 0, 650, 654, 654, 0, 0, 653, 0, 0,
2108
+ 0, 653, 654, 435, 436, 436, 654, 653, 0, 0,
2109
+ 0, 0, 654, 436, 0, 0, 0, 436, 0, 0,
2110
+
2111
+ 0, 0, 436, 436, 0, 0, 0, 0, 653, 655,
2112
+ 655, 0, 0, 654, 661, 661, 0, 0, 655, 0,
2113
+ 0, 0, 655, 661, 436, 437, 437, 661, 655, 0,
2114
+ 0, 0, 0, 661, 437, 0, 0, 0, 437, 0,
2115
+ 0, 0, 0, 437, 437, 0, 0, 0, 0, 655,
2116
+ 662, 662, 0, 0, 661, 663, 663, 0, 0, 662,
2117
+ 0, 0, 0, 662, 663, 437, 438, 438, 663, 662,
2118
+ 0, 0, 0, 0, 663, 438, 0, 0, 0, 438,
2119
+ 0, 0, 0, 0, 438, 438, 0, 0, 0, 0,
2120
+ 662, 664, 664, 0, 0, 663, 665, 665, 0, 0,
2121
+
2122
+ 664, 0, 0, 0, 664, 665, 438, 443, 443, 665,
2123
+ 664, 0, 0, 0, 0, 665, 443, 0, 0, 0,
2124
+ 443, 0, 0, 0, 0, 443, 443, 0, 0, 0,
2125
+ 0, 664, 666, 666, 0, 0, 665, 667, 667, 0,
2126
+ 0, 666, 0, 0, 0, 666, 667, 443, 444, 444,
2127
+ 667, 666, 0, 0, 0, 0, 667, 444, 0, 0,
2128
+ 0, 444, 0, 0, 0, 0, 444, 444, 0, 0,
2129
+ 0, 0, 666, 668, 668, 0, 0, 667, 673, 673,
2130
+ 0, 0, 668, 0, 0, 0, 668, 673, 444, 445,
2131
+ 445, 673, 668, 0, 0, 0, 0, 673, 445, 0,
2132
+
2133
+ 0, 0, 445, 0, 0, 0, 0, 445, 445, 0,
2134
+ 0, 0, 0, 668, 674, 674, 0, 0, 673, 675,
2135
+ 675, 0, 0, 674, 0, 0, 0, 674, 675, 445,
2136
+ 446, 446, 675, 674, 0, 0, 0, 0, 675, 446,
2137
+ 0, 0, 0, 446, 0, 0, 0, 0, 446, 446,
2138
+ 0, 0, 0, 0, 674, 678, 678, 0, 0, 675,
2139
+ 679, 679, 0, 0, 678, 0, 0, 0, 678, 679,
2140
+ 446, 447, 447, 679, 678, 0, 0, 0, 0, 679,
2141
+ 447, 0, 0, 0, 447, 0, 0, 0, 0, 447,
2142
+ 447, 0, 0, 0, 0, 678, 681, 681, 0, 0,
2143
+
2144
+ 679, 682, 682, 0, 0, 681, 0, 0, 0, 681,
2145
+ 682, 447, 448, 448, 682, 681, 0, 0, 0, 0,
2146
+ 682, 448, 0, 0, 0, 448, 0, 0, 0, 0,
2147
+ 448, 448, 0, 0, 0, 0, 681, 683, 683, 0,
2148
+ 0, 682, 684, 684, 0, 0, 683, 0, 0, 0,
2149
+ 683, 684, 448, 449, 449, 684, 683, 0, 0, 0,
2150
+ 0, 684, 449, 0, 0, 0, 449, 0, 0, 0,
2151
+ 0, 449, 449, 0, 0, 0, 0, 683, 685, 685,
2152
+ 0, 0, 684, 686, 686, 0, 0, 685, 0, 0,
2153
+ 0, 685, 686, 449, 450, 450, 686, 685, 0, 0,
2154
+
2155
+ 0, 0, 686, 450, 0, 0, 0, 450, 0, 0,
2156
+ 0, 0, 450, 450, 0, 0, 0, 0, 685, 687,
2157
+ 687, 0, 0, 686, 690, 690, 0, 0, 687, 0,
2158
+ 0, 0, 687, 690, 450, 451, 451, 690, 687, 0,
2159
+ 0, 0, 0, 690, 451, 0, 0, 0, 451, 0,
2160
+ 0, 0, 0, 451, 451, 0, 0, 0, 0, 687,
2161
+ 691, 691, 0, 0, 690, 692, 692, 0, 0, 691,
2162
+ 0, 0, 0, 691, 692, 451, 455, 455, 692, 691,
2163
+ 0, 0, 0, 0, 692, 455, 0, 0, 0, 455,
2164
+ 0, 0, 0, 0, 455, 455, 0, 0, 0, 0,
2165
+
2166
+ 691, 693, 693, 0, 0, 692, 694, 694, 0, 0,
2167
+ 693, 0, 0, 0, 693, 694, 455, 456, 456, 694,
2168
+ 693, 0, 0, 0, 0, 694, 456, 0, 0, 0,
2169
+ 456, 0, 0, 0, 0, 456, 456, 0, 0, 0,
2170
+ 0, 693, 695, 695, 0, 0, 694, 736, 736, 0,
2171
+ 0, 695, 0, 0, 0, 695, 736, 456, 458, 458,
2172
+ 736, 695, 0, 0, 0, 0, 736, 458, 0, 0,
2173
+ 0, 458, 0, 0, 0, 0, 458, 458, 0, 0,
2174
+ 0, 0, 695, 737, 737, 0, 0, 736, 738, 738,
2175
+ 0, 0, 737, 0, 0, 0, 737, 738, 458, 459,
2176
+
2177
+ 459, 738, 737, 0, 0, 0, 0, 738, 459, 0,
2178
+ 0, 0, 459, 0, 0, 0, 0, 459, 459, 0,
2179
+ 0, 0, 0, 737, 739, 739, 0, 0, 738, 743,
2180
+ 743, 0, 0, 739, 0, 0, 0, 739, 743, 459,
2181
+ 460, 460, 743, 739, 0, 0, 0, 0, 743, 460,
2182
+ 0, 0, 0, 460, 0, 0, 0, 0, 460, 460,
2183
+ 0, 0, 0, 0, 739, 744, 744, 0, 0, 743,
2184
+ 745, 745, 0, 0, 744, 0, 0, 0, 744, 745,
2185
+ 460, 461, 461, 745, 744, 0, 0, 0, 0, 745,
2186
+ 461, 0, 0, 0, 461, 0, 0, 0, 0, 461,
2187
+
2188
+ 461, 0, 0, 0, 0, 744, 746, 746, 0, 0,
2189
+ 745, 747, 747, 0, 0, 746, 0, 0, 0, 746,
2190
+ 747, 461, 462, 462, 747, 746, 0, 0, 0, 0,
2191
+ 747, 462, 0, 0, 0, 462, 0, 0, 0, 0,
2192
+ 462, 462, 0, 0, 0, 0, 746, 750, 750, 0,
2193
+ 0, 747, 751, 751, 0, 0, 750, 0, 0, 0,
2194
+ 750, 751, 462, 463, 463, 751, 750, 0, 0, 0,
2195
+ 0, 751, 463, 0, 0, 0, 463, 0, 0, 0,
2196
+ 0, 463, 463, 0, 0, 0, 0, 750, 752, 752,
2197
+ 0, 0, 751, 758, 758, 0, 0, 752, 0, 0,
2198
+
2199
+ 0, 752, 758, 463, 464, 464, 758, 752, 0, 0,
2200
+ 0, 0, 758, 464, 0, 0, 0, 464, 0, 0,
2201
+ 0, 0, 464, 464, 0, 0, 0, 0, 752, 759,
2202
+ 759, 0, 0, 758, 760, 760, 0, 0, 759, 0,
2203
+ 0, 0, 759, 760, 464, 465, 465, 760, 759, 0,
2204
+ 0, 0, 0, 760, 465, 0, 0, 0, 465, 0,
2205
+ 0, 0, 0, 465, 465, 0, 0, 0, 0, 759,
2206
+ 761, 761, 0, 0, 760, 762, 762, 0, 0, 761,
2207
+ 0, 0, 0, 761, 762, 465, 498, 498, 762, 761,
2208
+ 0, 0, 0, 0, 762, 498, 0, 0, 0, 498,
2209
+
2210
+ 0, 0, 0, 0, 498, 498, 0, 0, 0, 0,
2211
+ 761, 763, 763, 0, 0, 762, 764, 764, 0, 0,
2212
+ 763, 0, 0, 0, 763, 764, 498, 499, 499, 764,
2213
+ 763, 0, 0, 0, 0, 764, 499, 0, 0, 0,
2214
+ 499, 0, 0, 0, 0, 499, 499, 0, 0, 0,
2215
+ 0, 763, 765, 765, 0, 0, 764, 782, 782, 0,
2216
+ 0, 765, 0, 0, 0, 765, 782, 499, 500, 500,
2217
+ 782, 765, 0, 0, 0, 0, 782, 500, 0, 0,
2218
+ 0, 500, 0, 0, 0, 0, 500, 500, 0, 0,
2219
+ 0, 0, 765, 783, 783, 0, 0, 782, 784, 784,
2220
+
2221
+ 0, 0, 783, 0, 0, 0, 783, 784, 500, 501,
2222
+ 501, 784, 783, 0, 0, 0, 0, 784, 501, 0,
2223
+ 0, 0, 501, 0, 0, 0, 0, 501, 501, 0,
2224
+ 0, 0, 0, 783, 785, 785, 0, 0, 784, 786,
2225
+ 786, 0, 0, 785, 0, 0, 0, 785, 786, 501,
2226
+ 502, 502, 786, 785, 0, 0, 0, 0, 786, 502,
2227
+ 0, 0, 0, 502, 0, 0, 0, 0, 502, 502,
2228
+ 0, 0, 0, 0, 785, 790, 790, 0, 0, 786,
2229
+ 791, 791, 0, 0, 790, 0, 0, 0, 790, 791,
2230
+ 502, 503, 503, 791, 790, 0, 0, 0, 0, 791,
2231
+
2232
+ 503, 0, 0, 0, 503, 0, 0, 0, 0, 503,
2233
+ 503, 0, 0, 0, 0, 790, 793, 793, 0, 0,
2234
+ 791, 0, 0, 0, 0, 793, 0, 0, 0, 793,
2235
+ 0, 503, 504, 504, 0, 793, 0, 0, 0, 0,
2236
+ 0, 504, 0, 0, 0, 504, 0, 0, 0, 0,
2237
+ 504, 504, 0, 0, 0, 0, 793, 0, 0, 0,
2238
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2239
+ 0, 0, 504, 505, 505, 0, 0, 0, 0, 0,
2240
+ 0, 0, 505, 0, 0, 0, 505, 0, 0, 0,
2241
+ 0, 505, 505, 0, 0, 0, 0, 0, 0, 0,
2242
+
2243
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2244
+ 0, 0, 0, 505, 507, 507, 0, 0, 0, 0,
2245
+ 0, 0, 0, 507, 0, 0, 0, 507, 0, 0,
2246
+ 0, 0, 507, 507, 0, 0, 0, 0, 0, 0,
2247
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248
+ 0, 0, 0, 0, 507, 508, 508, 0, 0, 0,
2249
+ 0, 0, 0, 0, 508, 0, 0, 0, 508, 0,
2250
+ 0, 0, 0, 508, 508, 0, 0, 0, 0, 0,
2251
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2252
+ 0, 0, 0, 0, 0, 508, 509, 509, 0, 0,
2253
+
2254
+ 0, 0, 0, 0, 0, 509, 0, 0, 0, 509,
2255
+ 0, 0, 0, 0, 509, 509, 0, 0, 0, 0,
2256
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2257
+ 0, 0, 0, 0, 0, 0, 509, 510, 510, 0,
2258
+ 0, 0, 0, 0, 0, 0, 510, 0, 0, 0,
2259
+ 510, 0, 0, 0, 0, 510, 510, 0, 0, 0,
2260
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2261
+ 0, 0, 0, 0, 0, 0, 0, 510, 511, 511,
2262
+ 0, 0, 0, 0, 0, 0, 0, 511, 0, 0,
2263
+ 0, 511, 0, 0, 0, 0, 511, 511, 0, 0,
2264
+
2265
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2266
+ 0, 0, 0, 0, 0, 0, 0, 0, 511, 512,
2267
+ 512, 0, 0, 0, 0, 0, 0, 0, 512, 0,
2268
+ 0, 0, 512, 0, 0, 0, 0, 512, 512, 0,
2269
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2270
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 512,
2271
+ 513, 513, 0, 0, 0, 0, 0, 0, 0, 513,
2272
+ 0, 0, 0, 513, 0, 0, 0, 0, 513, 513,
2273
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2274
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2275
+
2276
+ 513, 514, 514, 0, 0, 0, 0, 0, 0, 0,
2277
+ 514, 0, 0, 0, 514, 0, 0, 0, 0, 514,
2278
+ 514, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2279
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2280
+ 0, 514, 519, 519, 0, 0, 0, 0, 0, 0,
2281
+ 0, 519, 0, 0, 0, 519, 0, 0, 0, 0,
2282
+ 519, 519, 0, 0, 0, 0, 0, 0, 0, 0,
2283
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2284
+ 0, 0, 519, 520, 520, 0, 0, 0, 0, 0,
2285
+ 0, 0, 520, 0, 0, 0, 520, 0, 0, 0,
2286
+
2287
+ 0, 520, 520, 0, 0, 0, 0, 0, 0, 0,
2288
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2289
+ 0, 0, 0, 520, 521, 521, 0, 0, 0, 0,
2290
+ 0, 0, 0, 521, 0, 0, 0, 521, 0, 0,
2291
+ 0, 0, 521, 521, 0, 0, 0, 0, 0, 0,
2292
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2293
+ 0, 0, 0, 0, 521, 522, 522, 0, 0, 0,
2294
+ 0, 0, 0, 0, 522, 0, 0, 0, 522, 0,
2295
+ 0, 0, 0, 522, 522, 0, 0, 0, 0, 0,
2296
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2297
+
2298
+ 0, 0, 0, 0, 0, 522, 523, 523, 0, 0,
2299
+ 0, 0, 0, 0, 0, 523, 0, 0, 0, 523,
2300
+ 0, 0, 0, 0, 523, 523, 0, 0, 0, 0,
2301
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2302
+ 0, 0, 0, 0, 0, 0, 523, 524, 524, 0,
2303
+ 0, 0, 0, 0, 0, 0, 524, 0, 0, 0,
2304
+ 524, 0, 0, 0, 0, 524, 524, 0, 0, 0,
2305
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2306
+ 0, 0, 0, 0, 0, 0, 0, 524, 525, 525,
2307
+ 0, 0, 0, 0, 0, 0, 0, 525, 0, 0,
2308
+
2309
+ 0, 525, 0, 0, 0, 0, 525, 525, 0, 0,
2310
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2311
+ 0, 0, 0, 0, 0, 0, 0, 0, 525, 529,
2312
+ 529, 0, 0, 0, 0, 0, 0, 0, 529, 0,
2313
+ 0, 0, 529, 0, 0, 0, 0, 529, 529, 0,
2314
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2315
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 529,
2316
+ 530, 530, 0, 0, 0, 0, 0, 0, 0, 530,
2317
+ 0, 0, 0, 530, 0, 0, 0, 0, 530, 530,
2318
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2319
+
2320
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2321
+ 530, 531, 531, 0, 0, 0, 0, 0, 0, 0,
2322
+ 531, 0, 0, 0, 531, 0, 0, 0, 0, 531,
2323
+ 531, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2324
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2325
+ 0, 531, 532, 532, 0, 0, 0, 0, 0, 0,
2326
+ 0, 532, 0, 0, 0, 532, 0, 0, 0, 0,
2327
+ 532, 532, 0, 0, 0, 0, 0, 0, 0, 0,
2328
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2329
+ 0, 0, 532, 533, 533, 0, 0, 0, 0, 0,
2330
+
2331
+ 0, 0, 533, 0, 0, 0, 533, 0, 0, 0,
2332
+ 0, 533, 533, 0, 0, 0, 0, 0, 0, 0,
2333
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2334
+ 0, 0, 0, 533, 534, 534, 0, 0, 0, 0,
2335
+ 0, 0, 0, 534, 0, 0, 0, 534, 0, 0,
2336
+ 0, 0, 534, 534, 0, 0, 0, 0, 0, 0,
2337
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2338
+ 0, 0, 0, 0, 534, 535, 535, 0, 0, 0,
2339
+ 0, 0, 0, 0, 535, 0, 0, 0, 535, 0,
2340
+ 0, 0, 0, 535, 535, 0, 0, 0, 0, 0,
2341
+
2342
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2343
+ 0, 0, 0, 0, 0, 535, 540, 540, 0, 0,
2344
+ 0, 0, 0, 0, 0, 540, 0, 0, 0, 540,
2345
+ 0, 0, 0, 0, 540, 540, 0, 0, 0, 0,
2346
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2347
+ 0, 0, 0, 0, 0, 0, 540, 541, 541, 0,
2348
+ 0, 0, 0, 0, 0, 0, 541, 0, 0, 0,
2349
+ 541, 0, 0, 0, 0, 541, 541, 0, 0, 0,
2350
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351
+ 0, 0, 0, 0, 0, 0, 0, 541, 542, 542,
2352
+
2353
+ 0, 0, 0, 0, 0, 0, 0, 542, 0, 0,
2354
+ 0, 542, 0, 0, 0, 0, 542, 542, 0, 0,
2355
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2356
+ 0, 0, 0, 0, 0, 0, 0, 0, 542, 543,
2357
+ 543, 0, 0, 0, 0, 0, 0, 0, 543, 0,
2358
+ 0, 0, 543, 0, 0, 0, 0, 543, 543, 0,
2359
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2360
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 543,
2361
+ 544, 544, 0, 0, 0, 0, 0, 0, 0, 544,
2362
+ 0, 0, 0, 544, 0, 0, 0, 0, 544, 544,
2363
+
2364
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2366
+ 544, 545, 545, 0, 0, 0, 0, 0, 0, 0,
2367
+ 545, 0, 0, 0, 545, 0, 0, 0, 0, 545,
2368
+ 545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2369
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2370
+ 0, 545, 546, 546, 0, 0, 0, 0, 0, 0,
2371
+ 0, 546, 0, 0, 0, 546, 0, 0, 0, 0,
2372
+ 546, 546, 0, 0, 0, 0, 0, 0, 0, 0,
2373
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2374
+
2375
+ 0, 0, 546, 547, 547, 0, 0, 0, 0, 0,
2376
+ 0, 0, 547, 0, 0, 0, 547, 0, 0, 0,
2377
+ 0, 547, 547, 0, 0, 0, 0, 0, 0, 0,
2378
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2379
+ 0, 0, 0, 547, 548, 548, 0, 0, 0, 0,
2380
+ 0, 0, 0, 548, 0, 0, 0, 548, 0, 0,
2381
+ 0, 0, 548, 548, 0, 0, 0, 0, 0, 0,
2382
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2383
+ 0, 0, 0, 0, 548, 591, 591, 0, 0, 0,
2384
+ 0, 0, 0, 0, 591, 0, 0, 0, 591, 0,
2385
+
2386
+ 0, 0, 0, 591, 591, 0, 0, 0, 0, 0,
2387
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2388
+ 0, 0, 0, 0, 0, 591, 592, 592, 0, 0,
2389
+ 0, 0, 0, 0, 0, 592, 0, 0, 0, 592,
2390
+ 0, 0, 0, 0, 592, 592, 0, 0, 0, 0,
2391
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2392
+ 0, 0, 0, 0, 0, 0, 592, 593, 593, 0,
2393
+ 0, 0, 0, 0, 0, 0, 593, 0, 0, 0,
2394
+ 593, 0, 0, 0, 0, 593, 593, 0, 0, 0,
2395
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2396
+
2397
+ 0, 0, 0, 0, 0, 0, 0, 593, 594, 594,
2398
+ 0, 0, 0, 0, 0, 0, 0, 594, 0, 0,
2399
+ 0, 594, 0, 0, 0, 0, 594, 594, 0, 0,
2400
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2401
+ 0, 0, 0, 0, 0, 0, 0, 0, 594, 595,
2402
+ 595, 0, 0, 0, 0, 0, 0, 0, 595, 0,
2403
+ 0, 0, 595, 0, 0, 0, 0, 595, 595, 0,
2404
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2405
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 595,
2406
+ 596, 596, 0, 0, 0, 0, 0, 0, 0, 596,
2407
+
2408
+ 0, 0, 0, 596, 0, 0, 0, 0, 596, 596,
2409
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2410
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2411
+ 596, 597, 597, 0, 0, 0, 0, 0, 0, 0,
2412
+ 597, 0, 0, 0, 597, 0, 0, 0, 0, 597,
2413
+ 597, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2414
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2415
+ 0, 597, 598, 598, 0, 0, 0, 0, 0, 0,
2416
+ 0, 598, 0, 0, 0, 598, 0, 0, 0, 0,
2417
+ 598, 598, 0, 0, 0, 0, 0, 0, 0, 0,
2418
+
2419
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2420
+ 0, 0, 598, 599, 599, 0, 0, 0, 0, 0,
2421
+ 0, 0, 599, 0, 0, 0, 599, 0, 0, 0,
2422
+ 0, 599, 599, 0, 0, 0, 0, 0, 0, 0,
2423
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2424
+ 0, 0, 0, 599, 600, 600, 0, 0, 0, 0,
2425
+ 0, 0, 0, 600, 0, 0, 0, 600, 0, 0,
2426
+ 0, 0, 600, 600, 0, 0, 0, 0, 0, 0,
2427
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2428
+ 0, 0, 0, 0, 600, 601, 601, 0, 0, 0,
2429
+
2430
+ 0, 0, 0, 0, 601, 0, 0, 0, 601, 0,
2431
+ 0, 0, 0, 601, 601, 0, 0, 0, 0, 0,
2432
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2433
+ 0, 0, 0, 0, 0, 601, 602, 602, 0, 0,
2434
+ 0, 0, 0, 0, 0, 602, 0, 0, 0, 602,
2435
+ 0, 0, 0, 0, 602, 602, 0, 0, 0, 0,
2436
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2437
+ 0, 0, 0, 0, 0, 0, 602, 606, 606, 0,
2438
+ 0, 0, 0, 0, 0, 0, 606, 0, 0, 0,
2439
+ 606, 0, 0, 0, 0, 606, 606, 0, 0, 0,
2440
+
2441
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2442
+ 0, 0, 0, 0, 0, 0, 0, 606, 607, 607,
2443
+ 0, 0, 0, 0, 0, 0, 0, 607, 0, 0,
2444
+ 0, 607, 0, 0, 0, 0, 607, 607, 0, 0,
2445
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2446
+ 0, 0, 0, 0, 0, 0, 0, 0, 607, 608,
2447
+ 608, 0, 0, 0, 0, 0, 0, 0, 608, 0,
2448
+ 0, 0, 608, 0, 0, 0, 0, 608, 608, 0,
2449
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2450
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 608,
2451
+
2452
+ 609, 609, 0, 0, 0, 0, 0, 0, 0, 609,
2453
+ 0, 0, 0, 609, 0, 0, 0, 0, 609, 609,
2454
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2455
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2456
+ 609, 610, 610, 0, 0, 0, 0, 0, 0, 0,
2457
+ 610, 0, 0, 0, 610, 0, 0, 0, 0, 610,
2458
+ 610, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2459
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2460
+ 0, 610, 611, 611, 0, 0, 0, 0, 0, 0,
2461
+ 0, 611, 0, 0, 0, 611, 0, 0, 0, 0,
2462
+
2463
+ 611, 611, 0, 0, 0, 0, 0, 0, 0, 0,
2464
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465
+ 0, 0, 611, 612, 612, 0, 0, 0, 0, 0,
2466
+ 0, 0, 612, 0, 0, 0, 612, 0, 0, 0,
2467
+ 0, 612, 612, 0, 0, 0, 0, 0, 0, 0,
2468
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2469
+ 0, 0, 0, 612, 613, 613, 0, 0, 0, 0,
2470
+ 0, 0, 0, 613, 0, 0, 0, 613, 0, 0,
2471
+ 0, 0, 613, 613, 0, 0, 0, 0, 0, 0,
2472
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2473
+
2474
+ 0, 0, 0, 0, 613, 614, 614, 0, 0, 0,
2475
+ 0, 0, 0, 0, 614, 0, 0, 0, 614, 0,
2476
+ 0, 0, 0, 614, 614, 0, 0, 0, 0, 0,
2477
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2478
+ 0, 0, 0, 0, 0, 614, 620, 620, 0, 0,
2479
+ 0, 0, 0, 0, 0, 620, 0, 0, 0, 620,
2480
+ 0, 0, 0, 0, 620, 620, 0, 0, 0, 0,
2481
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2482
+ 0, 0, 0, 0, 0, 0, 620, 621, 621, 0,
2483
+ 0, 0, 0, 0, 0, 0, 621, 0, 0, 0,
2484
+
2485
+ 621, 0, 0, 0, 0, 621, 621, 0, 0, 0,
2486
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2487
+ 0, 0, 0, 0, 0, 0, 0, 621, 622, 622,
2488
+ 0, 0, 0, 0, 0, 0, 0, 622, 0, 0,
2489
+ 0, 622, 0, 0, 0, 0, 622, 622, 0, 0,
2490
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2491
+ 0, 0, 0, 0, 0, 0, 0, 0, 622, 623,
2492
+ 623, 0, 0, 0, 0, 0, 0, 0, 623, 0,
2493
+ 0, 0, 623, 0, 0, 0, 0, 623, 623, 0,
2494
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495
+
2496
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 623,
2497
+ 624, 624, 0, 0, 0, 0, 0, 0, 0, 624,
2498
+ 0, 0, 0, 624, 0, 0, 0, 0, 624, 624,
2499
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2500
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2501
+ 624, 625, 625, 0, 0, 0, 0, 0, 0, 0,
2502
+ 625, 0, 0, 0, 625, 0, 0, 0, 0, 625,
2503
+ 625, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2504
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2505
+ 0, 625, 626, 626, 0, 0, 0, 0, 0, 0,
2506
+
2507
+ 0, 626, 0, 0, 0, 626, 0, 0, 0, 0,
2508
+ 626, 626, 0, 0, 0, 0, 0, 0, 0, 0,
2509
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2510
+ 0, 0, 626, 627, 627, 0, 0, 0, 0, 0,
2511
+ 0, 0, 627, 0, 0, 0, 627, 0, 0, 0,
2512
+ 0, 627, 627, 0, 0, 0, 0, 0, 0, 0,
2513
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2514
+ 0, 0, 0, 627, 629, 629, 0, 0, 0, 0,
2515
+ 0, 0, 0, 629, 0, 0, 0, 629, 0, 0,
2516
+ 0, 0, 629, 629, 0, 0, 0, 0, 0, 0,
2517
+
2518
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2519
+ 0, 0, 0, 0, 629, 630, 630, 0, 0, 0,
2520
+ 0, 0, 0, 0, 630, 0, 0, 0, 630, 0,
2521
+ 0, 0, 0, 630, 630, 0, 0, 0, 0, 0,
2522
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2523
+ 0, 0, 0, 0, 0, 630, 631, 631, 0, 0,
2524
+ 0, 0, 0, 0, 0, 631, 0, 0, 0, 631,
2525
+ 0, 0, 0, 0, 631, 631, 0, 0, 0, 0,
2526
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2527
+ 0, 0, 0, 0, 0, 0, 631, 632, 632, 0,
2528
+
2529
+ 0, 0, 0, 0, 0, 0, 632, 0, 0, 0,
2530
+ 632, 0, 0, 0, 0, 632, 632, 0, 0, 0,
2531
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2532
+ 0, 0, 0, 0, 0, 0, 0, 632, 633, 633,
2533
+ 0, 0, 0, 0, 0, 0, 0, 633, 0, 0,
2534
+ 0, 633, 0, 0, 0, 0, 633, 633, 0, 0,
2535
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2536
+ 0, 0, 0, 0, 0, 0, 0, 0, 633, 634,
2537
+ 634, 0, 0, 0, 0, 0, 0, 0, 634, 0,
2538
+ 0, 0, 634, 0, 0, 0, 0, 634, 634, 0,
2539
+
2540
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 634,
2542
+ 635, 635, 0, 0, 0, 0, 0, 0, 0, 635,
2543
+ 0, 0, 0, 635, 0, 0, 0, 0, 635, 635,
2544
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2546
+ 635, 636, 636, 0, 0, 0, 0, 0, 0, 0,
2547
+ 636, 0, 0, 0, 636, 0, 0, 0, 0, 636,
2548
+ 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2549
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2550
+
2551
+ 0, 636, 641, 641, 0, 0, 0, 0, 0, 0,
2552
+ 0, 641, 0, 0, 0, 641, 0, 0, 0, 0,
2553
+ 641, 641, 0, 0, 0, 0, 0, 0, 0, 0,
2554
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2555
+ 0, 0, 641, 642, 642, 0, 0, 0, 0, 0,
2556
+ 0, 0, 642, 0, 0, 0, 642, 0, 0, 0,
2557
+ 0, 642, 642, 0, 0, 0, 0, 0, 0, 0,
2558
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2559
+ 0, 0, 0, 642, 643, 643, 0, 0, 0, 0,
2560
+ 0, 0, 0, 643, 0, 0, 0, 643, 0, 0,
2561
+
2562
+ 0, 0, 643, 643, 0, 0, 0, 0, 0, 0,
2563
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2564
+ 0, 0, 0, 0, 643, 644, 644, 0, 0, 0,
2565
+ 0, 0, 0, 0, 644, 0, 0, 0, 644, 0,
2566
+ 0, 0, 0, 644, 644, 0, 0, 0, 0, 0,
2567
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568
+ 0, 0, 0, 0, 0, 644, 645, 645, 0, 0,
2569
+ 0, 0, 0, 0, 0, 645, 0, 0, 0, 645,
2570
+ 0, 0, 0, 0, 645, 645, 0, 0, 0, 0,
2571
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2572
+
2573
+ 0, 0, 0, 0, 0, 0, 645, 646, 646, 0,
2574
+ 0, 0, 0, 0, 0, 0, 646, 0, 0, 0,
2575
+ 646, 0, 0, 0, 0, 646, 646, 0, 0, 0,
2576
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2577
+ 0, 0, 0, 0, 0, 0, 0, 646, 647, 647,
2578
+ 0, 0, 0, 0, 0, 0, 0, 647, 0, 0,
2579
+ 0, 647, 0, 0, 0, 0, 647, 647, 0, 0,
2580
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581
+ 0, 0, 0, 0, 0, 0, 0, 0, 647, 696,
2582
+ 696, 0, 0, 0, 0, 0, 0, 0, 696, 0,
2583
+
2584
+ 0, 0, 696, 0, 0, 0, 0, 696, 696, 0,
2585
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 696,
2587
+ 697, 697, 0, 0, 0, 0, 0, 0, 0, 697,
2588
+ 0, 0, 0, 697, 0, 0, 0, 0, 697, 697,
2589
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2590
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2591
+ 697, 698, 698, 0, 0, 0, 0, 0, 0, 0,
2592
+ 698, 0, 0, 0, 698, 0, 0, 0, 0, 698,
2593
+ 698, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2594
+
2595
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596
+ 0, 698, 699, 699, 0, 0, 0, 0, 0, 0,
2597
+ 0, 699, 0, 0, 0, 699, 0, 0, 0, 0,
2598
+ 699, 699, 0, 0, 0, 0, 0, 0, 0, 0,
2599
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600
+ 0, 0, 699, 700, 700, 0, 0, 0, 0, 0,
2601
+ 0, 0, 700, 0, 0, 0, 700, 0, 0, 0,
2602
+ 0, 700, 700, 0, 0, 0, 0, 0, 0, 0,
2603
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2604
+ 0, 0, 0, 700, 701, 701, 0, 0, 0, 0,
2605
+
2606
+ 0, 0, 0, 701, 0, 0, 0, 701, 0, 0,
2607
+ 0, 0, 701, 701, 0, 0, 0, 0, 0, 0,
2608
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2609
+ 0, 0, 0, 0, 701, 702, 702, 0, 0, 0,
2610
+ 0, 0, 0, 0, 702, 0, 0, 0, 702, 0,
2611
+ 0, 0, 0, 702, 702, 0, 0, 0, 0, 0,
2612
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2613
+ 0, 0, 0, 0, 0, 702, 705, 705, 0, 0,
2614
+ 0, 0, 0, 0, 0, 705, 0, 0, 0, 705,
2615
+ 0, 0, 0, 0, 705, 705, 0, 0, 0, 0,
2616
+
2617
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2618
+ 0, 0, 0, 0, 0, 0, 705, 706, 706, 0,
2619
+ 0, 0, 0, 0, 0, 0, 706, 0, 0, 0,
2620
+ 706, 0, 0, 0, 0, 706, 706, 0, 0, 0,
2621
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622
+ 0, 0, 0, 0, 0, 0, 0, 706, 707, 707,
2623
+ 0, 0, 0, 0, 0, 0, 0, 707, 0, 0,
2624
+ 0, 707, 0, 0, 0, 0, 707, 707, 0, 0,
2625
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2626
+ 0, 0, 0, 0, 0, 0, 0, 0, 707, 708,
2627
+
2628
+ 708, 0, 0, 0, 0, 0, 0, 0, 708, 0,
2629
+ 0, 0, 708, 0, 0, 0, 0, 708, 708, 0,
2630
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2631
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 708,
2632
+ 709, 709, 0, 0, 0, 0, 0, 0, 0, 709,
2633
+ 0, 0, 0, 709, 0, 0, 0, 0, 709, 709,
2634
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2635
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2636
+ 709, 710, 710, 0, 0, 0, 0, 0, 0, 0,
2637
+ 710, 0, 0, 0, 710, 0, 0, 0, 0, 710,
2638
+
2639
+ 710, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2640
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641
+ 0, 710, 711, 711, 0, 0, 0, 0, 0, 0,
2642
+ 0, 711, 0, 0, 0, 711, 0, 0, 0, 0,
2643
+ 711, 711, 0, 0, 0, 0, 0, 0, 0, 0,
2644
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645
+ 0, 0, 711, 712, 712, 0, 0, 0, 0, 0,
2646
+ 0, 0, 712, 0, 0, 0, 712, 0, 0, 0,
2647
+ 0, 712, 712, 0, 0, 0, 0, 0, 0, 0,
2648
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2649
+
2650
+ 0, 0, 0, 712, 713, 713, 0, 0, 0, 0,
2651
+ 0, 0, 0, 713, 0, 0, 0, 713, 0, 0,
2652
+ 0, 0, 713, 713, 0, 0, 0, 0, 0, 0,
2653
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654
+ 0, 0, 0, 0, 713, 714, 714, 0, 0, 0,
2655
+ 0, 0, 0, 0, 714, 0, 0, 0, 714, 0,
2656
+ 0, 0, 0, 714, 714, 0, 0, 0, 0, 0,
2657
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658
+ 0, 0, 0, 0, 0, 714, 715, 715, 0, 0,
2659
+ 0, 0, 0, 0, 0, 715, 0, 0, 0, 715,
2660
+
2661
+ 0, 0, 0, 0, 715, 715, 0, 0, 0, 0,
2662
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663
+ 0, 0, 0, 0, 0, 0, 715, 716, 716, 0,
2664
+ 0, 0, 0, 0, 0, 0, 716, 0, 0, 0,
2665
+ 716, 0, 0, 0, 0, 716, 716, 0, 0, 0,
2666
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667
+ 0, 0, 0, 0, 0, 0, 0, 716, 717, 717,
2668
+ 0, 0, 0, 0, 0, 0, 0, 717, 0, 0,
2669
+ 0, 717, 0, 0, 0, 0, 717, 717, 0, 0,
2670
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671
+
2672
+ 0, 0, 0, 0, 0, 0, 0, 0, 717, 718,
2673
+ 718, 0, 0, 0, 0, 0, 0, 0, 718, 0,
2674
+ 0, 0, 718, 0, 0, 0, 0, 718, 718, 0,
2675
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 718,
2677
+ 722, 722, 0, 0, 0, 0, 0, 0, 0, 722,
2678
+ 0, 0, 0, 722, 0, 0, 0, 0, 722, 722,
2679
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681
+ 722, 723, 723, 0, 0, 0, 0, 0, 0, 0,
2682
+
2683
+ 723, 0, 0, 0, 723, 0, 0, 0, 0, 723,
2684
+ 723, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686
+ 0, 723, 724, 724, 0, 0, 0, 0, 0, 0,
2687
+ 0, 724, 0, 0, 0, 724, 0, 0, 0, 0,
2688
+ 724, 724, 0, 0, 0, 0, 0, 0, 0, 0,
2689
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690
+ 0, 0, 724, 725, 725, 0, 0, 0, 0, 0,
2691
+ 0, 0, 725, 0, 0, 0, 725, 0, 0, 0,
2692
+ 0, 725, 725, 0, 0, 0, 0, 0, 0, 0,
2693
+
2694
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2695
+ 0, 0, 0, 725, 726, 726, 0, 0, 0, 0,
2696
+ 0, 0, 0, 726, 0, 0, 0, 726, 0, 0,
2697
+ 0, 0, 726, 726, 0, 0, 0, 0, 0, 0,
2698
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699
+ 0, 0, 0, 0, 726, 727, 727, 0, 0, 0,
2700
+ 0, 0, 0, 0, 727, 0, 0, 0, 727, 0,
2701
+ 0, 0, 0, 727, 727, 0, 0, 0, 0, 0,
2702
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703
+ 0, 0, 0, 0, 0, 727, 728, 728, 0, 0,
2704
+
2705
+ 0, 0, 0, 0, 0, 728, 0, 0, 0, 728,
2706
+ 0, 0, 0, 0, 728, 728, 0, 0, 0, 0,
2707
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708
+ 0, 0, 0, 0, 0, 0, 728, 729, 729, 0,
2709
+ 0, 0, 0, 0, 0, 0, 729, 0, 0, 0,
2710
+ 729, 0, 0, 0, 0, 729, 729, 0, 0, 0,
2711
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712
+ 0, 0, 0, 0, 0, 0, 0, 729, 730, 730,
2713
+ 0, 0, 0, 0, 0, 0, 0, 730, 0, 0,
2714
+ 0, 730, 0, 0, 0, 0, 730, 730, 0, 0,
2715
+
2716
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717
+ 0, 0, 0, 0, 0, 0, 0, 0, 730, 770,
2718
+ 770, 0, 0, 0, 0, 0, 0, 0, 770, 0,
2719
+ 0, 0, 770, 0, 0, 0, 0, 770, 770, 0,
2720
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 770,
2722
+ 771, 771, 0, 0, 0, 0, 0, 0, 0, 771,
2723
+ 0, 0, 0, 771, 0, 0, 0, 0, 771, 771,
2724
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726
+
2727
+ 771, 772, 772, 0, 0, 0, 0, 0, 0, 0,
2728
+ 772, 0, 0, 0, 772, 0, 0, 0, 0, 772,
2729
+ 772, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731
+ 0, 772, 773, 773, 0, 0, 0, 0, 0, 0,
2732
+ 0, 773, 0, 0, 0, 773, 0, 0, 0, 0,
2733
+ 773, 773, 0, 0, 0, 0, 0, 0, 0, 0,
2734
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735
+ 0, 0, 773, 774, 774, 0, 0, 0, 0, 0,
2736
+ 0, 0, 774, 0, 0, 0, 774, 0, 0, 0,
2737
+
2738
+ 0, 774, 774, 0, 0, 0, 0, 0, 0, 0,
2739
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740
+ 0, 0, 0, 774, 775, 775, 0, 0, 0, 0,
2741
+ 0, 0, 0, 775, 0, 0, 0, 775, 0, 0,
2742
+ 0, 0, 775, 775, 0, 0, 0, 0, 0, 0,
2743
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2744
+ 0, 0, 0, 0, 775, 776, 776, 0, 0, 0,
2745
+ 0, 0, 0, 0, 776, 0, 0, 0, 776, 0,
2746
+ 0, 0, 0, 776, 776, 0, 0, 0, 0, 0,
2747
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748
+
2749
+ 0, 0, 0, 0, 0, 776, 777, 777, 0, 0,
2750
+ 0, 0, 0, 0, 0, 777, 0, 0, 0, 777,
2751
+ 0, 0, 0, 0, 777, 777, 0, 0, 0, 0,
2752
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753
+ 0, 0, 0, 0, 0, 0, 777, 780, 780, 0,
2754
+ 0, 0, 0, 0, 0, 0, 780, 0, 0, 0,
2755
+ 780, 0, 0, 0, 0, 780, 780, 0, 0, 0,
2756
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2757
+ 0, 0, 0, 0, 0, 0, 0, 780, 781, 781,
2758
+ 0, 0, 0, 0, 0, 0, 0, 781, 0, 0,
2759
+
2760
+ 0, 781, 0, 0, 0, 0, 781, 781, 0, 0,
2761
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762
+ 0, 0, 0, 0, 0, 0, 0, 0, 781, 792,
2763
+ 792, 0, 0, 0, 0, 0, 0, 0, 792, 0,
2764
+ 0, 0, 792, 0, 0, 0, 0, 792, 792, 0,
2765
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 792,
2767
+ 795, 795, 795, 795, 795, 795, 795, 796, 796, 796,
2768
+ 0, 796, 796, 796, 797, 0, 797, 798, 798, 0,
2769
+ 798, 798, 798, 799, 0, 799, 800, 800, 0, 800,
2770
+
2771
+ 0, 800, 801, 801, 801, 801, 801, 801, 801, 802,
2772
+ 802, 0, 802, 802, 802, 802, 806, 806, 806, 806,
2773
+ 806, 806, 806, 807, 807, 807, 807, 807, 807, 807,
2774
+ 808, 808, 808, 808, 808, 808, 808, 809, 809, 809,
2775
+ 809, 809, 809, 809, 810, 810, 810, 810, 810, 810,
2776
+ 810, 813, 813, 813, 813, 813, 813, 813, 814, 814,
2777
+ 814, 814, 814, 814, 814, 815, 815, 815, 815, 815,
2778
+ 815, 815, 816, 816, 816, 816, 816, 816, 816, 817,
2779
+ 817, 817, 817, 817, 817, 817, 818, 818, 818, 818,
2780
+ 818, 818, 818, 819, 819, 819, 819, 819, 819, 819,
2781
+
2782
+ 820, 820, 820, 820, 820, 820, 820, 821, 821, 821,
2783
+ 821, 821, 821, 821, 822, 822, 822, 822, 822, 822,
2784
+ 822, 823, 823, 823, 823, 823, 823, 823, 824, 824,
2785
+ 824, 824, 824, 824, 824, 825, 825, 825, 825, 825,
2786
+ 825, 825, 826, 826, 826, 826, 826, 826, 826, 827,
2787
+ 827, 827, 827, 827, 827, 827, 828, 828, 828, 828,
2788
+ 828, 828, 828, 829, 829, 829, 829, 829, 829, 829,
2789
+ 830, 830, 830, 830, 830, 830, 830, 831, 831, 831,
2790
+ 831, 831, 831, 831, 832, 832, 832, 832, 832, 832,
2791
+ 832, 833, 833, 833, 833, 833, 833, 833, 834, 834,
2792
+
2793
+ 834, 834, 834, 834, 834, 835, 835, 835, 835, 835,
2794
+ 835, 835, 836, 836, 836, 836, 836, 836, 836, 837,
2795
+ 837, 837, 837, 837, 837, 837, 838, 838, 838, 838,
2796
+ 838, 838, 838, 839, 839, 839, 839, 839, 839, 839,
2797
+ 840, 840, 840, 840, 840, 840, 840, 841, 841, 841,
2798
+ 841, 841, 841, 841, 842, 842, 842, 842, 842, 842,
2799
+ 842, 843, 843, 843, 843, 843, 843, 843, 844, 844,
2800
+ 844, 844, 844, 844, 844, 845, 845, 845, 845, 845,
2801
+ 845, 845, 846, 846, 846, 846, 846, 846, 846, 847,
2802
+ 847, 847, 847, 847, 847, 847, 848, 848, 848, 848,
2803
+
2804
+ 848, 848, 848, 849, 849, 849, 849, 849, 849, 849,
2805
+ 850, 850, 850, 850, 850, 850, 850, 851, 851, 851,
2806
+ 851, 851, 851, 851, 852, 852, 852, 852, 852, 852,
2807
+ 852, 853, 853, 853, 853, 853, 853, 853, 854, 854,
2808
+ 854, 854, 854, 854, 854, 855, 855, 855, 855, 855,
2809
+ 855, 855, 856, 856, 856, 856, 856, 856, 856, 857,
2810
+ 857, 857, 857, 857, 857, 857, 858, 858, 858, 858,
2811
+ 858, 858, 858, 859, 859, 859, 859, 859, 859, 859,
2812
+ 860, 860, 860, 860, 860, 860, 860, 861, 861, 861,
2813
+ 861, 861, 861, 861, 862, 862, 862, 862, 862, 862,
2814
+
2815
+ 862, 863, 863, 863, 863, 863, 863, 863, 864, 864,
2816
+ 864, 864, 864, 864, 864, 865, 865, 865, 865, 865,
2817
+ 865, 865, 866, 866, 866, 866, 866, 866, 866, 867,
2818
+ 867, 867, 867, 867, 867, 867, 868, 868, 868, 868,
2819
+ 868, 868, 868, 869, 869, 869, 869, 869, 869, 869,
2820
+ 870, 870, 870, 870, 870, 870, 870, 871, 871, 871,
2821
+ 871, 871, 871, 871, 872, 872, 872, 872, 872, 872,
2822
+ 872, 873, 873, 873, 873, 873, 873, 873, 874, 874,
2823
+ 874, 874, 874, 874, 874, 875, 875, 875, 875, 875,
2824
+ 875, 875, 876, 876, 876, 876, 876, 876, 876, 877,
2825
+
2826
+ 877, 877, 877, 877, 877, 877, 878, 878, 878, 878,
2827
+ 878, 878, 878, 879, 879, 879, 879, 879, 879, 879,
2828
+ 880, 880, 880, 880, 880, 880, 880, 881, 881, 881,
2829
+ 881, 881, 881, 881, 882, 882, 882, 882, 882, 882,
2830
+ 882, 883, 883, 883, 883, 883, 883, 883, 884, 884,
2831
+ 884, 884, 884, 884, 884, 885, 885, 885, 885, 885,
2832
+ 885, 885, 886, 886, 886, 886, 886, 886, 886, 887,
2833
+ 887, 887, 887, 887, 887, 887, 888, 888, 888, 888,
2834
+ 888, 888, 888, 889, 889, 889, 889, 889, 889, 889,
2835
+ 890, 890, 890, 890, 890, 890, 890, 891, 891, 891,
2836
+
2837
+ 891, 891, 891, 891, 892, 892, 892, 892, 892, 892,
2838
+ 892, 893, 893, 893, 893, 893, 893, 893, 894, 894,
2839
+ 894, 894, 894, 894, 894, 895, 895, 895, 895, 895,
2840
+ 895, 895, 896, 896, 896, 896, 896, 896, 896, 897,
2841
+ 897, 897, 897, 897, 897, 897, 898, 898, 898, 898,
2842
+ 898, 898, 898, 899, 899, 899, 899, 899, 899, 899,
2843
+ 900, 900, 900, 900, 900, 900, 900, 901, 901, 901,
2844
+ 901, 901, 901, 901, 902, 902, 902, 902, 902, 902,
2845
+ 902, 903, 903, 903, 903, 903, 903, 903, 904, 904,
2846
+ 904, 904, 904, 904, 904, 905, 905, 905, 905, 905,
2847
+
2848
+ 905, 905, 906, 906, 906, 906, 906, 906, 906, 907,
2849
+ 907, 907, 907, 907, 907, 907, 908, 908, 908, 908,
2850
+ 908, 908, 908, 909, 909, 909, 909, 909, 909, 909,
2851
+ 910, 910, 910, 910, 910, 910, 910, 911, 911, 911,
2852
+ 911, 911, 911, 911, 912, 912, 912, 912, 912, 912,
2853
+ 912, 913, 913, 913, 913, 913, 913, 913, 914, 914,
2854
+ 914, 914, 914, 914, 914, 915, 915, 915, 915, 915,
2855
+ 915, 915, 916, 916, 916, 916, 916, 916, 916, 917,
2856
+ 917, 917, 917, 917, 917, 917, 918, 918, 918, 918,
2857
+ 918, 918, 918, 919, 919, 919, 919, 919, 919, 919,
2858
+
2859
+ 920, 920, 920, 920, 920, 920, 920, 921, 921, 921,
2860
+ 921, 921, 921, 921, 922, 922, 922, 922, 922, 922,
2861
+ 922, 923, 923, 923, 923, 923, 923, 923, 924, 924,
2862
+ 924, 924, 924, 924, 924, 925, 925, 925, 925, 925,
2863
+ 925, 925, 926, 926, 926, 926, 926, 926, 926, 927,
2864
+ 927, 927, 927, 927, 927, 927, 928, 928, 928, 928,
2865
+ 928, 928, 928, 929, 929, 929, 929, 929, 929, 929,
2866
+ 930, 930, 930, 930, 930, 930, 930, 931, 931, 931,
2867
+ 931, 931, 931, 931, 932, 932, 932, 932, 932, 932,
2868
+ 932, 933, 933, 933, 933, 933, 933, 933, 934, 934,
2869
+
2870
+ 934, 934, 934, 934, 934, 935, 935, 935, 935, 935,
2871
+ 935, 935, 936, 936, 936, 936, 936, 936, 936, 937,
2872
+ 937, 937, 937, 937, 937, 937, 938, 938, 938, 938,
2873
+ 938, 938, 938, 939, 939, 939, 939, 939, 939, 939,
2874
+ 940, 940, 940, 940, 940, 940, 940, 941, 941, 941,
2875
+ 941, 941, 941, 941, 942, 942, 942, 942, 942, 942,
2876
+ 942, 794, 794, 794, 794, 794, 794, 794, 794, 794,
2877
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
2878
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
2879
+ 794, 794, 794, 794, 794, 794, 794, 794, 794, 794,
2880
+
2881
+ 794, 794, 794, 794, 794
2882
+ } ;
2883
+
2884
+ /* The intent behind this definition is that it'll catch
2885
+ * any uses of REJECT which flex missed.
2886
+ */
2887
+ #define REJECT reject_used_but_not_detected
2888
+ #define yymore() yymore_used_but_not_detected
2889
+ #define YY_MORE_ADJ 0
2890
+ #define YY_RESTORE_YY_MORE_OFFSET
2891
+ /*
2892
+ * ctok.l - a lex rule for C
2893
+ *
2894
+ * Copyright (C) 2004-2005 Akira Tanaka <akr@m17n.org>
2895
+ * All rights reserved.
2896
+ * This is free software with ABSOLUTELY NO WARRANTY.
2897
+ *
2898
+ * You can redistribute it and/or modify it under the terms of
2899
+ * the GNU General Public License version 2.
2900
+ */
2901
+
2902
+ #include "c.h"
2903
+
2904
+ #define YY_EXTRA_TYPE langscan_c_lex_extra_t *
2905
+
2906
+ #if YY_NULL != 0
2907
+ #error "YY_NULL is not 0."
2908
+ #endif
2909
+
2910
+ #define YY_DECL langscan_c_token_t langscan_c_lex_lex(yyscan_t yyscanner)
2911
+
2912
+ #define YY_INPUT(buf,result,max_size) \
2913
+ if (!yyextra->eof) { \
2914
+ result = yyextra->user_read(&(yyextra->user_data), (buf), (max_size)); \
2915
+ if (result == 0) \
2916
+ yyextra->eof = 1; \
2917
+ }
2918
+
2919
+ #define UPD update_pos(yyextra, yytext, yyleng)
2920
+ static void update_pos(langscan_c_lex_extra_t *, char *, int);
2921
+
2922
+ #define report(token) \
2923
+ do { \
2924
+ yyextra->text = yytext; \
2925
+ yyextra->leng = yyleng; \
2926
+ return langscan_c_##token; \
2927
+ } while (0)
2928
+
2929
+ #define matched_is(str) (yyleng == sizeof(str)-1 && strncmp(str, yytext, sizeof(str)-1) == 0)
2930
+
2931
+ static int ident_length(unsigned char *ptr, int max);
2932
+
2933
+ #define INITIAL 0
2934
+ #define PREPROC 1
2935
+ #define CLASSHEAD 2
2936
+ #define CLASSHEAD_TRAILER 3
2937
+ #define CLASSDECL 4
2938
+
2939
+ #ifndef YY_EXTRA_TYPE
2940
+ #define YY_EXTRA_TYPE void *
2941
+ #endif
2942
+
2943
+ /* Holds the entire state of the reentrant scanner. */
2944
+ struct yyguts_t
2945
+ {
2946
+
2947
+ /* User-defined. Not touched by flex. */
2948
+ YY_EXTRA_TYPE yyextra_r;
2949
+
2950
+ /* The rest are the same as the globals declared in the non-reentrant scanner. */
2951
+ FILE *yyin_r, *yyout_r;
2952
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
2953
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
2954
+ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
2955
+ char yy_hold_char;
2956
+ int yy_n_chars;
2957
+ int yyleng_r;
2958
+ char *yy_c_buf_p;
2959
+ int yy_init;
2960
+ int yy_start;
2961
+ int yy_did_buffer_switch_on_eof;
2962
+ int yy_start_stack_ptr;
2963
+ int yy_start_stack_depth;
2964
+ int *yy_start_stack;
2965
+ yy_state_type yy_last_accepting_state;
2966
+ char* yy_last_accepting_cpos;
2967
+
2968
+ int yylineno_r;
2969
+ int yy_flex_debug_r;
2970
+
2971
+ char *yytext_r;
2972
+ int yy_more_flag;
2973
+ int yy_more_len;
2974
+
2975
+ }; /* end struct yyguts_t */
2976
+
2977
+ static int yy_init_globals (yyscan_t yyscanner );
2978
+
2979
+ int langscan_c_lex_lex_init (yyscan_t* scanner);
2980
+
2981
+ int langscan_c_lex_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
2982
+
2983
+ /* Accessor methods to globals.
2984
+ These are made visible to non-reentrant scanners for convenience. */
2985
+
2986
+ int langscan_c_lex_lex_destroy (yyscan_t yyscanner );
2987
+
2988
+ int langscan_c_lex_get_debug (yyscan_t yyscanner );
2989
+
2990
+ void langscan_c_lex_set_debug (int debug_flag ,yyscan_t yyscanner );
2991
+
2992
+ YY_EXTRA_TYPE langscan_c_lex_get_extra (yyscan_t yyscanner );
2993
+
2994
+ void langscan_c_lex_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
2995
+
2996
+ FILE *langscan_c_lex_get_in (yyscan_t yyscanner );
2997
+
2998
+ void langscan_c_lex_set_in (FILE * in_str ,yyscan_t yyscanner );
2999
+
3000
+ FILE *langscan_c_lex_get_out (yyscan_t yyscanner );
3001
+
3002
+ void langscan_c_lex_set_out (FILE * out_str ,yyscan_t yyscanner );
3003
+
3004
+ int langscan_c_lex_get_leng (yyscan_t yyscanner );
3005
+
3006
+ char *langscan_c_lex_get_text (yyscan_t yyscanner );
3007
+
3008
+ int langscan_c_lex_get_lineno (yyscan_t yyscanner );
3009
+
3010
+ void langscan_c_lex_set_lineno (int line_number ,yyscan_t yyscanner );
3011
+
3012
+ /* Macros after this point can all be overridden by user definitions in
3013
+ * section 1.
3014
+ */
3015
+
3016
+ #ifndef YY_SKIP_YYWRAP
3017
+ #ifdef __cplusplus
3018
+ extern "C" int langscan_c_lex_wrap (yyscan_t yyscanner );
3019
+ #else
3020
+ extern int langscan_c_lex_wrap (yyscan_t yyscanner );
3021
+ #endif
3022
+ #endif
3023
+
3024
+ static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
3025
+
3026
+ #ifndef yytext_ptr
3027
+ static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
3028
+ #endif
3029
+
3030
+ #ifdef YY_NEED_STRLEN
3031
+ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
3032
+ #endif
3033
+
3034
+ #ifndef YY_NO_INPUT
3035
+
3036
+ #ifdef __cplusplus
3037
+ static int yyinput (yyscan_t yyscanner );
3038
+ #else
3039
+ static int input (yyscan_t yyscanner );
3040
+ #endif
3041
+
3042
+ #endif
3043
+
3044
+ /* Amount of stuff to slurp up with each read. */
3045
+ #ifndef YY_READ_BUF_SIZE
3046
+ #ifdef __ia64__
3047
+ /* On IA-64, the buffer size is 16k, not 8k */
3048
+ #define YY_READ_BUF_SIZE 16384
3049
+ #else
3050
+ #define YY_READ_BUF_SIZE 8192
3051
+ #endif /* __ia64__ */
3052
+ #endif
3053
+
3054
+ /* Copy whatever the last rule matched to the standard output. */
3055
+ #ifndef ECHO
3056
+ /* This used to be an fputs(), but since the string might contain NUL's,
3057
+ * we now use fwrite().
3058
+ */
3059
+ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
3060
+ #endif
3061
+
3062
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
3063
+ * is returned in "result".
3064
+ */
3065
+ #ifndef YY_INPUT
3066
+ #define YY_INPUT(buf,result,max_size) \
3067
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3068
+ { \
3069
+ int c = '*'; \
3070
+ size_t n; \
3071
+ for ( n = 0; n < max_size && \
3072
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3073
+ buf[n] = (char) c; \
3074
+ if ( c == '\n' ) \
3075
+ buf[n++] = (char) c; \
3076
+ if ( c == EOF && ferror( yyin ) ) \
3077
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
3078
+ result = n; \
3079
+ } \
3080
+ else \
3081
+ { \
3082
+ errno=0; \
3083
+ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
3084
+ { \
3085
+ if( errno != EINTR) \
3086
+ { \
3087
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
3088
+ break; \
3089
+ } \
3090
+ errno=0; \
3091
+ clearerr(yyin); \
3092
+ } \
3093
+ }\
3094
+ \
3095
+
3096
+ #endif
3097
+
3098
+ /* No semi-colon after return; correct usage is to write "yyterminate();" -
3099
+ * we don't want an extra ';' after the "return" because that will cause
3100
+ * some compilers to complain about unreachable statements.
3101
+ */
3102
+ #ifndef yyterminate
3103
+ #define yyterminate() return YY_NULL
3104
+ #endif
3105
+
3106
+ /* Number of entries by which start-condition stack grows. */
3107
+ #ifndef YY_START_STACK_INCR
3108
+ #define YY_START_STACK_INCR 25
3109
+ #endif
3110
+
3111
+ /* Report a fatal error. */
3112
+ #ifndef YY_FATAL_ERROR
3113
+ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3114
+ #endif
3115
+
3116
+ /* end tables serialization structures and prototypes */
3117
+
3118
+ /* Default declaration of generated scanner - a define so the user can
3119
+ * easily add parameters.
3120
+ */
3121
+ #ifndef YY_DECL
3122
+ #define YY_DECL_IS_OURS 1
3123
+
3124
+ extern int langscan_c_lex_lex (yyscan_t yyscanner);
3125
+
3126
+ #define YY_DECL int langscan_c_lex_lex (yyscan_t yyscanner)
3127
+ #endif /* !YY_DECL */
3128
+
3129
+ /* Code executed at the beginning of each rule, after yytext and yyleng
3130
+ * have been set up.
3131
+ */
3132
+ #ifndef YY_USER_ACTION
3133
+ #define YY_USER_ACTION
3134
+ #endif
3135
+
3136
+ /* Code executed at the end of each rule. */
3137
+ #ifndef YY_BREAK
3138
+ #define YY_BREAK break;
3139
+ #endif
3140
+
3141
+ #define YY_RULE_SETUP \
3142
+ if ( yyleng > 0 ) \
3143
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
3144
+ (yytext[yyleng - 1] == '\n'); \
3145
+ YY_USER_ACTION
3146
+
3147
+ /** The main scanner function which does all the work.
3148
+ */
3149
+ YY_DECL
3150
+ {
3151
+ register yy_state_type yy_current_state;
3152
+ register char *yy_cp, *yy_bp;
3153
+ register int yy_act;
3154
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3155
+
3156
+ if ( !yyg->yy_init )
3157
+ {
3158
+ yyg->yy_init = 1;
3159
+
3160
+ #ifdef YY_USER_INIT
3161
+ YY_USER_INIT;
3162
+ #endif
3163
+
3164
+ if ( ! yyg->yy_start )
3165
+ yyg->yy_start = 1; /* first start state */
3166
+
3167
+ if ( ! yyin )
3168
+ yyin = stdin;
3169
+
3170
+ if ( ! yyout )
3171
+ yyout = stdout;
3172
+
3173
+ if ( ! YY_CURRENT_BUFFER ) {
3174
+ langscan_c_lex_ensure_buffer_stack (yyscanner);
3175
+ YY_CURRENT_BUFFER_LVALUE =
3176
+ langscan_c_lex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
3177
+ }
3178
+
3179
+ langscan_c_lex__load_buffer_state(yyscanner );
3180
+ }
3181
+
3182
+ while ( 1 ) /* loops until end-of-file is reached */
3183
+ {
3184
+ yy_cp = yyg->yy_c_buf_p;
3185
+
3186
+ /* Support of yytext. */
3187
+ *yy_cp = yyg->yy_hold_char;
3188
+
3189
+ /* yy_bp points to the position in yy_ch_buf of the start of
3190
+ * the current run.
3191
+ */
3192
+ yy_bp = yy_cp;
3193
+
3194
+ yy_current_state = yyg->yy_start;
3195
+ yy_current_state += YY_AT_BOL();
3196
+ yy_match:
3197
+ do
3198
+ {
3199
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3200
+ if ( yy_accept[yy_current_state] )
3201
+ {
3202
+ yyg->yy_last_accepting_state = yy_current_state;
3203
+ yyg->yy_last_accepting_cpos = yy_cp;
3204
+ }
3205
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3206
+ {
3207
+ yy_current_state = (int) yy_def[yy_current_state];
3208
+ if ( yy_current_state >= 795 )
3209
+ yy_c = yy_meta[(unsigned int) yy_c];
3210
+ }
3211
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3212
+ ++yy_cp;
3213
+ }
3214
+ while ( yy_base[yy_current_state] != 9762 );
3215
+
3216
+ yy_find_action:
3217
+ yy_act = yy_accept[yy_current_state];
3218
+ if ( yy_act == 0 )
3219
+ { /* have to back up */
3220
+ yy_cp = yyg->yy_last_accepting_cpos;
3221
+ yy_current_state = yyg->yy_last_accepting_state;
3222
+ yy_act = yy_accept[yy_current_state];
3223
+ }
3224
+
3225
+ YY_DO_BEFORE_ACTION;
3226
+
3227
+ do_action: /* This label is used only to access EOF actions. */
3228
+
3229
+ switch ( yy_act )
3230
+ { /* beginning of action switch */
3231
+ case 0: /* must back up */
3232
+ /* undo the effects of YY_DO_BEFORE_ACTION */
3233
+ *yy_cp = yyg->yy_hold_char;
3234
+ yy_cp = yyg->yy_last_accepting_cpos;
3235
+ yy_current_state = yyg->yy_last_accepting_state;
3236
+ goto yy_find_action;
3237
+
3238
+ case 1:
3239
+ YY_RULE_SETUP
3240
+ { UPD;
3241
+ if (YY_START == INITIAL || yyleng == 1) {
3242
+ BEGIN(PREPROC);
3243
+ report(preproc_beg);
3244
+ }
3245
+ else {
3246
+ yyless(yyleng-1);
3247
+ report(space);
3248
+ }
3249
+ }
3250
+ YY_BREAK
3251
+ case 2:
3252
+ /* rule 2 can match eol */
3253
+ YY_RULE_SETUP
3254
+ { UPD; report(space); }
3255
+ YY_BREAK
3256
+ case 3:
3257
+ /* rule 3 can match eol */
3258
+ YY_RULE_SETUP
3259
+ { UPD; BEGIN(INITIAL); report(preproc_end); }
3260
+ YY_BREAK
3261
+ case 4:
3262
+ /* rule 4 can match eol */
3263
+ YY_RULE_SETUP
3264
+ { yyless(ident_length(yytext, yyleng)); UPD; BEGIN(CLASSHEAD_TRAILER); report(classdef); }
3265
+ YY_BREAK
3266
+ case 5:
3267
+ YY_RULE_SETUP
3268
+ { UPD; report(classref); }
3269
+ YY_BREAK
3270
+ case 6:
3271
+ YY_RULE_SETUP
3272
+ { UPD; BEGIN(INITIAL); report(punct); }
3273
+ YY_BREAK
3274
+ case 7:
3275
+ /* rule 7 can match eol */
3276
+ YY_RULE_SETUP
3277
+ { yyless(ident_length(yytext, yyleng)); UPD; report(classdecl); }
3278
+ YY_BREAK
3279
+ case 8:
3280
+ YY_RULE_SETUP
3281
+ { UPD; report(classref); }
3282
+ YY_BREAK
3283
+ case 9:
3284
+ YY_RULE_SETUP
3285
+ { UPD; BEGIN(INITIAL); report(punct); }
3286
+ YY_BREAK
3287
+ case 10:
3288
+ /* rule 10 can match eol */
3289
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
3290
+ yyg->yy_c_buf_p = yy_cp = yy_bp + 5;
3291
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
3292
+ YY_RULE_SETUP
3293
+ { UPD; BEGIN(CLASSHEAD); report(ident); }
3294
+ YY_BREAK
3295
+ case 11:
3296
+ /* rule 11 can match eol */
3297
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
3298
+ yyg->yy_c_buf_p = yy_cp = yy_bp + 6;
3299
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
3300
+ YY_RULE_SETUP
3301
+ { UPD; BEGIN(CLASSHEAD); report(ident); }
3302
+ YY_BREAK
3303
+ case 12:
3304
+ /* rule 12 can match eol */
3305
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
3306
+ yyg->yy_c_buf_p = yy_cp = yy_bp + 5;
3307
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
3308
+ YY_RULE_SETUP
3309
+ { UPD; BEGIN(CLASSDECL); report(ident); }
3310
+ YY_BREAK
3311
+ case 13:
3312
+ /* rule 13 can match eol */
3313
+ *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
3314
+ yyg->yy_c_buf_p = yy_cp = yy_bp + 6;
3315
+ YY_DO_BEFORE_ACTION; /* set up yytext again */
3316
+ YY_RULE_SETUP
3317
+ { UPD; BEGIN(CLASSDECL); report(ident); }
3318
+ YY_BREAK
3319
+ case 14:
3320
+ YY_RULE_SETUP
3321
+ { UPD; report(space); }
3322
+ YY_BREAK
3323
+ case 15:
3324
+ /* rule 15 can match eol */
3325
+ YY_RULE_SETUP
3326
+ { UPD; report(space); }
3327
+ YY_BREAK
3328
+ case 16:
3329
+ /* rule 16 can match eol */
3330
+ YY_RULE_SETUP
3331
+ { UPD; report(comment); }
3332
+ YY_BREAK
3333
+ case 17:
3334
+ /* rule 17 can match eol */
3335
+ YY_RULE_SETUP
3336
+ { UPD; report(string); }
3337
+ YY_BREAK
3338
+ case 18:
3339
+ /* rule 18 can match eol */
3340
+ YY_RULE_SETUP
3341
+ { UPD; report(character); }
3342
+ YY_BREAK
3343
+ case 19:
3344
+ YY_RULE_SETUP
3345
+ { UPD; report(integer); }
3346
+ YY_BREAK
3347
+ case 20:
3348
+ YY_RULE_SETUP
3349
+ { UPD; report(integer); }
3350
+ YY_BREAK
3351
+ case 21:
3352
+ YY_RULE_SETUP
3353
+ { UPD; report(integer); }
3354
+ YY_BREAK
3355
+ case 22:
3356
+ YY_RULE_SETUP
3357
+ { UPD; report(floating); }
3358
+ YY_BREAK
3359
+ case 23:
3360
+ YY_RULE_SETUP
3361
+ { UPD; report(ident); }
3362
+ YY_BREAK
3363
+ case 24:
3364
+ YY_RULE_SETUP
3365
+ { UPD; report(punct); }
3366
+ YY_BREAK
3367
+ case 25:
3368
+ YY_RULE_SETUP
3369
+ YY_FATAL_ERROR( "flex scanner jammed" );
3370
+ YY_BREAK
3371
+ case YY_STATE_EOF(INITIAL):
3372
+ case YY_STATE_EOF(PREPROC):
3373
+ case YY_STATE_EOF(CLASSHEAD):
3374
+ case YY_STATE_EOF(CLASSHEAD_TRAILER):
3375
+ case YY_STATE_EOF(CLASSDECL):
3376
+ yyterminate();
3377
+
3378
+ case YY_END_OF_BUFFER:
3379
+ {
3380
+ /* Amount of text matched not including the EOB char. */
3381
+ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
3382
+
3383
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
3384
+ *yy_cp = yyg->yy_hold_char;
3385
+ YY_RESTORE_YY_MORE_OFFSET
3386
+
3387
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3388
+ {
3389
+ /* We're scanning a new file or input source. It's
3390
+ * possible that this happened because the user
3391
+ * just pointed yyin at a new source and called
3392
+ * langscan_c_lex_lex(). If so, then we have to assure
3393
+ * consistency between YY_CURRENT_BUFFER and our
3394
+ * globals. Here is the right place to do so, because
3395
+ * this is the first action (other than possibly a
3396
+ * back-up) that will match for the new input source.
3397
+ */
3398
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3399
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3400
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3401
+ }
3402
+
3403
+ /* Note that here we test for yy_c_buf_p "<=" to the position
3404
+ * of the first EOB in the buffer, since yy_c_buf_p will
3405
+ * already have been incremented past the NUL character
3406
+ * (since all states make transitions on EOB to the
3407
+ * end-of-buffer state). Contrast this with the test
3408
+ * in input().
3409
+ */
3410
+ if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
3411
+ { /* This was really a NUL. */
3412
+ yy_state_type yy_next_state;
3413
+
3414
+ yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
3415
+
3416
+ yy_current_state = yy_get_previous_state( yyscanner );
3417
+
3418
+ /* Okay, we're now positioned to make the NUL
3419
+ * transition. We couldn't have
3420
+ * yy_get_previous_state() go ahead and do it
3421
+ * for us because it doesn't know how to deal
3422
+ * with the possibility of jamming (and we don't
3423
+ * want to build jamming into it because then it
3424
+ * will run more slowly).
3425
+ */
3426
+
3427
+ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
3428
+
3429
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
3430
+
3431
+ if ( yy_next_state )
3432
+ {
3433
+ /* Consume the NUL. */
3434
+ yy_cp = ++yyg->yy_c_buf_p;
3435
+ yy_current_state = yy_next_state;
3436
+ goto yy_match;
3437
+ }
3438
+
3439
+ else
3440
+ {
3441
+ yy_cp = yyg->yy_c_buf_p;
3442
+ goto yy_find_action;
3443
+ }
3444
+ }
3445
+
3446
+ else switch ( yy_get_next_buffer( yyscanner ) )
3447
+ {
3448
+ case EOB_ACT_END_OF_FILE:
3449
+ {
3450
+ yyg->yy_did_buffer_switch_on_eof = 0;
3451
+
3452
+ if ( langscan_c_lex_wrap(yyscanner ) )
3453
+ {
3454
+ /* Note: because we've taken care in
3455
+ * yy_get_next_buffer() to have set up
3456
+ * yytext, we can now set up
3457
+ * yy_c_buf_p so that if some total
3458
+ * hoser (like flex itself) wants to
3459
+ * call the scanner after we return the
3460
+ * YY_NULL, it'll still work - another
3461
+ * YY_NULL will get returned.
3462
+ */
3463
+ yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
3464
+
3465
+ yy_act = YY_STATE_EOF(YY_START);
3466
+ goto do_action;
3467
+ }
3468
+
3469
+ else
3470
+ {
3471
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
3472
+ YY_NEW_FILE;
3473
+ }
3474
+ break;
3475
+ }
3476
+
3477
+ case EOB_ACT_CONTINUE_SCAN:
3478
+ yyg->yy_c_buf_p =
3479
+ yyg->yytext_ptr + yy_amount_of_matched_text;
3480
+
3481
+ yy_current_state = yy_get_previous_state( yyscanner );
3482
+
3483
+ yy_cp = yyg->yy_c_buf_p;
3484
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
3485
+ goto yy_match;
3486
+
3487
+ case EOB_ACT_LAST_MATCH:
3488
+ yyg->yy_c_buf_p =
3489
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
3490
+
3491
+ yy_current_state = yy_get_previous_state( yyscanner );
3492
+
3493
+ yy_cp = yyg->yy_c_buf_p;
3494
+ yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
3495
+ goto yy_find_action;
3496
+ }
3497
+ break;
3498
+ }
3499
+
3500
+ default:
3501
+ YY_FATAL_ERROR(
3502
+ "fatal flex scanner internal error--no action found" );
3503
+ } /* end of action switch */
3504
+ } /* end of scanning one token */
3505
+ } /* end of langscan_c_lex_lex */
3506
+
3507
+ /* yy_get_next_buffer - try to read in a new buffer
3508
+ *
3509
+ * Returns a code representing an action:
3510
+ * EOB_ACT_LAST_MATCH -
3511
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3512
+ * EOB_ACT_END_OF_FILE - end of file
3513
+ */
3514
+ static int yy_get_next_buffer (yyscan_t yyscanner)
3515
+ {
3516
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3517
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3518
+ register char *source = yyg->yytext_ptr;
3519
+ register int number_to_move, i;
3520
+ int ret_val;
3521
+
3522
+ if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
3523
+ YY_FATAL_ERROR(
3524
+ "fatal flex scanner internal error--end of buffer missed" );
3525
+
3526
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3527
+ { /* Don't try to fill the buffer, so this is an EOF. */
3528
+ if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
3529
+ {
3530
+ /* We matched a single character, the EOB, so
3531
+ * treat this as a final EOF.
3532
+ */
3533
+ return EOB_ACT_END_OF_FILE;
3534
+ }
3535
+
3536
+ else
3537
+ {
3538
+ /* We matched some text prior to the EOB, first
3539
+ * process it.
3540
+ */
3541
+ return EOB_ACT_LAST_MATCH;
3542
+ }
3543
+ }
3544
+
3545
+ /* Try to read more data. */
3546
+
3547
+ /* First move last chars to start of buffer. */
3548
+ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
3549
+
3550
+ for ( i = 0; i < number_to_move; ++i )
3551
+ *(dest++) = *(source++);
3552
+
3553
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3554
+ /* don't do the read, it's not guaranteed to return an EOF,
3555
+ * just force an EOF
3556
+ */
3557
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
3558
+
3559
+ else
3560
+ {
3561
+ int num_to_read =
3562
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3563
+
3564
+ while ( num_to_read <= 0 )
3565
+ { /* Not enough room in the buffer - grow it. */
3566
+
3567
+ /* just a shorter name for the current buffer */
3568
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3569
+
3570
+ int yy_c_buf_p_offset =
3571
+ (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
3572
+
3573
+ if ( b->yy_is_our_buffer )
3574
+ {
3575
+ int new_size = b->yy_buf_size * 2;
3576
+
3577
+ if ( new_size <= 0 )
3578
+ b->yy_buf_size += b->yy_buf_size / 8;
3579
+ else
3580
+ b->yy_buf_size *= 2;
3581
+
3582
+ b->yy_ch_buf = (char *)
3583
+ /* Include room in for 2 EOB chars. */
3584
+ langscan_c_lex_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
3585
+ }
3586
+ else
3587
+ /* Can't grow it, we don't own it. */
3588
+ b->yy_ch_buf = 0;
3589
+
3590
+ if ( ! b->yy_ch_buf )
3591
+ YY_FATAL_ERROR(
3592
+ "fatal error - scanner input buffer overflow" );
3593
+
3594
+ yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3595
+
3596
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3597
+ number_to_move - 1;
3598
+
3599
+ }
3600
+
3601
+ if ( num_to_read > YY_READ_BUF_SIZE )
3602
+ num_to_read = YY_READ_BUF_SIZE;
3603
+
3604
+ /* Read in more data. */
3605
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3606
+ yyg->yy_n_chars, (size_t) num_to_read );
3607
+
3608
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3609
+ }
3610
+
3611
+ if ( yyg->yy_n_chars == 0 )
3612
+ {
3613
+ if ( number_to_move == YY_MORE_ADJ )
3614
+ {
3615
+ ret_val = EOB_ACT_END_OF_FILE;
3616
+ langscan_c_lex_restart(yyin ,yyscanner);
3617
+ }
3618
+
3619
+ else
3620
+ {
3621
+ ret_val = EOB_ACT_LAST_MATCH;
3622
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3623
+ YY_BUFFER_EOF_PENDING;
3624
+ }
3625
+ }
3626
+
3627
+ else
3628
+ ret_val = EOB_ACT_CONTINUE_SCAN;
3629
+
3630
+ if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3631
+ /* Extend the array by 50%, plus the number we really need. */
3632
+ yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
3633
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) langscan_c_lex_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
3634
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3635
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3636
+ }
3637
+
3638
+ yyg->yy_n_chars += number_to_move;
3639
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3640
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3641
+
3642
+ yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3643
+
3644
+ return ret_val;
3645
+ }
3646
+
3647
+ /* yy_get_previous_state - get the state just before the EOB char was reached */
3648
+
3649
+ static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
3650
+ {
3651
+ register yy_state_type yy_current_state;
3652
+ register char *yy_cp;
3653
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3654
+
3655
+ yy_current_state = yyg->yy_start;
3656
+ yy_current_state += YY_AT_BOL();
3657
+
3658
+ for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
3659
+ {
3660
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3661
+ if ( yy_accept[yy_current_state] )
3662
+ {
3663
+ yyg->yy_last_accepting_state = yy_current_state;
3664
+ yyg->yy_last_accepting_cpos = yy_cp;
3665
+ }
3666
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3667
+ {
3668
+ yy_current_state = (int) yy_def[yy_current_state];
3669
+ if ( yy_current_state >= 795 )
3670
+ yy_c = yy_meta[(unsigned int) yy_c];
3671
+ }
3672
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3673
+ }
3674
+
3675
+ return yy_current_state;
3676
+ }
3677
+
3678
+ /* yy_try_NUL_trans - try to make a transition on the NUL character
3679
+ *
3680
+ * synopsis
3681
+ * next_state = yy_try_NUL_trans( current_state );
3682
+ */
3683
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
3684
+ {
3685
+ register int yy_is_jam;
3686
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
3687
+ register char *yy_cp = yyg->yy_c_buf_p;
3688
+
3689
+ register YY_CHAR yy_c = 1;
3690
+ if ( yy_accept[yy_current_state] )
3691
+ {
3692
+ yyg->yy_last_accepting_state = yy_current_state;
3693
+ yyg->yy_last_accepting_cpos = yy_cp;
3694
+ }
3695
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3696
+ {
3697
+ yy_current_state = (int) yy_def[yy_current_state];
3698
+ if ( yy_current_state >= 795 )
3699
+ yy_c = yy_meta[(unsigned int) yy_c];
3700
+ }
3701
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3702
+ yy_is_jam = (yy_current_state == 794);
3703
+
3704
+ return yy_is_jam ? 0 : yy_current_state;
3705
+ }
3706
+
3707
+ static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
3708
+ {
3709
+ register char *yy_cp;
3710
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3711
+
3712
+ yy_cp = yyg->yy_c_buf_p;
3713
+
3714
+ /* undo effects of setting up yytext */
3715
+ *yy_cp = yyg->yy_hold_char;
3716
+
3717
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3718
+ { /* need to shift things up to make room */
3719
+ /* +2 for EOB chars. */
3720
+ register int number_to_move = yyg->yy_n_chars + 2;
3721
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3722
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3723
+ register char *source =
3724
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3725
+
3726
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3727
+ *--dest = *--source;
3728
+
3729
+ yy_cp += (int) (dest - source);
3730
+ yy_bp += (int) (dest - source);
3731
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3732
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3733
+
3734
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3735
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
3736
+ }
3737
+
3738
+ *--yy_cp = (char) c;
3739
+
3740
+ yyg->yytext_ptr = yy_bp;
3741
+ yyg->yy_hold_char = *yy_cp;
3742
+ yyg->yy_c_buf_p = yy_cp;
3743
+ }
3744
+
3745
+ #ifndef YY_NO_INPUT
3746
+ #ifdef __cplusplus
3747
+ static int yyinput (yyscan_t yyscanner)
3748
+ #else
3749
+ static int input (yyscan_t yyscanner)
3750
+ #endif
3751
+
3752
+ {
3753
+ int c;
3754
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3755
+
3756
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
3757
+
3758
+ if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3759
+ {
3760
+ /* yy_c_buf_p now points to the character we want to return.
3761
+ * If this occurs *before* the EOB characters, then it's a
3762
+ * valid NUL; if not, then we've hit the end of the buffer.
3763
+ */
3764
+ if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
3765
+ /* This was really a NUL. */
3766
+ *yyg->yy_c_buf_p = '\0';
3767
+
3768
+ else
3769
+ { /* need more input */
3770
+ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
3771
+ ++yyg->yy_c_buf_p;
3772
+
3773
+ switch ( yy_get_next_buffer( yyscanner ) )
3774
+ {
3775
+ case EOB_ACT_LAST_MATCH:
3776
+ /* This happens because yy_g_n_b()
3777
+ * sees that we've accumulated a
3778
+ * token and flags that we need to
3779
+ * try matching the token before
3780
+ * proceeding. But for input(),
3781
+ * there's no matching to consider.
3782
+ * So convert the EOB_ACT_LAST_MATCH
3783
+ * to EOB_ACT_END_OF_FILE.
3784
+ */
3785
+
3786
+ /* Reset buffer status. */
3787
+ langscan_c_lex_restart(yyin ,yyscanner);
3788
+
3789
+ /*FALLTHROUGH*/
3790
+
3791
+ case EOB_ACT_END_OF_FILE:
3792
+ {
3793
+ if ( langscan_c_lex_wrap(yyscanner ) )
3794
+ return EOF;
3795
+
3796
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
3797
+ YY_NEW_FILE;
3798
+ #ifdef __cplusplus
3799
+ return yyinput(yyscanner);
3800
+ #else
3801
+ return input(yyscanner);
3802
+ #endif
3803
+ }
3804
+
3805
+ case EOB_ACT_CONTINUE_SCAN:
3806
+ yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
3807
+ break;
3808
+ }
3809
+ }
3810
+ }
3811
+
3812
+ c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
3813
+ *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
3814
+ yyg->yy_hold_char = *++yyg->yy_c_buf_p;
3815
+
3816
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3817
+
3818
+ return c;
3819
+ }
3820
+ #endif /* ifndef YY_NO_INPUT */
3821
+
3822
+ /** Immediately switch to a different input stream.
3823
+ * @param input_file A readable stream.
3824
+ * @param yyscanner The scanner object.
3825
+ * @note This function does not reset the start condition to @c INITIAL .
3826
+ */
3827
+ void langscan_c_lex_restart (FILE * input_file , yyscan_t yyscanner)
3828
+ {
3829
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3830
+
3831
+ if ( ! YY_CURRENT_BUFFER ){
3832
+ langscan_c_lex_ensure_buffer_stack (yyscanner);
3833
+ YY_CURRENT_BUFFER_LVALUE =
3834
+ langscan_c_lex__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
3835
+ }
3836
+
3837
+ langscan_c_lex__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
3838
+ langscan_c_lex__load_buffer_state(yyscanner );
3839
+ }
3840
+
3841
+ /** Switch to a different input buffer.
3842
+ * @param new_buffer The new input buffer.
3843
+ * @param yyscanner The scanner object.
3844
+ */
3845
+ void langscan_c_lex__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
3846
+ {
3847
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3848
+
3849
+ /* TODO. We should be able to replace this entire function body
3850
+ * with
3851
+ * langscan_c_lex_pop_buffer_state();
3852
+ * langscan_c_lex_push_buffer_state(new_buffer);
3853
+ */
3854
+ langscan_c_lex_ensure_buffer_stack (yyscanner);
3855
+ if ( YY_CURRENT_BUFFER == new_buffer )
3856
+ return;
3857
+
3858
+ if ( YY_CURRENT_BUFFER )
3859
+ {
3860
+ /* Flush out information for old buffer. */
3861
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
3862
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
3863
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
3864
+ }
3865
+
3866
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
3867
+ langscan_c_lex__load_buffer_state(yyscanner );
3868
+
3869
+ /* We don't actually know whether we did this switch during
3870
+ * EOF (langscan_c_lex_wrap()) processing, but the only time this flag
3871
+ * is looked at is after langscan_c_lex_wrap() is called, so it's safe
3872
+ * to go ahead and always set it.
3873
+ */
3874
+ yyg->yy_did_buffer_switch_on_eof = 1;
3875
+ }
3876
+
3877
+ static void langscan_c_lex__load_buffer_state (yyscan_t yyscanner)
3878
+ {
3879
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3880
+ yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3881
+ yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3882
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3883
+ yyg->yy_hold_char = *yyg->yy_c_buf_p;
3884
+ }
3885
+
3886
+ /** Allocate and initialize an input buffer state.
3887
+ * @param file A readable stream.
3888
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3889
+ * @param yyscanner The scanner object.
3890
+ * @return the allocated buffer state.
3891
+ */
3892
+ YY_BUFFER_STATE langscan_c_lex__create_buffer (FILE * file, int size , yyscan_t yyscanner)
3893
+ {
3894
+ YY_BUFFER_STATE b;
3895
+
3896
+ b = (YY_BUFFER_STATE) langscan_c_lex_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3897
+ if ( ! b )
3898
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex__create_buffer()" );
3899
+
3900
+ b->yy_buf_size = size;
3901
+
3902
+ /* yy_ch_buf has to be 2 characters longer than the size given because
3903
+ * we need to put in 2 end-of-buffer characters.
3904
+ */
3905
+ b->yy_ch_buf = (char *) langscan_c_lex_alloc(b->yy_buf_size + 2 ,yyscanner );
3906
+ if ( ! b->yy_ch_buf )
3907
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex__create_buffer()" );
3908
+
3909
+ b->yy_is_our_buffer = 1;
3910
+
3911
+ langscan_c_lex__init_buffer(b,file ,yyscanner);
3912
+
3913
+ return b;
3914
+ }
3915
+
3916
+ /** Destroy the buffer.
3917
+ * @param b a buffer created with langscan_c_lex__create_buffer()
3918
+ * @param yyscanner The scanner object.
3919
+ */
3920
+ void langscan_c_lex__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
3921
+ {
3922
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3923
+
3924
+ if ( ! b )
3925
+ return;
3926
+
3927
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3928
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3929
+
3930
+ if ( b->yy_is_our_buffer )
3931
+ langscan_c_lex_free((void *) b->yy_ch_buf ,yyscanner );
3932
+
3933
+ langscan_c_lex_free((void *) b ,yyscanner );
3934
+ }
3935
+
3936
+ #ifndef __cplusplus
3937
+ extern int isatty (int );
3938
+ #endif /* __cplusplus */
3939
+
3940
+ /* Initializes or reinitializes a buffer.
3941
+ * This function is sometimes called more than once on the same buffer,
3942
+ * such as during a langscan_c_lex_restart() or at EOF.
3943
+ */
3944
+ static void langscan_c_lex__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
3945
+
3946
+ {
3947
+ int oerrno = errno;
3948
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3949
+
3950
+ langscan_c_lex__flush_buffer(b ,yyscanner);
3951
+
3952
+ b->yy_input_file = file;
3953
+ b->yy_fill_buffer = 1;
3954
+
3955
+ /* If b is the current buffer, then langscan_c_lex__init_buffer was _probably_
3956
+ * called from langscan_c_lex_restart() or through yy_get_next_buffer.
3957
+ * In that case, we don't want to reset the lineno or column.
3958
+ */
3959
+ if (b != YY_CURRENT_BUFFER){
3960
+ b->yy_bs_lineno = 1;
3961
+ b->yy_bs_column = 0;
3962
+ }
3963
+
3964
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3965
+
3966
+ errno = oerrno;
3967
+ }
3968
+
3969
+ /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3970
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3971
+ * @param yyscanner The scanner object.
3972
+ */
3973
+ void langscan_c_lex__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
3974
+ {
3975
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3976
+ if ( ! b )
3977
+ return;
3978
+
3979
+ b->yy_n_chars = 0;
3980
+
3981
+ /* We always need two end-of-buffer characters. The first causes
3982
+ * a transition to the end-of-buffer state. The second causes
3983
+ * a jam in that state.
3984
+ */
3985
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3986
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3987
+
3988
+ b->yy_buf_pos = &b->yy_ch_buf[0];
3989
+
3990
+ b->yy_at_bol = 1;
3991
+ b->yy_buffer_status = YY_BUFFER_NEW;
3992
+
3993
+ if ( b == YY_CURRENT_BUFFER )
3994
+ langscan_c_lex__load_buffer_state(yyscanner );
3995
+ }
3996
+
3997
+ /** Pushes the new state onto the stack. The new state becomes
3998
+ * the current state. This function will allocate the stack
3999
+ * if necessary.
4000
+ * @param new_buffer The new state.
4001
+ * @param yyscanner The scanner object.
4002
+ */
4003
+ void langscan_c_lex_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
4004
+ {
4005
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4006
+ if (new_buffer == NULL)
4007
+ return;
4008
+
4009
+ langscan_c_lex_ensure_buffer_stack(yyscanner);
4010
+
4011
+ /* This block is copied from langscan_c_lex__switch_to_buffer. */
4012
+ if ( YY_CURRENT_BUFFER )
4013
+ {
4014
+ /* Flush out information for old buffer. */
4015
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
4016
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4017
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4018
+ }
4019
+
4020
+ /* Only push if top exists. Otherwise, replace top. */
4021
+ if (YY_CURRENT_BUFFER)
4022
+ yyg->yy_buffer_stack_top++;
4023
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
4024
+
4025
+ /* copied from langscan_c_lex__switch_to_buffer. */
4026
+ langscan_c_lex__load_buffer_state(yyscanner );
4027
+ yyg->yy_did_buffer_switch_on_eof = 1;
4028
+ }
4029
+
4030
+ /** Removes and deletes the top of the stack, if present.
4031
+ * The next element becomes the new top.
4032
+ * @param yyscanner The scanner object.
4033
+ */
4034
+ void langscan_c_lex_pop_buffer_state (yyscan_t yyscanner)
4035
+ {
4036
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4037
+ if (!YY_CURRENT_BUFFER)
4038
+ return;
4039
+
4040
+ langscan_c_lex__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
4041
+ YY_CURRENT_BUFFER_LVALUE = NULL;
4042
+ if (yyg->yy_buffer_stack_top > 0)
4043
+ --yyg->yy_buffer_stack_top;
4044
+
4045
+ if (YY_CURRENT_BUFFER) {
4046
+ langscan_c_lex__load_buffer_state(yyscanner );
4047
+ yyg->yy_did_buffer_switch_on_eof = 1;
4048
+ }
4049
+ }
4050
+
4051
+ /* Allocates the stack if it does not exist.
4052
+ * Guarantees space for at least one push.
4053
+ */
4054
+ static void langscan_c_lex_ensure_buffer_stack (yyscan_t yyscanner)
4055
+ {
4056
+ int num_to_alloc;
4057
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4058
+
4059
+ if (!yyg->yy_buffer_stack) {
4060
+
4061
+ /* First allocation is just for 2 elements, since we don't know if this
4062
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
4063
+ * immediate realloc on the next call.
4064
+ */
4065
+ num_to_alloc = 1;
4066
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)langscan_c_lex_alloc
4067
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
4068
+ , yyscanner);
4069
+ if ( ! yyg->yy_buffer_stack )
4070
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex_ensure_buffer_stack()" );
4071
+
4072
+ memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4073
+
4074
+ yyg->yy_buffer_stack_max = num_to_alloc;
4075
+ yyg->yy_buffer_stack_top = 0;
4076
+ return;
4077
+ }
4078
+
4079
+ if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
4080
+
4081
+ /* Increase the buffer to prepare for a possible push. */
4082
+ int grow_size = 8 /* arbitrary grow size */;
4083
+
4084
+ num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
4085
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)langscan_c_lex_realloc
4086
+ (yyg->yy_buffer_stack,
4087
+ num_to_alloc * sizeof(struct yy_buffer_state*)
4088
+ , yyscanner);
4089
+ if ( ! yyg->yy_buffer_stack )
4090
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex_ensure_buffer_stack()" );
4091
+
4092
+ /* zero only the new slots.*/
4093
+ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
4094
+ yyg->yy_buffer_stack_max = num_to_alloc;
4095
+ }
4096
+ }
4097
+
4098
+ /** Setup the input buffer state to scan directly from a user-specified character buffer.
4099
+ * @param base the character buffer
4100
+ * @param size the size in bytes of the character buffer
4101
+ * @param yyscanner The scanner object.
4102
+ * @return the newly allocated buffer state object.
4103
+ */
4104
+ YY_BUFFER_STATE langscan_c_lex__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
4105
+ {
4106
+ YY_BUFFER_STATE b;
4107
+
4108
+ if ( size < 2 ||
4109
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
4110
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
4111
+ /* They forgot to leave room for the EOB's. */
4112
+ return 0;
4113
+
4114
+ b = (YY_BUFFER_STATE) langscan_c_lex_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
4115
+ if ( ! b )
4116
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex__scan_buffer()" );
4117
+
4118
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4119
+ b->yy_buf_pos = b->yy_ch_buf = base;
4120
+ b->yy_is_our_buffer = 0;
4121
+ b->yy_input_file = 0;
4122
+ b->yy_n_chars = b->yy_buf_size;
4123
+ b->yy_is_interactive = 0;
4124
+ b->yy_at_bol = 1;
4125
+ b->yy_fill_buffer = 0;
4126
+ b->yy_buffer_status = YY_BUFFER_NEW;
4127
+
4128
+ langscan_c_lex__switch_to_buffer(b ,yyscanner );
4129
+
4130
+ return b;
4131
+ }
4132
+
4133
+ /** Setup the input buffer state to scan a string. The next call to langscan_c_lex_lex() will
4134
+ * scan from a @e copy of @a str.
4135
+ * @param yystr a NUL-terminated string to scan
4136
+ * @param yyscanner The scanner object.
4137
+ * @return the newly allocated buffer state object.
4138
+ * @note If you want to scan bytes that may contain NUL values, then use
4139
+ * langscan_c_lex__scan_bytes() instead.
4140
+ */
4141
+ YY_BUFFER_STATE langscan_c_lex__scan_string (yyconst char * yystr , yyscan_t yyscanner)
4142
+ {
4143
+
4144
+ return langscan_c_lex__scan_bytes(yystr,strlen(yystr) ,yyscanner);
4145
+ }
4146
+
4147
+ /** Setup the input buffer state to scan the given bytes. The next call to langscan_c_lex_lex() will
4148
+ * scan from a @e copy of @a bytes.
4149
+ * @param yybytes the byte buffer to scan
4150
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4151
+ * @param yyscanner The scanner object.
4152
+ * @return the newly allocated buffer state object.
4153
+ */
4154
+ YY_BUFFER_STATE langscan_c_lex__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
4155
+ {
4156
+ YY_BUFFER_STATE b;
4157
+ char *buf;
4158
+ yy_size_t n;
4159
+ int i;
4160
+
4161
+ /* Get memory for full buffer, including space for trailing EOB's. */
4162
+ n = _yybytes_len + 2;
4163
+ buf = (char *) langscan_c_lex_alloc(n ,yyscanner );
4164
+ if ( ! buf )
4165
+ YY_FATAL_ERROR( "out of dynamic memory in langscan_c_lex__scan_bytes()" );
4166
+
4167
+ for ( i = 0; i < _yybytes_len; ++i )
4168
+ buf[i] = yybytes[i];
4169
+
4170
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4171
+
4172
+ b = langscan_c_lex__scan_buffer(buf,n ,yyscanner);
4173
+ if ( ! b )
4174
+ YY_FATAL_ERROR( "bad buffer in langscan_c_lex__scan_bytes()" );
4175
+
4176
+ /* It's okay to grow etc. this buffer, and we should throw it
4177
+ * away when we're done.
4178
+ */
4179
+ b->yy_is_our_buffer = 1;
4180
+
4181
+ return b;
4182
+ }
4183
+
4184
+ #ifndef YY_EXIT_FAILURE
4185
+ #define YY_EXIT_FAILURE 2
4186
+ #endif
4187
+
4188
+ static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
4189
+ {
4190
+ (void) fprintf( stderr, "%s\n", msg );
4191
+ exit( YY_EXIT_FAILURE );
4192
+ }
4193
+
4194
+ /* Redefine yyless() so it works in section 3 code. */
4195
+
4196
+ #undef yyless
4197
+ #define yyless(n) \
4198
+ do \
4199
+ { \
4200
+ /* Undo effects of setting up yytext. */ \
4201
+ int yyless_macro_arg = (n); \
4202
+ YY_LESS_LINENO(yyless_macro_arg);\
4203
+ yytext[yyleng] = yyg->yy_hold_char; \
4204
+ yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
4205
+ yyg->yy_hold_char = *yyg->yy_c_buf_p; \
4206
+ *yyg->yy_c_buf_p = '\0'; \
4207
+ yyleng = yyless_macro_arg; \
4208
+ } \
4209
+ while ( 0 )
4210
+
4211
+ /* Accessor methods (get/set functions) to struct members. */
4212
+
4213
+ /** Get the user-defined data for this scanner.
4214
+ * @param yyscanner The scanner object.
4215
+ */
4216
+ YY_EXTRA_TYPE langscan_c_lex_get_extra (yyscan_t yyscanner)
4217
+ {
4218
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4219
+ return yyextra;
4220
+ }
4221
+
4222
+ /** Get the current line number.
4223
+ * @param yyscanner The scanner object.
4224
+ */
4225
+ int langscan_c_lex_get_lineno (yyscan_t yyscanner)
4226
+ {
4227
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4228
+
4229
+ if (! YY_CURRENT_BUFFER)
4230
+ return 0;
4231
+
4232
+ return yylineno;
4233
+ }
4234
+
4235
+ /** Get the current column number.
4236
+ * @param yyscanner The scanner object.
4237
+ */
4238
+ int langscan_c_lex_get_column (yyscan_t yyscanner)
4239
+ {
4240
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4241
+
4242
+ if (! YY_CURRENT_BUFFER)
4243
+ return 0;
4244
+
4245
+ return yycolumn;
4246
+ }
4247
+
4248
+ /** Get the input stream.
4249
+ * @param yyscanner The scanner object.
4250
+ */
4251
+ FILE *langscan_c_lex_get_in (yyscan_t yyscanner)
4252
+ {
4253
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4254
+ return yyin;
4255
+ }
4256
+
4257
+ /** Get the output stream.
4258
+ * @param yyscanner The scanner object.
4259
+ */
4260
+ FILE *langscan_c_lex_get_out (yyscan_t yyscanner)
4261
+ {
4262
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4263
+ return yyout;
4264
+ }
4265
+
4266
+ /** Get the length of the current token.
4267
+ * @param yyscanner The scanner object.
4268
+ */
4269
+ int langscan_c_lex_get_leng (yyscan_t yyscanner)
4270
+ {
4271
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4272
+ return yyleng;
4273
+ }
4274
+
4275
+ /** Get the current token.
4276
+ * @param yyscanner The scanner object.
4277
+ */
4278
+
4279
+ char *langscan_c_lex_get_text (yyscan_t yyscanner)
4280
+ {
4281
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4282
+ return yytext;
4283
+ }
4284
+
4285
+ /** Set the user-defined data. This data is never touched by the scanner.
4286
+ * @param user_defined The data to be associated with this scanner.
4287
+ * @param yyscanner The scanner object.
4288
+ */
4289
+ void langscan_c_lex_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
4290
+ {
4291
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4292
+ yyextra = user_defined ;
4293
+ }
4294
+
4295
+ /** Set the current line number.
4296
+ * @param line_number
4297
+ * @param yyscanner The scanner object.
4298
+ */
4299
+ void langscan_c_lex_set_lineno (int line_number , yyscan_t yyscanner)
4300
+ {
4301
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4302
+
4303
+ /* lineno is only valid if an input buffer exists. */
4304
+ if (! YY_CURRENT_BUFFER )
4305
+ yy_fatal_error( "langscan_c_lex_set_lineno called with no buffer" , yyscanner);
4306
+
4307
+ yylineno = line_number;
4308
+ }
4309
+
4310
+ /** Set the current column.
4311
+ * @param line_number
4312
+ * @param yyscanner The scanner object.
4313
+ */
4314
+ void langscan_c_lex_set_column (int column_no , yyscan_t yyscanner)
4315
+ {
4316
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4317
+
4318
+ /* column is only valid if an input buffer exists. */
4319
+ if (! YY_CURRENT_BUFFER )
4320
+ yy_fatal_error( "langscan_c_lex_set_column called with no buffer" , yyscanner);
4321
+
4322
+ yycolumn = column_no;
4323
+ }
4324
+
4325
+ /** Set the input stream. This does not discard the current
4326
+ * input buffer.
4327
+ * @param in_str A readable stream.
4328
+ * @param yyscanner The scanner object.
4329
+ * @see langscan_c_lex__switch_to_buffer
4330
+ */
4331
+ void langscan_c_lex_set_in (FILE * in_str , yyscan_t yyscanner)
4332
+ {
4333
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4334
+ yyin = in_str ;
4335
+ }
4336
+
4337
+ void langscan_c_lex_set_out (FILE * out_str , yyscan_t yyscanner)
4338
+ {
4339
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4340
+ yyout = out_str ;
4341
+ }
4342
+
4343
+ int langscan_c_lex_get_debug (yyscan_t yyscanner)
4344
+ {
4345
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4346
+ return yy_flex_debug;
4347
+ }
4348
+
4349
+ void langscan_c_lex_set_debug (int bdebug , yyscan_t yyscanner)
4350
+ {
4351
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4352
+ yy_flex_debug = bdebug ;
4353
+ }
4354
+
4355
+ /* Accessor methods for yylval and yylloc */
4356
+
4357
+ /* User-visible API */
4358
+
4359
+ /* langscan_c_lex_lex_init is special because it creates the scanner itself, so it is
4360
+ * the ONLY reentrant function that doesn't take the scanner as the last argument.
4361
+ * That's why we explicitly handle the declaration, instead of using our macros.
4362
+ */
4363
+
4364
+ int langscan_c_lex_lex_init(yyscan_t* ptr_yy_globals)
4365
+
4366
+ {
4367
+ if (ptr_yy_globals == NULL){
4368
+ errno = EINVAL;
4369
+ return 1;
4370
+ }
4371
+
4372
+ *ptr_yy_globals = (yyscan_t) langscan_c_lex_alloc ( sizeof( struct yyguts_t ), NULL );
4373
+
4374
+ if (*ptr_yy_globals == NULL){
4375
+ errno = ENOMEM;
4376
+ return 1;
4377
+ }
4378
+
4379
+ /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
4380
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
4381
+
4382
+ return yy_init_globals ( *ptr_yy_globals );
4383
+ }
4384
+
4385
+ /* langscan_c_lex_lex_init_extra has the same functionality as langscan_c_lex_lex_init, but follows the
4386
+ * convention of taking the scanner as the last argument. Note however, that
4387
+ * this is a *pointer* to a scanner, as it will be allocated by this call (and
4388
+ * is the reason, too, why this function also must handle its own declaration).
4389
+ * The user defined value in the first argument will be available to langscan_c_lex_alloc in
4390
+ * the yyextra field.
4391
+ */
4392
+
4393
+ int langscan_c_lex_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
4394
+
4395
+ {
4396
+ struct yyguts_t dummy_yyguts;
4397
+
4398
+ langscan_c_lex_set_extra (yy_user_defined, &dummy_yyguts);
4399
+
4400
+ if (ptr_yy_globals == NULL){
4401
+ errno = EINVAL;
4402
+ return 1;
4403
+ }
4404
+
4405
+ *ptr_yy_globals = (yyscan_t) langscan_c_lex_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
4406
+
4407
+ if (*ptr_yy_globals == NULL){
4408
+ errno = ENOMEM;
4409
+ return 1;
4410
+ }
4411
+
4412
+ /* By setting to 0xAA, we expose bugs in
4413
+ yy_init_globals. Leave at 0x00 for releases. */
4414
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
4415
+
4416
+ langscan_c_lex_set_extra (yy_user_defined, *ptr_yy_globals);
4417
+
4418
+ return yy_init_globals ( *ptr_yy_globals );
4419
+ }
4420
+
4421
+ static int yy_init_globals (yyscan_t yyscanner)
4422
+ {
4423
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4424
+ /* Initialization is the same as for the non-reentrant scanner.
4425
+ * This function is called from langscan_c_lex_lex_destroy(), so don't allocate here.
4426
+ */
4427
+
4428
+ yyg->yy_buffer_stack = 0;
4429
+ yyg->yy_buffer_stack_top = 0;
4430
+ yyg->yy_buffer_stack_max = 0;
4431
+ yyg->yy_c_buf_p = (char *) 0;
4432
+ yyg->yy_init = 0;
4433
+ yyg->yy_start = 0;
4434
+
4435
+ yyg->yy_start_stack_ptr = 0;
4436
+ yyg->yy_start_stack_depth = 0;
4437
+ yyg->yy_start_stack = NULL;
4438
+
4439
+ /* Defined in main.c */
4440
+ #ifdef YY_STDINIT
4441
+ yyin = stdin;
4442
+ yyout = stdout;
4443
+ #else
4444
+ yyin = (FILE *) 0;
4445
+ yyout = (FILE *) 0;
4446
+ #endif
4447
+
4448
+ /* For future reference: Set errno on error, since we are called by
4449
+ * langscan_c_lex_lex_init()
4450
+ */
4451
+ return 0;
4452
+ }
4453
+
4454
+ /* langscan_c_lex_lex_destroy is for both reentrant and non-reentrant scanners. */
4455
+ int langscan_c_lex_lex_destroy (yyscan_t yyscanner)
4456
+ {
4457
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4458
+
4459
+ /* Pop the buffer stack, destroying each element. */
4460
+ while(YY_CURRENT_BUFFER){
4461
+ langscan_c_lex__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
4462
+ YY_CURRENT_BUFFER_LVALUE = NULL;
4463
+ langscan_c_lex_pop_buffer_state(yyscanner);
4464
+ }
4465
+
4466
+ /* Destroy the stack itself. */
4467
+ langscan_c_lex_free(yyg->yy_buffer_stack ,yyscanner);
4468
+ yyg->yy_buffer_stack = NULL;
4469
+
4470
+ /* Destroy the start condition stack. */
4471
+ langscan_c_lex_free(yyg->yy_start_stack ,yyscanner );
4472
+ yyg->yy_start_stack = NULL;
4473
+
4474
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
4475
+ * langscan_c_lex_lex() is called, initialization will occur. */
4476
+ yy_init_globals( yyscanner);
4477
+
4478
+ /* Destroy the main struct (reentrant only). */
4479
+ langscan_c_lex_free ( yyscanner , yyscanner );
4480
+ yyscanner = NULL;
4481
+ return 0;
4482
+ }
4483
+
4484
+ /*
4485
+ * Internal utility routines.
4486
+ */
4487
+
4488
+ #ifndef yytext_ptr
4489
+ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
4490
+ {
4491
+ register int i;
4492
+ for ( i = 0; i < n; ++i )
4493
+ s1[i] = s2[i];
4494
+ }
4495
+ #endif
4496
+
4497
+ #ifdef YY_NEED_STRLEN
4498
+ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
4499
+ {
4500
+ register int n;
4501
+ for ( n = 0; s[n]; ++n )
4502
+ ;
4503
+
4504
+ return n;
4505
+ }
4506
+ #endif
4507
+
4508
+ void *langscan_c_lex_alloc (yy_size_t size , yyscan_t yyscanner)
4509
+ {
4510
+ return (void *) malloc( size );
4511
+ }
4512
+
4513
+ void *langscan_c_lex_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
4514
+ {
4515
+ /* The cast to (char *) in the following accommodates both
4516
+ * implementations that use char* generic pointers, and those
4517
+ * that use void* generic pointers. It works with the latter
4518
+ * because both ANSI C and C++ allow castless assignment from
4519
+ * any pointer type to void*, and deal with argument conversions
4520
+ * as though doing an assignment.
4521
+ */
4522
+ return (void *) realloc( (char *) ptr, size );
4523
+ }
4524
+
4525
+ void langscan_c_lex_free (void * ptr , yyscan_t yyscanner)
4526
+ {
4527
+ free( (char *) ptr ); /* see langscan_c_lex_realloc() for (char *) cast */
4528
+ }
4529
+
4530
+ #define YYTABLES_NAME "yytables"
4531
+
4532
+ static void update_pos(
4533
+ langscan_c_lex_extra_t *extra,
4534
+ char *text,
4535
+ int leng)
4536
+ {
4537
+ int i, j;
4538
+ extra->beg_byteno = extra->end_byteno;
4539
+ extra->beg_lineno = extra->end_lineno;
4540
+ extra->beg_columnno = extra->end_columnno;
4541
+ j = 0;
4542
+ for (i = 0; i < leng; i++) {
4543
+ if (text[i] == '\n') {
4544
+ extra->end_lineno++;
4545
+ j = i + 1;
4546
+ extra->end_columnno = 0;
4547
+ }
4548
+ }
4549
+ extra->end_columnno += leng - j;
4550
+ extra->end_byteno += leng;
4551
+ }
4552
+
4553
+ static int ident_length(unsigned char *ptr, int max)
4554
+ {
4555
+ int len = 0;
4556
+ while (0 < max &&
4557
+ (('0' <= *ptr && *ptr <= '9') ||
4558
+ ('A' <= *ptr && *ptr <= 'Z') ||
4559
+ ('a' <= *ptr && *ptr <= 'z') ||
4560
+ *ptr == '_')) {
4561
+ ptr++;
4562
+ len++;
4563
+ max--;
4564
+ }
4565
+ return len;
4566
+ }
4567
+
4568
+ langscan_c_tokenizer_t *langscan_c_make_tokenizer(
4569
+ size_t (*user_read)(void **user_data_p, char *buf, size_t maxlen),
4570
+ void *user_data)
4571
+ {
4572
+ langscan_c_tokenizer_t *tokenizer;
4573
+ langscan_c_lex_extra_t *extra;
4574
+ tokenizer = (langscan_c_tokenizer_t *)malloc(sizeof(langscan_c_tokenizer_t));
4575
+ if (tokenizer == NULL)
4576
+ return NULL;
4577
+ extra = (langscan_c_lex_extra_t *)malloc(sizeof(langscan_c_lex_extra_t));
4578
+ if (extra == NULL)
4579
+ return NULL;
4580
+ extra->user_read = user_read;
4581
+ extra->user_data = user_data;
4582
+ extra->beg_lineno = 1;
4583
+ extra->beg_columnno = 0;
4584
+ extra->beg_byteno = 0;
4585
+ extra->end_lineno = 1;
4586
+ extra->end_columnno = 0;
4587
+ extra->end_byteno = 0;
4588
+ extra->eof = 0;
4589
+ tokenizer->extra = extra;
4590
+ langscan_c_lex_lex_init(&tokenizer->scanner);
4591
+ langscan_c_lex_set_extra(extra, tokenizer->scanner);
4592
+ return tokenizer;
4593
+ }
4594
+
4595
+ langscan_c_token_t langscan_c_get_token(langscan_c_tokenizer_t *tokenizer)
4596
+ {
4597
+ return langscan_c_lex_lex(tokenizer->scanner);
4598
+ }
4599
+
4600
+ void langscan_c_free_tokenizer(langscan_c_tokenizer_t *tokenizer)
4601
+ {
4602
+ langscan_c_lex_extra_t *extra = langscan_c_lex_get_extra(tokenizer->scanner);
4603
+ free((void *)extra);
4604
+ langscan_c_lex_lex_destroy(tokenizer->scanner);
4605
+ free((void *)tokenizer);
4606
+ }
4607
+
4608
+ user_read_t langscan_c_tokenizer_get_user_read(langscan_c_tokenizer_t *tokenizer)
4609
+ {
4610
+ return tokenizer->extra->user_read;
4611
+ }
4612
+
4613
+ void *langscan_c_tokenizer_get_user_data(langscan_c_tokenizer_t *tokenizer)
4614
+ {
4615
+ return tokenizer->extra->user_data;
4616
+ }
4617
+
4618
+ const char *langscan_c_token_name(langscan_c_token_t token)
4619
+ {
4620
+ static char *token_names[] = {
4621
+ "*eof*",
4622
+ #define LANGSCAN_C_TOKEN(name) #name,
4623
+ LANGSCAN_C_TOKEN_LIST
4624
+ #undef LANGSCAN_C_TOKEN
4625
+ };
4626
+
4627
+ return token_names[token];
4628
+ }
4629
+