~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to external/nrefactory/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de
 
2
 
 
3
#line 2 "cs-parser.jay"
 
4
//
 
5
// cs-parser.jay: The Parser for the C# compiler
 
6
//
 
7
// Authors: Miguel de Icaza (miguel@gnome.org)
 
8
//          Ravi Pratap     (ravi@ximian.com)
 
9
//          Marek Safar     (marek.safar@gmail.com)
 
10
//
 
11
// Dual Licensed under the terms of the GNU GPL and the MIT X11 license
 
12
//
 
13
// (C) 2001 Ximian, Inc (http://www.ximian.com)
 
14
// (C) 2004-2011 Novell, Inc
 
15
// Copyright 2011-2012 Xamarin Inc.
 
16
//
 
17
 
 
18
using System.Text;
 
19
using System.IO;
 
20
using System;
 
21
using System.Collections.Generic;
 
22
 
 
23
namespace Mono.CSharp
 
24
{
 
25
        /// <summary>
 
26
        ///    The C# Parser
 
27
        /// </summary>
 
28
        public class CSharpParser
 
29
        {
 
30
                [Flags]
 
31
                enum ParameterModifierType
 
32
                {
 
33
                        Ref             = 1 << 1,
 
34
                        Out             = 1 << 2,
 
35
                        This    = 1 << 3,
 
36
                        Params  = 1 << 4,
 
37
                        Arglist = 1 << 5,
 
38
                        DefaultValue = 1 << 6,
 
39
                        
 
40
                        All = Ref | Out | This | Params | Arglist | DefaultValue
 
41
                }
 
42
                
 
43
                static readonly object ModifierNone = 0;
 
44
        
 
45
                NamespaceContainer current_namespace;
 
46
                TypeContainer current_container;
 
47
                TypeDefinition current_type;
 
48
                PropertyBase current_property;
 
49
                EventProperty current_event;
 
50
                EventField current_event_field;
 
51
                FieldBase current_field;
 
52
        
 
53
                /// <summary>
 
54
                ///   Current block is used to add statements as we find
 
55
                ///   them.  
 
56
                /// </summary>
 
57
                Block      current_block;
 
58
                
 
59
                BlockVariableDeclaration current_variable;
 
60
 
 
61
                Delegate   current_delegate;
 
62
                
 
63
                AnonymousMethodExpression current_anonymous_method;
 
64
 
 
65
                /// <summary>
 
66
                ///   This is used by the unary_expression code to resolve
 
67
                ///   a name against a parameter.  
 
68
                /// </summary>
 
69
                
 
70
                // FIXME: This is very ugly and it's very hard to reset it correctly
 
71
                // on all places, especially when some parameters are autogenerated.
 
72
                ParametersCompiled current_local_parameters;
 
73
 
 
74
                bool parsing_anonymous_method;
 
75
                
 
76
                bool async_block;
 
77
 
 
78
                ///
 
79
                /// An out-of-band stack.
 
80
                ///
 
81
                Stack<object> oob_stack;
 
82
 
 
83
                ///
 
84
                /// Controls the verbosity of the errors produced by the parser
 
85
                ///
 
86
                int yacc_verbose_flag;
 
87
 
 
88
                /// 
 
89
                /// Used by the interactive shell, flags whether EOF was reached
 
90
                /// and an error was produced
 
91
                ///
 
92
                public bool UnexpectedEOF;
 
93
 
 
94
                ///
 
95
                /// The current file.
 
96
                ///
 
97
                readonly CompilationSourceFile file;
 
98
 
 
99
                ///
 
100
                /// Temporary Xml documentation cache.
 
101
                /// For enum types, we need one more temporary store.
 
102
                ///
 
103
                string tmpComment;
 
104
                string enumTypeComment;
 
105
                        
 
106
                /// Current attribute target
 
107
                string current_attr_target;
 
108
                
 
109
                ParameterModifierType valid_param_mod;
 
110
                
 
111
                bool default_parameter_used;
 
112
 
 
113
                /// When using the interactive parser, this holds the
 
114
                /// resulting expression
 
115
                public Class InteractiveResult;
 
116
 
 
117
                //
 
118
                // Keeps track of global data changes to undo on parser error
 
119
                //
 
120
                public Undo undo;
 
121
                
 
122
                Stack<Linq.QueryBlock> linq_clause_blocks;
 
123
 
 
124
                ModuleContainer module;
 
125
                
 
126
                readonly CompilerContext compiler;
 
127
                readonly LanguageVersion lang_version;
 
128
                readonly bool doc_support;
 
129
                readonly CompilerSettings settings;
 
130
                readonly Report report;
 
131
                
 
132
                //
 
133
                // Instead of allocating carrier array everytime we
 
134
                // share the bucket for very common constructs which can never
 
135
                // be recursive
 
136
                //
 
137
                List<Parameter> parameters_bucket;
 
138
                
 
139
                //
 
140
                // Full AST support members
 
141
                //
 
142
                LocationsBag lbag;
 
143
                List<Tuple<Modifiers, Location>> mod_locations;
 
144
                Location parameterModifierLocation, savedLocation, savedOpenLocation, savedCloseLocation, savedEventAssignLocation;
 
145
                Location savedAttrParenOpenLocation, savedAttrParenCloseLocation, savedOperatorLocation;
 
146
                Stack<List<Location>> locationListStack = new Stack<List<Location>> (); // used for type parameters
 
147
                Stack<Location> opt_intoStack = new Stack<Location> ();
 
148
 
 
149
                bool HadAttributeParens;
 
150
                List<Location> attributeCommas = new List<Location> ();
 
151
                List<Location> attributeArgumentCommas = new List<Location> ();
 
152
                List<Location> parameterListCommas = new List<Location> ();
 
153
                Stack<Location> location_stack;
 
154
#line default
 
155
 
 
156
  /** error output stream.
 
157
      It should be changeable.
 
158
    */
 
159
  public System.IO.TextWriter ErrorOutput = System.Console.Out;
 
160
 
 
161
  /** simplified error message.
 
162
      @see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
 
163
    */
 
164
  public void yyerror (string message) {
 
165
    yyerror(message, null);
 
166
  }
 
167
#pragma warning disable 649
 
168
  /* An EOF token */
 
169
  public int eof_token;
 
170
#pragma warning restore 649
 
171
  /** (syntax) error message.
 
172
      Can be overwritten to control message format.
 
173
      @param message text to be displayed.
 
174
      @param expected vector of acceptable tokens, if available.
 
175
    */
 
176
  public void yyerror (string message, string[] expected) {
 
177
    if ((yacc_verbose_flag > 0) && (expected != null) && (expected.Length  > 0)) {
 
178
      ErrorOutput.Write (message+", expecting");
 
179
      for (int n = 0; n < expected.Length; ++ n)
 
180
        ErrorOutput.Write (" "+expected[n]);
 
181
        ErrorOutput.WriteLine ();
 
182
    } else
 
183
      ErrorOutput.WriteLine (message);
 
184
  }
 
185
 
 
186
  /** debugging support, requires the package jay.yydebug.
 
187
      Set to null to suppress debugging messages.
 
188
    */
 
189
//t  internal yydebug.yyDebug debug;
 
190
 
 
191
  protected const int yyFinal = 7;
 
192
//t // Put this array into a separate class so it is only initialized if debugging is actually used
 
193
//t // Use MarshalByRefObject to disable inlining
 
194
//t class YYRules : MarshalByRefObject {
 
195
//t  public static readonly string [] yyRule = {
 
196
//t    "$accept : compilation_unit",
 
197
//t    "compilation_unit : outer_declaration opt_EOF",
 
198
//t    "$$1 :",
 
199
//t    "compilation_unit : interactive_parsing $$1 opt_EOF",
 
200
//t    "compilation_unit : documentation_parsing",
 
201
//t    "outer_declaration : opt_extern_alias_directives opt_using_directives",
 
202
//t    "outer_declaration : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations opt_attributes",
 
203
//t    "outer_declaration : opt_extern_alias_directives opt_using_directives attribute_sections",
 
204
//t    "outer_declaration : error",
 
205
//t    "opt_EOF :",
 
206
//t    "opt_EOF : EOF",
 
207
//t    "extern_alias_directives : extern_alias_directive",
 
208
//t    "extern_alias_directives : extern_alias_directives extern_alias_directive",
 
209
//t    "extern_alias_directive : EXTERN_ALIAS IDENTIFIER IDENTIFIER SEMICOLON",
 
210
//t    "extern_alias_directive : EXTERN_ALIAS error",
 
211
//t    "using_directives : using_directive",
 
212
//t    "using_directives : using_directives using_directive",
 
213
//t    "using_directive : using_namespace",
 
214
//t    "using_namespace : USING namespace_or_type_expr SEMICOLON",
 
215
//t    "using_namespace : USING IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON",
 
216
//t    "using_namespace : USING error",
 
217
//t    "$$2 :",
 
218
//t    "$$3 :",
 
219
//t    "namespace_declaration : opt_attributes NAMESPACE namespace_name $$2 OPEN_BRACE $$3 opt_extern_alias_directives opt_using_directives opt_namespace_or_type_declarations CLOSE_BRACE opt_semicolon_error",
 
220
//t    "namespace_declaration : opt_attributes NAMESPACE namespace_name",
 
221
//t    "opt_semicolon_error :",
 
222
//t    "opt_semicolon_error : SEMICOLON",
 
223
//t    "opt_semicolon_error : error",
 
224
//t    "namespace_name : IDENTIFIER",
 
225
//t    "namespace_name : namespace_name DOT IDENTIFIER",
 
226
//t    "namespace_name : error",
 
227
//t    "opt_semicolon :",
 
228
//t    "opt_semicolon : SEMICOLON",
 
229
//t    "opt_comma :",
 
230
//t    "opt_comma : COMMA",
 
231
//t    "opt_using_directives :",
 
232
//t    "opt_using_directives : using_directives",
 
233
//t    "opt_extern_alias_directives :",
 
234
//t    "opt_extern_alias_directives : extern_alias_directives",
 
235
//t    "opt_namespace_or_type_declarations :",
 
236
//t    "opt_namespace_or_type_declarations : namespace_or_type_declarations",
 
237
//t    "namespace_or_type_declarations : namespace_or_type_declaration",
 
238
//t    "namespace_or_type_declarations : namespace_or_type_declarations namespace_or_type_declaration",
 
239
//t    "namespace_or_type_declaration : type_declaration",
 
240
//t    "namespace_or_type_declaration : namespace_declaration",
 
241
//t    "namespace_or_type_declaration : attribute_sections CLOSE_BRACE",
 
242
//t    "type_declaration : class_declaration",
 
243
//t    "type_declaration : struct_declaration",
 
244
//t    "type_declaration : interface_declaration",
 
245
//t    "type_declaration : enum_declaration",
 
246
//t    "type_declaration : delegate_declaration",
 
247
//t    "opt_attributes :",
 
248
//t    "opt_attributes : attribute_sections",
 
249
//t    "attribute_sections : attribute_section",
 
250
//t    "attribute_sections : attribute_sections attribute_section",
 
251
//t    "$$4 :",
 
252
//t    "attribute_section : OPEN_BRACKET $$4 attribute_section_cont",
 
253
//t    "$$5 :",
 
254
//t    "attribute_section_cont : attribute_target COLON $$5 attribute_list opt_comma CLOSE_BRACKET",
 
255
//t    "attribute_section_cont : attribute_list opt_comma CLOSE_BRACKET",
 
256
//t    "attribute_section_cont : IDENTIFIER error",
 
257
//t    "attribute_section_cont : error",
 
258
//t    "attribute_target : IDENTIFIER",
 
259
//t    "attribute_target : EVENT",
 
260
//t    "attribute_target : RETURN",
 
261
//t    "attribute_list : attribute",
 
262
//t    "attribute_list : attribute_list COMMA attribute",
 
263
//t    "$$6 :",
 
264
//t    "attribute : attribute_name $$6 opt_attribute_arguments",
 
265
//t    "attribute_name : namespace_or_type_expr",
 
266
//t    "opt_attribute_arguments :",
 
267
//t    "opt_attribute_arguments : OPEN_PARENS attribute_arguments CLOSE_PARENS",
 
268
//t    "attribute_arguments :",
 
269
//t    "attribute_arguments : positional_or_named_argument",
 
270
//t    "attribute_arguments : named_attribute_argument",
 
271
//t    "attribute_arguments : attribute_arguments COMMA positional_or_named_argument",
 
272
//t    "attribute_arguments : attribute_arguments COMMA named_attribute_argument",
 
273
//t    "positional_or_named_argument : expression",
 
274
//t    "positional_or_named_argument : named_argument",
 
275
//t    "positional_or_named_argument : error",
 
276
//t    "$$7 :",
 
277
//t    "named_attribute_argument : IDENTIFIER ASSIGN $$7 expression",
 
278
//t    "named_argument : identifier_inside_body COLON opt_named_modifier expression",
 
279
//t    "opt_named_modifier :",
 
280
//t    "opt_named_modifier : REF",
 
281
//t    "opt_named_modifier : OUT",
 
282
//t    "opt_class_member_declarations :",
 
283
//t    "opt_class_member_declarations : class_member_declarations",
 
284
//t    "class_member_declarations : class_member_declaration",
 
285
//t    "class_member_declarations : class_member_declarations class_member_declaration",
 
286
//t    "class_member_declaration : constant_declaration",
 
287
//t    "class_member_declaration : field_declaration",
 
288
//t    "class_member_declaration : method_declaration",
 
289
//t    "class_member_declaration : property_declaration",
 
290
//t    "class_member_declaration : event_declaration",
 
291
//t    "class_member_declaration : indexer_declaration",
 
292
//t    "class_member_declaration : operator_declaration",
 
293
//t    "class_member_declaration : constructor_declaration",
 
294
//t    "class_member_declaration : destructor_declaration",
 
295
//t    "class_member_declaration : type_declaration",
 
296
//t    "class_member_declaration : attributes_without_members",
 
297
//t    "class_member_declaration : incomplete_member",
 
298
//t    "class_member_declaration : error",
 
299
//t    "$$8 :",
 
300
//t    "$$9 :",
 
301
//t    "$$10 :",
 
302
//t    "$$11 :",
 
303
//t    "$$12 :",
 
304
//t    "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT $$8 type_declaration_name $$9 opt_class_base opt_type_parameter_constraints_clauses $$10 OPEN_BRACE $$11 opt_class_member_declarations CLOSE_BRACE $$12 opt_semicolon",
 
305
//t    "struct_declaration : opt_attributes opt_modifiers opt_partial STRUCT error",
 
306
//t    "$$13 :",
 
307
//t    "constant_declaration : opt_attributes opt_modifiers CONST type IDENTIFIER $$13 constant_initializer opt_constant_declarators SEMICOLON",
 
308
//t    "constant_declaration : opt_attributes opt_modifiers CONST type error",
 
309
//t    "opt_constant_declarators :",
 
310
//t    "opt_constant_declarators : constant_declarators",
 
311
//t    "constant_declarators : constant_declarator",
 
312
//t    "constant_declarators : constant_declarators constant_declarator",
 
313
//t    "constant_declarator : COMMA IDENTIFIER constant_initializer",
 
314
//t    "$$14 :",
 
315
//t    "constant_initializer : ASSIGN $$14 constant_initializer_expr",
 
316
//t    "constant_initializer : error",
 
317
//t    "constant_initializer_expr : constant_expression",
 
318
//t    "constant_initializer_expr : array_initializer",
 
319
//t    "$$15 :",
 
320
//t    "field_declaration : opt_attributes opt_modifiers member_type IDENTIFIER $$15 opt_field_initializer opt_field_declarators SEMICOLON",
 
321
//t    "$$16 :",
 
322
//t    "field_declaration : opt_attributes opt_modifiers FIXED simple_type IDENTIFIER $$16 fixed_field_size opt_fixed_field_declarators SEMICOLON",
 
323
//t    "field_declaration : opt_attributes opt_modifiers FIXED simple_type error SEMICOLON",
 
324
//t    "opt_field_initializer :",
 
325
//t    "$$17 :",
 
326
//t    "opt_field_initializer : ASSIGN $$17 variable_initializer",
 
327
//t    "opt_field_declarators :",
 
328
//t    "opt_field_declarators : field_declarators",
 
329
//t    "field_declarators : field_declarator",
 
330
//t    "field_declarators : field_declarators field_declarator",
 
331
//t    "field_declarator : COMMA IDENTIFIER",
 
332
//t    "$$18 :",
 
333
//t    "field_declarator : COMMA IDENTIFIER ASSIGN $$18 variable_initializer",
 
334
//t    "opt_fixed_field_declarators :",
 
335
//t    "opt_fixed_field_declarators : fixed_field_declarators",
 
336
//t    "fixed_field_declarators : fixed_field_declarator",
 
337
//t    "fixed_field_declarators : fixed_field_declarators fixed_field_declarator",
 
338
//t    "fixed_field_declarator : COMMA IDENTIFIER fixed_field_size",
 
339
//t    "$$19 :",
 
340
//t    "fixed_field_size : OPEN_BRACKET $$19 expression CLOSE_BRACKET",
 
341
//t    "fixed_field_size : OPEN_BRACKET error",
 
342
//t    "variable_initializer : expression",
 
343
//t    "variable_initializer : array_initializer",
 
344
//t    "variable_initializer : error",
 
345
//t    "$$20 :",
 
346
//t    "method_declaration : method_header $$20 method_body",
 
347
//t    "$$21 :",
 
348
//t    "$$22 :",
 
349
//t    "method_header : opt_attributes opt_modifiers member_type method_declaration_name OPEN_PARENS $$21 opt_formal_parameter_list CLOSE_PARENS $$22 opt_type_parameter_constraints_clauses",
 
350
//t    "$$23 :",
 
351
//t    "$$24 :",
 
352
//t    "$$25 :",
 
353
//t    "method_header : opt_attributes opt_modifiers PARTIAL VOID $$23 method_declaration_name OPEN_PARENS $$24 opt_formal_parameter_list CLOSE_PARENS $$25 opt_type_parameter_constraints_clauses",
 
354
//t    "method_header : opt_attributes opt_modifiers member_type modifiers method_declaration_name OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS",
 
355
//t    "method_header : opt_attributes opt_modifiers member_type method_declaration_name error",
 
356
//t    "method_body : block",
 
357
//t    "method_body : SEMICOLON",
 
358
//t    "opt_formal_parameter_list :",
 
359
//t    "opt_formal_parameter_list : formal_parameter_list",
 
360
//t    "formal_parameter_list : fixed_parameters",
 
361
//t    "formal_parameter_list : fixed_parameters COMMA parameter_array",
 
362
//t    "formal_parameter_list : fixed_parameters COMMA arglist_modifier",
 
363
//t    "formal_parameter_list : parameter_array COMMA error",
 
364
//t    "formal_parameter_list : fixed_parameters COMMA parameter_array COMMA error",
 
365
//t    "formal_parameter_list : arglist_modifier COMMA error",
 
366
//t    "formal_parameter_list : fixed_parameters COMMA ARGLIST COMMA error",
 
367
//t    "formal_parameter_list : parameter_array",
 
368
//t    "formal_parameter_list : arglist_modifier",
 
369
//t    "formal_parameter_list : error",
 
370
//t    "fixed_parameters : fixed_parameter",
 
371
//t    "fixed_parameters : fixed_parameters COMMA fixed_parameter",
 
372
//t    "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body",
 
373
//t    "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body OPEN_BRACKET CLOSE_BRACKET",
 
374
//t    "fixed_parameter : attribute_sections error",
 
375
//t    "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type error",
 
376
//t    "$$26 :",
 
377
//t    "fixed_parameter : opt_attributes opt_parameter_modifier parameter_type identifier_inside_body ASSIGN $$26 constant_expression",
 
378
//t    "opt_parameter_modifier :",
 
379
//t    "opt_parameter_modifier : parameter_modifiers",
 
380
//t    "parameter_modifiers : parameter_modifier",
 
381
//t    "parameter_modifiers : parameter_modifiers parameter_modifier",
 
382
//t    "parameter_modifier : REF",
 
383
//t    "parameter_modifier : OUT",
 
384
//t    "parameter_modifier : THIS",
 
385
//t    "parameter_array : opt_attributes params_modifier type IDENTIFIER",
 
386
//t    "parameter_array : opt_attributes params_modifier type IDENTIFIER ASSIGN constant_expression",
 
387
//t    "parameter_array : opt_attributes params_modifier type error",
 
388
//t    "params_modifier : PARAMS",
 
389
//t    "params_modifier : PARAMS parameter_modifier",
 
390
//t    "params_modifier : PARAMS params_modifier",
 
391
//t    "arglist_modifier : ARGLIST",
 
392
//t    "$$27 :",
 
393
//t    "$$28 :",
 
394
//t    "$$29 :",
 
395
//t    "property_declaration : opt_attributes opt_modifiers member_type member_declaration_name $$27 OPEN_BRACE $$28 accessor_declarations $$29 CLOSE_BRACE",
 
396
//t    "$$30 :",
 
397
//t    "$$31 :",
 
398
//t    "$$32 :",
 
399
//t    "indexer_declaration : opt_attributes opt_modifiers member_type indexer_declaration_name OPEN_BRACKET $$30 opt_formal_parameter_list CLOSE_BRACKET $$31 OPEN_BRACE accessor_declarations $$32 CLOSE_BRACE",
 
400
//t    "accessor_declarations : get_accessor_declaration",
 
401
//t    "accessor_declarations : get_accessor_declaration accessor_declarations",
 
402
//t    "accessor_declarations : set_accessor_declaration",
 
403
//t    "accessor_declarations : set_accessor_declaration accessor_declarations",
 
404
//t    "accessor_declarations : error",
 
405
//t    "$$33 :",
 
406
//t    "get_accessor_declaration : opt_attributes opt_modifiers GET $$33 accessor_body",
 
407
//t    "$$34 :",
 
408
//t    "set_accessor_declaration : opt_attributes opt_modifiers SET $$34 accessor_body",
 
409
//t    "accessor_body : block",
 
410
//t    "accessor_body : SEMICOLON",
 
411
//t    "accessor_body : error",
 
412
//t    "$$35 :",
 
413
//t    "$$36 :",
 
414
//t    "$$37 :",
 
415
//t    "$$38 :",
 
416
//t    "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE $$35 type_declaration_name $$36 opt_class_base opt_type_parameter_constraints_clauses $$37 OPEN_BRACE opt_interface_member_declarations CLOSE_BRACE $$38 opt_semicolon",
 
417
//t    "interface_declaration : opt_attributes opt_modifiers opt_partial INTERFACE error",
 
418
//t    "opt_interface_member_declarations :",
 
419
//t    "opt_interface_member_declarations : interface_member_declarations",
 
420
//t    "interface_member_declarations : interface_member_declaration",
 
421
//t    "interface_member_declarations : interface_member_declarations interface_member_declaration",
 
422
//t    "interface_member_declaration : constant_declaration",
 
423
//t    "interface_member_declaration : field_declaration",
 
424
//t    "interface_member_declaration : method_declaration",
 
425
//t    "interface_member_declaration : property_declaration",
 
426
//t    "interface_member_declaration : event_declaration",
 
427
//t    "interface_member_declaration : indexer_declaration",
 
428
//t    "interface_member_declaration : operator_declaration",
 
429
//t    "interface_member_declaration : constructor_declaration",
 
430
//t    "interface_member_declaration : type_declaration",
 
431
//t    "$$39 :",
 
432
//t    "operator_declaration : opt_attributes opt_modifiers operator_declarator $$39 operator_body",
 
433
//t    "operator_body : block",
 
434
//t    "operator_body : SEMICOLON",
 
435
//t    "operator_type : type_expression_or_array",
 
436
//t    "operator_type : VOID",
 
437
//t    "$$40 :",
 
438
//t    "operator_declarator : operator_type OPERATOR overloadable_operator OPEN_PARENS $$40 opt_formal_parameter_list CLOSE_PARENS",
 
439
//t    "operator_declarator : conversion_operator_declarator",
 
440
//t    "overloadable_operator : BANG",
 
441
//t    "overloadable_operator : TILDE",
 
442
//t    "overloadable_operator : OP_INC",
 
443
//t    "overloadable_operator : OP_DEC",
 
444
//t    "overloadable_operator : TRUE",
 
445
//t    "overloadable_operator : FALSE",
 
446
//t    "overloadable_operator : PLUS",
 
447
//t    "overloadable_operator : MINUS",
 
448
//t    "overloadable_operator : STAR",
 
449
//t    "overloadable_operator : DIV",
 
450
//t    "overloadable_operator : PERCENT",
 
451
//t    "overloadable_operator : BITWISE_AND",
 
452
//t    "overloadable_operator : BITWISE_OR",
 
453
//t    "overloadable_operator : CARRET",
 
454
//t    "overloadable_operator : OP_SHIFT_LEFT",
 
455
//t    "overloadable_operator : OP_SHIFT_RIGHT",
 
456
//t    "overloadable_operator : OP_EQ",
 
457
//t    "overloadable_operator : OP_NE",
 
458
//t    "overloadable_operator : OP_GT",
 
459
//t    "overloadable_operator : OP_LT",
 
460
//t    "overloadable_operator : OP_GE",
 
461
//t    "overloadable_operator : OP_LE",
 
462
//t    "$$41 :",
 
463
//t    "conversion_operator_declarator : IMPLICIT OPERATOR type OPEN_PARENS $$41 opt_formal_parameter_list CLOSE_PARENS",
 
464
//t    "$$42 :",
 
465
//t    "conversion_operator_declarator : EXPLICIT OPERATOR type OPEN_PARENS $$42 opt_formal_parameter_list CLOSE_PARENS",
 
466
//t    "conversion_operator_declarator : IMPLICIT error",
 
467
//t    "conversion_operator_declarator : EXPLICIT error",
 
468
//t    "constructor_declaration : constructor_declarator constructor_body",
 
469
//t    "$$43 :",
 
470
//t    "$$44 :",
 
471
//t    "constructor_declarator : opt_attributes opt_modifiers IDENTIFIER $$43 OPEN_PARENS opt_formal_parameter_list CLOSE_PARENS $$44 opt_constructor_initializer",
 
472
//t    "constructor_body : block_prepared",
 
473
//t    "constructor_body : SEMICOLON",
 
474
//t    "opt_constructor_initializer :",
 
475
//t    "opt_constructor_initializer : constructor_initializer",
 
476
//t    "$$45 :",
 
477
//t    "constructor_initializer : COLON BASE OPEN_PARENS $$45 opt_argument_list CLOSE_PARENS",
 
478
//t    "$$46 :",
 
479
//t    "constructor_initializer : COLON THIS OPEN_PARENS $$46 opt_argument_list CLOSE_PARENS",
 
480
//t    "constructor_initializer : COLON error",
 
481
//t    "constructor_initializer : error",
 
482
//t    "$$47 :",
 
483
//t    "destructor_declaration : opt_attributes opt_modifiers TILDE $$47 IDENTIFIER OPEN_PARENS CLOSE_PARENS method_body",
 
484
//t    "$$48 :",
 
485
//t    "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name $$48 opt_event_initializer opt_event_declarators SEMICOLON",
 
486
//t    "$$49 :",
 
487
//t    "$$50 :",
 
488
//t    "event_declaration : opt_attributes opt_modifiers EVENT type member_declaration_name OPEN_BRACE $$49 event_accessor_declarations $$50 CLOSE_BRACE",
 
489
//t    "event_declaration : opt_attributes opt_modifiers EVENT type error",
 
490
//t    "opt_event_initializer :",
 
491
//t    "$$51 :",
 
492
//t    "opt_event_initializer : ASSIGN $$51 event_variable_initializer",
 
493
//t    "opt_event_declarators :",
 
494
//t    "opt_event_declarators : event_declarators",
 
495
//t    "event_declarators : event_declarator",
 
496
//t    "event_declarators : event_declarators event_declarator",
 
497
//t    "event_declarator : COMMA IDENTIFIER",
 
498
//t    "$$52 :",
 
499
//t    "event_declarator : COMMA IDENTIFIER ASSIGN $$52 event_variable_initializer",
 
500
//t    "$$53 :",
 
501
//t    "event_variable_initializer : $$53 variable_initializer",
 
502
//t    "event_accessor_declarations : add_accessor_declaration remove_accessor_declaration",
 
503
//t    "event_accessor_declarations : remove_accessor_declaration add_accessor_declaration",
 
504
//t    "event_accessor_declarations : add_accessor_declaration",
 
505
//t    "event_accessor_declarations : remove_accessor_declaration",
 
506
//t    "event_accessor_declarations : error",
 
507
//t    "$$54 :",
 
508
//t    "add_accessor_declaration : opt_attributes opt_modifiers ADD $$54 event_accessor_block",
 
509
//t    "$$55 :",
 
510
//t    "remove_accessor_declaration : opt_attributes opt_modifiers REMOVE $$55 event_accessor_block",
 
511
//t    "event_accessor_block : opt_semicolon",
 
512
//t    "event_accessor_block : block",
 
513
//t    "attributes_without_members : attribute_sections CLOSE_BRACE",
 
514
//t    "incomplete_member : opt_attributes opt_modifiers member_type CLOSE_BRACE",
 
515
//t    "$$56 :",
 
516
//t    "$$57 :",
 
517
//t    "$$58 :",
 
518
//t    "enum_declaration : opt_attributes opt_modifiers ENUM type_declaration_name opt_enum_base $$56 OPEN_BRACE $$57 opt_enum_member_declarations $$58 CLOSE_BRACE opt_semicolon",
 
519
//t    "opt_enum_base :",
 
520
//t    "opt_enum_base : COLON type",
 
521
//t    "opt_enum_base : COLON error",
 
522
//t    "opt_enum_member_declarations :",
 
523
//t    "opt_enum_member_declarations : enum_member_declarations",
 
524
//t    "opt_enum_member_declarations : enum_member_declarations COMMA",
 
525
//t    "enum_member_declarations : enum_member_declaration",
 
526
//t    "enum_member_declarations : enum_member_declarations COMMA enum_member_declaration",
 
527
//t    "enum_member_declaration : opt_attributes IDENTIFIER",
 
528
//t    "$$59 :",
 
529
//t    "enum_member_declaration : opt_attributes IDENTIFIER $$59 ASSIGN constant_expression",
 
530
//t    "enum_member_declaration : opt_attributes IDENTIFIER error",
 
531
//t    "enum_member_declaration : attributes_without_members",
 
532
//t    "$$60 :",
 
533
//t    "$$61 :",
 
534
//t    "$$62 :",
 
535
//t    "delegate_declaration : opt_attributes opt_modifiers DELEGATE member_type type_declaration_name OPEN_PARENS $$60 opt_formal_parameter_list CLOSE_PARENS $$61 opt_type_parameter_constraints_clauses $$62 SEMICOLON",
 
536
//t    "opt_nullable :",
 
537
//t    "opt_nullable : INTERR_NULLABLE",
 
538
//t    "namespace_or_type_expr : member_name",
 
539
//t    "namespace_or_type_expr : qualified_alias_member IDENTIFIER opt_type_argument_list",
 
540
//t    "member_name : simple_name_expr",
 
541
//t    "member_name : namespace_or_type_expr DOT IDENTIFIER opt_type_argument_list",
 
542
//t    "simple_name_expr : IDENTIFIER opt_type_argument_list",
 
543
//t    "opt_type_argument_list :",
 
544
//t    "opt_type_argument_list : OP_GENERICS_LT type_arguments OP_GENERICS_GT",
 
545
//t    "opt_type_argument_list : OP_GENERICS_LT error",
 
546
//t    "type_arguments : type",
 
547
//t    "type_arguments : type_arguments COMMA type",
 
548
//t    "$$63 :",
 
549
//t    "type_declaration_name : IDENTIFIER $$63 opt_type_parameter_list",
 
550
//t    "member_declaration_name : method_declaration_name",
 
551
//t    "method_declaration_name : type_declaration_name",
 
552
//t    "method_declaration_name : explicit_interface IDENTIFIER opt_type_parameter_list",
 
553
//t    "indexer_declaration_name : THIS",
 
554
//t    "indexer_declaration_name : explicit_interface THIS",
 
555
//t    "explicit_interface : IDENTIFIER opt_type_argument_list DOT",
 
556
//t    "explicit_interface : qualified_alias_member IDENTIFIER opt_type_argument_list DOT",
 
557
//t    "explicit_interface : explicit_interface IDENTIFIER opt_type_argument_list DOT",
 
558
//t    "opt_type_parameter_list :",
 
559
//t    "opt_type_parameter_list : OP_GENERICS_LT_DECL type_parameters OP_GENERICS_GT",
 
560
//t    "type_parameters : type_parameter",
 
561
//t    "type_parameters : type_parameters COMMA type_parameter",
 
562
//t    "type_parameter : opt_attributes opt_type_parameter_variance IDENTIFIER",
 
563
//t    "type_parameter : error",
 
564
//t    "type_and_void : type_expression_or_array",
 
565
//t    "type_and_void : VOID",
 
566
//t    "member_type : type_and_void",
 
567
//t    "type : type_expression_or_array",
 
568
//t    "type : VOID",
 
569
//t    "simple_type : type_expression",
 
570
//t    "simple_type : VOID",
 
571
//t    "parameter_type : type_expression_or_array",
 
572
//t    "parameter_type : VOID",
 
573
//t    "type_expression_or_array : type_expression",
 
574
//t    "type_expression_or_array : type_expression rank_specifiers",
 
575
//t    "type_expression : namespace_or_type_expr opt_nullable",
 
576
//t    "type_expression : namespace_or_type_expr pointer_stars",
 
577
//t    "type_expression : builtin_types opt_nullable",
 
578
//t    "type_expression : builtin_types pointer_stars",
 
579
//t    "type_expression : VOID pointer_stars",
 
580
//t    "type_list : base_type_name",
 
581
//t    "type_list : type_list COMMA base_type_name",
 
582
//t    "base_type_name : type",
 
583
//t    "builtin_types : OBJECT",
 
584
//t    "builtin_types : STRING",
 
585
//t    "builtin_types : BOOL",
 
586
//t    "builtin_types : DECIMAL",
 
587
//t    "builtin_types : FLOAT",
 
588
//t    "builtin_types : DOUBLE",
 
589
//t    "builtin_types : integral_type",
 
590
//t    "integral_type : SBYTE",
 
591
//t    "integral_type : BYTE",
 
592
//t    "integral_type : SHORT",
 
593
//t    "integral_type : USHORT",
 
594
//t    "integral_type : INT",
 
595
//t    "integral_type : UINT",
 
596
//t    "integral_type : LONG",
 
597
//t    "integral_type : ULONG",
 
598
//t    "integral_type : CHAR",
 
599
//t    "primary_expression : primary_expression_or_type",
 
600
//t    "primary_expression : literal",
 
601
//t    "primary_expression : array_creation_expression",
 
602
//t    "primary_expression : parenthesized_expression",
 
603
//t    "primary_expression : default_value_expression",
 
604
//t    "primary_expression : invocation_expression",
 
605
//t    "primary_expression : element_access",
 
606
//t    "primary_expression : this_access",
 
607
//t    "primary_expression : base_access",
 
608
//t    "primary_expression : post_increment_expression",
 
609
//t    "primary_expression : post_decrement_expression",
 
610
//t    "primary_expression : object_or_delegate_creation_expression",
 
611
//t    "primary_expression : anonymous_type_expression",
 
612
//t    "primary_expression : typeof_expression",
 
613
//t    "primary_expression : sizeof_expression",
 
614
//t    "primary_expression : checked_expression",
 
615
//t    "primary_expression : unchecked_expression",
 
616
//t    "primary_expression : pointer_member_access",
 
617
//t    "primary_expression : anonymous_method_expression",
 
618
//t    "primary_expression : undocumented_expressions",
 
619
//t    "primary_expression_or_type : IDENTIFIER opt_type_argument_list",
 
620
//t    "primary_expression_or_type : IDENTIFIER GENERATE_COMPLETION",
 
621
//t    "primary_expression_or_type : member_access",
 
622
//t    "literal : boolean_literal",
 
623
//t    "literal : LITERAL",
 
624
//t    "literal : NULL",
 
625
//t    "boolean_literal : TRUE",
 
626
//t    "boolean_literal : FALSE",
 
627
//t    "open_parens_any : OPEN_PARENS",
 
628
//t    "open_parens_any : OPEN_PARENS_CAST",
 
629
//t    "close_parens : CLOSE_PARENS",
 
630
//t    "close_parens : COMPLETE_COMPLETION",
 
631
//t    "parenthesized_expression : OPEN_PARENS expression CLOSE_PARENS",
 
632
//t    "parenthesized_expression : OPEN_PARENS expression COMPLETE_COMPLETION",
 
633
//t    "member_access : primary_expression DOT identifier_inside_body opt_type_argument_list",
 
634
//t    "member_access : builtin_types DOT identifier_inside_body opt_type_argument_list",
 
635
//t    "member_access : BASE DOT identifier_inside_body opt_type_argument_list",
 
636
//t    "member_access : qualified_alias_member identifier_inside_body opt_type_argument_list",
 
637
//t    "member_access : primary_expression DOT GENERATE_COMPLETION",
 
638
//t    "member_access : primary_expression DOT IDENTIFIER GENERATE_COMPLETION",
 
639
//t    "member_access : builtin_types DOT GENERATE_COMPLETION",
 
640
//t    "member_access : builtin_types DOT IDENTIFIER GENERATE_COMPLETION",
 
641
//t    "invocation_expression : primary_expression open_parens_any opt_argument_list close_parens",
 
642
//t    "invocation_expression : primary_expression open_parens_any argument_list error",
 
643
//t    "invocation_expression : primary_expression open_parens_any error",
 
644
//t    "opt_object_or_collection_initializer :",
 
645
//t    "opt_object_or_collection_initializer : object_or_collection_initializer",
 
646
//t    "object_or_collection_initializer : OPEN_BRACE opt_member_initializer_list close_brace_or_complete_completion",
 
647
//t    "object_or_collection_initializer : OPEN_BRACE member_initializer_list COMMA CLOSE_BRACE",
 
648
//t    "opt_member_initializer_list :",
 
649
//t    "opt_member_initializer_list : member_initializer_list",
 
650
//t    "member_initializer_list : member_initializer",
 
651
//t    "member_initializer_list : member_initializer_list COMMA member_initializer",
 
652
//t    "member_initializer_list : member_initializer_list error",
 
653
//t    "member_initializer : IDENTIFIER ASSIGN initializer_value",
 
654
//t    "member_initializer : AWAIT ASSIGN initializer_value",
 
655
//t    "member_initializer : GENERATE_COMPLETION",
 
656
//t    "member_initializer : non_assignment_expression opt_COMPLETE_COMPLETION",
 
657
//t    "member_initializer : OPEN_BRACE expression_list CLOSE_BRACE",
 
658
//t    "member_initializer : OPEN_BRACE CLOSE_BRACE",
 
659
//t    "initializer_value : expression",
 
660
//t    "initializer_value : object_or_collection_initializer",
 
661
//t    "opt_argument_list :",
 
662
//t    "opt_argument_list : argument_list",
 
663
//t    "argument_list : argument_or_named_argument",
 
664
//t    "argument_list : argument_list COMMA argument",
 
665
//t    "argument_list : argument_list COMMA named_argument",
 
666
//t    "argument_list : argument_list COMMA error",
 
667
//t    "argument_list : COMMA error",
 
668
//t    "argument : expression",
 
669
//t    "argument : non_simple_argument",
 
670
//t    "argument_or_named_argument : argument",
 
671
//t    "argument_or_named_argument : named_argument",
 
672
//t    "non_simple_argument : REF variable_reference",
 
673
//t    "non_simple_argument : OUT variable_reference",
 
674
//t    "non_simple_argument : ARGLIST OPEN_PARENS argument_list CLOSE_PARENS",
 
675
//t    "non_simple_argument : ARGLIST OPEN_PARENS CLOSE_PARENS",
 
676
//t    "variable_reference : expression",
 
677
//t    "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
 
678
//t    "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments error",
 
679
//t    "element_access : primary_expression OPEN_BRACKET_EXPR error",
 
680
//t    "expression_list : expression_or_error",
 
681
//t    "expression_list : expression_list COMMA expression_or_error",
 
682
//t    "expression_list_arguments : expression_list_argument",
 
683
//t    "expression_list_arguments : expression_list_arguments COMMA expression_list_argument",
 
684
//t    "expression_list_argument : expression",
 
685
//t    "expression_list_argument : named_argument",
 
686
//t    "this_access : THIS",
 
687
//t    "base_access : BASE OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
 
688
//t    "base_access : BASE OPEN_BRACKET error",
 
689
//t    "post_increment_expression : primary_expression OP_INC",
 
690
//t    "post_decrement_expression : primary_expression OP_DEC",
 
691
//t    "object_or_delegate_creation_expression : NEW new_expr_type open_parens_any opt_argument_list CLOSE_PARENS opt_object_or_collection_initializer",
 
692
//t    "object_or_delegate_creation_expression : NEW new_expr_type object_or_collection_initializer",
 
693
//t    "array_creation_expression : NEW new_expr_type OPEN_BRACKET_EXPR expression_list CLOSE_BRACKET opt_rank_specifier opt_array_initializer",
 
694
//t    "array_creation_expression : NEW new_expr_type rank_specifiers opt_array_initializer",
 
695
//t    "array_creation_expression : NEW rank_specifier array_initializer",
 
696
//t    "array_creation_expression : NEW new_expr_type OPEN_BRACKET CLOSE_BRACKET OPEN_BRACKET_EXPR error CLOSE_BRACKET",
 
697
//t    "array_creation_expression : NEW new_expr_type error",
 
698
//t    "$$64 :",
 
699
//t    "new_expr_type : $$64 simple_type",
 
700
//t    "anonymous_type_expression : NEW OPEN_BRACE anonymous_type_parameters_opt_comma CLOSE_BRACE",
 
701
//t    "anonymous_type_parameters_opt_comma : anonymous_type_parameters_opt",
 
702
//t    "anonymous_type_parameters_opt_comma : anonymous_type_parameters COMMA",
 
703
//t    "anonymous_type_parameters_opt :",
 
704
//t    "anonymous_type_parameters_opt : anonymous_type_parameters",
 
705
//t    "anonymous_type_parameters : anonymous_type_parameter",
 
706
//t    "anonymous_type_parameters : anonymous_type_parameters COMMA anonymous_type_parameter",
 
707
//t    "anonymous_type_parameter : identifier_inside_body ASSIGN variable_initializer",
 
708
//t    "anonymous_type_parameter : identifier_inside_body",
 
709
//t    "anonymous_type_parameter : member_access",
 
710
//t    "anonymous_type_parameter : error",
 
711
//t    "opt_rank_specifier :",
 
712
//t    "opt_rank_specifier : rank_specifiers",
 
713
//t    "rank_specifiers : rank_specifier",
 
714
//t    "rank_specifiers : rank_specifier rank_specifiers",
 
715
//t    "rank_specifier : OPEN_BRACKET CLOSE_BRACKET",
 
716
//t    "rank_specifier : OPEN_BRACKET dim_separators CLOSE_BRACKET",
 
717
//t    "dim_separators : COMMA",
 
718
//t    "dim_separators : dim_separators COMMA",
 
719
//t    "opt_array_initializer :",
 
720
//t    "opt_array_initializer : array_initializer",
 
721
//t    "array_initializer : OPEN_BRACE CLOSE_BRACE",
 
722
//t    "array_initializer : OPEN_BRACE variable_initializer_list opt_comma CLOSE_BRACE",
 
723
//t    "variable_initializer_list : variable_initializer",
 
724
//t    "variable_initializer_list : variable_initializer_list COMMA variable_initializer",
 
725
//t    "$$65 :",
 
726
//t    "typeof_expression : TYPEOF $$65 open_parens_any typeof_type_expression CLOSE_PARENS",
 
727
//t    "typeof_type_expression : type_and_void",
 
728
//t    "typeof_type_expression : unbound_type_name",
 
729
//t    "typeof_type_expression : error",
 
730
//t    "unbound_type_name : identifier_inside_body generic_dimension",
 
731
//t    "unbound_type_name : qualified_alias_member identifier_inside_body generic_dimension",
 
732
//t    "unbound_type_name : unbound_type_name DOT identifier_inside_body",
 
733
//t    "unbound_type_name : unbound_type_name DOT identifier_inside_body generic_dimension",
 
734
//t    "unbound_type_name : namespace_or_type_expr DOT identifier_inside_body generic_dimension",
 
735
//t    "generic_dimension : GENERIC_DIMENSION",
 
736
//t    "qualified_alias_member : IDENTIFIER DOUBLE_COLON",
 
737
//t    "sizeof_expression : SIZEOF open_parens_any type CLOSE_PARENS",
 
738
//t    "sizeof_expression : SIZEOF open_parens_any type error",
 
739
//t    "checked_expression : CHECKED open_parens_any expression CLOSE_PARENS",
 
740
//t    "checked_expression : CHECKED error",
 
741
//t    "unchecked_expression : UNCHECKED open_parens_any expression CLOSE_PARENS",
 
742
//t    "unchecked_expression : UNCHECKED error",
 
743
//t    "pointer_member_access : primary_expression OP_PTR IDENTIFIER opt_type_argument_list",
 
744
//t    "$$66 :",
 
745
//t    "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$66 block",
 
746
//t    "$$67 :",
 
747
//t    "anonymous_method_expression : ASYNC DELEGATE opt_anonymous_method_signature $$67 block",
 
748
//t    "opt_anonymous_method_signature :",
 
749
//t    "opt_anonymous_method_signature : anonymous_method_signature",
 
750
//t    "$$68 :",
 
751
//t    "anonymous_method_signature : OPEN_PARENS $$68 opt_formal_parameter_list CLOSE_PARENS",
 
752
//t    "default_value_expression : DEFAULT open_parens_any type CLOSE_PARENS",
 
753
//t    "unary_expression : primary_expression",
 
754
//t    "unary_expression : BANG prefixed_unary_expression",
 
755
//t    "unary_expression : TILDE prefixed_unary_expression",
 
756
//t    "unary_expression : OPEN_PARENS_CAST type CLOSE_PARENS prefixed_unary_expression",
 
757
//t    "unary_expression : AWAIT prefixed_unary_expression",
 
758
//t    "unary_expression : BANG error",
 
759
//t    "unary_expression : TILDE error",
 
760
//t    "unary_expression : OPEN_PARENS_CAST type CLOSE_PARENS error",
 
761
//t    "unary_expression : AWAIT error",
 
762
//t    "prefixed_unary_expression : unary_expression",
 
763
//t    "prefixed_unary_expression : PLUS prefixed_unary_expression",
 
764
//t    "prefixed_unary_expression : MINUS prefixed_unary_expression",
 
765
//t    "prefixed_unary_expression : OP_INC prefixed_unary_expression",
 
766
//t    "prefixed_unary_expression : OP_DEC prefixed_unary_expression",
 
767
//t    "prefixed_unary_expression : STAR prefixed_unary_expression",
 
768
//t    "prefixed_unary_expression : BITWISE_AND prefixed_unary_expression",
 
769
//t    "prefixed_unary_expression : PLUS error",
 
770
//t    "prefixed_unary_expression : MINUS error",
 
771
//t    "prefixed_unary_expression : OP_INC error",
 
772
//t    "prefixed_unary_expression : OP_DEC error",
 
773
//t    "prefixed_unary_expression : STAR error",
 
774
//t    "prefixed_unary_expression : BITWISE_AND error",
 
775
//t    "multiplicative_expression : prefixed_unary_expression",
 
776
//t    "multiplicative_expression : multiplicative_expression STAR prefixed_unary_expression",
 
777
//t    "multiplicative_expression : multiplicative_expression DIV prefixed_unary_expression",
 
778
//t    "multiplicative_expression : multiplicative_expression PERCENT prefixed_unary_expression",
 
779
//t    "multiplicative_expression : multiplicative_expression STAR error",
 
780
//t    "multiplicative_expression : multiplicative_expression DIV error",
 
781
//t    "multiplicative_expression : multiplicative_expression PERCENT error",
 
782
//t    "additive_expression : multiplicative_expression",
 
783
//t    "additive_expression : additive_expression PLUS multiplicative_expression",
 
784
//t    "additive_expression : additive_expression MINUS multiplicative_expression",
 
785
//t    "additive_expression : additive_expression AS type",
 
786
//t    "additive_expression : additive_expression IS type",
 
787
//t    "additive_expression : additive_expression PLUS error",
 
788
//t    "additive_expression : additive_expression MINUS error",
 
789
//t    "additive_expression : additive_expression AS error",
 
790
//t    "additive_expression : additive_expression IS error",
 
791
//t    "shift_expression : additive_expression",
 
792
//t    "shift_expression : shift_expression OP_SHIFT_LEFT additive_expression",
 
793
//t    "shift_expression : shift_expression OP_SHIFT_RIGHT additive_expression",
 
794
//t    "shift_expression : shift_expression OP_SHIFT_LEFT error",
 
795
//t    "shift_expression : shift_expression OP_SHIFT_RIGHT error",
 
796
//t    "relational_expression : shift_expression",
 
797
//t    "relational_expression : relational_expression OP_LT shift_expression",
 
798
//t    "relational_expression : relational_expression OP_GT shift_expression",
 
799
//t    "relational_expression : relational_expression OP_LE shift_expression",
 
800
//t    "relational_expression : relational_expression OP_GE shift_expression",
 
801
//t    "relational_expression : relational_expression OP_LT error",
 
802
//t    "relational_expression : relational_expression OP_GT error",
 
803
//t    "relational_expression : relational_expression OP_LE error",
 
804
//t    "relational_expression : relational_expression OP_GE error",
 
805
//t    "equality_expression : relational_expression",
 
806
//t    "equality_expression : equality_expression OP_EQ relational_expression",
 
807
//t    "equality_expression : equality_expression OP_NE relational_expression",
 
808
//t    "equality_expression : equality_expression OP_EQ error",
 
809
//t    "equality_expression : equality_expression OP_NE error",
 
810
//t    "and_expression : equality_expression",
 
811
//t    "and_expression : and_expression BITWISE_AND equality_expression",
 
812
//t    "and_expression : and_expression BITWISE_AND error",
 
813
//t    "exclusive_or_expression : and_expression",
 
814
//t    "exclusive_or_expression : exclusive_or_expression CARRET and_expression",
 
815
//t    "exclusive_or_expression : exclusive_or_expression CARRET error",
 
816
//t    "inclusive_or_expression : exclusive_or_expression",
 
817
//t    "inclusive_or_expression : inclusive_or_expression BITWISE_OR exclusive_or_expression",
 
818
//t    "inclusive_or_expression : inclusive_or_expression BITWISE_OR error",
 
819
//t    "conditional_and_expression : inclusive_or_expression",
 
820
//t    "conditional_and_expression : conditional_and_expression OP_AND inclusive_or_expression",
 
821
//t    "conditional_and_expression : conditional_and_expression OP_AND error",
 
822
//t    "conditional_or_expression : conditional_and_expression",
 
823
//t    "conditional_or_expression : conditional_or_expression OP_OR conditional_and_expression",
 
824
//t    "conditional_or_expression : conditional_or_expression OP_OR error",
 
825
//t    "null_coalescing_expression : conditional_or_expression",
 
826
//t    "null_coalescing_expression : conditional_or_expression OP_COALESCING null_coalescing_expression",
 
827
//t    "conditional_expression : null_coalescing_expression",
 
828
//t    "conditional_expression : null_coalescing_expression INTERR expression COLON expression",
 
829
//t    "conditional_expression : null_coalescing_expression INTERR expression error",
 
830
//t    "conditional_expression : null_coalescing_expression INTERR expression COLON error",
 
831
//t    "conditional_expression : null_coalescing_expression INTERR expression COLON CLOSE_BRACE",
 
832
//t    "assignment_expression : prefixed_unary_expression ASSIGN expression",
 
833
//t    "assignment_expression : prefixed_unary_expression OP_MULT_ASSIGN expression",
 
834
//t    "assignment_expression : prefixed_unary_expression OP_DIV_ASSIGN expression",
 
835
//t    "assignment_expression : prefixed_unary_expression OP_MOD_ASSIGN expression",
 
836
//t    "assignment_expression : prefixed_unary_expression OP_ADD_ASSIGN expression",
 
837
//t    "assignment_expression : prefixed_unary_expression OP_SUB_ASSIGN expression",
 
838
//t    "assignment_expression : prefixed_unary_expression OP_SHIFT_LEFT_ASSIGN expression",
 
839
//t    "assignment_expression : prefixed_unary_expression OP_SHIFT_RIGHT_ASSIGN expression",
 
840
//t    "assignment_expression : prefixed_unary_expression OP_AND_ASSIGN expression",
 
841
//t    "assignment_expression : prefixed_unary_expression OP_OR_ASSIGN expression",
 
842
//t    "assignment_expression : prefixed_unary_expression OP_XOR_ASSIGN expression",
 
843
//t    "lambda_parameter_list : lambda_parameter",
 
844
//t    "lambda_parameter_list : lambda_parameter_list COMMA lambda_parameter",
 
845
//t    "lambda_parameter : parameter_modifier parameter_type identifier_inside_body",
 
846
//t    "lambda_parameter : parameter_type identifier_inside_body",
 
847
//t    "lambda_parameter : IDENTIFIER",
 
848
//t    "lambda_parameter : AWAIT",
 
849
//t    "opt_lambda_parameter_list :",
 
850
//t    "opt_lambda_parameter_list : lambda_parameter_list",
 
851
//t    "$$69 :",
 
852
//t    "lambda_expression_body : $$69 expression",
 
853
//t    "lambda_expression_body : block",
 
854
//t    "lambda_expression_body : error",
 
855
//t    "expression_or_error : expression",
 
856
//t    "expression_or_error : error",
 
857
//t    "$$70 :",
 
858
//t    "lambda_expression : IDENTIFIER ARROW $$70 lambda_expression_body",
 
859
//t    "$$71 :",
 
860
//t    "lambda_expression : AWAIT ARROW $$71 lambda_expression_body",
 
861
//t    "$$72 :",
 
862
//t    "lambda_expression : ASYNC identifier_inside_body ARROW $$72 lambda_expression_body",
 
863
//t    "$$73 :",
 
864
//t    "$$74 :",
 
865
//t    "lambda_expression : OPEN_PARENS_LAMBDA $$73 opt_lambda_parameter_list CLOSE_PARENS ARROW $$74 lambda_expression_body",
 
866
//t    "$$75 :",
 
867
//t    "$$76 :",
 
868
//t    "lambda_expression : ASYNC OPEN_PARENS_LAMBDA $$75 opt_lambda_parameter_list CLOSE_PARENS ARROW $$76 lambda_expression_body",
 
869
//t    "expression : assignment_expression",
 
870
//t    "expression : non_assignment_expression",
 
871
//t    "non_assignment_expression : conditional_expression",
 
872
//t    "non_assignment_expression : lambda_expression",
 
873
//t    "non_assignment_expression : query_expression",
 
874
//t    "non_assignment_expression : ARGLIST",
 
875
//t    "undocumented_expressions : REFVALUE OPEN_PARENS non_assignment_expression COMMA type CLOSE_PARENS",
 
876
//t    "undocumented_expressions : REFTYPE open_parens_any expression CLOSE_PARENS",
 
877
//t    "undocumented_expressions : MAKEREF open_parens_any expression CLOSE_PARENS",
 
878
//t    "constant_expression : expression",
 
879
//t    "boolean_expression : expression",
 
880
//t    "$$77 :",
 
881
//t    "$$78 :",
 
882
//t    "$$79 :",
 
883
//t    "$$80 :",
 
884
//t    "class_declaration : opt_attributes opt_modifiers opt_partial CLASS $$77 type_declaration_name $$78 opt_class_base opt_type_parameter_constraints_clauses $$79 OPEN_BRACE opt_class_member_declarations CLOSE_BRACE $$80 opt_semicolon",
 
885
//t    "opt_partial :",
 
886
//t    "opt_partial : PARTIAL",
 
887
//t    "opt_modifiers :",
 
888
//t    "opt_modifiers : modifiers",
 
889
//t    "modifiers : modifier",
 
890
//t    "modifiers : modifiers modifier",
 
891
//t    "modifier : NEW",
 
892
//t    "modifier : PUBLIC",
 
893
//t    "modifier : PROTECTED",
 
894
//t    "modifier : INTERNAL",
 
895
//t    "modifier : PRIVATE",
 
896
//t    "modifier : ABSTRACT",
 
897
//t    "modifier : SEALED",
 
898
//t    "modifier : STATIC",
 
899
//t    "modifier : READONLY",
 
900
//t    "modifier : VIRTUAL",
 
901
//t    "modifier : OVERRIDE",
 
902
//t    "modifier : EXTERN",
 
903
//t    "modifier : VOLATILE",
 
904
//t    "modifier : UNSAFE",
 
905
//t    "modifier : ASYNC",
 
906
//t    "opt_class_base :",
 
907
//t    "opt_class_base : COLON type_list",
 
908
//t    "opt_class_base : COLON type_list error",
 
909
//t    "opt_type_parameter_constraints_clauses :",
 
910
//t    "opt_type_parameter_constraints_clauses : type_parameter_constraints_clauses",
 
911
//t    "type_parameter_constraints_clauses : type_parameter_constraints_clause",
 
912
//t    "type_parameter_constraints_clauses : type_parameter_constraints_clauses type_parameter_constraints_clause",
 
913
//t    "type_parameter_constraints_clause : WHERE IDENTIFIER COLON type_parameter_constraints",
 
914
//t    "type_parameter_constraints_clause : WHERE IDENTIFIER error",
 
915
//t    "type_parameter_constraints : type_parameter_constraint",
 
916
//t    "type_parameter_constraints : type_parameter_constraints COMMA type_parameter_constraint",
 
917
//t    "type_parameter_constraint : type",
 
918
//t    "type_parameter_constraint : NEW OPEN_PARENS CLOSE_PARENS",
 
919
//t    "type_parameter_constraint : CLASS",
 
920
//t    "type_parameter_constraint : STRUCT",
 
921
//t    "opt_type_parameter_variance :",
 
922
//t    "opt_type_parameter_variance : type_parameter_variance",
 
923
//t    "type_parameter_variance : OUT",
 
924
//t    "type_parameter_variance : IN",
 
925
//t    "$$81 :",
 
926
//t    "block : OPEN_BRACE $$81 opt_statement_list block_end",
 
927
//t    "block_end : CLOSE_BRACE",
 
928
//t    "block_end : COMPLETE_COMPLETION",
 
929
//t    "$$82 :",
 
930
//t    "block_prepared : OPEN_BRACE $$82 opt_statement_list CLOSE_BRACE",
 
931
//t    "block_prepared : CLOSE_BRACE",
 
932
//t    "$$83 :",
 
933
//t    "block_prepared_strict : OPEN_BRACE $$83 opt_statement_list CLOSE_BRACE",
 
934
//t    "opt_statement_list :",
 
935
//t    "opt_statement_list : statement_list",
 
936
//t    "statement_list : statement",
 
937
//t    "statement_list : statement_list statement",
 
938
//t    "statement : block_variable_declaration",
 
939
//t    "statement : valid_declaration_statement",
 
940
//t    "statement : labeled_statement",
 
941
//t    "statement : IDENTIFIER error",
 
942
//t    "statement : error",
 
943
//t    "interactive_statement_list : interactive_statement",
 
944
//t    "interactive_statement_list : interactive_statement_list interactive_statement",
 
945
//t    "interactive_statement : block_variable_declaration",
 
946
//t    "interactive_statement : interactive_valid_declaration_statement",
 
947
//t    "interactive_statement : labeled_statement",
 
948
//t    "valid_declaration_statement : block",
 
949
//t    "valid_declaration_statement : empty_statement",
 
950
//t    "valid_declaration_statement : expression_statement",
 
951
//t    "valid_declaration_statement : selection_statement",
 
952
//t    "valid_declaration_statement : iteration_statement",
 
953
//t    "valid_declaration_statement : jump_statement",
 
954
//t    "valid_declaration_statement : try_statement",
 
955
//t    "valid_declaration_statement : checked_statement",
 
956
//t    "valid_declaration_statement : unchecked_statement",
 
957
//t    "valid_declaration_statement : lock_statement",
 
958
//t    "valid_declaration_statement : using_statement",
 
959
//t    "valid_declaration_statement : unsafe_statement",
 
960
//t    "valid_declaration_statement : fixed_statement",
 
961
//t    "interactive_valid_declaration_statement : block",
 
962
//t    "interactive_valid_declaration_statement : empty_statement",
 
963
//t    "interactive_valid_declaration_statement : interactive_expression_statement",
 
964
//t    "interactive_valid_declaration_statement : selection_statement",
 
965
//t    "interactive_valid_declaration_statement : iteration_statement",
 
966
//t    "interactive_valid_declaration_statement : jump_statement",
 
967
//t    "interactive_valid_declaration_statement : try_statement",
 
968
//t    "interactive_valid_declaration_statement : checked_statement",
 
969
//t    "interactive_valid_declaration_statement : unchecked_statement",
 
970
//t    "interactive_valid_declaration_statement : lock_statement",
 
971
//t    "interactive_valid_declaration_statement : using_statement",
 
972
//t    "interactive_valid_declaration_statement : unsafe_statement",
 
973
//t    "interactive_valid_declaration_statement : fixed_statement",
 
974
//t    "embedded_statement : valid_declaration_statement",
 
975
//t    "embedded_statement : block_variable_declaration",
 
976
//t    "embedded_statement : labeled_statement",
 
977
//t    "embedded_statement : error",
 
978
//t    "empty_statement : SEMICOLON",
 
979
//t    "$$84 :",
 
980
//t    "labeled_statement : identifier_inside_body COLON $$84 statement",
 
981
//t    "variable_type : variable_type_simple",
 
982
//t    "variable_type : variable_type_simple rank_specifiers",
 
983
//t    "variable_type_simple : primary_expression_or_type opt_nullable",
 
984
//t    "variable_type_simple : primary_expression_or_type pointer_stars",
 
985
//t    "variable_type_simple : builtin_types opt_nullable",
 
986
//t    "variable_type_simple : builtin_types pointer_stars",
 
987
//t    "variable_type_simple : VOID pointer_stars",
 
988
//t    "variable_type_simple : VOID",
 
989
//t    "pointer_stars : pointer_star",
 
990
//t    "pointer_stars : pointer_star pointer_stars",
 
991
//t    "pointer_star : STAR",
 
992
//t    "identifier_inside_body : IDENTIFIER",
 
993
//t    "identifier_inside_body : AWAIT",
 
994
//t    "$$85 :",
 
995
//t    "block_variable_declaration : variable_type identifier_inside_body $$85 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
 
996
//t    "$$86 :",
 
997
//t    "block_variable_declaration : CONST variable_type identifier_inside_body $$86 const_variable_initializer opt_const_declarators SEMICOLON",
 
998
//t    "semicolon_or_handle_error_close_brace : SEMICOLON",
 
999
//t    "semicolon_or_handle_error_close_brace : CLOSE_BRACE",
 
1000
//t    "opt_local_variable_initializer :",
 
1001
//t    "opt_local_variable_initializer : ASSIGN block_variable_initializer",
 
1002
//t    "opt_local_variable_initializer : error",
 
1003
//t    "opt_variable_declarators :",
 
1004
//t    "opt_variable_declarators : variable_declarators",
 
1005
//t    "opt_using_or_fixed_variable_declarators :",
 
1006
//t    "opt_using_or_fixed_variable_declarators : variable_declarators",
 
1007
//t    "variable_declarators : variable_declarator",
 
1008
//t    "variable_declarators : variable_declarators variable_declarator",
 
1009
//t    "variable_declarator : COMMA identifier_inside_body",
 
1010
//t    "variable_declarator : COMMA identifier_inside_body ASSIGN block_variable_initializer",
 
1011
//t    "const_variable_initializer :",
 
1012
//t    "const_variable_initializer : ASSIGN constant_initializer_expr",
 
1013
//t    "opt_const_declarators :",
 
1014
//t    "opt_const_declarators : const_declarators",
 
1015
//t    "const_declarators : const_declarator",
 
1016
//t    "const_declarators : const_declarators const_declarator",
 
1017
//t    "const_declarator : COMMA identifier_inside_body ASSIGN constant_initializer_expr",
 
1018
//t    "block_variable_initializer : variable_initializer",
 
1019
//t    "block_variable_initializer : STACKALLOC simple_type OPEN_BRACKET_EXPR expression CLOSE_BRACKET",
 
1020
//t    "block_variable_initializer : STACKALLOC simple_type",
 
1021
//t    "expression_statement : statement_expression SEMICOLON",
 
1022
//t    "expression_statement : statement_expression COMPLETE_COMPLETION",
 
1023
//t    "expression_statement : statement_expression CLOSE_BRACE",
 
1024
//t    "interactive_expression_statement : interactive_statement_expression SEMICOLON",
 
1025
//t    "interactive_expression_statement : interactive_statement_expression COMPLETE_COMPLETION",
 
1026
//t    "statement_expression : expression",
 
1027
//t    "interactive_statement_expression : expression",
 
1028
//t    "interactive_statement_expression : error",
 
1029
//t    "selection_statement : if_statement",
 
1030
//t    "selection_statement : switch_statement",
 
1031
//t    "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
 
1032
//t    "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement ELSE embedded_statement",
 
1033
//t    "if_statement : IF open_parens_any boolean_expression error",
 
1034
//t    "$$87 :",
 
1035
//t    "switch_statement : SWITCH open_parens_any expression CLOSE_PARENS OPEN_BRACE $$87 opt_switch_sections CLOSE_BRACE",
 
1036
//t    "switch_statement : SWITCH open_parens_any expression error",
 
1037
//t    "opt_switch_sections :",
 
1038
//t    "opt_switch_sections : switch_sections",
 
1039
//t    "switch_sections : switch_section",
 
1040
//t    "switch_sections : switch_sections switch_section",
 
1041
//t    "switch_sections : error",
 
1042
//t    "switch_section : switch_labels statement_list",
 
1043
//t    "switch_labels : switch_label",
 
1044
//t    "switch_labels : switch_labels switch_label",
 
1045
//t    "switch_label : CASE constant_expression COLON",
 
1046
//t    "switch_label : CASE constant_expression error",
 
1047
//t    "switch_label : DEFAULT_COLON",
 
1048
//t    "iteration_statement : while_statement",
 
1049
//t    "iteration_statement : do_statement",
 
1050
//t    "iteration_statement : for_statement",
 
1051
//t    "iteration_statement : foreach_statement",
 
1052
//t    "while_statement : WHILE open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
 
1053
//t    "while_statement : WHILE open_parens_any boolean_expression error",
 
1054
//t    "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression CLOSE_PARENS SEMICOLON",
 
1055
//t    "do_statement : DO embedded_statement error",
 
1056
//t    "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression error",
 
1057
//t    "$$88 :",
 
1058
//t    "for_statement : FOR open_parens_any $$88 for_statement_cont",
 
1059
//t    "$$89 :",
 
1060
//t    "for_statement_cont : opt_for_initializer SEMICOLON $$89 for_statement_condition",
 
1061
//t    "for_statement_cont : opt_for_initializer CLOSE_PARENS",
 
1062
//t    "$$90 :",
 
1063
//t    "for_statement_condition : opt_for_condition SEMICOLON $$90 for_statement_end",
 
1064
//t    "for_statement_condition : boolean_expression CLOSE_PARENS",
 
1065
//t    "for_statement_end : opt_for_iterator CLOSE_PARENS embedded_statement",
 
1066
//t    "for_statement_end : error",
 
1067
//t    "opt_for_initializer :",
 
1068
//t    "opt_for_initializer : for_initializer",
 
1069
//t    "$$91 :",
 
1070
//t    "for_initializer : variable_type identifier_inside_body $$91 opt_local_variable_initializer opt_variable_declarators",
 
1071
//t    "for_initializer : statement_expression_list",
 
1072
//t    "opt_for_condition :",
 
1073
//t    "opt_for_condition : boolean_expression",
 
1074
//t    "opt_for_iterator :",
 
1075
//t    "opt_for_iterator : for_iterator",
 
1076
//t    "for_iterator : statement_expression_list",
 
1077
//t    "statement_expression_list : statement_expression",
 
1078
//t    "statement_expression_list : statement_expression_list COMMA statement_expression",
 
1079
//t    "foreach_statement : FOREACH open_parens_any type error",
 
1080
//t    "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
 
1081
//t    "$$92 :",
 
1082
//t    "foreach_statement : FOREACH open_parens_any type identifier_inside_body IN expression CLOSE_PARENS $$92 embedded_statement",
 
1083
//t    "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
 
1084
//t    "foreach_statement : FOREACH open_parens_any type error",
 
1085
//t    "jump_statement : break_statement",
 
1086
//t    "jump_statement : continue_statement",
 
1087
//t    "jump_statement : goto_statement",
 
1088
//t    "jump_statement : return_statement",
 
1089
//t    "jump_statement : throw_statement",
 
1090
//t    "jump_statement : yield_statement",
 
1091
//t    "break_statement : BREAK SEMICOLON",
 
1092
//t    "continue_statement : CONTINUE SEMICOLON",
 
1093
//t    "continue_statement : CONTINUE error",
 
1094
//t    "goto_statement : GOTO identifier_inside_body SEMICOLON",
 
1095
//t    "goto_statement : GOTO CASE constant_expression SEMICOLON",
 
1096
//t    "goto_statement : GOTO DEFAULT SEMICOLON",
 
1097
//t    "return_statement : RETURN opt_expression SEMICOLON",
 
1098
//t    "return_statement : RETURN expression error",
 
1099
//t    "return_statement : RETURN error",
 
1100
//t    "throw_statement : THROW opt_expression SEMICOLON",
 
1101
//t    "throw_statement : THROW error",
 
1102
//t    "yield_statement : identifier_inside_body RETURN opt_expression SEMICOLON",
 
1103
//t    "yield_statement : identifier_inside_body RETURN expression error",
 
1104
//t    "yield_statement : identifier_inside_body BREAK SEMICOLON",
 
1105
//t    "opt_expression :",
 
1106
//t    "opt_expression : expression",
 
1107
//t    "try_statement : TRY block catch_clauses",
 
1108
//t    "try_statement : TRY block FINALLY block",
 
1109
//t    "try_statement : TRY block catch_clauses FINALLY block",
 
1110
//t    "try_statement : TRY block error",
 
1111
//t    "catch_clauses : catch_clause",
 
1112
//t    "catch_clauses : catch_clauses catch_clause",
 
1113
//t    "opt_identifier :",
 
1114
//t    "opt_identifier : identifier_inside_body",
 
1115
//t    "catch_clause : CATCH block",
 
1116
//t    "$$93 :",
 
1117
//t    "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS $$93 block_prepared_strict",
 
1118
//t    "catch_clause : CATCH open_parens_any error",
 
1119
//t    "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS error",
 
1120
//t    "checked_statement : CHECKED block",
 
1121
//t    "unchecked_statement : UNCHECKED block",
 
1122
//t    "$$94 :",
 
1123
//t    "unsafe_statement : UNSAFE $$94 block",
 
1124
//t    "lock_statement : LOCK open_parens_any expression CLOSE_PARENS embedded_statement",
 
1125
//t    "lock_statement : LOCK open_parens_any expression error",
 
1126
//t    "$$95 :",
 
1127
//t    "$$96 :",
 
1128
//t    "fixed_statement : FIXED open_parens_any variable_type identifier_inside_body $$95 using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators CLOSE_PARENS $$96 embedded_statement",
 
1129
//t    "$$97 :",
 
1130
//t    "$$98 :",
 
1131
//t    "using_statement : USING open_parens_any variable_type identifier_inside_body $$97 using_initialization CLOSE_PARENS $$98 embedded_statement",
 
1132
//t    "using_statement : USING open_parens_any expression CLOSE_PARENS embedded_statement",
 
1133
//t    "using_statement : USING open_parens_any expression error",
 
1134
//t    "using_initialization : using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators",
 
1135
//t    "using_initialization : error",
 
1136
//t    "using_or_fixed_variable_initializer :",
 
1137
//t    "using_or_fixed_variable_initializer : ASSIGN variable_initializer",
 
1138
//t    "query_expression : first_from_clause query_body",
 
1139
//t    "query_expression : nested_from_clause query_body",
 
1140
//t    "query_expression : first_from_clause COMPLETE_COMPLETION",
 
1141
//t    "query_expression : nested_from_clause COMPLETE_COMPLETION",
 
1142
//t    "first_from_clause : FROM_FIRST identifier_inside_body IN expression",
 
1143
//t    "first_from_clause : FROM_FIRST type identifier_inside_body IN expression",
 
1144
//t    "nested_from_clause : FROM identifier_inside_body IN expression",
 
1145
//t    "nested_from_clause : FROM type identifier_inside_body IN expression",
 
1146
//t    "$$99 :",
 
1147
//t    "from_clause : FROM identifier_inside_body IN $$99 expression_or_error",
 
1148
//t    "$$100 :",
 
1149
//t    "from_clause : FROM type identifier_inside_body IN $$100 expression_or_error",
 
1150
//t    "query_body : query_body_clauses select_or_group_clause opt_query_continuation",
 
1151
//t    "query_body : select_or_group_clause opt_query_continuation",
 
1152
//t    "query_body : query_body_clauses COMPLETE_COMPLETION",
 
1153
//t    "query_body : query_body_clauses error",
 
1154
//t    "query_body : error",
 
1155
//t    "$$101 :",
 
1156
//t    "select_or_group_clause : SELECT $$101 expression_or_error",
 
1157
//t    "$$102 :",
 
1158
//t    "$$103 :",
 
1159
//t    "select_or_group_clause : GROUP $$102 expression_or_error $$103 by_expression",
 
1160
//t    "by_expression : BY expression_or_error",
 
1161
//t    "by_expression : error",
 
1162
//t    "query_body_clauses : query_body_clause",
 
1163
//t    "query_body_clauses : query_body_clauses query_body_clause",
 
1164
//t    "query_body_clause : from_clause",
 
1165
//t    "query_body_clause : let_clause",
 
1166
//t    "query_body_clause : where_clause",
 
1167
//t    "query_body_clause : join_clause",
 
1168
//t    "query_body_clause : orderby_clause",
 
1169
//t    "$$104 :",
 
1170
//t    "let_clause : LET identifier_inside_body ASSIGN $$104 expression_or_error",
 
1171
//t    "$$105 :",
 
1172
//t    "where_clause : WHERE $$105 expression_or_error",
 
1173
//t    "$$106 :",
 
1174
//t    "$$107 :",
 
1175
//t    "$$108 :",
 
1176
//t    "join_clause : JOIN identifier_inside_body IN $$106 expression_or_error ON $$107 expression_or_error EQUALS $$108 expression_or_error opt_join_into",
 
1177
//t    "$$109 :",
 
1178
//t    "$$110 :",
 
1179
//t    "$$111 :",
 
1180
//t    "join_clause : JOIN type identifier_inside_body IN $$109 expression_or_error ON $$110 expression_or_error EQUALS $$111 expression_or_error opt_join_into",
 
1181
//t    "opt_join_into :",
 
1182
//t    "opt_join_into : INTO identifier_inside_body",
 
1183
//t    "$$112 :",
 
1184
//t    "orderby_clause : ORDERBY $$112 orderings",
 
1185
//t    "orderings : order_by",
 
1186
//t    "$$113 :",
 
1187
//t    "orderings : order_by COMMA $$113 orderings_then_by",
 
1188
//t    "orderings_then_by : then_by",
 
1189
//t    "$$114 :",
 
1190
//t    "orderings_then_by : orderings_then_by COMMA $$114 then_by",
 
1191
//t    "order_by : expression",
 
1192
//t    "order_by : expression ASCENDING",
 
1193
//t    "order_by : expression DESCENDING",
 
1194
//t    "then_by : expression",
 
1195
//t    "then_by : expression ASCENDING",
 
1196
//t    "then_by : expression DESCENDING",
 
1197
//t    "opt_query_continuation :",
 
1198
//t    "$$115 :",
 
1199
//t    "opt_query_continuation : INTO identifier_inside_body $$115 query_body",
 
1200
//t    "interactive_parsing : EVAL_STATEMENT_PARSER EOF",
 
1201
//t    "interactive_parsing : EVAL_USING_DECLARATIONS_UNIT_PARSER using_directives opt_COMPLETE_COMPLETION",
 
1202
//t    "$$116 :",
 
1203
//t    "interactive_parsing : EVAL_STATEMENT_PARSER $$116 interactive_statement_list opt_COMPLETE_COMPLETION",
 
1204
//t    "interactive_parsing : EVAL_COMPILATION_UNIT_PARSER interactive_compilation_unit",
 
1205
//t    "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives",
 
1206
//t    "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations",
 
1207
//t    "opt_COMPLETE_COMPLETION :",
 
1208
//t    "opt_COMPLETE_COMPLETION : COMPLETE_COMPLETION",
 
1209
//t    "close_brace_or_complete_completion : CLOSE_BRACE",
 
1210
//t    "close_brace_or_complete_completion : COMPLETE_COMPLETION",
 
1211
//t    "documentation_parsing : DOC_SEE doc_cref",
 
1212
//t    "doc_cref : doc_type_declaration_name opt_doc_method_sig",
 
1213
//t    "doc_cref : builtin_types opt_doc_method_sig",
 
1214
//t    "doc_cref : builtin_types DOT IDENTIFIER opt_doc_method_sig",
 
1215
//t    "doc_cref : doc_type_declaration_name DOT THIS",
 
1216
//t    "$$117 :",
 
1217
//t    "doc_cref : doc_type_declaration_name DOT THIS OPEN_BRACKET $$117 opt_doc_parameters CLOSE_BRACKET",
 
1218
//t    "doc_cref : EXPLICIT OPERATOR type opt_doc_method_sig",
 
1219
//t    "doc_cref : IMPLICIT OPERATOR type opt_doc_method_sig",
 
1220
//t    "doc_cref : OPERATOR overloadable_operator opt_doc_method_sig",
 
1221
//t    "doc_type_declaration_name : type_declaration_name",
 
1222
//t    "doc_type_declaration_name : doc_type_declaration_name DOT type_declaration_name",
 
1223
//t    "opt_doc_method_sig :",
 
1224
//t    "$$118 :",
 
1225
//t    "opt_doc_method_sig : OPEN_PARENS $$118 opt_doc_parameters CLOSE_PARENS",
 
1226
//t    "opt_doc_parameters :",
 
1227
//t    "opt_doc_parameters : doc_parameters",
 
1228
//t    "doc_parameters : doc_parameter",
 
1229
//t    "doc_parameters : doc_parameters COMMA doc_parameter",
 
1230
//t    "doc_parameter : opt_parameter_modifier parameter_type",
 
1231
//t  };
 
1232
//t public static string getRule (int index) {
 
1233
//t    return yyRule [index];
 
1234
//t }
 
1235
//t}
 
1236
  protected static readonly string [] yyNames = {    
 
1237
    "end-of-file",null,null,null,null,null,null,null,null,null,null,null,
 
1238
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1239
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1240
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1241
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1242
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1243
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1244
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1245
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1246
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1247
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1248
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1249
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1250
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1251
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1252
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1253
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1254
    null,null,null,null,null,null,null,null,null,null,null,null,null,null,
 
1255
    null,null,null,null,null,null,null,"EOF","NONE","ERROR",
 
1256
    "FIRST_KEYWORD","ABSTRACT","AS","ADD","BASE","BOOL","BREAK","BYTE",
 
1257
    "CASE","CATCH","CHAR","CHECKED","CLASS","CONST","CONTINUE","DECIMAL",
 
1258
    "DEFAULT","DELEGATE","DO","DOUBLE","ELSE","ENUM","EVENT","EXPLICIT",
 
1259
    "EXTERN","FALSE","FINALLY","FIXED","FLOAT","FOR","FOREACH","GOTO",
 
1260
    "IF","IMPLICIT","IN","INT","INTERFACE","INTERNAL","IS","LOCK","LONG",
 
1261
    "NAMESPACE","NEW","NULL","OBJECT","OPERATOR","OUT","OVERRIDE",
 
1262
    "PARAMS","PRIVATE","PROTECTED","PUBLIC","READONLY","REF","RETURN",
 
1263
    "REMOVE","SBYTE","SEALED","SHORT","SIZEOF","STACKALLOC","STATIC",
 
1264
    "STRING","STRUCT","SWITCH","THIS","THROW","TRUE","TRY","TYPEOF",
 
1265
    "UINT","ULONG","UNCHECKED","UNSAFE","USHORT","USING","VIRTUAL","VOID",
 
1266
    "VOLATILE","WHERE","WHILE","ARGLIST","PARTIAL","ARROW","FROM",
 
1267
    "FROM_FIRST","JOIN","ON","EQUALS","SELECT","GROUP","BY","LET",
 
1268
    "ORDERBY","ASCENDING","DESCENDING","INTO","INTERR_NULLABLE",
 
1269
    "EXTERN_ALIAS","REFVALUE","REFTYPE","MAKEREF","ASYNC","AWAIT","GET",
 
1270
    "SET","LAST_KEYWORD","OPEN_BRACE","CLOSE_BRACE","OPEN_BRACKET",
 
1271
    "CLOSE_BRACKET","OPEN_PARENS","CLOSE_PARENS","DOT","COMMA","COLON",
 
1272
    "SEMICOLON","TILDE","PLUS","MINUS","BANG","ASSIGN","OP_LT","OP_GT",
 
1273
    "BITWISE_AND","BITWISE_OR","STAR","PERCENT","DIV","CARRET","INTERR",
 
1274
    "DOUBLE_COLON","OP_INC","OP_DEC","OP_SHIFT_LEFT","OP_SHIFT_RIGHT",
 
1275
    "OP_LE","OP_GE","OP_EQ","OP_NE","OP_AND","OP_OR","OP_MULT_ASSIGN",
 
1276
    "OP_DIV_ASSIGN","OP_MOD_ASSIGN","OP_ADD_ASSIGN","OP_SUB_ASSIGN",
 
1277
    "OP_SHIFT_LEFT_ASSIGN","OP_SHIFT_RIGHT_ASSIGN","OP_AND_ASSIGN",
 
1278
    "OP_XOR_ASSIGN","OP_OR_ASSIGN","OP_PTR","OP_COALESCING",
 
1279
    "OP_GENERICS_LT","OP_GENERICS_LT_DECL","OP_GENERICS_GT","LITERAL",
 
1280
    "IDENTIFIER","OPEN_PARENS_LAMBDA","OPEN_PARENS_CAST",
 
1281
    "GENERIC_DIMENSION","DEFAULT_COLON","OPEN_BRACKET_EXPR",
 
1282
    "EVAL_STATEMENT_PARSER","EVAL_COMPILATION_UNIT_PARSER",
 
1283
    "EVAL_USING_DECLARATIONS_UNIT_PARSER","DOC_SEE","GENERATE_COMPLETION",
 
1284
    "COMPLETE_COMPLETION","UMINUS",
 
1285
  };
 
1286
 
 
1287
  /** index-checked interface to yyNames[].
 
1288
      @param token single character or %token value.
 
1289
      @return token name or [illegal] or [unknown].
 
1290
    */
 
1291
//t  public static string yyname (int token) {
 
1292
//t    if ((token < 0) || (token > yyNames.Length)) return "[illegal]";
 
1293
//t    string name;
 
1294
//t    if ((name = yyNames[token]) != null) return name;
 
1295
//t    return "[unknown]";
 
1296
//t  }
 
1297
 
 
1298
#pragma warning disable 414
 
1299
  int yyExpectingState;
 
1300
#pragma warning restore 414
 
1301
  /** computes list of expected tokens on error by tracing the tables.
 
1302
      @param state for which to compute the list.
 
1303
      @return list of token names.
 
1304
    */
 
1305
  protected int [] yyExpectingTokens (int state){
 
1306
    int token, n, len = 0;
 
1307
    bool[] ok = new bool[yyNames.Length];
 
1308
    if ((n = yySindex[state]) != 0)
 
1309
      for (token = n < 0 ? -n : 0;
 
1310
           (token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
 
1311
        if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
 
1312
          ++ len;
 
1313
          ok[token] = true;
 
1314
        }
 
1315
    if ((n = yyRindex[state]) != 0)
 
1316
      for (token = n < 0 ? -n : 0;
 
1317
           (token < yyNames.Length) && (n+token < yyTable.Length); ++ token)
 
1318
        if (yyCheck[n+token] == token && !ok[token] && yyNames[token] != null) {
 
1319
          ++ len;
 
1320
          ok[token] = true;
 
1321
        }
 
1322
    int [] result = new int [len];
 
1323
    for (n = token = 0; n < len;  ++ token)
 
1324
      if (ok[token]) result[n++] = token;
 
1325
    return result;
 
1326
  }
 
1327
  protected string[] yyExpecting (int state) {
 
1328
    int [] tokens = yyExpectingTokens (state);
 
1329
    string [] result = new string[tokens.Length];
 
1330
    for (int n = 0; n < tokens.Length;  n++)
 
1331
      result[n++] = yyNames[tokens [n]];
 
1332
    return result;
 
1333
  }
 
1334
 
 
1335
  /** the generated parser, with debugging messages.
 
1336
      Maintains a state and a value stack, currently with fixed maximum size.
 
1337
      @param yyLex scanner.
 
1338
      @param yydebug debug message writer implementing yyDebug, or null.
 
1339
      @return result of the last reduction, if any.
 
1340
      @throws yyException on irrecoverable parse error.
 
1341
    */
 
1342
  internal Object yyparse (yyParser.yyInput yyLex, Object yyd)
 
1343
                                 {
 
1344
//t    this.debug = (yydebug.yyDebug)yyd;
 
1345
    return yyparse(yyLex);
 
1346
  }
 
1347
 
 
1348
  /** initial size and increment of the state/value stack [default 256].
 
1349
      This is not final so that it can be overwritten outside of invocations
 
1350
      of yyparse().
 
1351
    */
 
1352
  protected int yyMax;
 
1353
 
 
1354
  /** executed at the beginning of a reduce action.
 
1355
      Used as $$ = yyDefault($1), prior to the user-specified action, if any.
 
1356
      Can be overwritten to provide deep copy, etc.
 
1357
      @param first value for $1, or null.
 
1358
      @return first.
 
1359
    */
 
1360
  protected Object yyDefault (Object first) {
 
1361
    return first;
 
1362
  }
 
1363
 
 
1364
        static int[] global_yyStates;
 
1365
        static object[] global_yyVals;
 
1366
#pragma warning disable 649
 
1367
        protected bool use_global_stacks;
 
1368
#pragma warning restore 649
 
1369
        object[] yyVals;                                        // value stack
 
1370
        object yyVal;                                           // value stack ptr
 
1371
        int yyToken;                                            // current input
 
1372
        int yyTop;
 
1373
 
 
1374
  /** the generated parser.
 
1375
      Maintains a state and a value stack, currently with fixed maximum size.
 
1376
      @param yyLex scanner.
 
1377
      @return result of the last reduction, if any.
 
1378
      @throws yyException on irrecoverable parse error.
 
1379
    */
 
1380
  internal Object yyparse (yyParser.yyInput yyLex)
 
1381
  {
 
1382
    if (yyMax <= 0) yyMax = 256;                // initial size
 
1383
    int yyState = 0;                   // state stack ptr
 
1384
    int [] yyStates;                    // state stack 
 
1385
    yyVal = null;
 
1386
    yyToken = -1;
 
1387
    int yyErrorFlag = 0;                                // #tks to shift
 
1388
        if (use_global_stacks && global_yyStates != null) {
 
1389
                yyVals = global_yyVals;
 
1390
                yyStates = global_yyStates;
 
1391
   } else {
 
1392
                yyVals = new object [yyMax];
 
1393
                yyStates = new int [yyMax];
 
1394
                if (use_global_stacks) {
 
1395
                        global_yyVals = yyVals;
 
1396
                        global_yyStates = yyStates;
 
1397
                }
 
1398
        }
 
1399
 
 
1400
    /*yyLoop:*/ for (yyTop = 0;; ++ yyTop) {
 
1401
      if (yyTop >= yyStates.Length) {                   // dynamically increase
 
1402
        global::System.Array.Resize (ref yyStates, yyStates.Length+yyMax);
 
1403
        global::System.Array.Resize (ref yyVals, yyVals.Length+yyMax);
 
1404
      }
 
1405
      yyStates[yyTop] = yyState;
 
1406
      yyVals[yyTop] = yyVal;
 
1407
//t      if (debug != null) debug.push(yyState, yyVal);
 
1408
 
 
1409
      /*yyDiscarded:*/ while (true) {   // discarding a token does not change stack
 
1410
        int yyN;
 
1411
        if ((yyN = yyDefRed[yyState]) == 0) {   // else [default] reduce (yyN)
 
1412
          if (yyToken < 0) {
 
1413
            yyToken = yyLex.advance() ? yyLex.token() : 0;
 
1414
//t            if (debug != null)
 
1415
//t              debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());
 
1416
          }
 
1417
          if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0)
 
1418
              && (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) {
 
1419
//t            if (debug != null)
 
1420
//t              debug.shift(yyState, yyTable[yyN], yyErrorFlag-1);
 
1421
            yyState = yyTable[yyN];             // shift to yyN
 
1422
            yyVal = yyLex.value();
 
1423
            yyToken = -1;
 
1424
            if (yyErrorFlag > 0) -- yyErrorFlag;
 
1425
            goto continue_yyLoop;
 
1426
          }
 
1427
          if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
 
1428
              && yyN < yyTable.Length && yyCheck[yyN] == yyToken)
 
1429
            yyN = yyTable[yyN];                 // reduce (yyN)
 
1430
          else
 
1431
            switch (yyErrorFlag) {
 
1432
  
 
1433
            case 0:
 
1434
              yyExpectingState = yyState;
 
1435
              // yyerror(String.Format ("syntax error, got token `{0}'", yyname (yyToken)), yyExpecting(yyState));
 
1436
//t              if (debug != null) debug.error("syntax error");
 
1437
              if (yyToken == 0 /*eof*/ || yyToken == eof_token) throw new yyParser.yyUnexpectedEof ();
 
1438
              goto case 1;
 
1439
            case 1: case 2:
 
1440
              yyErrorFlag = 3;
 
1441
              do {
 
1442
                if ((yyN = yySindex[yyStates[yyTop]]) != 0
 
1443
                    && (yyN += Token.yyErrorCode) >= 0 && yyN < yyTable.Length
 
1444
                    && yyCheck[yyN] == Token.yyErrorCode) {
 
1445
//t                  if (debug != null)
 
1446
//t                    debug.shift(yyStates[yyTop], yyTable[yyN], 3);
 
1447
                  yyState = yyTable[yyN];
 
1448
                  yyVal = yyLex.value();
 
1449
                  goto continue_yyLoop;
 
1450
                }
 
1451
//t                if (debug != null) debug.pop(yyStates[yyTop]);
 
1452
              } while (-- yyTop >= 0);
 
1453
//t              if (debug != null) debug.reject();
 
1454
              throw new yyParser.yyException("irrecoverable syntax error");
 
1455
  
 
1456
            case 3:
 
1457
              if (yyToken == 0) {
 
1458
//t                if (debug != null) debug.reject();
 
1459
                throw new yyParser.yyException("irrecoverable syntax error at end-of-file");
 
1460
              }
 
1461
//t              if (debug != null)
 
1462
//t                debug.discard(yyState, yyToken, yyname(yyToken),
 
1463
//t                                                     yyLex.value());
 
1464
              yyToken = -1;
 
1465
              goto continue_yyDiscarded;                // leave stack alone
 
1466
            }
 
1467
        }
 
1468
        int yyV = yyTop + 1-yyLen[yyN];
 
1469
//t        if (debug != null)
 
1470
//t          debug.reduce(yyState, yyStates[yyV-1], yyN, YYRules.getRule (yyN), yyLen[yyN]);
 
1471
        yyVal = yyV > yyTop ? null : yyVals[yyV]; // yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
 
1472
        switch (yyN) {
 
1473
case 1:
 
1474
#line 386 "cs-parser.jay"
 
1475
  {
 
1476
                Lexer.check_incorrect_doc_comment ();
 
1477
          }
 
1478
  break;
 
1479
case 2:
 
1480
#line 387 "cs-parser.jay"
 
1481
  { Lexer.CompleteOnEOF = false; }
 
1482
  break;
 
1483
case 6:
 
1484
  case_6();
 
1485
  break;
 
1486
case 7:
 
1487
#line 406 "cs-parser.jay"
 
1488
  {
 
1489
                module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace);
 
1490
          }
 
1491
  break;
 
1492
case 8:
 
1493
  case_8();
 
1494
  break;
 
1495
case 13:
 
1496
  case_13();
 
1497
  break;
 
1498
case 14:
 
1499
#line 451 "cs-parser.jay"
 
1500
  {
 
1501
                Error_SyntaxError (yyToken);
 
1502
          }
 
1503
  break;
 
1504
case 17:
 
1505
  case_17();
 
1506
  break;
 
1507
case 18:
 
1508
  case_18();
 
1509
  break;
 
1510
case 19:
 
1511
  case_19();
 
1512
  break;
 
1513
case 20:
 
1514
  case_20();
 
1515
  break;
 
1516
case 21:
 
1517
  case_21();
 
1518
  break;
 
1519
case 22:
 
1520
  case_22();
 
1521
  break;
 
1522
case 23:
 
1523
  case_23();
 
1524
  break;
 
1525
case 24:
 
1526
  case_24();
 
1527
  break;
 
1528
case 27:
 
1529
  case_27();
 
1530
  break;
 
1531
case 28:
 
1532
  case_28();
 
1533
  break;
 
1534
case 29:
 
1535
  case_29();
 
1536
  break;
 
1537
case 30:
 
1538
  case_30();
 
1539
  break;
 
1540
case 43:
 
1541
  case_43();
 
1542
  break;
 
1543
case 44:
 
1544
#line 636 "cs-parser.jay"
 
1545
  {
 
1546
                current_namespace.DeclarationFound = true;
 
1547
          }
 
1548
  break;
 
1549
case 45:
 
1550
  case_45();
 
1551
  break;
 
1552
case 53:
 
1553
  case_53();
 
1554
  break;
 
1555
case 54:
 
1556
  case_54();
 
1557
  break;
 
1558
case 55:
 
1559
  case_55();
 
1560
  break;
 
1561
case 56:
 
1562
  case_56();
 
1563
  break;
 
1564
case 57:
 
1565
  case_57();
 
1566
  break;
 
1567
case 58:
 
1568
  case_58();
 
1569
  break;
 
1570
case 59:
 
1571
  case_59();
 
1572
  break;
 
1573
case 60:
 
1574
  case_60();
 
1575
  break;
 
1576
case 61:
 
1577
  case_61();
 
1578
  break;
 
1579
case 62:
 
1580
  case_62();
 
1581
  break;
 
1582
case 63:
 
1583
#line 771 "cs-parser.jay"
 
1584
  { yyVal = "event"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
 
1585
  break;
 
1586
case 64:
 
1587
#line 772 "cs-parser.jay"
 
1588
  { yyVal = "return"; savedCloseLocation = GetLocation (yyVals[0+yyTop]); }
 
1589
  break;
 
1590
case 65:
 
1591
#line 779 "cs-parser.jay"
 
1592
  {
 
1593
                yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
 
1594
          }
 
1595
  break;
 
1596
case 66:
 
1597
  case_66();
 
1598
  break;
 
1599
case 67:
 
1600
#line 796 "cs-parser.jay"
 
1601
  {
 
1602
                ++lexer.parsing_block;
 
1603
          }
 
1604
  break;
 
1605
case 68:
 
1606
  case_68();
 
1607
  break;
 
1608
case 70:
 
1609
#line 824 "cs-parser.jay"
 
1610
  { yyVal = null; HadAttributeParens = false;  }
 
1611
  break;
 
1612
case 71:
 
1613
  case_71();
 
1614
  break;
 
1615
case 72:
 
1616
#line 836 "cs-parser.jay"
 
1617
  { yyVal = null; }
 
1618
  break;
 
1619
case 73:
 
1620
  case_73();
 
1621
  break;
 
1622
case 74:
 
1623
  case_74();
 
1624
  break;
 
1625
case 75:
 
1626
  case_75();
 
1627
  break;
 
1628
case 76:
 
1629
  case_76();
 
1630
  break;
 
1631
case 77:
 
1632
#line 880 "cs-parser.jay"
 
1633
  {
 
1634
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
 
1635
          }
 
1636
  break;
 
1637
case 79:
 
1638
  case_79();
 
1639
  break;
 
1640
case 80:
 
1641
#line 893 "cs-parser.jay"
 
1642
  {
 
1643
                ++lexer.parsing_block;
 
1644
          }
 
1645
  break;
 
1646
case 81:
 
1647
  case_81();
 
1648
  break;
 
1649
case 82:
 
1650
  case_82();
 
1651
  break;
 
1652
case 83:
 
1653
#line 919 "cs-parser.jay"
 
1654
  { yyVal = null; }
 
1655
  break;
 
1656
case 84:
 
1657
#line 923 "cs-parser.jay"
 
1658
  { 
 
1659
                yyVal = Argument.AType.Ref;
 
1660
          }
 
1661
  break;
 
1662
case 85:
 
1663
#line 927 "cs-parser.jay"
 
1664
  { 
 
1665
                yyVal = Argument.AType.Out;
 
1666
          }
 
1667
  break;
 
1668
case 88:
 
1669
#line 939 "cs-parser.jay"
 
1670
  {
 
1671
                lexer.parsing_modifiers = true;
 
1672
          }
 
1673
  break;
 
1674
case 89:
 
1675
#line 943 "cs-parser.jay"
 
1676
  {
 
1677
                lexer.parsing_modifiers = true;
 
1678
          }
 
1679
  break;
 
1680
case 102:
 
1681
  case_102();
 
1682
  break;
 
1683
case 103:
 
1684
#line 974 "cs-parser.jay"
 
1685
  {
 
1686
          }
 
1687
  break;
 
1688
case 104:
 
1689
  case_104();
 
1690
  break;
 
1691
case 105:
 
1692
  case_105();
 
1693
  break;
 
1694
case 106:
 
1695
  case_106();
 
1696
  break;
 
1697
case 107:
 
1698
  case_107();
 
1699
  break;
 
1700
case 108:
 
1701
  case_108();
 
1702
  break;
 
1703
case 109:
 
1704
#line 1018 "cs-parser.jay"
 
1705
  {
 
1706
                Error_SyntaxError (yyToken);
 
1707
          }
 
1708
  break;
 
1709
case 110:
 
1710
  case_110();
 
1711
  break;
 
1712
case 111:
 
1713
  case_111();
 
1714
  break;
 
1715
case 112:
 
1716
  case_112();
 
1717
  break;
 
1718
case 115:
 
1719
#line 1067 "cs-parser.jay"
 
1720
  {
 
1721
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1722
          }
 
1723
  break;
 
1724
case 116:
 
1725
#line 1071 "cs-parser.jay"
 
1726
  {
 
1727
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1728
          }
 
1729
  break;
 
1730
case 117:
 
1731
  case_117();
 
1732
  break;
 
1733
case 118:
 
1734
#line 1087 "cs-parser.jay"
 
1735
  {
 
1736
                ++lexer.parsing_block;
 
1737
          }
 
1738
  break;
 
1739
case 119:
 
1740
  case_119();
 
1741
  break;
 
1742
case 120:
 
1743
  case_120();
 
1744
  break;
 
1745
case 123:
 
1746
  case_123();
 
1747
  break;
 
1748
case 124:
 
1749
  case_124();
 
1750
  break;
 
1751
case 125:
 
1752
  case_125();
 
1753
  break;
 
1754
case 126:
 
1755
  case_126();
 
1756
  break;
 
1757
case 127:
 
1758
#line 1166 "cs-parser.jay"
 
1759
  {
 
1760
                report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
 
1761
          }
 
1762
  break;
 
1763
case 129:
 
1764
  case_129();
 
1765
  break;
 
1766
case 130:
 
1767
  case_130();
 
1768
  break;
 
1769
case 133:
 
1770
#line 1196 "cs-parser.jay"
 
1771
  {
 
1772
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1773
          }
 
1774
  break;
 
1775
case 134:
 
1776
#line 1200 "cs-parser.jay"
 
1777
  {
 
1778
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1779
          }
 
1780
  break;
 
1781
case 135:
 
1782
  case_135();
 
1783
  break;
 
1784
case 136:
 
1785
#line 1213 "cs-parser.jay"
 
1786
  {
 
1787
                ++lexer.parsing_block;
 
1788
          }
 
1789
  break;
 
1790
case 137:
 
1791
  case_137();
 
1792
  break;
 
1793
case 140:
 
1794
#line 1232 "cs-parser.jay"
 
1795
  {
 
1796
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1797
          }
 
1798
  break;
 
1799
case 141:
 
1800
#line 1236 "cs-parser.jay"
 
1801
  {
 
1802
                current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
1803
          }
 
1804
  break;
 
1805
case 142:
 
1806
  case_142();
 
1807
  break;
 
1808
case 143:
 
1809
#line 1252 "cs-parser.jay"
 
1810
  {
 
1811
                ++lexer.parsing_block;
 
1812
          }
 
1813
  break;
 
1814
case 144:
 
1815
  case_144();
 
1816
  break;
 
1817
case 145:
 
1818
  case_145();
 
1819
  break;
 
1820
case 148:
 
1821
  case_148();
 
1822
  break;
 
1823
case 149:
 
1824
  case_149();
 
1825
  break;
 
1826
case 150:
 
1827
  case_150();
 
1828
  break;
 
1829
case 151:
 
1830
#line 1320 "cs-parser.jay"
 
1831
  {
 
1832
                valid_param_mod = ParameterModifierType.All;
 
1833
          }
 
1834
  break;
 
1835
case 152:
 
1836
  case_152();
 
1837
  break;
 
1838
case 153:
 
1839
  case_153();
 
1840
  break;
 
1841
case 154:
 
1842
#line 1359 "cs-parser.jay"
 
1843
  {
 
1844
                lexer.parsing_generic_declaration = true;
 
1845
          }
 
1846
  break;
 
1847
case 155:
 
1848
  case_155();
 
1849
  break;
 
1850
case 156:
 
1851
#line 1369 "cs-parser.jay"
 
1852
  {
 
1853
                lexer.ConstraintsParsing = true;
 
1854
          }
 
1855
  break;
 
1856
case 157:
 
1857
  case_157();
 
1858
  break;
 
1859
case 158:
 
1860
  case_158();
 
1861
  break;
 
1862
case 159:
 
1863
  case_159();
 
1864
  break;
 
1865
case 161:
 
1866
#line 1440 "cs-parser.jay"
 
1867
  { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
 
1868
  break;
 
1869
case 162:
 
1870
#line 1444 "cs-parser.jay"
 
1871
  { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
 
1872
  break;
 
1873
case 164:
 
1874
  case_164();
 
1875
  break;
 
1876
case 165:
 
1877
  case_165();
 
1878
  break;
 
1879
case 166:
 
1880
  case_166();
 
1881
  break;
 
1882
case 167:
 
1883
  case_167();
 
1884
  break;
 
1885
case 168:
 
1886
  case_168();
 
1887
  break;
 
1888
case 169:
 
1889
  case_169();
 
1890
  break;
 
1891
case 170:
 
1892
  case_170();
 
1893
  break;
 
1894
case 171:
 
1895
#line 1516 "cs-parser.jay"
 
1896
  {
 
1897
                yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
 
1898
          }
 
1899
  break;
 
1900
case 172:
 
1901
#line 1520 "cs-parser.jay"
 
1902
  {
 
1903
                yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
 
1904
          }
 
1905
  break;
 
1906
case 173:
 
1907
  case_173();
 
1908
  break;
 
1909
case 174:
 
1910
  case_174();
 
1911
  break;
 
1912
case 175:
 
1913
  case_175();
 
1914
  break;
 
1915
case 176:
 
1916
  case_176();
 
1917
  break;
 
1918
case 177:
 
1919
  case_177();
 
1920
  break;
 
1921
case 178:
 
1922
  case_178();
 
1923
  break;
 
1924
case 179:
 
1925
  case_179();
 
1926
  break;
 
1927
case 180:
 
1928
#line 1601 "cs-parser.jay"
 
1929
  {
 
1930
                ++lexer.parsing_block;
 
1931
          }
 
1932
  break;
 
1933
case 181:
 
1934
  case_181();
 
1935
  break;
 
1936
case 182:
 
1937
#line 1642 "cs-parser.jay"
 
1938
  { yyVal = Parameter.Modifier.NONE; }
 
1939
  break;
 
1940
case 184:
 
1941
#line 1650 "cs-parser.jay"
 
1942
  {
 
1943
                yyVal = yyVals[0+yyTop];
 
1944
          }
 
1945
  break;
 
1946
case 185:
 
1947
  case_185();
 
1948
  break;
 
1949
case 186:
 
1950
  case_186();
 
1951
  break;
 
1952
case 187:
 
1953
  case_187();
 
1954
  break;
 
1955
case 188:
 
1956
  case_188();
 
1957
  break;
 
1958
case 189:
 
1959
  case_189();
 
1960
  break;
 
1961
case 190:
 
1962
  case_190();
 
1963
  break;
 
1964
case 191:
 
1965
  case_191();
 
1966
  break;
 
1967
case 192:
 
1968
  case_192();
 
1969
  break;
 
1970
case 193:
 
1971
  case_193();
 
1972
  break;
 
1973
case 194:
 
1974
#line 1744 "cs-parser.jay"
 
1975
  {
 
1976
                Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
 
1977
          }
 
1978
  break;
 
1979
case 195:
 
1980
  case_195();
 
1981
  break;
 
1982
case 196:
 
1983
  case_196();
 
1984
  break;
 
1985
case 197:
 
1986
  case_197();
 
1987
  break;
 
1988
case 198:
 
1989
  case_198();
 
1990
  break;
 
1991
case 199:
 
1992
  case_199();
 
1993
  break;
 
1994
case 200:
 
1995
#line 1798 "cs-parser.jay"
 
1996
  {
 
1997
                valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
 
1998
          }
 
1999
  break;
 
2000
case 201:
 
2001
  case_201();
 
2002
  break;
 
2003
case 202:
 
2004
#line 1827 "cs-parser.jay"
 
2005
  {
 
2006
                lexer.PropertyParsing = false;
 
2007
          }
 
2008
  break;
 
2009
case 203:
 
2010
  case_203();
 
2011
  break;
 
2012
case 208:
 
2013
  case_208();
 
2014
  break;
 
2015
case 209:
 
2016
  case_209();
 
2017
  break;
 
2018
case 210:
 
2019
  case_210();
 
2020
  break;
 
2021
case 211:
 
2022
  case_211();
 
2023
  break;
 
2024
case 212:
 
2025
  case_212();
 
2026
  break;
 
2027
case 214:
 
2028
  case_214();
 
2029
  break;
 
2030
case 215:
 
2031
  case_215();
 
2032
  break;
 
2033
case 216:
 
2034
#line 1975 "cs-parser.jay"
 
2035
  {
 
2036
          }
 
2037
  break;
 
2038
case 217:
 
2039
  case_217();
 
2040
  break;
 
2041
case 218:
 
2042
  case_218();
 
2043
  break;
 
2044
case 219:
 
2045
  case_219();
 
2046
  break;
 
2047
case 220:
 
2048
  case_220();
 
2049
  break;
 
2050
case 221:
 
2051
#line 2015 "cs-parser.jay"
 
2052
  {
 
2053
                Error_SyntaxError (yyToken);      
 
2054
          }
 
2055
  break;
 
2056
case 224:
 
2057
#line 2027 "cs-parser.jay"
 
2058
  {
 
2059
                lexer.parsing_modifiers = true;
 
2060
          }
 
2061
  break;
 
2062
case 225:
 
2063
#line 2031 "cs-parser.jay"
 
2064
  {
 
2065
                lexer.parsing_modifiers = true;
 
2066
          }
 
2067
  break;
 
2068
case 226:
 
2069
#line 2038 "cs-parser.jay"
 
2070
  {
 
2071
                report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
 
2072
          }
 
2073
  break;
 
2074
case 227:
 
2075
#line 2042 "cs-parser.jay"
 
2076
  {
 
2077
                report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
 
2078
          }
 
2079
  break;
 
2080
case 232:
 
2081
#line 2050 "cs-parser.jay"
 
2082
  {
 
2083
                report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
 
2084
          }
 
2085
  break;
 
2086
case 233:
 
2087
#line 2054 "cs-parser.jay"
 
2088
  {
 
2089
                report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
 
2090
          }
 
2091
  break;
 
2092
case 234:
 
2093
#line 2058 "cs-parser.jay"
 
2094
  {
 
2095
                report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
 
2096
          }
 
2097
  break;
 
2098
case 235:
 
2099
#line 2064 "cs-parser.jay"
 
2100
  {
 
2101
          }
 
2102
  break;
 
2103
case 236:
 
2104
  case_236();
 
2105
  break;
 
2106
case 238:
 
2107
#line 2097 "cs-parser.jay"
 
2108
  { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
 
2109
  break;
 
2110
case 240:
 
2111
  case_240();
 
2112
  break;
 
2113
case 241:
 
2114
#line 2113 "cs-parser.jay"
 
2115
  {
 
2116
                valid_param_mod = ParameterModifierType.DefaultValue;
 
2117
          }
 
2118
  break;
 
2119
case 242:
 
2120
  case_242();
 
2121
  break;
 
2122
case 244:
 
2123
#line 2159 "cs-parser.jay"
 
2124
  { yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2125
  break;
 
2126
case 245:
 
2127
#line 2160 "cs-parser.jay"
 
2128
  { yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2129
  break;
 
2130
case 246:
 
2131
#line 2161 "cs-parser.jay"
 
2132
  { yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2133
  break;
 
2134
case 247:
 
2135
#line 2162 "cs-parser.jay"
 
2136
  { yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2137
  break;
 
2138
case 248:
 
2139
#line 2163 "cs-parser.jay"
 
2140
  { yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2141
  break;
 
2142
case 249:
 
2143
#line 2164 "cs-parser.jay"
 
2144
  { yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2145
  break;
 
2146
case 250:
 
2147
#line 2166 "cs-parser.jay"
 
2148
  { yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2149
  break;
 
2150
case 251:
 
2151
#line 2167 "cs-parser.jay"
 
2152
  { yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2153
  break;
 
2154
case 252:
 
2155
#line 2169 "cs-parser.jay"
 
2156
  { yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2157
  break;
 
2158
case 253:
 
2159
#line 2170 "cs-parser.jay"
 
2160
  {  yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2161
  break;
 
2162
case 254:
 
2163
#line 2171 "cs-parser.jay"
 
2164
  { yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2165
  break;
 
2166
case 255:
 
2167
#line 2172 "cs-parser.jay"
 
2168
  { yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2169
  break;
 
2170
case 256:
 
2171
#line 2173 "cs-parser.jay"
 
2172
  { yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2173
  break;
 
2174
case 257:
 
2175
#line 2174 "cs-parser.jay"
 
2176
  { yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2177
  break;
 
2178
case 258:
 
2179
#line 2175 "cs-parser.jay"
 
2180
  { yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2181
  break;
 
2182
case 259:
 
2183
#line 2176 "cs-parser.jay"
 
2184
  { yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2185
  break;
 
2186
case 260:
 
2187
#line 2177 "cs-parser.jay"
 
2188
  { yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2189
  break;
 
2190
case 261:
 
2191
#line 2178 "cs-parser.jay"
 
2192
  { yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2193
  break;
 
2194
case 262:
 
2195
#line 2179 "cs-parser.jay"
 
2196
  { yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2197
  break;
 
2198
case 263:
 
2199
#line 2180 "cs-parser.jay"
 
2200
  { yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2201
  break;
 
2202
case 264:
 
2203
#line 2181 "cs-parser.jay"
 
2204
  { yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2205
  break;
 
2206
case 265:
 
2207
#line 2182 "cs-parser.jay"
 
2208
  { yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
 
2209
  break;
 
2210
case 266:
 
2211
#line 2189 "cs-parser.jay"
 
2212
  {
 
2213
                valid_param_mod = ParameterModifierType.DefaultValue;
 
2214
          }
 
2215
  break;
 
2216
case 267:
 
2217
  case_267();
 
2218
  break;
 
2219
case 268:
 
2220
#line 2212 "cs-parser.jay"
 
2221
  {
 
2222
                valid_param_mod = ParameterModifierType.DefaultValue;
 
2223
          }
 
2224
  break;
 
2225
case 269:
 
2226
  case_269();
 
2227
  break;
 
2228
case 270:
 
2229
  case_270();
 
2230
  break;
 
2231
case 271:
 
2232
  case_271();
 
2233
  break;
 
2234
case 272:
 
2235
  case_272();
 
2236
  break;
 
2237
case 273:
 
2238
  case_273();
 
2239
  break;
 
2240
case 274:
 
2241
  case_274();
 
2242
  break;
 
2243
case 275:
 
2244
  case_275();
 
2245
  break;
 
2246
case 277:
 
2247
#line 2322 "cs-parser.jay"
 
2248
  { current_block = null; yyVal = null; }
 
2249
  break;
 
2250
case 280:
 
2251
#line 2334 "cs-parser.jay"
 
2252
  {
 
2253
                ++lexer.parsing_block;
 
2254
          }
 
2255
  break;
 
2256
case 281:
 
2257
  case_281();
 
2258
  break;
 
2259
case 282:
 
2260
#line 2344 "cs-parser.jay"
 
2261
  {
 
2262
                ++lexer.parsing_block;
 
2263
          }
 
2264
  break;
 
2265
case 283:
 
2266
  case_283();
 
2267
  break;
 
2268
case 284:
 
2269
  case_284();
 
2270
  break;
 
2271
case 285:
 
2272
  case_285();
 
2273
  break;
 
2274
case 286:
 
2275
  case_286();
 
2276
  break;
 
2277
case 287:
 
2278
  case_287();
 
2279
  break;
 
2280
case 288:
 
2281
  case_288();
 
2282
  break;
 
2283
case 289:
 
2284
  case_289();
 
2285
  break;
 
2286
case 290:
 
2287
  case_290();
 
2288
  break;
 
2289
case 291:
 
2290
  case_291();
 
2291
  break;
 
2292
case 292:
 
2293
  case_292();
 
2294
  break;
 
2295
case 293:
 
2296
  case_293();
 
2297
  break;
 
2298
case 295:
 
2299
#line 2471 "cs-parser.jay"
 
2300
  {
 
2301
                ++lexer.parsing_block;
 
2302
          }
 
2303
  break;
 
2304
case 296:
 
2305
  case_296();
 
2306
  break;
 
2307
case 299:
 
2308
#line 2489 "cs-parser.jay"
 
2309
  {
 
2310
                current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
2311
          }
 
2312
  break;
 
2313
case 300:
 
2314
#line 2493 "cs-parser.jay"
 
2315
  {
 
2316
                current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
 
2317
          }
 
2318
  break;
 
2319
case 301:
 
2320
  case_301();
 
2321
  break;
 
2322
case 302:
 
2323
#line 2506 "cs-parser.jay"
 
2324
  {
 
2325
                ++lexer.parsing_block;
 
2326
          }
 
2327
  break;
 
2328
case 303:
 
2329
  case_303();
 
2330
  break;
 
2331
case 304:
 
2332
  case_304();
 
2333
  break;
 
2334
case 305:
 
2335
#line 2531 "cs-parser.jay"
 
2336
  {
 
2337
                yyVal = yyVals[0+yyTop];
 
2338
          }
 
2339
  break;
 
2340
case 308:
 
2341
  case_308();
 
2342
  break;
 
2343
case 309:
 
2344
  case_309();
 
2345
  break;
 
2346
case 310:
 
2347
  case_310();
 
2348
  break;
 
2349
case 311:
 
2350
  case_311();
 
2351
  break;
 
2352
case 312:
 
2353
  case_312();
 
2354
  break;
 
2355
case 313:
 
2356
  case_313();
 
2357
  break;
 
2358
case 314:
 
2359
  case_314();
 
2360
  break;
 
2361
case 315:
 
2362
  case_315();
 
2363
  break;
 
2364
case 317:
 
2365
  case_317();
 
2366
  break;
 
2367
case 318:
 
2368
  case_318();
 
2369
  break;
 
2370
case 319:
 
2371
  case_319();
 
2372
  break;
 
2373
case 320:
 
2374
  case_320();
 
2375
  break;
 
2376
case 321:
 
2377
  case_321();
 
2378
  break;
 
2379
case 322:
 
2380
  case_322();
 
2381
  break;
 
2382
case 324:
 
2383
  case_324();
 
2384
  break;
 
2385
case 325:
 
2386
  case_325();
 
2387
  break;
 
2388
case 328:
 
2389
#line 2717 "cs-parser.jay"
 
2390
  {
 
2391
                lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
 
2392
          }
 
2393
  break;
 
2394
case 330:
 
2395
  case_330();
 
2396
  break;
 
2397
case 331:
 
2398
  case_331();
 
2399
  break;
 
2400
case 332:
 
2401
  case_332();
 
2402
  break;
 
2403
case 333:
 
2404
  case_333();
 
2405
  break;
 
2406
case 334:
 
2407
  case_334();
 
2408
  break;
 
2409
case 336:
 
2410
#line 2791 "cs-parser.jay"
 
2411
  {
 
2412
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
 
2413
          }
 
2414
  break;
 
2415
case 337:
 
2416
  case_337();
 
2417
  break;
 
2418
case 338:
 
2419
#line 2810 "cs-parser.jay"
 
2420
  {
 
2421
                lexer.ConstraintsParsing = false;
 
2422
          }
 
2423
  break;
 
2424
case 339:
 
2425
  case_339();
 
2426
  break;
 
2427
case 341:
 
2428
  case_341();
 
2429
  break;
 
2430
case 343:
 
2431
  case_343();
 
2432
  break;
 
2433
case 345:
 
2434
  case_345();
 
2435
  break;
 
2436
case 346:
 
2437
  case_346();
 
2438
  break;
 
2439
case 348:
 
2440
  case_348();
 
2441
  break;
 
2442
case 349:
 
2443
  case_349();
 
2444
  break;
 
2445
case 350:
 
2446
  case_350();
 
2447
  break;
 
2448
case 351:
 
2449
  case_351();
 
2450
  break;
 
2451
case 352:
 
2452
#line 2917 "cs-parser.jay"
 
2453
  {
 
2454
                lexer.parsing_generic_declaration = true;
 
2455
          }
 
2456
  break;
 
2457
case 353:
 
2458
  case_353();
 
2459
  break;
 
2460
case 354:
 
2461
  case_354();
 
2462
  break;
 
2463
case 356:
 
2464
  case_356();
 
2465
  break;
 
2466
case 357:
 
2467
  case_357();
 
2468
  break;
 
2469
case 358:
 
2470
  case_358();
 
2471
  break;
 
2472
case 359:
 
2473
  case_359();
 
2474
  break;
 
2475
case 360:
 
2476
  case_360();
 
2477
  break;
 
2478
case 361:
 
2479
  case_361();
 
2480
  break;
 
2481
case 363:
 
2482
  case_363();
 
2483
  break;
 
2484
case 364:
 
2485
  case_364();
 
2486
  break;
 
2487
case 365:
 
2488
  case_365();
 
2489
  break;
 
2490
case 366:
 
2491
  case_366();
 
2492
  break;
 
2493
case 367:
 
2494
  case_367();
 
2495
  break;
 
2496
case 369:
 
2497
#line 3042 "cs-parser.jay"
 
2498
  {
 
2499
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
2500
          }
 
2501
  break;
 
2502
case 370:
 
2503
#line 3049 "cs-parser.jay"
 
2504
  {
 
2505
                lexer.parsing_generic_declaration = true;
 
2506
          }
 
2507
  break;
 
2508
case 372:
 
2509
  case_372();
 
2510
  break;
 
2511
case 374:
 
2512
  case_374();
 
2513
  break;
 
2514
case 376:
 
2515
  case_376();
 
2516
  break;
 
2517
case 378:
 
2518
#line 3087 "cs-parser.jay"
 
2519
  {
 
2520
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
2521
          }
 
2522
  break;
 
2523
case 379:
 
2524
  case_379();
 
2525
  break;
 
2526
case 380:
 
2527
#line 3106 "cs-parser.jay"
 
2528
  {
 
2529
                yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
2530
          }
 
2531
  break;
 
2532
case 381:
 
2533
  case_381();
 
2534
  break;
 
2535
case 382:
 
2536
#line 3115 "cs-parser.jay"
 
2537
  {
 
2538
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
2539
          }
 
2540
  break;
 
2541
case 383:
 
2542
#line 3119 "cs-parser.jay"
 
2543
  {
 
2544
                yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
2545
          }
 
2546
  break;
 
2547
case 384:
 
2548
  case_384();
 
2549
  break;
 
2550
case 385:
 
2551
  case_385();
 
2552
  break;
 
2553
case 386:
 
2554
  case_386();
 
2555
  break;
 
2556
case 387:
 
2557
#line 3153 "cs-parser.jay"
 
2558
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); }
 
2559
  break;
 
2560
case 388:
 
2561
#line 3154 "cs-parser.jay"
 
2562
  { yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); }
 
2563
  break;
 
2564
case 389:
 
2565
#line 3155 "cs-parser.jay"
 
2566
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); }
 
2567
  break;
 
2568
case 390:
 
2569
#line 3156 "cs-parser.jay"
 
2570
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); }
 
2571
  break;
 
2572
case 391:
 
2573
#line 3157 "cs-parser.jay"
 
2574
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); }
 
2575
  break;
 
2576
case 392:
 
2577
#line 3158 "cs-parser.jay"
 
2578
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); }
 
2579
  break;
 
2580
case 394:
 
2581
#line 3163 "cs-parser.jay"
 
2582
  { yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); }
 
2583
  break;
 
2584
case 395:
 
2585
#line 3164 "cs-parser.jay"
 
2586
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); }
 
2587
  break;
 
2588
case 396:
 
2589
#line 3165 "cs-parser.jay"
 
2590
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); }
 
2591
  break;
 
2592
case 397:
 
2593
#line 3166 "cs-parser.jay"
 
2594
  { yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); }
 
2595
  break;
 
2596
case 398:
 
2597
#line 3167 "cs-parser.jay"
 
2598
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); }
 
2599
  break;
 
2600
case 399:
 
2601
#line 3168 "cs-parser.jay"
 
2602
  { yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); }
 
2603
  break;
 
2604
case 400:
 
2605
#line 3169 "cs-parser.jay"
 
2606
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); }
 
2607
  break;
 
2608
case 401:
 
2609
#line 3170 "cs-parser.jay"
 
2610
  { yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); }
 
2611
  break;
 
2612
case 402:
 
2613
#line 3171 "cs-parser.jay"
 
2614
  { yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); }
 
2615
  break;
 
2616
case 423:
 
2617
  case_423();
 
2618
  break;
 
2619
case 424:
 
2620
  case_424();
 
2621
  break;
 
2622
case 428:
 
2623
#line 3218 "cs-parser.jay"
 
2624
  { yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
 
2625
  break;
 
2626
case 429:
 
2627
#line 3222 "cs-parser.jay"
 
2628
  { yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); }
 
2629
  break;
 
2630
case 430:
 
2631
#line 3223 "cs-parser.jay"
 
2632
  { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
 
2633
  break;
 
2634
case 435:
 
2635
  case_435();
 
2636
  break;
 
2637
case 436:
 
2638
#line 3256 "cs-parser.jay"
 
2639
  {
 
2640
                yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
2641
          }
 
2642
  break;
 
2643
case 437:
 
2644
  case_437();
 
2645
  break;
 
2646
case 438:
 
2647
  case_438();
 
2648
  break;
 
2649
case 439:
 
2650
  case_439();
 
2651
  break;
 
2652
case 440:
 
2653
  case_440();
 
2654
  break;
 
2655
case 441:
 
2656
#line 3291 "cs-parser.jay"
 
2657
  {
 
2658
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
 
2659
          }
 
2660
  break;
 
2661
case 442:
 
2662
  case_442();
 
2663
  break;
 
2664
case 443:
 
2665
#line 3299 "cs-parser.jay"
 
2666
  {
 
2667
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
 
2668
          }
 
2669
  break;
 
2670
case 444:
 
2671
  case_444();
 
2672
  break;
 
2673
case 445:
 
2674
  case_445();
 
2675
  break;
 
2676
case 446:
 
2677
  case_446();
 
2678
  break;
 
2679
case 447:
 
2680
  case_447();
 
2681
  break;
 
2682
case 448:
 
2683
#line 3329 "cs-parser.jay"
 
2684
  { yyVal = null; }
 
2685
  break;
 
2686
case 450:
 
2687
  case_450();
 
2688
  break;
 
2689
case 451:
 
2690
  case_451();
 
2691
  break;
 
2692
case 452:
 
2693
#line 3351 "cs-parser.jay"
 
2694
  { yyVal = null; }
 
2695
  break;
 
2696
case 453:
 
2697
#line 3355 "cs-parser.jay"
 
2698
  {
 
2699
                yyVal = yyVals[0+yyTop];
 
2700
        }
 
2701
  break;
 
2702
case 454:
 
2703
  case_454();
 
2704
  break;
 
2705
case 455:
 
2706
  case_455();
 
2707
  break;
 
2708
case 456:
 
2709
  case_456();
 
2710
  break;
 
2711
case 457:
 
2712
  case_457();
 
2713
  break;
 
2714
case 458:
 
2715
  case_458();
 
2716
  break;
 
2717
case 459:
 
2718
#line 3394 "cs-parser.jay"
 
2719
  {
 
2720
                yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
 
2721
          }
 
2722
  break;
 
2723
case 460:
 
2724
  case_460();
 
2725
  break;
 
2726
case 461:
 
2727
  case_461();
 
2728
  break;
 
2729
case 462:
 
2730
  case_462();
 
2731
  break;
 
2732
case 465:
 
2733
#line 3425 "cs-parser.jay"
 
2734
  { yyVal = null; }
 
2735
  break;
 
2736
case 467:
 
2737
  case_467();
 
2738
  break;
 
2739
case 468:
 
2740
  case_468();
 
2741
  break;
 
2742
case 469:
 
2743
  case_469();
 
2744
  break;
 
2745
case 470:
 
2746
  case_470();
 
2747
  break;
 
2748
case 471:
 
2749
  case_471();
 
2750
  break;
 
2751
case 472:
 
2752
#line 3479 "cs-parser.jay"
 
2753
  {
 
2754
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
 
2755
          }
 
2756
  break;
 
2757
case 476:
 
2758
  case_476();
 
2759
  break;
 
2760
case 477:
 
2761
  case_477();
 
2762
  break;
 
2763
case 478:
 
2764
  case_478();
 
2765
  break;
 
2766
case 479:
 
2767
  case_479();
 
2768
  break;
 
2769
case 481:
 
2770
  case_481();
 
2771
  break;
 
2772
case 482:
 
2773
  case_482();
 
2774
  break;
 
2775
case 483:
 
2776
  case_483();
 
2777
  break;
 
2778
case 484:
 
2779
  case_484();
 
2780
  break;
 
2781
case 485:
 
2782
  case_485();
 
2783
  break;
 
2784
case 486:
 
2785
  case_486();
 
2786
  break;
 
2787
case 487:
 
2788
  case_487();
 
2789
  break;
 
2790
case 488:
 
2791
#line 3572 "cs-parser.jay"
 
2792
  {
 
2793
                yyVal = new Argument ((Expression) yyVals[0+yyTop]);
 
2794
          }
 
2795
  break;
 
2796
case 490:
 
2797
#line 3580 "cs-parser.jay"
 
2798
  {
 
2799
                yyVal = new This (GetLocation (yyVals[0+yyTop]));
 
2800
          }
 
2801
  break;
 
2802
case 491:
 
2803
  case_491();
 
2804
  break;
 
2805
case 492:
 
2806
  case_492();
 
2807
  break;
 
2808
case 493:
 
2809
#line 3600 "cs-parser.jay"
 
2810
  {
 
2811
                yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
 
2812
          }
 
2813
  break;
 
2814
case 494:
 
2815
#line 3607 "cs-parser.jay"
 
2816
  {
 
2817
                yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
 
2818
          }
 
2819
  break;
 
2820
case 495:
 
2821
  case_495();
 
2822
  break;
 
2823
case 496:
 
2824
  case_496();
 
2825
  break;
 
2826
case 497:
 
2827
  case_497();
 
2828
  break;
 
2829
case 498:
 
2830
  case_498();
 
2831
  break;
 
2832
case 499:
 
2833
  case_499();
 
2834
  break;
 
2835
case 500:
 
2836
  case_500();
 
2837
  break;
 
2838
case 501:
 
2839
  case_501();
 
2840
  break;
 
2841
case 502:
 
2842
#line 3674 "cs-parser.jay"
 
2843
  {
 
2844
                ++lexer.parsing_type;
 
2845
          }
 
2846
  break;
 
2847
case 503:
 
2848
  case_503();
 
2849
  break;
 
2850
case 504:
 
2851
  case_504();
 
2852
  break;
 
2853
case 507:
 
2854
#line 3701 "cs-parser.jay"
 
2855
  { yyVal = null; }
 
2856
  break;
 
2857
case 509:
 
2858
  case_509();
 
2859
  break;
 
2860
case 510:
 
2861
  case_510();
 
2862
  break;
 
2863
case 511:
 
2864
  case_511();
 
2865
  break;
 
2866
case 512:
 
2867
  case_512();
 
2868
  break;
 
2869
case 513:
 
2870
  case_513();
 
2871
  break;
 
2872
case 514:
 
2873
  case_514();
 
2874
  break;
 
2875
case 518:
 
2876
  case_518();
 
2877
  break;
 
2878
case 519:
 
2879
  case_519();
 
2880
  break;
 
2881
case 520:
 
2882
  case_520();
 
2883
  break;
 
2884
case 521:
 
2885
#line 3779 "cs-parser.jay"
 
2886
  {
 
2887
                yyVal = 2;
 
2888
          }
 
2889
  break;
 
2890
case 522:
 
2891
#line 3783 "cs-parser.jay"
 
2892
  {
 
2893
                yyVal = ((int) yyVals[-1+yyTop]) + 1;
 
2894
          }
 
2895
  break;
 
2896
case 523:
 
2897
#line 3790 "cs-parser.jay"
 
2898
  {
 
2899
                yyVal = null;
 
2900
          }
 
2901
  break;
 
2902
case 524:
 
2903
#line 3794 "cs-parser.jay"
 
2904
  {
 
2905
                yyVal = yyVals[0+yyTop];
 
2906
          }
 
2907
  break;
 
2908
case 525:
 
2909
  case_525();
 
2910
  break;
 
2911
case 526:
 
2912
  case_526();
 
2913
  break;
 
2914
case 527:
 
2915
  case_527();
 
2916
  break;
 
2917
case 528:
 
2918
  case_528();
 
2919
  break;
 
2920
case 529:
 
2921
#line 3838 "cs-parser.jay"
 
2922
  {
 
2923
                lexer.TypeOfParsing = true;
 
2924
          }
 
2925
  break;
 
2926
case 530:
 
2927
  case_530();
 
2928
  break;
 
2929
case 533:
 
2930
  case_533();
 
2931
  break;
 
2932
case 534:
 
2933
  case_534();
 
2934
  break;
 
2935
case 535:
 
2936
  case_535();
 
2937
  break;
 
2938
case 536:
 
2939
  case_536();
 
2940
  break;
 
2941
case 537:
 
2942
  case_537();
 
2943
  break;
 
2944
case 538:
 
2945
  case_538();
 
2946
  break;
 
2947
case 539:
 
2948
  case_539();
 
2949
  break;
 
2950
case 540:
 
2951
  case_540();
 
2952
  break;
 
2953
case 541:
 
2954
  case_541();
 
2955
  break;
 
2956
case 542:
 
2957
  case_542();
 
2958
  break;
 
2959
case 543:
 
2960
  case_543();
 
2961
  break;
 
2962
case 544:
 
2963
  case_544();
 
2964
  break;
 
2965
case 545:
 
2966
  case_545();
 
2967
  break;
 
2968
case 546:
 
2969
  case_546();
 
2970
  break;
 
2971
case 547:
 
2972
  case_547();
 
2973
  break;
 
2974
case 548:
 
2975
#line 3983 "cs-parser.jay"
 
2976
  {
 
2977
                start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
 
2978
          }
 
2979
  break;
 
2980
case 549:
 
2981
  case_549();
 
2982
  break;
 
2983
case 550:
 
2984
#line 3996 "cs-parser.jay"
 
2985
  {
 
2986
                start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
 
2987
          }
 
2988
  break;
 
2989
case 551:
 
2990
  case_551();
 
2991
  break;
 
2992
case 552:
 
2993
#line 4013 "cs-parser.jay"
 
2994
  {
 
2995
                yyVal = ParametersCompiled.Undefined;
 
2996
          }
 
2997
  break;
 
2998
case 554:
 
2999
#line 4021 "cs-parser.jay"
 
3000
  {
 
3001
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
 
3002
          }
 
3003
  break;
 
3004
case 555:
 
3005
  case_555();
 
3006
  break;
 
3007
case 556:
 
3008
  case_556();
 
3009
  break;
 
3010
case 558:
 
3011
#line 4047 "cs-parser.jay"
 
3012
  {
 
3013
                yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3014
          }
 
3015
  break;
 
3016
case 559:
 
3017
#line 4051 "cs-parser.jay"
 
3018
  {
 
3019
                yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3020
          }
 
3021
  break;
 
3022
case 560:
 
3023
  case_560();
 
3024
  break;
 
3025
case 561:
 
3026
  case_561();
 
3027
  break;
 
3028
case 562:
 
3029
  case_562();
 
3030
  break;
 
3031
case 563:
 
3032
  case_563();
 
3033
  break;
 
3034
case 564:
 
3035
  case_564();
 
3036
  break;
 
3037
case 565:
 
3038
  case_565();
 
3039
  break;
 
3040
case 567:
 
3041
#line 4112 "cs-parser.jay"
 
3042
  { 
 
3043
                yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3044
          }
 
3045
  break;
 
3046
case 568:
 
3047
#line 4116 "cs-parser.jay"
 
3048
  { 
 
3049
                yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3050
          }
 
3051
  break;
 
3052
case 569:
 
3053
#line 4120 "cs-parser.jay"
 
3054
  {
 
3055
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3056
          }
 
3057
  break;
 
3058
case 570:
 
3059
#line 4124 "cs-parser.jay"
 
3060
  {
 
3061
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3062
          }
 
3063
  break;
 
3064
case 571:
 
3065
#line 4128 "cs-parser.jay"
 
3066
  {
 
3067
                yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3068
          }
 
3069
  break;
 
3070
case 572:
 
3071
#line 4132 "cs-parser.jay"
 
3072
  {
 
3073
                yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3074
          }
 
3075
  break;
 
3076
case 573:
 
3077
  case_573();
 
3078
  break;
 
3079
case 574:
 
3080
  case_574();
 
3081
  break;
 
3082
case 575:
 
3083
  case_575();
 
3084
  break;
 
3085
case 576:
 
3086
  case_576();
 
3087
  break;
 
3088
case 577:
 
3089
  case_577();
 
3090
  break;
 
3091
case 578:
 
3092
  case_578();
 
3093
  break;
 
3094
case 580:
 
3095
  case_580();
 
3096
  break;
 
3097
case 581:
 
3098
  case_581();
 
3099
  break;
 
3100
case 582:
 
3101
  case_582();
 
3102
  break;
 
3103
case 583:
 
3104
  case_583();
 
3105
  break;
 
3106
case 584:
 
3107
  case_584();
 
3108
  break;
 
3109
case 585:
 
3110
  case_585();
 
3111
  break;
 
3112
case 587:
 
3113
  case_587();
 
3114
  break;
 
3115
case 588:
 
3116
  case_588();
 
3117
  break;
 
3118
case 589:
 
3119
#line 4226 "cs-parser.jay"
 
3120
  {
 
3121
                yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3122
          }
 
3123
  break;
 
3124
case 590:
 
3125
#line 4230 "cs-parser.jay"
 
3126
  {
 
3127
                yyVal = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3128
          }
 
3129
  break;
 
3130
case 591:
 
3131
  case_591();
 
3132
  break;
 
3133
case 592:
 
3134
  case_592();
 
3135
  break;
 
3136
case 593:
 
3137
  case_593();
 
3138
  break;
 
3139
case 594:
 
3140
  case_594();
 
3141
  break;
 
3142
case 596:
 
3143
  case_596();
 
3144
  break;
 
3145
case 597:
 
3146
  case_597();
 
3147
  break;
 
3148
case 598:
 
3149
  case_598();
 
3150
  break;
 
3151
case 599:
 
3152
  case_599();
 
3153
  break;
 
3154
case 601:
 
3155
  case_601();
 
3156
  break;
 
3157
case 602:
 
3158
  case_602();
 
3159
  break;
 
3160
case 603:
 
3161
  case_603();
 
3162
  break;
 
3163
case 604:
 
3164
  case_604();
 
3165
  break;
 
3166
case 605:
 
3167
  case_605();
 
3168
  break;
 
3169
case 606:
 
3170
  case_606();
 
3171
  break;
 
3172
case 607:
 
3173
  case_607();
 
3174
  break;
 
3175
case 608:
 
3176
  case_608();
 
3177
  break;
 
3178
case 610:
 
3179
  case_610();
 
3180
  break;
 
3181
case 611:
 
3182
  case_611();
 
3183
  break;
 
3184
case 612:
 
3185
  case_612();
 
3186
  break;
 
3187
case 613:
 
3188
  case_613();
 
3189
  break;
 
3190
case 615:
 
3191
  case_615();
 
3192
  break;
 
3193
case 616:
 
3194
  case_616();
 
3195
  break;
 
3196
case 618:
 
3197
  case_618();
 
3198
  break;
 
3199
case 619:
 
3200
  case_619();
 
3201
  break;
 
3202
case 621:
 
3203
  case_621();
 
3204
  break;
 
3205
case 622:
 
3206
  case_622();
 
3207
  break;
 
3208
case 624:
 
3209
  case_624();
 
3210
  break;
 
3211
case 625:
 
3212
  case_625();
 
3213
  break;
 
3214
case 627:
 
3215
  case_627();
 
3216
  break;
 
3217
case 628:
 
3218
  case_628();
 
3219
  break;
 
3220
case 630:
 
3221
  case_630();
 
3222
  break;
 
3223
case 632:
 
3224
  case_632();
 
3225
  break;
 
3226
case 633:
 
3227
  case_633();
 
3228
  break;
 
3229
case 634:
 
3230
  case_634();
 
3231
  break;
 
3232
case 635:
 
3233
  case_635();
 
3234
  break;
 
3235
case 636:
 
3236
  case_636();
 
3237
  break;
 
3238
case 637:
 
3239
  case_637();
 
3240
  break;
 
3241
case 638:
 
3242
  case_638();
 
3243
  break;
 
3244
case 639:
 
3245
  case_639();
 
3246
  break;
 
3247
case 640:
 
3248
  case_640();
 
3249
  break;
 
3250
case 641:
 
3251
  case_641();
 
3252
  break;
 
3253
case 642:
 
3254
  case_642();
 
3255
  break;
 
3256
case 643:
 
3257
  case_643();
 
3258
  break;
 
3259
case 644:
 
3260
  case_644();
 
3261
  break;
 
3262
case 645:
 
3263
  case_645();
 
3264
  break;
 
3265
case 646:
 
3266
  case_646();
 
3267
  break;
 
3268
case 647:
 
3269
  case_647();
 
3270
  break;
 
3271
case 648:
 
3272
  case_648();
 
3273
  break;
 
3274
case 649:
 
3275
  case_649();
 
3276
  break;
 
3277
case 650:
 
3278
  case_650();
 
3279
  break;
 
3280
case 651:
 
3281
  case_651();
 
3282
  break;
 
3283
case 652:
 
3284
  case_652();
 
3285
  break;
 
3286
case 653:
 
3287
#line 4596 "cs-parser.jay"
 
3288
  { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
 
3289
  break;
 
3290
case 654:
 
3291
  case_654();
 
3292
  break;
 
3293
case 655:
 
3294
#line 4607 "cs-parser.jay"
 
3295
  {
 
3296
                start_block (Location.Null);
 
3297
          }
 
3298
  break;
 
3299
case 656:
 
3300
  case_656();
 
3301
  break;
 
3302
case 658:
 
3303
  case_658();
 
3304
  break;
 
3305
case 660:
 
3306
  case_660();
 
3307
  break;
 
3308
case 661:
 
3309
  case_661();
 
3310
  break;
 
3311
case 662:
 
3312
  case_662();
 
3313
  break;
 
3314
case 663:
 
3315
  case_663();
 
3316
  break;
 
3317
case 664:
 
3318
  case_664();
 
3319
  break;
 
3320
case 665:
 
3321
  case_665();
 
3322
  break;
 
3323
case 666:
 
3324
  case_666();
 
3325
  break;
 
3326
case 667:
 
3327
#line 4674 "cs-parser.jay"
 
3328
  {
 
3329
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
 
3330
          }
 
3331
  break;
 
3332
case 668:
 
3333
  case_668();
 
3334
  break;
 
3335
case 669:
 
3336
  case_669();
 
3337
  break;
 
3338
case 670:
 
3339
#line 4688 "cs-parser.jay"
 
3340
  {
 
3341
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;          
 
3342
          }
 
3343
  break;
 
3344
case 671:
 
3345
  case_671();
 
3346
  break;
 
3347
case 672:
 
3348
  case_672();
 
3349
  break;
 
3350
case 678:
 
3351
#line 4713 "cs-parser.jay"
 
3352
  {
 
3353
                yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
 
3354
          }
 
3355
  break;
 
3356
case 679:
 
3357
  case_679();
 
3358
  break;
 
3359
case 680:
 
3360
  case_680();
 
3361
  break;
 
3362
case 681:
 
3363
  case_681();
 
3364
  break;
 
3365
case 683:
 
3366
#line 4742 "cs-parser.jay"
 
3367
  {
 
3368
                yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
 
3369
          }
 
3370
  break;
 
3371
case 684:
 
3372
#line 4754 "cs-parser.jay"
 
3373
  {
 
3374
          }
 
3375
  break;
 
3376
case 685:
 
3377
  case_685();
 
3378
  break;
 
3379
case 686:
 
3380
  case_686();
 
3381
  break;
 
3382
case 687:
 
3383
  case_687();
 
3384
  break;
 
3385
case 688:
 
3386
  case_688();
 
3387
  break;
 
3388
case 689:
 
3389
#line 4801 "cs-parser.jay"
 
3390
  { yyVal = null; }
 
3391
  break;
 
3392
case 690:
 
3393
#line 4803 "cs-parser.jay"
 
3394
  { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
 
3395
  break;
 
3396
case 691:
 
3397
  case_691();
 
3398
  break;
 
3399
case 692:
 
3400
#line 4816 "cs-parser.jay"
 
3401
  {
 
3402
                lexer.parsing_modifiers = false;                
 
3403
          }
 
3404
  break;
 
3405
case 694:
 
3406
  case_694();
 
3407
  break;
 
3408
case 695:
 
3409
  case_695();
 
3410
  break;
 
3411
case 696:
 
3412
  case_696();
 
3413
  break;
 
3414
case 697:
 
3415
  case_697();
 
3416
  break;
 
3417
case 698:
 
3418
  case_698();
 
3419
  break;
 
3420
case 699:
 
3421
  case_699();
 
3422
  break;
 
3423
case 700:
 
3424
  case_700();
 
3425
  break;
 
3426
case 701:
 
3427
  case_701();
 
3428
  break;
 
3429
case 702:
 
3430
  case_702();
 
3431
  break;
 
3432
case 703:
 
3433
  case_703();
 
3434
  break;
 
3435
case 704:
 
3436
  case_704();
 
3437
  break;
 
3438
case 705:
 
3439
  case_705();
 
3440
  break;
 
3441
case 706:
 
3442
  case_706();
 
3443
  break;
 
3444
case 707:
 
3445
  case_707();
 
3446
  break;
 
3447
case 708:
 
3448
  case_708();
 
3449
  break;
 
3450
case 709:
 
3451
  case_709();
 
3452
  break;
 
3453
case 711:
 
3454
  case_711();
 
3455
  break;
 
3456
case 712:
 
3457
  case_712();
 
3458
  break;
 
3459
case 714:
 
3460
#line 4942 "cs-parser.jay"
 
3461
  {
 
3462
                yyVal = yyVals[0+yyTop];
 
3463
          }
 
3464
  break;
 
3465
case 715:
 
3466
  case_715();
 
3467
  break;
 
3468
case 716:
 
3469
  case_716();
 
3470
  break;
 
3471
case 717:
 
3472
  case_717();
 
3473
  break;
 
3474
case 718:
 
3475
  case_718();
 
3476
  break;
 
3477
case 719:
 
3478
  case_719();
 
3479
  break;
 
3480
case 720:
 
3481
  case_720();
 
3482
  break;
 
3483
case 721:
 
3484
  case_721();
 
3485
  break;
 
3486
case 722:
 
3487
  case_722();
 
3488
  break;
 
3489
case 723:
 
3490
#line 5035 "cs-parser.jay"
 
3491
  {
 
3492
                yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
 
3493
          }
 
3494
  break;
 
3495
case 724:
 
3496
#line 5039 "cs-parser.jay"
 
3497
  {
 
3498
                yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
 
3499
          }
 
3500
  break;
 
3501
case 725:
 
3502
#line 5046 "cs-parser.jay"
 
3503
  {
 
3504
                yyVal = Variance.None;
 
3505
          }
 
3506
  break;
 
3507
case 726:
 
3508
  case_726();
 
3509
  break;
 
3510
case 727:
 
3511
  case_727();
 
3512
  break;
 
3513
case 728:
 
3514
  case_728();
 
3515
  break;
 
3516
case 729:
 
3517
  case_729();
 
3518
  break;
 
3519
case 730:
 
3520
#line 5091 "cs-parser.jay"
 
3521
  {
 
3522
                yyVal = yyVals[0+yyTop];
 
3523
          }
 
3524
  break;
 
3525
case 731:
 
3526
  case_731();
 
3527
  break;
 
3528
case 732:
 
3529
  case_732();
 
3530
  break;
 
3531
case 733:
 
3532
  case_733();
 
3533
  break;
 
3534
case 734:
 
3535
  case_734();
 
3536
  break;
 
3537
case 735:
 
3538
  case_735();
 
3539
  break;
 
3540
case 736:
 
3541
  case_736();
 
3542
  break;
 
3543
case 737:
 
3544
  case_737();
 
3545
  break;
 
3546
case 742:
 
3547
#line 5153 "cs-parser.jay"
 
3548
  {
 
3549
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
 
3550
          }
 
3551
  break;
 
3552
case 743:
 
3553
#line 5157 "cs-parser.jay"
 
3554
  {
 
3555
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
 
3556
          }
 
3557
  break;
 
3558
case 745:
 
3559
  case_745();
 
3560
  break;
 
3561
case 746:
 
3562
  case_746();
 
3563
  break;
 
3564
case 749:
 
3565
#line 5191 "cs-parser.jay"
 
3566
  {
 
3567
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
 
3568
          }
 
3569
  break;
 
3570
case 750:
 
3571
#line 5195 "cs-parser.jay"
 
3572
  {
 
3573
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
 
3574
          }
 
3575
  break;
 
3576
case 779:
 
3577
  case_779();
 
3578
  break;
 
3579
case 780:
 
3580
  case_780();
 
3581
  break;
 
3582
case 781:
 
3583
  case_781();
 
3584
  break;
 
3585
case 782:
 
3586
  case_782();
 
3587
  break;
 
3588
case 783:
 
3589
  case_783();
 
3590
  break;
 
3591
case 786:
 
3592
  case_786();
 
3593
  break;
 
3594
case 787:
 
3595
  case_787();
 
3596
  break;
 
3597
case 788:
 
3598
  case_788();
 
3599
  break;
 
3600
case 789:
 
3601
  case_789();
 
3602
  break;
 
3603
case 790:
 
3604
#line 5339 "cs-parser.jay"
 
3605
  {
 
3606
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
3607
          }
 
3608
  break;
 
3609
case 791:
 
3610
#line 5343 "cs-parser.jay"
 
3611
  {
 
3612
                yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
3613
          }
 
3614
  break;
 
3615
case 792:
 
3616
  case_792();
 
3617
  break;
 
3618
case 794:
 
3619
  case_794();
 
3620
  break;
 
3621
case 795:
 
3622
#line 5364 "cs-parser.jay"
 
3623
  {
 
3624
                yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
 
3625
          }
 
3626
  break;
 
3627
case 797:
 
3628
#line 5372 "cs-parser.jay"
 
3629
  {
 
3630
                yyVal = Error_AwaitAsIdentifier (yyVals[0+yyTop]);
 
3631
          }
 
3632
  break;
 
3633
case 798:
 
3634
  case_798();
 
3635
  break;
 
3636
case 799:
 
3637
  case_799();
 
3638
  break;
 
3639
case 800:
 
3640
  case_800();
 
3641
  break;
 
3642
case 801:
 
3643
  case_801();
 
3644
  break;
 
3645
case 803:
 
3646
  case_803();
 
3647
  break;
 
3648
case 805:
 
3649
  case_805();
 
3650
  break;
 
3651
case 806:
 
3652
  case_806();
 
3653
  break;
 
3654
case 810:
 
3655
  case_810();
 
3656
  break;
 
3657
case 813:
 
3658
  case_813();
 
3659
  break;
 
3660
case 814:
 
3661
  case_814();
 
3662
  break;
 
3663
case 815:
 
3664
#line 5486 "cs-parser.jay"
 
3665
  {
 
3666
                report.Error (145, lexer.Location, "A const field requires a value to be provided");
 
3667
          }
 
3668
  break;
 
3669
case 816:
 
3670
  case_816();
 
3671
  break;
 
3672
case 821:
 
3673
  case_821();
 
3674
  break;
 
3675
case 823:
 
3676
  case_823();
 
3677
  break;
 
3678
case 824:
 
3679
  case_824();
 
3680
  break;
 
3681
case 825:
 
3682
  case_825();
 
3683
  break;
 
3684
case 826:
 
3685
#line 5536 "cs-parser.jay"
 
3686
  { yyVal = yyVals[-1+yyTop]; }
 
3687
  break;
 
3688
case 827:
 
3689
  case_827();
 
3690
  break;
 
3691
case 828:
 
3692
#line 5546 "cs-parser.jay"
 
3693
  { yyVal = yyVals[-1+yyTop]; }
 
3694
  break;
 
3695
case 829:
 
3696
#line 5547 "cs-parser.jay"
 
3697
  { yyVal = yyVals[-1+yyTop]; }
 
3698
  break;
 
3699
case 830:
 
3700
  case_830();
 
3701
  break;
 
3702
case 831:
 
3703
  case_831();
 
3704
  break;
 
3705
case 832:
 
3706
  case_832();
 
3707
  break;
 
3708
case 835:
 
3709
  case_835();
 
3710
  break;
 
3711
case 836:
 
3712
  case_836();
 
3713
  break;
 
3714
case 837:
 
3715
  case_837();
 
3716
  break;
 
3717
case 838:
 
3718
#line 5623 "cs-parser.jay"
 
3719
  {
 
3720
                start_block (GetLocation (yyVals[0+yyTop]));
 
3721
          }
 
3722
  break;
 
3723
case 839:
 
3724
  case_839();
 
3725
  break;
 
3726
case 840:
 
3727
  case_840();
 
3728
  break;
 
3729
case 841:
 
3730
#line 5643 "cs-parser.jay"
 
3731
  {
 
3732
                report.Warning (1522, 1, current_block.StartLocation, "Empty switch block"); 
 
3733
          }
 
3734
  break;
 
3735
case 845:
 
3736
#line 5653 "cs-parser.jay"
 
3737
  {
 
3738
                Error_SyntaxError (yyToken);
 
3739
          }
 
3740
  break;
 
3741
case 847:
 
3742
  case_847();
 
3743
  break;
 
3744
case 848:
 
3745
#line 5670 "cs-parser.jay"
 
3746
  {
 
3747
                current_block.AddStatement ((Statement) yyVals[0+yyTop]);
 
3748
          }
 
3749
  break;
 
3750
case 849:
 
3751
  case_849();
 
3752
  break;
 
3753
case 850:
 
3754
  case_850();
 
3755
  break;
 
3756
case 851:
 
3757
#line 5687 "cs-parser.jay"
 
3758
  {
 
3759
                yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
 
3760
          }
 
3761
  break;
 
3762
case 856:
 
3763
  case_856();
 
3764
  break;
 
3765
case 857:
 
3766
  case_857();
 
3767
  break;
 
3768
case 858:
 
3769
  case_858();
 
3770
  break;
 
3771
case 859:
 
3772
  case_859();
 
3773
  break;
 
3774
case 860:
 
3775
  case_860();
 
3776
  break;
 
3777
case 861:
 
3778
  case_861();
 
3779
  break;
 
3780
case 862:
 
3781
#line 5748 "cs-parser.jay"
 
3782
  {
 
3783
                yyVal = yyVals[0+yyTop];
 
3784
          }
 
3785
  break;
 
3786
case 863:
 
3787
  case_863();
 
3788
  break;
 
3789
case 864:
 
3790
#line 5763 "cs-parser.jay"
 
3791
  {
 
3792
                yyVal = yyVals[0+yyTop];
 
3793
          }
 
3794
  break;
 
3795
case 865:
 
3796
  case_865();
 
3797
  break;
 
3798
case 866:
 
3799
  case_866();
 
3800
  break;
 
3801
case 867:
 
3802
#line 5784 "cs-parser.jay"
 
3803
  {
 
3804
                yyVal = yyVals[0+yyTop];
 
3805
          }
 
3806
  break;
 
3807
case 868:
 
3808
  case_868();
 
3809
  break;
 
3810
case 869:
 
3811
  case_869();
 
3812
  break;
 
3813
case 870:
 
3814
  case_870();
 
3815
  break;
 
3816
case 871:
 
3817
#line 5818 "cs-parser.jay"
 
3818
  { yyVal = new EmptyStatement (lexer.Location); }
 
3819
  break;
 
3820
case 873:
 
3821
  case_873();
 
3822
  break;
 
3823
case 874:
 
3824
  case_874();
 
3825
  break;
 
3826
case 876:
 
3827
#line 5842 "cs-parser.jay"
 
3828
  { yyVal = null; }
 
3829
  break;
 
3830
case 878:
 
3831
#line 5847 "cs-parser.jay"
 
3832
  { yyVal = new EmptyStatement (lexer.Location); }
 
3833
  break;
 
3834
case 882:
 
3835
  case_882();
 
3836
  break;
 
3837
case 883:
 
3838
  case_883();
 
3839
  break;
 
3840
case 884:
 
3841
  case_884();
 
3842
  break;
 
3843
case 885:
 
3844
  case_885();
 
3845
  break;
 
3846
case 886:
 
3847
  case_886();
 
3848
  break;
 
3849
case 887:
 
3850
  case_887();
 
3851
  break;
 
3852
case 888:
 
3853
  case_888();
 
3854
  break;
 
3855
case 895:
 
3856
  case_895();
 
3857
  break;
 
3858
case 896:
 
3859
  case_896();
 
3860
  break;
 
3861
case 897:
 
3862
  case_897();
 
3863
  break;
 
3864
case 898:
 
3865
  case_898();
 
3866
  break;
 
3867
case 899:
 
3868
  case_899();
 
3869
  break;
 
3870
case 900:
 
3871
  case_900();
 
3872
  break;
 
3873
case 901:
 
3874
  case_901();
 
3875
  break;
 
3876
case 902:
 
3877
  case_902();
 
3878
  break;
 
3879
case 903:
 
3880
  case_903();
 
3881
  break;
 
3882
case 904:
 
3883
  case_904();
 
3884
  break;
 
3885
case 905:
 
3886
  case_905();
 
3887
  break;
 
3888
case 906:
 
3889
  case_906();
 
3890
  break;
 
3891
case 907:
 
3892
  case_907();
 
3893
  break;
 
3894
case 908:
 
3895
  case_908();
 
3896
  break;
 
3897
case 911:
 
3898
#line 6087 "cs-parser.jay"
 
3899
  {
 
3900
                yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
 
3901
          }
 
3902
  break;
 
3903
case 912:
 
3904
  case_912();
 
3905
  break;
 
3906
case 913:
 
3907
  case_913();
 
3908
  break;
 
3909
case 914:
 
3910
  case_914();
 
3911
  break;
 
3912
case 915:
 
3913
  case_915();
 
3914
  break;
 
3915
case 916:
 
3916
  case_916();
 
3917
  break;
 
3918
case 919:
 
3919
#line 6136 "cs-parser.jay"
 
3920
  {
 
3921
                yyVal = new Catch ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3922
          }
 
3923
  break;
 
3924
case 920:
 
3925
  case_920();
 
3926
  break;
 
3927
case 921:
 
3928
#line 6155 "cs-parser.jay"
 
3929
  {
 
3930
                yyVal = yyVals[-1+yyTop];
 
3931
          }
 
3932
  break;
 
3933
case 922:
 
3934
  case_922();
 
3935
  break;
 
3936
case 923:
 
3937
  case_923();
 
3938
  break;
 
3939
case 924:
 
3940
#line 6196 "cs-parser.jay"
 
3941
  {
 
3942
                yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3943
          }
 
3944
  break;
 
3945
case 925:
 
3946
#line 6203 "cs-parser.jay"
 
3947
  {
 
3948
                yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
3949
          }
 
3950
  break;
 
3951
case 926:
 
3952
  case_926();
 
3953
  break;
 
3954
case 927:
 
3955
#line 6213 "cs-parser.jay"
 
3956
  {
 
3957
                yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
3958
          }
 
3959
  break;
 
3960
case 928:
 
3961
  case_928();
 
3962
  break;
 
3963
case 929:
 
3964
  case_929();
 
3965
  break;
 
3966
case 930:
 
3967
  case_930();
 
3968
  break;
 
3969
case 931:
 
3970
  case_931();
 
3971
  break;
 
3972
case 932:
 
3973
  case_932();
 
3974
  break;
 
3975
case 933:
 
3976
  case_933();
 
3977
  break;
 
3978
case 934:
 
3979
  case_934();
 
3980
  break;
 
3981
case 935:
 
3982
  case_935();
 
3983
  break;
 
3984
case 936:
 
3985
  case_936();
 
3986
  break;
 
3987
case 937:
 
3988
  case_937();
 
3989
  break;
 
3990
case 939:
 
3991
  case_939();
 
3992
  break;
 
3993
case 940:
 
3994
#line 6318 "cs-parser.jay"
 
3995
  {
 
3996
                Error_MissingInitializer (lexer.Location);
 
3997
          }
 
3998
  break;
 
3999
case 941:
 
4000
  case_941();
 
4001
  break;
 
4002
case 942:
 
4003
  case_942();
 
4004
  break;
 
4005
case 943:
 
4006
  case_943();
 
4007
  break;
 
4008
case 944:
 
4009
  case_944();
 
4010
  break;
 
4011
case 945:
 
4012
  case_945();
 
4013
  break;
 
4014
case 946:
 
4015
  case_946();
 
4016
  break;
 
4017
case 947:
 
4018
  case_947();
 
4019
  break;
 
4020
case 948:
 
4021
  case_948();
 
4022
  break;
 
4023
case 949:
 
4024
  case_949();
 
4025
  break;
 
4026
case 950:
 
4027
#line 6423 "cs-parser.jay"
 
4028
  {
 
4029
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
4030
          }
 
4031
  break;
 
4032
case 951:
 
4033
  case_951();
 
4034
  break;
 
4035
case 952:
 
4036
#line 6439 "cs-parser.jay"
 
4037
  {
 
4038
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
4039
          }
 
4040
  break;
 
4041
case 953:
 
4042
  case_953();
 
4043
  break;
 
4044
case 954:
 
4045
  case_954();
 
4046
  break;
 
4047
case 955:
 
4048
  case_955();
 
4049
  break;
 
4050
case 957:
 
4051
  case_957();
 
4052
  break;
 
4053
case 958:
 
4054
  case_958();
 
4055
  break;
 
4056
case 959:
 
4057
#line 6503 "cs-parser.jay"
 
4058
  {
 
4059
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
4060
          }
 
4061
  break;
 
4062
case 960:
 
4063
  case_960();
 
4064
  break;
 
4065
case 961:
 
4066
  case_961();
 
4067
  break;
 
4068
case 962:
 
4069
  case_962();
 
4070
  break;
 
4071
case 963:
 
4072
  case_963();
 
4073
  break;
 
4074
case 964:
 
4075
#line 6542 "cs-parser.jay"
 
4076
  {
 
4077
                yyVal = new object[] { yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]) };
 
4078
          }
 
4079
  break;
 
4080
case 965:
 
4081
  case_965();
 
4082
  break;
 
4083
case 967:
 
4084
  case_967();
 
4085
  break;
 
4086
case 973:
 
4087
#line 6571 "cs-parser.jay"
 
4088
  {
 
4089
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
4090
          }
 
4091
  break;
 
4092
case 974:
 
4093
  case_974();
 
4094
  break;
 
4095
case 975:
 
4096
#line 6590 "cs-parser.jay"
 
4097
  {
 
4098
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
4099
          }
 
4100
  break;
 
4101
case 976:
 
4102
  case_976();
 
4103
  break;
 
4104
case 977:
 
4105
  case_977();
 
4106
  break;
 
4107
case 978:
 
4108
  case_978();
 
4109
  break;
 
4110
case 979:
 
4111
  case_979();
 
4112
  break;
 
4113
case 980:
 
4114
  case_980();
 
4115
  break;
 
4116
case 981:
 
4117
  case_981();
 
4118
  break;
 
4119
case 982:
 
4120
  case_982();
 
4121
  break;
 
4122
case 983:
 
4123
  case_983();
 
4124
  break;
 
4125
case 984:
 
4126
  case_984();
 
4127
  break;
 
4128
case 986:
 
4129
  case_986();
 
4130
  break;
 
4131
case 987:
 
4132
  case_987();
 
4133
  break;
 
4134
case 988:
 
4135
  case_988();
 
4136
  break;
 
4137
case 990:
 
4138
  case_990();
 
4139
  break;
 
4140
case 991:
 
4141
  case_991();
 
4142
  break;
 
4143
case 993:
 
4144
  case_993();
 
4145
  break;
 
4146
case 994:
 
4147
  case_994();
 
4148
  break;
 
4149
case 995:
 
4150
#line 6791 "cs-parser.jay"
 
4151
  {
 
4152
                yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);       
 
4153
          }
 
4154
  break;
 
4155
case 996:
 
4156
  case_996();
 
4157
  break;
 
4158
case 997:
 
4159
  case_997();
 
4160
  break;
 
4161
case 998:
 
4162
#line 6808 "cs-parser.jay"
 
4163
  {
 
4164
                yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);        
 
4165
          }
 
4166
  break;
 
4167
case 999:
 
4168
  case_999();
 
4169
  break;
 
4170
case 1000:
 
4171
  case_1000();
 
4172
  break;
 
4173
case 1002:
 
4174
  case_1002();
 
4175
  break;
 
4176
case 1003:
 
4177
  case_1003();
 
4178
  break;
 
4179
case 1006:
 
4180
  case_1006();
 
4181
  break;
 
4182
case 1007:
 
4183
  case_1007();
 
4184
  break;
 
4185
case 1015:
 
4186
#line 6930 "cs-parser.jay"
 
4187
  {
 
4188
                module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
 
4189
          }
 
4190
  break;
 
4191
case 1016:
 
4192
#line 6937 "cs-parser.jay"
 
4193
  {
 
4194
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
 
4195
          }
 
4196
  break;
 
4197
case 1017:
 
4198
  case_1017();
 
4199
  break;
 
4200
case 1018:
 
4201
  case_1018();
 
4202
  break;
 
4203
case 1019:
 
4204
#line 6954 "cs-parser.jay"
 
4205
  {
 
4206
                yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
 
4207
          }
 
4208
  break;
 
4209
case 1020:
 
4210
#line 6958 "cs-parser.jay"
 
4211
  {
 
4212
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
 
4213
          }
 
4214
  break;
 
4215
case 1021:
 
4216
  case_1021();
 
4217
  break;
 
4218
case 1022:
 
4219
  case_1022();
 
4220
  break;
 
4221
case 1023:
 
4222
  case_1023();
 
4223
  break;
 
4224
case 1024:
 
4225
  case_1024();
 
4226
  break;
 
4227
case 1026:
 
4228
#line 6994 "cs-parser.jay"
 
4229
  {
 
4230
                yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]);
 
4231
          }
 
4232
  break;
 
4233
case 1028:
 
4234
#line 7002 "cs-parser.jay"
 
4235
  {
 
4236
                valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
 
4237
          }
 
4238
  break;
 
4239
case 1029:
 
4240
#line 7006 "cs-parser.jay"
 
4241
  {
 
4242
                yyVal = yyVals[-1+yyTop];
 
4243
          }
 
4244
  break;
 
4245
case 1030:
 
4246
#line 7013 "cs-parser.jay"
 
4247
  {
 
4248
                yyVal = new List<DocumentationParameter> (0);
 
4249
          }
 
4250
  break;
 
4251
case 1032:
 
4252
  case_1032();
 
4253
  break;
 
4254
case 1033:
 
4255
  case_1033();
 
4256
  break;
 
4257
case 1034:
 
4258
  case_1034();
 
4259
  break;
 
4260
#line default
 
4261
        }
 
4262
        yyTop -= yyLen[yyN];
 
4263
        yyState = yyStates[yyTop];
 
4264
        int yyM = yyLhs[yyN];
 
4265
        if (yyState == 0 && yyM == 0) {
 
4266
//t          if (debug != null) debug.shift(0, yyFinal);
 
4267
          yyState = yyFinal;
 
4268
          if (yyToken < 0) {
 
4269
            yyToken = yyLex.advance() ? yyLex.token() : 0;
 
4270
//t            if (debug != null)
 
4271
//t               debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value());
 
4272
          }
 
4273
          if (yyToken == 0) {
 
4274
//t            if (debug != null) debug.accept(yyVal);
 
4275
            return yyVal;
 
4276
          }
 
4277
          goto continue_yyLoop;
 
4278
        }
 
4279
        if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0)
 
4280
            && (yyN < yyTable.Length) && (yyCheck[yyN] == yyState))
 
4281
          yyState = yyTable[yyN];
 
4282
        else
 
4283
          yyState = yyDgoto[yyM];
 
4284
//t        if (debug != null) debug.shift(yyStates[yyTop], yyState);
 
4285
         goto continue_yyLoop;
 
4286
      continue_yyDiscarded: ;   // implements the named-loop continue: 'continue yyDiscarded'
 
4287
      }
 
4288
    continue_yyLoop: ;          // implements the named-loop continue: 'continue yyLoop'
 
4289
    }
 
4290
  }
 
4291
 
 
4292
/*
 
4293
 All more than 3 lines long rules are wrapped into a method
 
4294
*/
 
4295
void case_6()
 
4296
#line 394 "cs-parser.jay"
 
4297
{
 
4298
                if (yyVals[0+yyTop] != null) {
 
4299
                        Attributes attrs = (Attributes) yyVals[0+yyTop];
 
4300
                        report.Error (1730, attrs.Attrs [0].Location,
 
4301
                                "Assembly and module attributes must precede all other elements except using clauses and extern alias declarations");
 
4302
 
 
4303
                        current_namespace.UnattachedAttributes = attrs;
 
4304
                }
 
4305
          }
 
4306
 
 
4307
void case_8()
 
4308
#line 408 "cs-parser.jay"
 
4309
{
 
4310
                if (yyToken == Token.EXTERN_ALIAS)
 
4311
                        report.Error (439, lexer.Location, "An extern alias declaration must precede all other elements");
 
4312
                else
 
4313
                        Error_SyntaxError (yyToken);
 
4314
          }
 
4315
 
 
4316
void case_13()
 
4317
#line 428 "cs-parser.jay"
 
4318
{
 
4319
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
4320
                string s = lt.Value;
 
4321
                if (s != "alias") {
 
4322
                        syntax_error (lt.Location, "`alias' expected");
 
4323
                } else {
 
4324
                        if (lang_version == LanguageVersion.ISO_1)
 
4325
                                FeatureIsNotAvailable (lt.Location, "external alias");
 
4326
 
 
4327
                        lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
4328
                        if (lt.Value == QualifiedAliasMember.GlobalAlias) {
 
4329
                                RootNamespace.Error_GlobalNamespaceRedefined (report, lt.Location);
 
4330
                        }
 
4331
                        
 
4332
                        var na = new UsingExternAlias (new SimpleMemberName (lt.Value, lt.Location), GetLocation (yyVals[-3+yyTop]));
 
4333
                        current_namespace.AddUsing (na);
 
4334
                        
 
4335
                        lbag.AddLocation (na, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4336
                }
 
4337
          }
 
4338
 
 
4339
void case_17()
 
4340
#line 461 "cs-parser.jay"
 
4341
{
 
4342
                if (doc_support)
 
4343
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4344
          }
 
4345
 
 
4346
void case_18()
 
4347
#line 469 "cs-parser.jay"
 
4348
{
 
4349
                var un = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
4350
                current_namespace.AddUsing (un);
 
4351
                
 
4352
                lbag.AddLocation (un, GetLocation (yyVals[0+yyTop]));
 
4353
          }
 
4354
 
 
4355
void case_19()
 
4356
#line 476 "cs-parser.jay"
 
4357
{
 
4358
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
4359
                if (lang_version != LanguageVersion.ISO_1 && lt.Value == "global") {
 
4360
                        report.Warning (440, 2, lt.Location,
 
4361
                         "An alias named `global' will not be used when resolving `global::'. The global namespace will be used instead");
 
4362
                }
 
4363
 
 
4364
                var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
 
4365
                current_namespace.AddUsing (un);
 
4366
                lbag.AddLocation (un, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4367
          }
 
4368
 
 
4369
void case_20()
 
4370
#line 488 "cs-parser.jay"
 
4371
{
 
4372
                Error_SyntaxError (yyToken);
 
4373
                yyVal = null;
 
4374
         }
 
4375
 
 
4376
void case_21()
 
4377
#line 501 "cs-parser.jay"
 
4378
{
 
4379
                Attributes attrs = (Attributes) yyVals[-2+yyTop];
 
4380
                var name = (MemberName) yyVals[0+yyTop];
 
4381
                if (attrs != null) {
 
4382
                        bool valid_global_attrs = true;
 
4383
                        if ((current_namespace.DeclarationFound || current_namespace != file)) {
 
4384
                                valid_global_attrs = false;
 
4385
                        } else {
 
4386
                                foreach (var a in attrs.Attrs) {
 
4387
                                        if (a.ExplicitTarget == "assembly" || a.ExplicitTarget == "module")
 
4388
                                                continue;
 
4389
                                                
 
4390
                                        valid_global_attrs = false;
 
4391
                                        break;
 
4392
                                }
 
4393
                        }
 
4394
                        
 
4395
                        if (!valid_global_attrs)
 
4396
                                report.Error (1671, name.Location, "A namespace declaration cannot have modifiers or attributes");
 
4397
                }
 
4398
        
 
4399
                module.AddAttributes (attrs, current_namespace);
 
4400
                
 
4401
                var ns = new NamespaceContainer (name, current_namespace);
 
4402
                current_namespace.AddTypeContainer (ns);
 
4403
                current_container = current_namespace = ns;
 
4404
          }
 
4405
 
 
4406
void case_22()
 
4407
#line 529 "cs-parser.jay"
 
4408
{
 
4409
                if (doc_support)
 
4410
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4411
          }
 
4412
 
 
4413
void case_23()
 
4414
#line 534 "cs-parser.jay"
 
4415
{
 
4416
                if (yyVals[0+yyTop] != null)
 
4417
                        lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4418
                else
 
4419
                        lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
4420
          
 
4421
                current_container = current_namespace = current_namespace.Parent;
 
4422
          }
 
4423
 
 
4424
void case_24()
 
4425
#line 543 "cs-parser.jay"
 
4426
{
 
4427
                report.Error (1514, lexer.Location, "Unexpected symbol `{0}', expecting `.' or `{{'", GetSymbolName (yyToken));
 
4428
 
 
4429
                var name = (MemberName) yyVals[0+yyTop];                
 
4430
                var ns = new NamespaceContainer (name, current_namespace);
 
4431
                lbag.AddLocation (ns, GetLocation (yyVals[-1+yyTop]));
 
4432
                current_namespace.AddTypeContainer (ns);
 
4433
          }
 
4434
 
 
4435
void case_27()
 
4436
#line 557 "cs-parser.jay"
 
4437
{
 
4438
                Error_SyntaxError (yyToken);
 
4439
                yyVal = null;
 
4440
          }
 
4441
 
 
4442
void case_28()
 
4443
#line 565 "cs-parser.jay"
 
4444
{
 
4445
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4446
                yyVal = new MemberName (lt.Value, lt.Location);
 
4447
          }
 
4448
 
 
4449
void case_29()
 
4450
#line 570 "cs-parser.jay"
 
4451
{
 
4452
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4453
                yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], lt.Value, lt.Location) {
 
4454
                        DotLocation = GetLocation (yyVals[-1+yyTop])
 
4455
                };
 
4456
          }
 
4457
 
 
4458
void case_30()
 
4459
#line 577 "cs-parser.jay"
 
4460
{
 
4461
                Error_SyntaxError (yyToken);
 
4462
                yyVal = new MemberName ("<invalid>", lexer.Location);
 
4463
          }
 
4464
 
 
4465
void case_43()
 
4466
#line 615 "cs-parser.jay"
 
4467
{
 
4468
                if (yyVals[0+yyTop] != null) {
 
4469
                        TypeContainer ds = (TypeContainer)yyVals[0+yyTop];
 
4470
 
 
4471
                        if ((ds.ModFlags & (Modifiers.PRIVATE | Modifiers.PROTECTED)) != 0){
 
4472
                                report.Error (1527, ds.Location, 
 
4473
                                "Namespace elements cannot be explicitly declared as private, protected or protected internal");
 
4474
                        }
 
4475
 
 
4476
                        /* Here is a trick, for explicit attributes we don't know where they belong to until*/
 
4477
                        /* we parse succeeding declaration hence we parse them as normal and re-attach them*/
 
4478
                        /* when we know whether they are global (assembly:, module:) or local (type:).*/
 
4479
                        if (ds.OptAttributes != null) {
 
4480
                                ds.OptAttributes.ConvertGlobalAttributes (ds, current_namespace, !current_namespace.DeclarationFound && current_namespace == file);
 
4481
                        }
 
4482
                }
 
4483
                current_namespace.DeclarationFound = true;
 
4484
          }
 
4485
 
 
4486
void case_45()
 
4487
#line 637 "cs-parser.jay"
 
4488
{
 
4489
                current_namespace.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
 
4490
                report.Error (1518, lexer.Location, "Attributes must be attached to class, delegate, enum, interface or struct");
 
4491
                lexer.putback ('}');
 
4492
          }
 
4493
 
 
4494
void case_53()
 
4495
#line 670 "cs-parser.jay"
 
4496
{
 
4497
                var sect = (List<Attribute>) yyVals[0+yyTop];
 
4498
                yyVal = new Attributes (sect);
 
4499
                if (locationListStack.Count > 0)
 
4500
                        lbag.AddLocation (sect, locationListStack.Pop ());
 
4501
                if (attributeCommas.Count > 0) {
 
4502
                        lbag.AddLocation (sect, attributeCommas);
 
4503
                        attributeCommas.Clear ();
 
4504
                }
 
4505
          }
 
4506
 
 
4507
void case_54()
 
4508
#line 681 "cs-parser.jay"
 
4509
{
 
4510
                Attributes attrs = yyVals[-1+yyTop] as Attributes;
 
4511
                var sect = (List<Attribute>) yyVals[0+yyTop];
 
4512
                
 
4513
                if (locationListStack.Count > 0)
 
4514
                        lbag.AddLocation (sect, locationListStack.Pop ());
 
4515
                if (attrs == null)
 
4516
                        attrs = new Attributes (sect);
 
4517
                else
 
4518
                        attrs.AddAttributes (sect);
 
4519
                yyVal = attrs;
 
4520
          }
 
4521
 
 
4522
void case_55()
 
4523
#line 697 "cs-parser.jay"
 
4524
{
 
4525
                PushLocation (GetLocation (yyVals[0+yyTop]));
 
4526
                lexer.parsing_attribute_section = true;
 
4527
                savedOpenLocation = GetLocation (yyVals[0+yyTop]);
 
4528
          }
 
4529
 
 
4530
void case_56()
 
4531
#line 703 "cs-parser.jay"
 
4532
{
 
4533
                lexer.parsing_attribute_section = false;
 
4534
                yyVal = yyVals[0+yyTop];
 
4535
          }
 
4536
 
 
4537
void case_57()
 
4538
#line 711 "cs-parser.jay"
 
4539
{
 
4540
                current_attr_target = (string) yyVals[-1+yyTop];
 
4541
                if (current_attr_target == "assembly" || current_attr_target == "module") {
 
4542
                        Lexer.check_incorrect_doc_comment ();
 
4543
                }
 
4544
          }
 
4545
 
 
4546
void case_58()
 
4547
#line 718 "cs-parser.jay"
 
4548
{
 
4549
                /* when attribute target is invalid*/
 
4550
                if (current_attr_target == string.Empty)
 
4551
                        yyVal = new List<Attribute> (0);
 
4552
                else
 
4553
                        yyVal = yyVals[-2+yyTop];
 
4554
 
 
4555
                lbag.InsertLocation (yyVal, 0, PopLocation ());
 
4556
                if (yyVals[-1+yyTop] != null) {
 
4557
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4558
                } else {
 
4559
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4560
                }
 
4561
 
 
4562
                current_attr_target = null;
 
4563
                lexer.parsing_attribute_section = false;
 
4564
          }
 
4565
 
 
4566
void case_59()
 
4567
#line 736 "cs-parser.jay"
 
4568
{
 
4569
                yyVal = yyVals[-2+yyTop];
 
4570
 
 
4571
                lbag.InsertLocation (yyVal, 0, PopLocation ());
 
4572
                if (yyVals[-1+yyTop] != null) {
 
4573
                        lbag.AddLocation (yyVal, GetLocation(yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4574
                } else {
 
4575
                        lbag.AddLocation (yyVal, GetLocation(yyVals[0+yyTop]));
 
4576
                }
 
4577
          }
 
4578
 
 
4579
void case_60()
 
4580
#line 747 "cs-parser.jay"
 
4581
{
 
4582
                Error_SyntaxError (yyToken);
 
4583
 
 
4584
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
4585
                var tne = new SimpleName (lt.Value, null, lt.Location);
 
4586
 
 
4587
                yyVal = new List<Attribute> () {
 
4588
                        new Attribute (null, tne, null, GetLocation (yyVals[-1+yyTop]), false)
 
4589
                };
 
4590
          }
 
4591
 
 
4592
void case_61()
 
4593
#line 758 "cs-parser.jay"
 
4594
{
 
4595
                yyVal = CheckAttributeTarget (GetTokenName (yyToken), GetLocation (yyVals[0+yyTop])); 
 
4596
                yyVal = null;
 
4597
          }
 
4598
 
 
4599
void case_62()
 
4600
#line 766 "cs-parser.jay"
 
4601
{
 
4602
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4603
                yyVal = CheckAttributeTarget (lt.Value, lt.Location);
 
4604
                savedCloseLocation = GetLocation (yyVals[0+yyTop]);
 
4605
          }
 
4606
 
 
4607
void case_66()
 
4608
#line 781 "cs-parser.jay"
 
4609
{
 
4610
                var attrs = (List<Attribute>) yyVals[-2+yyTop];
 
4611
                if (attrs != null) {
 
4612
                        attrs.Add ((Attribute) yyVals[0+yyTop]);
 
4613
                        lbag.AddLocation (attrs, GetLocation (yyVals[-1+yyTop]));
 
4614
                }
 
4615
 
 
4616
                yyVal = attrs;
 
4617
          }
 
4618
 
 
4619
void case_68()
 
4620
#line 798 "cs-parser.jay"
 
4621
{
 
4622
                --lexer.parsing_block;
 
4623
                
 
4624
                var tne = (ATypeNameExpression) yyVals[-2+yyTop];
 
4625
                if (tne.HasTypeArguments) {
 
4626
                        report.Error (404, tne.Location, "Attributes cannot be generic");
 
4627
                }
 
4628
                Arguments [] arguments = (Arguments []) yyVals[0+yyTop];
 
4629
 
 
4630
                yyVal = new Attribute (current_attr_target, tne, (Arguments[]) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), lexer.IsEscapedIdentifier (tne));
 
4631
                if (arguments != null) {
 
4632
                        attributeArgumentCommas.Insert (0, savedAttrParenOpenLocation);
 
4633
                        attributeArgumentCommas.Add (savedAttrParenCloseLocation);
 
4634
                        lbag.AddLocation (yyVal, attributeArgumentCommas);
 
4635
                        attributeArgumentCommas.Clear ();
 
4636
                } else if (HadAttributeParens) {
 
4637
                        lbag.AddLocation (yyVal, savedAttrParenOpenLocation, savedAttrParenCloseLocation);
 
4638
                }
 
4639
          }
 
4640
 
 
4641
void case_71()
 
4642
#line 826 "cs-parser.jay"
 
4643
{
 
4644
                savedAttrParenOpenLocation = GetLocation (yyVals[-2+yyTop]);
 
4645
                savedAttrParenCloseLocation = GetLocation (yyVals[0+yyTop]);
 
4646
                yyVal = yyVals[-1+yyTop];
 
4647
                HadAttributeParens = true;
 
4648
          }
 
4649
 
 
4650
void case_73()
 
4651
#line 838 "cs-parser.jay"
 
4652
{
 
4653
                Arguments a = new Arguments (4);
 
4654
                a.Add ((Argument) yyVals[0+yyTop]);
 
4655
                yyVal = new Arguments [] { a, null };
 
4656
          }
 
4657
 
 
4658
void case_74()
 
4659
#line 844 "cs-parser.jay"
 
4660
{
 
4661
                Arguments a = new Arguments (4);
 
4662
                a.Add ((Argument) yyVals[0+yyTop]);  
 
4663
                yyVal = new Arguments [] { null, a };
 
4664
          }
 
4665
 
 
4666
void case_75()
 
4667
#line 850 "cs-parser.jay"
 
4668
{
 
4669
                Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
 
4670
                if (o [1] != null) {
 
4671
                        report.Error (1016, ((Argument) yyVals[0+yyTop]).Expr.Location, "Named attribute arguments must appear after the positional arguments");
 
4672
                        o [0] = new Arguments (4);
 
4673
                }
 
4674
                
 
4675
                Arguments args = ((Arguments) o [0]);
 
4676
                if (args.Count > 0 && !(yyVals[0+yyTop] is NamedArgument) && args [args.Count - 1] is NamedArgument)
 
4677
                        Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
 
4678
                
 
4679
                args.Add ((Argument) yyVals[0+yyTop]);
 
4680
                attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
4681
          }
 
4682
 
 
4683
void case_76()
 
4684
#line 865 "cs-parser.jay"
 
4685
{
 
4686
                Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
 
4687
                if (o [1] == null) {
 
4688
                        o [1] = new Arguments (4);
 
4689
                }
 
4690
 
 
4691
                ((Arguments) o [1]).Add ((Argument) yyVals[0+yyTop]);
 
4692
                attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
4693
          }
 
4694
 
 
4695
void case_79()
 
4696
#line 883 "cs-parser.jay"
 
4697
{
 
4698
                Error_SyntaxError (yyToken);
 
4699
                yyVal = null;
 
4700
          }
 
4701
 
 
4702
void case_81()
 
4703
#line 895 "cs-parser.jay"
 
4704
{
 
4705
                --lexer.parsing_block;
 
4706
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
4707
                yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop]);          
 
4708
                lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
 
4709
          }
 
4710
 
 
4711
void case_82()
 
4712
#line 905 "cs-parser.jay"
 
4713
{
 
4714
                if (lang_version <= LanguageVersion.V_3)
 
4715
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument");
 
4716
                        
 
4717
                /* Avoid boxing in common case (no modifier)*/
 
4718
                var arg_mod = yyVals[-1+yyTop] == null ? Argument.AType.None : (Argument.AType) yyVals[-1+yyTop];
 
4719
                        
 
4720
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
4721
                yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop], arg_mod);
 
4722
                lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
 
4723
          }
 
4724
 
 
4725
void case_102()
 
4726
#line 960 "cs-parser.jay"
 
4727
{
 
4728
                report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration",
 
4729
                        GetSymbolName (yyToken));
 
4730
                yyVal = null;
 
4731
                lexer.parsing_generic_declaration = false;
 
4732
          }
 
4733
 
 
4734
void case_104()
 
4735
#line 976 "cs-parser.jay"
 
4736
 
4737
                lexer.ConstraintsParsing = true;
 
4738
                push_current_container (new Struct (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
 
4739
                lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
 
4740
          }
 
4741
 
 
4742
void case_105()
 
4743
#line 983 "cs-parser.jay"
 
4744
{
 
4745
                lexer.ConstraintsParsing = false;
 
4746
 
 
4747
                if (yyVals[0+yyTop] != null)
 
4748
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
 
4749
 
 
4750
                if (doc_support)
 
4751
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
 
4752
 
 
4753
                
 
4754
                lexer.parsing_modifiers = true;
 
4755
          }
 
4756
 
 
4757
void case_106()
 
4758
#line 996 "cs-parser.jay"
 
4759
{
 
4760
                if (doc_support)
 
4761
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4762
          }
 
4763
 
 
4764
void case_107()
 
4765
#line 1001 "cs-parser.jay"
 
4766
{
 
4767
                --lexer.parsing_declaration;
 
4768
                if (doc_support)
 
4769
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4770
          }
 
4771
 
 
4772
void case_108()
 
4773
#line 1007 "cs-parser.jay"
 
4774
{
 
4775
                if (yyVals[0+yyTop] == null) {
 
4776
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
4777
                } else {
 
4778
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4779
                }
 
4780
                yyVal = pop_current_class ();
 
4781
          }
 
4782
 
 
4783
void case_110()
 
4784
#line 1025 "cs-parser.jay"
 
4785
{
 
4786
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4787
                var mod = (Modifiers) yyVals[-3+yyTop];
 
4788
                current_field = new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], mod, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
 
4789
                current_type.AddMember (current_field);
 
4790
                
 
4791
                if ((mod & Modifiers.STATIC) != 0) {
 
4792
                        report.Error (504, current_field.Location, "The constant `{0}' cannot be marked static", current_field.GetSignatureForError ());
 
4793
                }
 
4794
                
 
4795
                yyVal = current_field;
 
4796
          }
 
4797
 
 
4798
void case_111()
 
4799
#line 1038 "cs-parser.jay"
 
4800
{
 
4801
                if (doc_support) {
 
4802
                        current_field.DocComment = Lexer.consume_doc_comment ();
 
4803
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4804
                }
 
4805
                
 
4806
                current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];
 
4807
                lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4808
                current_field = null;
 
4809
          }
 
4810
 
 
4811
void case_112()
 
4812
#line 1051 "cs-parser.jay"
 
4813
{
 
4814
                Error_SyntaxError (yyToken);
 
4815
 
 
4816
                current_type.AddMember (new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
 
4817
          }
 
4818
 
 
4819
void case_117()
 
4820
#line 1076 "cs-parser.jay"
 
4821
{
 
4822
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
4823
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
 
4824
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
4825
          }
 
4826
 
 
4827
void case_119()
 
4828
#line 1089 "cs-parser.jay"
 
4829
{
 
4830
                --lexer.parsing_block;
 
4831
                yyVal = new ConstInitializer (current_field, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
4832
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
4833
          }
 
4834
 
 
4835
void case_120()
 
4836
#line 1095 "cs-parser.jay"
 
4837
{
 
4838
                report.Error (145, lexer.Location, "A const field requires a value to be provided");
 
4839
                yyVal = null;
 
4840
          }
 
4841
 
 
4842
void case_123()
 
4843
#line 1110 "cs-parser.jay"
 
4844
{
 
4845
                lexer.parsing_generic_declaration = false;
 
4846
 
 
4847
                FullNamedExpression type = (FullNamedExpression) yyVals[-1+yyTop];
 
4848
                if (type.Type != null && type.Type.Kind == MemberKind.Void)
 
4849
                        report.Error (670, GetLocation (yyVals[-1+yyTop]), "Fields cannot have void type");
 
4850
                        
 
4851
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4852
                current_field = new Field (current_type, type, (Modifiers) yyVals[-2+yyTop], new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-3+yyTop]);
 
4853
                current_type.AddField (current_field);
 
4854
                yyVal = current_field;
 
4855
          }
 
4856
 
 
4857
void case_124()
 
4858
#line 1125 "cs-parser.jay"
 
4859
 
4860
                if (doc_support) {
 
4861
                        current_field.DocComment = Lexer.consume_doc_comment ();
 
4862
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4863
                }
 
4864
                        
 
4865
                lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
 
4866
                yyVal = current_field;
 
4867
                current_field = null;
 
4868
          }
 
4869
 
 
4870
void case_125()
 
4871
#line 1138 "cs-parser.jay"
 
4872
 
4873
                if (lang_version < LanguageVersion.ISO_2)
 
4874
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers");
 
4875
 
 
4876
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4877
                current_field = new FixedField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop],
 
4878
                        new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
 
4879
                        
 
4880
                current_type.AddField (current_field);
 
4881
          }
 
4882
 
 
4883
void case_126()
 
4884
#line 1149 "cs-parser.jay"
 
4885
{
 
4886
                if (doc_support) {
 
4887
                        current_field.DocComment = Lexer.consume_doc_comment ();
 
4888
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4889
            }
 
4890
 
 
4891
                current_field.Initializer = (ConstInitializer) yyVals[-2+yyTop];            
 
4892
                lbag.AddMember (current_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
 
4893
                yyVal = current_field;
 
4894
            current_field = null;
 
4895
          }
 
4896
 
 
4897
void case_129()
 
4898
#line 1172 "cs-parser.jay"
 
4899
{
 
4900
                ++lexer.parsing_block;
 
4901
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
 
4902
                start_block (GetLocation (yyVals[0+yyTop]));
 
4903
          }
 
4904
 
 
4905
void case_130()
 
4906
#line 1178 "cs-parser.jay"
 
4907
{
 
4908
                --lexer.parsing_block;
 
4909
                current_field.Initializer = (Expression) yyVals[0+yyTop];
 
4910
                lbag.AppendToMember (current_field, GetLocation (yyVals[-2+yyTop]));
 
4911
                end_block (lexer.Location);
 
4912
                current_local_parameters = null;
 
4913
          }
 
4914
 
 
4915
void case_135()
 
4916
#line 1205 "cs-parser.jay"
 
4917
{
 
4918
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
4919
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
 
4920
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
4921
          }
 
4922
 
 
4923
void case_137()
 
4924
#line 1215 "cs-parser.jay"
 
4925
{
 
4926
                --lexer.parsing_block;
 
4927
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];       
 
4928
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
 
4929
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
4930
          }
 
4931
 
 
4932
void case_142()
 
4933
#line 1241 "cs-parser.jay"
 
4934
{
 
4935
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];       
 
4936
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
 
4937
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
4938
          }
 
4939
 
 
4940
void case_144()
 
4941
#line 1254 "cs-parser.jay"
 
4942
{
 
4943
                --lexer.parsing_block;
 
4944
                yyVal = new ConstInitializer (current_field, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
4945
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
4946
          }
 
4947
 
 
4948
void case_145()
 
4949
#line 1260 "cs-parser.jay"
 
4950
{
 
4951
                report.Error (443, lexer.Location, "Value or constant expected");
 
4952
                yyVal = null;
 
4953
          }
 
4954
 
 
4955
void case_148()
 
4956
#line 1270 "cs-parser.jay"
 
4957
{
 
4958
                /* It has to be here for the parent to safely restore artificial block*/
 
4959
                Error_SyntaxError (yyToken);
 
4960
                yyVal = null;
 
4961
          }
 
4962
 
 
4963
void case_149()
 
4964
#line 1279 "cs-parser.jay"
 
4965
{
 
4966
                if (doc_support)
 
4967
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
4968
 
 
4969
                /* Was added earlier in the case of body being eof for full ast*/
 
4970
          }
 
4971
 
 
4972
void case_150()
 
4973
#line 1286 "cs-parser.jay"
 
4974
{
 
4975
                Method method = (Method) yyVals[-2+yyTop];
 
4976
                method.Block = (ToplevelBlock) yyVals[0+yyTop];
 
4977
                async_block = false;
 
4978
                
 
4979
                if (method.Block == null) {
 
4980
                        lbag.AppendToMember (method, savedLocation); /* semicolon*/
 
4981
                        method.ParameterInfo.CheckParameters (method);
 
4982
 
 
4983
                        if ((method.ModFlags & Modifiers.ASYNC) != 0) {
 
4984
                                report.Error (1994, method.Location, "`{0}': The async modifier can only be used with methods that have a body",
 
4985
                                        method.GetSignatureForError ());
 
4986
                        }
 
4987
                } else {
 
4988
                        if (current_container.Kind == MemberKind.Interface) {
 
4989
                                report.Error (531, method.Location, "`{0}': interface members cannot have a definition",
 
4990
                                        method.GetSignatureForError ());
 
4991
                        }
 
4992
                }
 
4993
 
 
4994
                current_local_parameters = null;
 
4995
 
 
4996
                if (doc_support)
 
4997
                        Lexer.doc_state = XmlCommentState.Allowed;
 
4998
          }
 
4999
 
 
5000
void case_152()
 
5001
#line 1322 "cs-parser.jay"
 
5002
{
 
5003
                valid_param_mod = 0;
 
5004
                MemberName name = (MemberName) yyVals[-4+yyTop];
 
5005
                current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
 
5006
 
 
5007
                var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-6+yyTop],
 
5008
                                     name, current_local_parameters, (Attributes) yyVals[-7+yyTop]);
 
5009
 
 
5010
                current_type.AddMember (method);
 
5011
 
 
5012
                async_block = (method.ModFlags & Modifiers.ASYNC) != 0;
 
5013
 
 
5014
                if (doc_support)
 
5015
                        method.DocComment = Lexer.consume_doc_comment ();
 
5016
 
 
5017
                lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5018
                yyVal = method;
 
5019
 
 
5020
                lexer.ConstraintsParsing = true;
 
5021
          }
 
5022
 
 
5023
void case_153()
 
5024
#line 1343 "cs-parser.jay"
 
5025
{
 
5026
                lexer.ConstraintsParsing = false;
 
5027
 
 
5028
                if (yyVals[0+yyTop] != null) {
 
5029
                        var method = (Method) yyVals[-1+yyTop];
 
5030
                        method.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
 
5031
                }
 
5032
 
 
5033
                yyVal = yyVals[-1+yyTop];
 
5034
          }
 
5035
 
 
5036
void case_155()
 
5037
#line 1362 "cs-parser.jay"
 
5038
{
 
5039
                lexer.parsing_generic_declaration = false;
 
5040
                valid_param_mod = ParameterModifierType.All;
 
5041
          }
 
5042
 
 
5043
void case_157()
 
5044
#line 1371 "cs-parser.jay"
 
5045
{
 
5046
                lexer.ConstraintsParsing = false;
 
5047
                valid_param_mod = 0;
 
5048
 
 
5049
                MemberName name = (MemberName) yyVals[-6+yyTop];
 
5050
                current_local_parameters = (ParametersCompiled) yyVals[-3+yyTop];
 
5051
 
 
5052
                var modifiers = (Modifiers) yyVals[-10+yyTop];
 
5053
                modifiers |= Modifiers.PARTIAL;
 
5054
 
 
5055
                var method = Method.Create (current_type, new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-8+yyTop])),
 
5056
                                     modifiers, name, current_local_parameters, (Attributes) yyVals[-11+yyTop]);
 
5057
 
 
5058
                current_type.AddMember (method);
 
5059
 
 
5060
                if (yyVals[-1+yyTop] != null)
 
5061
                        method.SetConstraints ((List<Constraints>) yyVals[-1+yyTop]);
 
5062
 
 
5063
                if (doc_support)
 
5064
                        method.DocComment = Lexer.consume_doc_comment ();
 
5065
 
 
5066
                StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[-9+yyTop]));
 
5067
                lbag.AddMember (method, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
5068
                yyVal = method;
 
5069
          }
 
5070
 
 
5071
void case_158()
 
5072
#line 1400 "cs-parser.jay"
 
5073
{
 
5074
                MemberName name = (MemberName) yyVals[-3+yyTop];
 
5075
                report.Error (1585, name.Location, 
 
5076
                        "Member modifier `{0}' must precede the member type and name", ModifiersExtensions.Name ((Modifiers) yyVals[-4+yyTop]));
 
5077
 
 
5078
                var method = Method.Create (current_type, (FullNamedExpression) yyVals[-5+yyTop],
 
5079
                                            0, name, (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop]);
 
5080
 
 
5081
                current_type.AddMember (method);
 
5082
 
 
5083
                current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
 
5084
 
 
5085
                if (doc_support)
 
5086
                        method.DocComment = Lexer.consume_doc_comment ();
 
5087
 
 
5088
                yyVal = method;
 
5089
          }
 
5090
 
 
5091
void case_159()
 
5092
#line 1421 "cs-parser.jay"
 
5093
{
 
5094
                Error_SyntaxError (yyToken);
 
5095
                current_local_parameters = ParametersCompiled.Undefined;
 
5096
 
 
5097
                MemberName name = (MemberName) yyVals[-1+yyTop];
 
5098
                var method = Method.Create (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-3+yyTop],
 
5099
                                                                        name, current_local_parameters, (Attributes) yyVals[-4+yyTop]);
 
5100
 
 
5101
                current_type.AddMember (method);
 
5102
 
 
5103
                if (doc_support)
 
5104
                        method.DocComment = Lexer.consume_doc_comment ();
 
5105
 
 
5106
                yyVal = method;
 
5107
          }
 
5108
 
 
5109
void case_164()
 
5110
#line 1450 "cs-parser.jay"
 
5111
{
 
5112
                var pars_list = (List<Parameter>) yyVals[0+yyTop];
 
5113
                yyVal = new ParametersCompiled (pars_list.ToArray ());
 
5114
                lbag.AddLocation (yyVal, parameterListCommas);
 
5115
          }
 
5116
 
 
5117
void case_165()
 
5118
#line 1456 "cs-parser.jay"
 
5119
{
 
5120
                var pars_list = (List<Parameter>) yyVals[-2+yyTop];
 
5121
                pars_list.Add ((Parameter) yyVals[0+yyTop]);
 
5122
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
5123
                
 
5124
                yyVal = new ParametersCompiled (pars_list.ToArray ()); 
 
5125
                lbag.AddLocation (yyVal, parameterListCommas);
 
5126
          }
 
5127
 
 
5128
void case_166()
 
5129
#line 1465 "cs-parser.jay"
 
5130
{
 
5131
                var pars_list = (List<Parameter>) yyVals[-2+yyTop];
 
5132
                pars_list.Add (new ArglistParameter (GetLocation (yyVals[0+yyTop])));
 
5133
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
5134
                
 
5135
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
 
5136
                lbag.AddLocation (yyVal, parameterListCommas);
 
5137
          }
 
5138
 
 
5139
void case_167()
 
5140
#line 1474 "cs-parser.jay"
 
5141
{
 
5142
                if (yyVals[-2+yyTop] != null)
 
5143
                        report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
 
5144
 
 
5145
                yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[-2+yyTop] } );                     
 
5146
                lbag.AddLocation (yyVal, parameterListCommas);
 
5147
          }
 
5148
 
 
5149
void case_168()
 
5150
#line 1482 "cs-parser.jay"
 
5151
{
 
5152
                if (yyVals[-2+yyTop] != null)
 
5153
                        report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
 
5154
 
 
5155
                var pars_list = (List<Parameter>) yyVals[-4+yyTop];
 
5156
                pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
 
5157
                parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
 
5158
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
5159
                
 
5160
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
 
5161
                lbag.AddLocation (yyVal, parameterListCommas);
 
5162
          }
 
5163
 
 
5164
void case_169()
 
5165
#line 1495 "cs-parser.jay"
 
5166
{
 
5167
                report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
 
5168
 
 
5169
                yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[-2+yyTop])) }, true);
 
5170
                lbag.AddLocation (yyVal, parameterListCommas);
 
5171
          }
 
5172
 
 
5173
void case_170()
 
5174
#line 1502 "cs-parser.jay"
 
5175
{
 
5176
                report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
 
5177
 
 
5178
                var pars_list = (List<Parameter>) yyVals[-4+yyTop];
 
5179
                pars_list.Add (new ArglistParameter (GetLocation (yyVals[-2+yyTop])));
 
5180
                parameterListCommas.Add (GetLocation (yyVals[-3+yyTop]));
 
5181
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
5182
 
 
5183
                yyVal = new ParametersCompiled (pars_list.ToArray (), true);
 
5184
                lbag.AddLocation (yyVal, parameterListCommas);
 
5185
          }
 
5186
 
 
5187
void case_173()
 
5188
#line 1522 "cs-parser.jay"
 
5189
{
 
5190
                Error_SyntaxError (yyToken);
 
5191
                yyVal = ParametersCompiled.EmptyReadOnlyParameters;
 
5192
          }
 
5193
 
 
5194
void case_174()
 
5195
#line 1530 "cs-parser.jay"
 
5196
{
 
5197
                parameters_bucket.Clear ();
 
5198
                Parameter p = (Parameter) yyVals[0+yyTop];
 
5199
                parameters_bucket.Add (p);
 
5200
                parameterListCommas.Clear ();
 
5201
                default_parameter_used = p.HasDefaultValue;
 
5202
                yyVal = parameters_bucket;
 
5203
          }
 
5204
 
 
5205
void case_175()
 
5206
#line 1539 "cs-parser.jay"
 
5207
{
 
5208
                var pars = (List<Parameter>) yyVals[-2+yyTop];
 
5209
                Parameter p = (Parameter) yyVals[0+yyTop];
 
5210
                if (p != null) {
 
5211
                        if (p.HasExtensionMethodModifier)
 
5212
                                report.Error (1100, p.Location, "The parameter modifier `this' can only be used on the first parameter");
 
5213
                        else if (!p.HasDefaultValue && default_parameter_used)
 
5214
                                report.Error (1737, p.Location, "Optional parameter cannot precede required parameters");
 
5215
 
 
5216
                        default_parameter_used |= p.HasDefaultValue;
 
5217
                        pars.Add (p);
 
5218
                        
 
5219
                        parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
5220
                }
 
5221
                
 
5222
                yyVal = yyVals[-2+yyTop];
 
5223
          }
 
5224
 
 
5225
void case_176()
 
5226
#line 1563 "cs-parser.jay"
 
5227
{
 
5228
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
5229
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], lt.Location);
 
5230
                lbag.AddLocation (yyVal, parameterModifierLocation);
 
5231
          }
 
5232
 
 
5233
void case_177()
 
5234
#line 1572 "cs-parser.jay"
 
5235
{
 
5236
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
5237
                report.Error (1552, lt.Location, "Array type specifier, [], must appear before parameter name");
 
5238
                yyVal = new Parameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Parameter.Modifier) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop], lt.Location);
 
5239
                lbag.AddLocation (yyVal, parameterModifierLocation);
 
5240
          }
 
5241
 
 
5242
void case_178()
 
5243
#line 1579 "cs-parser.jay"
 
5244
{
 
5245
                Error_SyntaxError (yyToken);
 
5246
                Location l = GetLocation (yyVals[0+yyTop]);
 
5247
                yyVal = new Parameter (null, null, Parameter.Modifier.NONE, (Attributes) yyVals[-1+yyTop], l);
 
5248
          }
 
5249
 
 
5250
void case_179()
 
5251
#line 1588 "cs-parser.jay"
 
5252
{
 
5253
                Error_SyntaxError (yyToken);
 
5254
                Location l = GetLocation (yyVals[0+yyTop]);
 
5255
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], l);
 
5256
                lbag.AddLocation (yyVal, parameterModifierLocation);
 
5257
          }
 
5258
 
 
5259
void case_181()
 
5260
#line 1603 "cs-parser.jay"
 
5261
{
 
5262
                --lexer.parsing_block;
 
5263
                if (lang_version <= LanguageVersion.V_3) {
 
5264
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "optional parameter");
 
5265
                }
 
5266
                
 
5267
                Parameter.Modifier mod = (Parameter.Modifier) yyVals[-5+yyTop];
 
5268
                if (mod != Parameter.Modifier.NONE) {
 
5269
                        switch (mod) {
 
5270
                        case Parameter.Modifier.REF:
 
5271
                        case Parameter.Modifier.OUT:
 
5272
                                report.Error (1741, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
 
5273
                                        Parameter.GetModifierSignature (mod));
 
5274
                                break;
 
5275
                                
 
5276
                        case Parameter.Modifier.This:
 
5277
                                report.Error (1743, GetLocation (yyVals[-5+yyTop]), "Cannot specify a default value for the `{0}' parameter",
 
5278
                                        Parameter.GetModifierSignature (mod));
 
5279
                                break;
 
5280
                        default:
 
5281
                                throw new NotImplementedException (mod.ToString ());
 
5282
                        }
 
5283
                                
 
5284
                        mod = Parameter.Modifier.NONE;
 
5285
                }
 
5286
                
 
5287
                if ((valid_param_mod & ParameterModifierType.DefaultValue) == 0)
 
5288
                        report.Error (1065, GetLocation (yyVals[-2+yyTop]), "Optional parameter is not valid in this context");
 
5289
                
 
5290
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
5291
                yyVal = new Parameter ((FullNamedExpression) yyVals[-4+yyTop], lt.Value, mod, (Attributes) yyVals[-6+yyTop], lt.Location);
 
5292
                lbag.AddLocation (yyVal, parameterModifierLocation, GetLocation (yyVals[-2+yyTop])); /* parameterModifierLocation should be ignored when mod == NONE*/
 
5293
                
 
5294
                if (yyVals[0+yyTop] != null)
 
5295
                        ((Parameter) yyVal).DefaultValue = new DefaultParameterValueExpression ((Expression) yyVals[0+yyTop]);
 
5296
          }
 
5297
 
 
5298
void case_185()
 
5299
#line 1652 "cs-parser.jay"
 
5300
{
 
5301
                Parameter.Modifier p2 = (Parameter.Modifier)yyVals[0+yyTop];
 
5302
                Parameter.Modifier mod = (Parameter.Modifier)yyVals[-1+yyTop] | p2;
 
5303
                if (((Parameter.Modifier)yyVals[-1+yyTop] & p2) == p2) {
 
5304
                        Error_DuplicateParameterModifier (lexer.Location, p2);
 
5305
                } else {
 
5306
                        switch (mod & ~Parameter.Modifier.This) {
 
5307
                                case Parameter.Modifier.REF:
 
5308
                                        report.Error (1101, lexer.Location, "The parameter modifiers `this' and `ref' cannot be used altogether");
 
5309
                                        break;
 
5310
                                case Parameter.Modifier.OUT:
 
5311
                                        report.Error (1102, lexer.Location, "The parameter modifiers `this' and `out' cannot be used altogether");
 
5312
                                        break;
 
5313
                                default:
 
5314
                                        report.Error (1108, lexer.Location, "A parameter cannot have specified more than one modifier");
 
5315
                                        break;
 
5316
                        }
 
5317
                }
 
5318
                yyVal = mod;
 
5319
          }
 
5320
 
 
5321
void case_186()
 
5322
#line 1676 "cs-parser.jay"
 
5323
{
 
5324
                if ((valid_param_mod & ParameterModifierType.Ref) == 0)
 
5325
                        Error_ParameterModifierNotValid ("ref", GetLocation (yyVals[0+yyTop]));
 
5326
                parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
 
5327
                yyVal = Parameter.Modifier.REF;
 
5328
          }
 
5329
 
 
5330
void case_187()
 
5331
#line 1683 "cs-parser.jay"
 
5332
{
 
5333
                if ((valid_param_mod & ParameterModifierType.Out) == 0)
 
5334
                        Error_ParameterModifierNotValid ("out", GetLocation (yyVals[0+yyTop]));
 
5335
                parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
 
5336
                yyVal = Parameter.Modifier.OUT;
 
5337
          }
 
5338
 
 
5339
void case_188()
 
5340
#line 1690 "cs-parser.jay"
 
5341
{
 
5342
                if ((valid_param_mod & ParameterModifierType.This) == 0)
 
5343
                        Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop]));
 
5344
 
 
5345
                if (lang_version <= LanguageVersion.ISO_2)
 
5346
                        FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "extension methods");
 
5347
                parameterModifierLocation = GetLocation (yyVals[0+yyTop]);
 
5348
                yyVal = Parameter.Modifier.This;
 
5349
          }
 
5350
 
 
5351
void case_189()
 
5352
#line 1703 "cs-parser.jay"
 
5353
{
 
5354
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
5355
                yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Attributes) yyVals[-3+yyTop], lt.Location);
 
5356
                lbag.AddLocation (yyVal, savedLocation);
 
5357
          }
 
5358
 
 
5359
void case_190()
 
5360
#line 1709 "cs-parser.jay"
 
5361
{
 
5362
                report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array");
 
5363
                
 
5364
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
5365
                yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-3+yyTop], lt.Value, (Attributes) yyVals[-5+yyTop], lt.Location);             
 
5366
                lbag.AddLocation (yyVal, savedLocation);
 
5367
          }
 
5368
 
 
5369
void case_191()
 
5370
#line 1717 "cs-parser.jay"
 
5371
{
 
5372
                Error_SyntaxError (yyToken);
 
5373
 
 
5374
                yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Attributes) yyVals[-3+yyTop], Location.Null);
 
5375
          }
 
5376
 
 
5377
void case_192()
 
5378
#line 1726 "cs-parser.jay"
 
5379
{
 
5380
                if ((valid_param_mod & ParameterModifierType.Params) == 0)
 
5381
                        report.Error (1670, (GetLocation (yyVals[0+yyTop])), "The `params' modifier is not allowed in current context");
 
5382
                savedLocation = GetLocation (yyVals[0+yyTop]);
 
5383
          }
 
5384
 
 
5385
void case_193()
 
5386
#line 1732 "cs-parser.jay"
 
5387
{
 
5388
                Parameter.Modifier mod = (Parameter.Modifier)yyVals[0+yyTop];
 
5389
                if ((mod & Parameter.Modifier.This) != 0) {
 
5390
                        report.Error (1104, GetLocation (yyVals[-1+yyTop]), "The parameter modifiers `this' and `params' cannot be used altogether");
 
5391
                } else {
 
5392
                        report.Error (1611, GetLocation (yyVals[-1+yyTop]), "The params parameter cannot be declared as ref or out");
 
5393
                }         
 
5394
                savedLocation = GetLocation (yyVals[-1+yyTop]);
 
5395
          }
 
5396
 
 
5397
void case_195()
 
5398
#line 1749 "cs-parser.jay"
 
5399
{
 
5400
                if ((valid_param_mod & ParameterModifierType.Arglist) == 0)
 
5401
                        report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context");
 
5402
          }
 
5403
 
 
5404
void case_196()
 
5405
#line 1760 "cs-parser.jay"
 
5406
{
 
5407
                if (doc_support)
 
5408
                        tmpComment = Lexer.consume_doc_comment ();
 
5409
          }
 
5410
 
 
5411
void case_197()
 
5412
#line 1765 "cs-parser.jay"
 
5413
{
 
5414
                var type = (FullNamedExpression) yyVals[-3+yyTop];
 
5415
                current_property = new Property (current_type, type, (Modifiers) yyVals[-4+yyTop],
 
5416
                        (MemberName) yyVals[-2+yyTop], (Attributes) yyVals[-5+yyTop]);
 
5417
                        
 
5418
                if (type.Type != null && type.Type.Kind == MemberKind.Void)
 
5419
                        report.Error (547, GetLocation (yyVals[-3+yyTop]), "`{0}': property or indexer cannot have void type", current_property.GetSignatureForError ());                                       
 
5420
                        
 
5421
                current_type.AddMember (current_property);
 
5422
                lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[0+yyTop]));
 
5423
                
 
5424
                lexer.PropertyParsing = true;
 
5425
          }
 
5426
 
 
5427
void case_198()
 
5428
#line 1779 "cs-parser.jay"
 
5429
{
 
5430
                lexer.PropertyParsing = false;
 
5431
                
 
5432
                if (doc_support)
 
5433
                        current_property.DocComment = ConsumeStoredComment ();                          
 
5434
          }
 
5435
 
 
5436
void case_199()
 
5437
#line 1786 "cs-parser.jay"
 
5438
{
 
5439
                lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop]));
 
5440
                current_property = null;
 
5441
          }
 
5442
 
 
5443
void case_201()
 
5444
#line 1800 "cs-parser.jay"
 
5445
{
 
5446
                valid_param_mod = 0;
 
5447
                var type = (FullNamedExpression) yyVals[-5+yyTop];
 
5448
                Indexer indexer = new Indexer (current_type, type, (MemberName) yyVals[-4+yyTop], (Modifiers) yyVals[-6+yyTop], (ParametersCompiled) yyVals[-1+yyTop], (Attributes) yyVals[-7+yyTop]);
 
5449
                        
 
5450
                current_property = indexer;
 
5451
 
 
5452
                current_type.AddIndexer (indexer);
 
5453
                lbag.AddMember (current_property, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5454
                
 
5455
                if (type.Type != null && type.Type.Kind == MemberKind.Void)
 
5456
                        report.Error (620, GetLocation (yyVals[-5+yyTop]), "`{0}': indexer return type cannot be `void'", indexer.GetSignatureForError ());             
 
5457
 
 
5458
                if (indexer.ParameterInfo.IsEmpty) {
 
5459
                        report.Error (1551, GetLocation (yyVals[-3+yyTop]), "Indexers must have at least one parameter");
 
5460
                }
 
5461
 
 
5462
                if (doc_support) {
 
5463
                        tmpComment = Lexer.consume_doc_comment ();
 
5464
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5465
                }
 
5466
 
 
5467
                lexer.PropertyParsing = true;
 
5468
          }
 
5469
 
 
5470
void case_203()
 
5471
#line 1829 "cs-parser.jay"
 
5472
{
 
5473
                if (current_property.AccessorFirst != null && current_property.AccessorFirst.Block == null)
 
5474
                        ((Indexer) current_property).ParameterInfo.CheckParameters (current_property);
 
5475
          
 
5476
                if (doc_support)
 
5477
                        current_property.DocComment = ConsumeStoredComment ();
 
5478
                        
 
5479
                lbag.AppendToMember (current_property, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5480
                current_property = null;                
 
5481
          }
 
5482
 
 
5483
void case_208()
 
5484
#line 1848 "cs-parser.jay"
 
5485
{
 
5486
                if (yyToken == Token.CLOSE_BRACE) {
 
5487
                        report.Error (548, lexer.Location, "`{0}': property or indexer must have at least one accessor", current_property.GetSignatureForError ());
 
5488
                } else {
 
5489
                        if (yyToken == Token.SEMICOLON)
 
5490
                                report.Error (1597, lexer.Location, "Semicolon after method or accessor block is not valid");
 
5491
                        else
 
5492
                                report.Error (1014, GetLocation (yyVals[0+yyTop]), "A get or set accessor expected");
 
5493
                }
 
5494
          }
 
5495
 
 
5496
void case_209()
 
5497
#line 1862 "cs-parser.jay"
 
5498
{
 
5499
                if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
 
5500
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
 
5501
                }
 
5502
          
 
5503
                if (current_property.Get != null) {
 
5504
                        report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
 
5505
                }
 
5506
                
 
5507
                if (current_property is Indexer) {
 
5508
                        current_property.Get = new Indexer.GetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop], ((Indexer)current_property).ParameterInfo.Clone (),
 
5509
                                (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
5510
                } else {
 
5511
                        current_property.Get = new Property.GetMethod (current_property,
 
5512
                                (Modifiers) yyVals[-1+yyTop], (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
5513
                }       
 
5514
          
 
5515
                current_local_parameters = current_property.Get.ParameterInfo;    
 
5516
                lexer.PropertyParsing = false;
 
5517
          }
 
5518
 
 
5519
void case_210()
 
5520
#line 1883 "cs-parser.jay"
 
5521
{
 
5522
                if (yyVals[0+yyTop] != null) {
 
5523
                        current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];                   
 
5524
                
 
5525
                        if (current_container.Kind == MemberKind.Interface) {
 
5526
                                report.Error (531, current_property.Get.Block.StartLocation,
 
5527
                                        "`{0}': interface members cannot have a definition", current_property.Get.GetSignatureForError ());
 
5528
                        }
 
5529
                        lbag.AddMember (current_property.Get, GetModifierLocations ());
 
5530
                } else {
 
5531
                        lbag.AddMember (current_property.Get, GetModifierLocations (), savedLocation);
 
5532
                }
 
5533
          
 
5534
                current_local_parameters = null;
 
5535
                lexer.PropertyParsing = true;
 
5536
 
 
5537
                if (doc_support)
 
5538
                        if (Lexer.doc_state == XmlCommentState.Error)
 
5539
                                Lexer.doc_state = XmlCommentState.NotAllowed;
 
5540
          }
 
5541
 
 
5542
void case_211()
 
5543
#line 1907 "cs-parser.jay"
 
5544
{
 
5545
                if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
 
5546
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
 
5547
                }
 
5548
                
 
5549
                if (current_property.Set != null) {
 
5550
                        report.Error (1007, GetLocation (yyVals[0+yyTop]), "Property accessor already defined");
 
5551
                }
 
5552
          
 
5553
                if (current_property is Indexer) {
 
5554
                        current_property.Set = new Indexer.SetIndexerMethod (current_property, (Modifiers) yyVals[-1+yyTop],
 
5555
                                ParametersCompiled.MergeGenerated (compiler,
 
5556
                                ((Indexer)current_property).ParameterInfo, true, new Parameter (
 
5557
                                        current_property.TypeExpression, "value", Parameter.Modifier.NONE, null, GetLocation (yyVals[0+yyTop])),
 
5558
                                        null),
 
5559
                                (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
5560
                } else {
 
5561
                        current_property.Set = new Property.SetMethod (current_property, (Modifiers) yyVals[-1+yyTop], 
 
5562
                                ParametersCompiled.CreateImplicitParameter (current_property.TypeExpression, GetLocation (yyVals[0+yyTop])),
 
5563
                                (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
5564
                }
 
5565
                
 
5566
                current_local_parameters = current_property.Set.ParameterInfo;  
 
5567
                lexer.PropertyParsing = false;
 
5568
          }
 
5569
 
 
5570
void case_212()
 
5571
#line 1933 "cs-parser.jay"
 
5572
{
 
5573
                if (yyVals[0+yyTop] != null) {          
 
5574
                        current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop];
 
5575
                
 
5576
                        if (current_container.Kind == MemberKind.Interface) {
 
5577
                                report.Error (531, current_property.Set.Block.StartLocation,
 
5578
                                        "`{0}': interface members cannot have a definition", current_property.Set.GetSignatureForError ());
 
5579
                        }
 
5580
                        lbag.AddMember (current_property.Set, GetModifierLocations ());
 
5581
                } else {
 
5582
                        lbag.AddMember (current_property.Set, GetModifierLocations (), savedLocation);
 
5583
                }
 
5584
                
 
5585
                current_local_parameters = null;
 
5586
                lexer.PropertyParsing = true;
 
5587
 
 
5588
                if (doc_support
 
5589
                        && Lexer.doc_state == XmlCommentState.Error)
 
5590
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
5591
          }
 
5592
 
 
5593
void case_214()
 
5594
#line 1958 "cs-parser.jay"
 
5595
{
 
5596
                savedLocation = GetLocation (yyVals[0+yyTop]);
 
5597
                yyVal = null;
 
5598
          }
 
5599
 
 
5600
void case_215()
 
5601
#line 1963 "cs-parser.jay"
 
5602
{
 
5603
                Error_SyntaxError (1043, yyToken, "Invalid accessor body");
 
5604
                yyVal = null;
 
5605
          }
 
5606
 
 
5607
void case_217()
 
5608
#line 1977 "cs-parser.jay"
 
5609
{
 
5610
                lexer.ConstraintsParsing = true;
 
5611
                push_current_container (new Interface (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
 
5612
                lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));            
 
5613
          }
 
5614
 
 
5615
void case_218()
 
5616
#line 1984 "cs-parser.jay"
 
5617
{
 
5618
                lexer.ConstraintsParsing = false;
 
5619
 
 
5620
                if (yyVals[0+yyTop] != null)
 
5621
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
 
5622
 
 
5623
                if (doc_support) {
 
5624
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
 
5625
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5626
                }
 
5627
                
 
5628
                lexer.parsing_modifiers = true;
 
5629
          }
 
5630
 
 
5631
void case_219()
 
5632
#line 1998 "cs-parser.jay"
 
5633
{
 
5634
                --lexer.parsing_declaration;      
 
5635
                if (doc_support)
 
5636
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5637
          }
 
5638
 
 
5639
void case_220()
 
5640
#line 2004 "cs-parser.jay"
 
5641
{
 
5642
                if (yyVals[0+yyTop] == null) {
 
5643
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
5644
                } else {
 
5645
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5646
                }
 
5647
                yyVal = pop_current_class ();
 
5648
          }
 
5649
 
 
5650
void case_236()
 
5651
#line 2066 "cs-parser.jay"
 
5652
{
 
5653
                OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop];
 
5654
                if (decl != null) {
 
5655
                        Operator op = new Operator (
 
5656
                                current_type, decl.optype, decl.ret_type, (Modifiers) yyVals[-3+yyTop], 
 
5657
                                current_local_parameters,
 
5658
                                (ToplevelBlock) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop], decl.location);
 
5659
                                
 
5660
                        if (op.Block == null)
 
5661
                                op.ParameterInfo.CheckParameters (op);
 
5662
 
 
5663
                        if (doc_support) {
 
5664
                                op.DocComment = tmpComment;
 
5665
                                Lexer.doc_state = XmlCommentState.Allowed;
 
5666
                        }
 
5667
 
 
5668
                        /* Note again, checking is done in semantic analysis*/
 
5669
                        current_type.AddOperator (op);
 
5670
 
 
5671
                        lbag.AddMember (op, GetModifierLocations (), lbag.GetLocations (decl));
 
5672
                        if (yyVals[0+yyTop] == null) { /* Semicolon*/
 
5673
                                lbag.AddLocation (op, savedLocation); 
 
5674
                        }
 
5675
                }
 
5676
                
 
5677
                current_local_parameters = null;
 
5678
          }
 
5679
 
 
5680
void case_240()
 
5681
#line 2103 "cs-parser.jay"
 
5682
{
 
5683
                report.Error (590, GetLocation (yyVals[0+yyTop]), "User-defined operators cannot return void");
 
5684
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
5685
          }
 
5686
 
 
5687
void case_242()
 
5688
#line 2115 "cs-parser.jay"
 
5689
{
 
5690
                valid_param_mod = 0;
 
5691
 
 
5692
                Location loc = GetLocation (yyVals[-5+yyTop]);
 
5693
                Operator.OpType op = (Operator.OpType) yyVals[-4+yyTop];
 
5694
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];
 
5695
                
 
5696
                int p_count = current_local_parameters.Count;
 
5697
                if (p_count == 1) {
 
5698
                        if (op == Operator.OpType.Addition)
 
5699
                                op = Operator.OpType.UnaryPlus;
 
5700
                        else if (op == Operator.OpType.Subtraction)
 
5701
                                op = Operator.OpType.UnaryNegation;
 
5702
                }
 
5703
                
 
5704
                if (IsUnaryOperator (op)) {
 
5705
                        if (p_count == 2) {
 
5706
                                report.Error (1020, loc, "Overloadable binary operator expected");
 
5707
                        } else if (p_count != 1) {
 
5708
                                report.Error (1535, loc, "Overloaded unary operator `{0}' takes one parameter",
 
5709
                                        Operator.GetName (op));
 
5710
                        }
 
5711
                } else {
 
5712
                        if (p_count > 2) {
 
5713
                                report.Error (1534, loc, "Overloaded binary operator `{0}' takes two parameters",
 
5714
                                        Operator.GetName (op));
 
5715
                        } else if (p_count != 2) {
 
5716
                                report.Error (1019, loc, "Overloadable unary operator expected");
 
5717
                        }
 
5718
                }
 
5719
                
 
5720
                if (doc_support) {
 
5721
                        tmpComment = Lexer.consume_doc_comment ();
 
5722
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
5723
                }
 
5724
 
 
5725
                yyVal = new OperatorDeclaration (op, (FullNamedExpression) yyVals[-6+yyTop], loc);
 
5726
                lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), savedOperatorLocation, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5727
          }
 
5728
 
 
5729
void case_267()
 
5730
#line 2191 "cs-parser.jay"
 
5731
{
 
5732
                valid_param_mod = 0;
 
5733
 
 
5734
                Location loc = GetLocation (yyVals[-5+yyTop]);
 
5735
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];  
 
5736
 
 
5737
                if (current_local_parameters.Count != 1) {
 
5738
                        report.Error (1535, loc, "Overloaded unary operator `implicit' takes one parameter");
 
5739
                }
 
5740
 
 
5741
                if (doc_support) {
 
5742
                        tmpComment = Lexer.consume_doc_comment ();
 
5743
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
5744
                }
 
5745
 
 
5746
                yyVal = new OperatorDeclaration (Operator.OpType.Implicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
 
5747
                lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5748
          }
 
5749
 
 
5750
void case_269()
 
5751
#line 2214 "cs-parser.jay"
 
5752
{
 
5753
                valid_param_mod = 0;
 
5754
                
 
5755
                Location loc = GetLocation (yyVals[-5+yyTop]);
 
5756
                current_local_parameters = (ParametersCompiled)yyVals[-1+yyTop];  
 
5757
 
 
5758
                if (current_local_parameters.Count != 1) {
 
5759
                        report.Error (1535, loc, "Overloaded unary operator `explicit' takes one parameter");
 
5760
                }
 
5761
 
 
5762
                if (doc_support) {
 
5763
                        tmpComment = Lexer.consume_doc_comment ();
 
5764
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
5765
                }
 
5766
 
 
5767
                yyVal = new OperatorDeclaration (Operator.OpType.Explicit, (FullNamedExpression) yyVals[-4+yyTop], loc);
 
5768
                lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5769
          }
 
5770
 
 
5771
void case_270()
 
5772
#line 2233 "cs-parser.jay"
 
5773
{
 
5774
                Error_SyntaxError (yyToken);
 
5775
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
 
5776
                yyVal = new OperatorDeclaration (Operator.OpType.Implicit, null, GetLocation (yyVals[-1+yyTop]));
 
5777
          }
 
5778
 
 
5779
void case_271()
 
5780
#line 2239 "cs-parser.jay"
 
5781
{
 
5782
                Error_SyntaxError (yyToken);
 
5783
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
 
5784
                yyVal = new OperatorDeclaration (Operator.OpType.Explicit, null, GetLocation (yyVals[-1+yyTop]));
 
5785
          }
 
5786
 
 
5787
void case_272()
 
5788
#line 2249 "cs-parser.jay"
 
5789
 
5790
                Constructor c = (Constructor) yyVals[-1+yyTop];
 
5791
                c.Block = (ToplevelBlock) yyVals[0+yyTop];
 
5792
                
 
5793
                if (doc_support)
 
5794
                        c.DocComment = ConsumeStoredComment ();
 
5795
 
 
5796
                current_local_parameters = null;
 
5797
                if (doc_support)
 
5798
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5799
          }
 
5800
 
 
5801
void case_273()
 
5802
#line 2266 "cs-parser.jay"
 
5803
{
 
5804
                if (doc_support) {
 
5805
                        tmpComment = Lexer.consume_doc_comment ();
 
5806
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5807
                }
 
5808
                
 
5809
                valid_param_mod = ParameterModifierType.All;
 
5810
          }
 
5811
 
 
5812
void case_274()
 
5813
#line 2275 "cs-parser.jay"
 
5814
{
 
5815
                valid_param_mod = 0;
 
5816
                current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
 
5817
                
 
5818
                var lt = (Tokenizer.LocatedToken) yyVals[-4+yyTop];
 
5819
                var mods = (Modifiers) yyVals[-5+yyTop];
 
5820
                var c = new Constructor (current_type, lt.Value, mods, (Attributes) yyVals[-6+yyTop], current_local_parameters, lt.Location);
 
5821
 
 
5822
                if (lt.Value != current_container.MemberName.Name) {
 
5823
                        report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
 
5824
                } else if ((mods & Modifiers.STATIC) != 0) {
 
5825
                        if ((mods & Modifiers.AccessibilityMask) != 0){
 
5826
                                report.Error (515, c.Location,
 
5827
                                        "`{0}': static constructor cannot have an access modifier",
 
5828
                                        c.GetSignatureForError ());
 
5829
                        }
 
5830
                }
 
5831
 
 
5832
                current_type.AddConstructor (c);
 
5833
                lbag.AddMember (c, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5834
                yyVal = c;
 
5835
 
 
5836
                /**/
 
5837
                /* start block here, so possible anonymous methods inside*/
 
5838
                /* constructor initializer can get correct parent block*/
 
5839
                /**/
 
5840
                start_block (lexer.Location);
 
5841
          }
 
5842
 
 
5843
void case_275()
 
5844
#line 2304 "cs-parser.jay"
 
5845
{
 
5846
                if (yyVals[0+yyTop] != null) {
 
5847
                        var c = (Constructor) yyVals[-1+yyTop];
 
5848
                        c.Initializer = (ConstructorInitializer) yyVals[0+yyTop];
 
5849
                        
 
5850
                        if (c.IsStatic) {
 
5851
                                report.Error (514, c.Location,
 
5852
                                        "`{0}': static constructor cannot have an explicit `this' or `base' constructor call",
 
5853
                                        c.GetSignatureForError ());
 
5854
                        }
 
5855
                }
 
5856
 
 
5857
                yyVal = yyVals[-1+yyTop];
 
5858
          }
 
5859
 
 
5860
void case_281()
 
5861
#line 2336 "cs-parser.jay"
 
5862
{
 
5863
                --lexer.parsing_block;
 
5864
                yyVal = new ConstructorBaseInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
 
5865
                lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5866
          }
 
5867
 
 
5868
void case_283()
 
5869
#line 2346 "cs-parser.jay"
 
5870
{
 
5871
                --lexer.parsing_block;
 
5872
                yyVal = new ConstructorThisInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
 
5873
                lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5874
          }
 
5875
 
 
5876
void case_284()
 
5877
#line 2352 "cs-parser.jay"
 
5878
{
 
5879
                Error_SyntaxError (yyToken);      
 
5880
                yyVal = new ConstructorThisInitializer (null, GetLocation (yyVals[0+yyTop]));
 
5881
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
5882
          }
 
5883
 
 
5884
void case_285()
 
5885
#line 2358 "cs-parser.jay"
 
5886
{
 
5887
                Error_SyntaxError (yyToken);
 
5888
                yyVal = null;
 
5889
          }
 
5890
 
 
5891
void case_286()
 
5892
#line 2366 "cs-parser.jay"
 
5893
{
 
5894
                if (doc_support) {
 
5895
                        tmpComment = Lexer.consume_doc_comment ();
 
5896
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
5897
                }
 
5898
                
 
5899
                current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
 
5900
          }
 
5901
 
 
5902
void case_287()
 
5903
#line 2375 "cs-parser.jay"
 
5904
{
 
5905
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
5906
                if (lt.Value != current_container.MemberName.Name){
 
5907
                        report.Error (574, lt.Location, "Name of destructor must match name of class");
 
5908
                } else if (current_container.Kind != MemberKind.Class){
 
5909
                        report.Error (575, lt.Location, "Only class types can contain destructor");
 
5910
                }
 
5911
                
 
5912
                Destructor d = new Destructor (current_type, (Modifiers) yyVals[-6+yyTop],
 
5913
                        ParametersCompiled.EmptyReadOnlyParameters, (Attributes) yyVals[-7+yyTop], lt.Location);
 
5914
                d.Identifier = lt.Value;
 
5915
                if (doc_support)
 
5916
                        d.DocComment = ConsumeStoredComment ();
 
5917
                  
 
5918
                d.Block = (ToplevelBlock) yyVals[0+yyTop];
 
5919
                current_type.AddMember (d);
 
5920
                lbag.AddMember (d, GetModifierLocations (), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
5921
 
 
5922
                current_local_parameters = null;
 
5923
          }
 
5924
 
 
5925
void case_288()
 
5926
#line 2401 "cs-parser.jay"
 
5927
{
 
5928
                current_event_field = new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], (MemberName) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop]);
 
5929
                current_type.AddMember (current_event_field);
 
5930
                
 
5931
                if (current_event_field.MemberName.ExplicitInterface != null) {
 
5932
                        report.Error (71, current_event_field.Location, "`{0}': An explicit interface implementation of an event must use property syntax",
 
5933
                        current_event_field.GetSignatureForError ());
 
5934
                }
 
5935
                
 
5936
                yyVal = current_event_field;
 
5937
          }
 
5938
 
 
5939
void case_289()
 
5940
#line 2415 "cs-parser.jay"
 
5941
{
 
5942
                if (doc_support) {
 
5943
                        current_event_field.DocComment = Lexer.consume_doc_comment ();
 
5944
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5945
                }
 
5946
                if (current_event_field.Initializer != null) {
 
5947
                        lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), savedEventAssignLocation, GetLocation (yyVals[0+yyTop]));
 
5948
                } else {
 
5949
                        lbag.AddMember (current_event_field, GetModifierLocations (), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5950
                }
 
5951
                current_event_field = null;
 
5952
          }
 
5953
 
 
5954
void case_290()
 
5955
#line 2431 "cs-parser.jay"
 
5956
{
 
5957
                current_event = new EventProperty (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-4+yyTop], (MemberName) yyVals[-1+yyTop], (Attributes) yyVals[-5+yyTop]);
 
5958
                current_type.AddMember (current_event);
 
5959
                lbag.AddMember (current_event, GetModifierLocations (), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
5960
                
 
5961
                lexer.EventParsing = true;
 
5962
          }
 
5963
 
 
5964
void case_291()
 
5965
#line 2439 "cs-parser.jay"
 
5966
{
 
5967
                if (current_container.Kind == MemberKind.Interface)
 
5968
                        report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors");
 
5969
          
 
5970
                lexer.EventParsing = false;
 
5971
          }
 
5972
 
 
5973
void case_292()
 
5974
#line 2446 "cs-parser.jay"
 
5975
{
 
5976
                if (doc_support) {
 
5977
                        current_event.DocComment = Lexer.consume_doc_comment ();
 
5978
                        Lexer.doc_state = XmlCommentState.Allowed;
 
5979
                }
 
5980
                
 
5981
                lbag.AppendToMember (current_event, GetLocation (yyVals[-1+yyTop]));
 
5982
                current_event = null;   
 
5983
                current_local_parameters = null;
 
5984
          }
 
5985
 
 
5986
void case_293()
 
5987
#line 2459 "cs-parser.jay"
 
5988
{
 
5989
                Error_SyntaxError (yyToken);
 
5990
 
 
5991
                current_type.AddMember (new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
 
5992
          }
 
5993
 
 
5994
void case_296()
 
5995
#line 2473 "cs-parser.jay"
 
5996
{
 
5997
                --lexer.parsing_block;
 
5998
                savedEventAssignLocation = GetLocation (yyVals[-2+yyTop]);
 
5999
                current_event_field.Initializer = (Expression) yyVals[0+yyTop];
 
6000
          }
 
6001
 
 
6002
void case_301()
 
6003
#line 2498 "cs-parser.jay"
 
6004
{
 
6005
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
6006
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
 
6007
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6008
          }
 
6009
 
 
6010
void case_303()
 
6011
#line 2508 "cs-parser.jay"
 
6012
{
 
6013
                --lexer.parsing_block;
 
6014
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];       
 
6015
                yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop]);
 
6016
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
6017
          }
 
6018
 
 
6019
void case_304()
 
6020
#line 2517 "cs-parser.jay"
 
6021
{
 
6022
                if (current_container.Kind == MemberKind.Interface) {
 
6023
                        report.Error (68, lexer.Location, "`{0}': event in interface cannot have an initializer",
 
6024
                                current_event_field.GetSignatureForError ());
 
6025
                }
 
6026
                
 
6027
                if ((current_event_field.ModFlags & Modifiers.ABSTRACT) != 0) {
 
6028
                        report.Error (74, lexer.Location, "`{0}': abstract event cannot have an initializer",
 
6029
                                current_event_field.GetSignatureForError ());
 
6030
                }               
 
6031
          }
 
6032
 
 
6033
void case_308()
 
6034
#line 2538 "cs-parser.jay"
 
6035
{
 
6036
                report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
 
6037
                        current_event.GetSignatureForError ());
 
6038
          }
 
6039
 
 
6040
void case_309()
 
6041
#line 2543 "cs-parser.jay"
 
6042
{
 
6043
                report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
 
6044
                        current_event.GetSignatureForError ());
 
6045
          }
 
6046
 
 
6047
void case_310()
 
6048
#line 2548 "cs-parser.jay"
 
6049
 
6050
                report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected");
 
6051
                yyVal = null;
 
6052
          }
 
6053
 
 
6054
void case_311()
 
6055
#line 2556 "cs-parser.jay"
 
6056
{
 
6057
                if (yyVals[-1+yyTop] != ModifierNone) {
 
6058
                        report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
 
6059
                }
 
6060
                
 
6061
                current_event.Add = new EventProperty.AddDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
6062
                current_local_parameters = current_event.Add.ParameterInfo;
 
6063
                
 
6064
                lbag.AddMember (current_event.Add, GetModifierLocations ());
 
6065
                lexer.EventParsing = false;             
 
6066
          }
 
6067
 
 
6068
void case_312()
 
6069
#line 2568 "cs-parser.jay"
 
6070
{
 
6071
                lexer.EventParsing = true;
 
6072
          
 
6073
                current_event.Add.Block = (ToplevelBlock) yyVals[0+yyTop];
 
6074
                
 
6075
                if (current_container.Kind == MemberKind.Interface) {
 
6076
                        report.Error (531, current_event.Add.Block.StartLocation,
 
6077
                                "`{0}': interface members cannot have a definition", current_event.Add.GetSignatureForError ());
 
6078
                }
 
6079
                
 
6080
                current_local_parameters = null;
 
6081
          }
 
6082
 
 
6083
void case_313()
 
6084
#line 2584 "cs-parser.jay"
 
6085
{
 
6086
                if (yyVals[-1+yyTop] != ModifierNone) {
 
6087
                        report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
 
6088
                }
 
6089
                
 
6090
                current_event.Remove = new EventProperty.RemoveDelegateMethod (current_event, (Attributes) yyVals[-2+yyTop], GetLocation (yyVals[0+yyTop]));
 
6091
                current_local_parameters = current_event.Remove.ParameterInfo;
 
6092
 
 
6093
                lbag.AddMember (current_event.Remove, GetModifierLocations ());
 
6094
                lexer.EventParsing = false;             
 
6095
          }
 
6096
 
 
6097
void case_314()
 
6098
#line 2596 "cs-parser.jay"
 
6099
{
 
6100
                lexer.EventParsing = true;
 
6101
          
 
6102
                current_event.Remove.Block = (ToplevelBlock) yyVals[0+yyTop];
 
6103
                
 
6104
                if (current_container.Kind == MemberKind.Interface) {
 
6105
                        report.Error (531, current_event.Remove.Block.StartLocation,
 
6106
                                "`{0}': interface members cannot have a definition", current_event.Remove.GetSignatureForError ());
 
6107
                }
 
6108
                
 
6109
                current_local_parameters = null;
 
6110
          }
 
6111
 
 
6112
void case_315()
 
6113
#line 2612 "cs-parser.jay"
 
6114
{
 
6115
                report.Error (73, lexer.Location, "An add or remove accessor must have a body");
 
6116
                yyVal = null;
 
6117
          }
 
6118
 
 
6119
void case_317()
 
6120
#line 2621 "cs-parser.jay"
 
6121
{
 
6122
                current_type.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
 
6123
                report.Error (1519, GetLocation (yyVals[-1+yyTop]), "An attribute is missing member declaration");
 
6124
                lexer.putback ('}');
 
6125
          }
 
6126
 
 
6127
void case_318()
 
6128
#line 2632 "cs-parser.jay"
 
6129
{
 
6130
                report.Error (1519, lexer.Location, "Unexpected symbol `}' in class, struct, or interface member declaration");
 
6131
 
 
6132
                lexer.putback ('}');
 
6133
 
 
6134
                lexer.parsing_generic_declaration = false;
 
6135
                FullNamedExpression type = (FullNamedExpression) yyVals[-1+yyTop];
 
6136
                current_field = new Field (current_type, type, (Modifiers) yyVals[-2+yyTop], MemberName.Null, (Attributes) yyVals[-3+yyTop]);
 
6137
                current_type.AddField (current_field);
 
6138
                lbag.AddMember (current_field, GetModifierLocations ());
 
6139
                yyVal = current_field;
 
6140
          }
 
6141
 
 
6142
void case_319()
 
6143
#line 2652 "cs-parser.jay"
 
6144
{
 
6145
                if (doc_support)
 
6146
                        enumTypeComment = Lexer.consume_doc_comment ();
 
6147
          }
 
6148
 
 
6149
void case_320()
 
6150
#line 2657 "cs-parser.jay"
 
6151
{
 
6152
                if (doc_support)
 
6153
                        Lexer.doc_state = XmlCommentState.Allowed;
 
6154
 
 
6155
                MemberName name = (MemberName) yyVals[-3+yyTop];
 
6156
                if (name.IsGeneric) {
 
6157
                        report.Error (1675, name.Location, "Enums cannot have type parameters");
 
6158
                }
 
6159
                
 
6160
                push_current_container (new Enum (current_container, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-5+yyTop], name, (Attributes) yyVals[-6+yyTop]), null);
 
6161
                if (yyVals[-2+yyTop] != null) {
 
6162
                        lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
 
6163
                } else {
 
6164
                        lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6165
                }
 
6166
          }
 
6167
 
 
6168
void case_321()
 
6169
#line 2674 "cs-parser.jay"
 
6170
{
 
6171
                /* here will be evaluated after CLOSE_BLACE is consumed.*/
 
6172
                if (doc_support)
 
6173
                        Lexer.doc_state = XmlCommentState.Allowed;
 
6174
          }
 
6175
 
 
6176
void case_322()
 
6177
#line 2680 "cs-parser.jay"
 
6178
{
 
6179
                lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
 
6180
                if (yyVals[0+yyTop] != null) {
 
6181
                        lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
 
6182
                }
 
6183
                if (doc_support)
 
6184
                        current_container.DocComment = enumTypeComment;
 
6185
                        
 
6186
                --lexer.parsing_declaration;
 
6187
 
 
6188
/*                      if (doc_support)*/
 
6189
/*                              em.DocComment = ev.DocComment;*/
 
6190
 
 
6191
                yyVal = pop_current_class ();
 
6192
          }
 
6193
 
 
6194
void case_324()
 
6195
#line 2700 "cs-parser.jay"
 
6196
{
 
6197
                savedLocation = GetLocation (yyVals[-1+yyTop]);
 
6198
                yyVal = yyVals[0+yyTop];
 
6199
         }
 
6200
 
 
6201
void case_325()
 
6202
#line 2705 "cs-parser.jay"
 
6203
{
 
6204
                Error_TypeExpected (GetLocation (yyVals[-1+yyTop]));
 
6205
                yyVal = null;
 
6206
         }
 
6207
 
 
6208
void case_330()
 
6209
#line 2723 "cs-parser.jay"
 
6210
{
 
6211
                lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
 
6212
                yyVal = yyVals[0+yyTop];
 
6213
          }
 
6214
 
 
6215
void case_331()
 
6216
#line 2731 "cs-parser.jay"
 
6217
{
 
6218
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
6219
                var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-1+yyTop]);
 
6220
                ((Enum) current_type).AddEnumMember (em);
 
6221
 
 
6222
                if (doc_support) {
 
6223
                        em.DocComment = Lexer.consume_doc_comment ();
 
6224
                        Lexer.doc_state = XmlCommentState.Allowed;
 
6225
                }
 
6226
 
 
6227
                yyVal = em;
 
6228
          }
 
6229
 
 
6230
void case_332()
 
6231
#line 2744 "cs-parser.jay"
 
6232
{
 
6233
                ++lexer.parsing_block;
 
6234
                if (doc_support) {
 
6235
                        tmpComment = Lexer.consume_doc_comment ();
 
6236
                        Lexer.doc_state = XmlCommentState.NotAllowed;
 
6237
                }
 
6238
          }
 
6239
 
 
6240
void case_333()
 
6241
#line 2752 "cs-parser.jay"
 
6242
 
6243
                --lexer.parsing_block;
 
6244
                
 
6245
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
6246
                var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-4+yyTop]);
 
6247
                em.Initializer = new ConstInitializer (em, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
6248
                ((Enum) current_type).AddEnumMember (em);
 
6249
                
 
6250
                if (doc_support)
 
6251
                        em.DocComment = ConsumeStoredComment ();
 
6252
 
 
6253
                yyVal = em;
 
6254
          }
 
6255
 
 
6256
void case_334()
 
6257
#line 2766 "cs-parser.jay"
 
6258
{
 
6259
                Error_SyntaxError (yyToken);
 
6260
          
 
6261
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6262
                var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-2+yyTop]);
 
6263
                ((Enum) current_type).AddEnumMember (em);
 
6264
 
 
6265
                if (doc_support) {
 
6266
                        em.DocComment = Lexer.consume_doc_comment ();
 
6267
                        Lexer.doc_state = XmlCommentState.Allowed;
 
6268
                }
 
6269
 
 
6270
                yyVal = em;
 
6271
          }
 
6272
 
 
6273
void case_337()
 
6274
#line 2793 "cs-parser.jay"
 
6275
{
 
6276
                valid_param_mod = 0;
 
6277
 
 
6278
                ParametersCompiled p = (ParametersCompiled) yyVals[-1+yyTop];
 
6279
 
 
6280
                Delegate del = new Delegate (current_container, (FullNamedExpression) yyVals[-5+yyTop], (Modifiers) yyVals[-7+yyTop], (MemberName) yyVals[-4+yyTop], p, (Attributes) yyVals[-8+yyTop]);
 
6281
 
 
6282
                p.CheckParameters (del);
 
6283
 
 
6284
                current_container.AddTypeContainer (del);
 
6285
 
 
6286
                current_delegate = del;
 
6287
                lexer.ConstraintsParsing = true;
 
6288
          }
 
6289
 
 
6290
void case_339()
 
6291
#line 2812 "cs-parser.jay"
 
6292
{
 
6293
                if (doc_support) {
 
6294
                        current_delegate.DocComment = Lexer.consume_doc_comment ();
 
6295
                        Lexer.doc_state = XmlCommentState.Allowed;
 
6296
                }
 
6297
          
 
6298
                if (yyVals[-2+yyTop] != null)
 
6299
                        current_delegate.SetConstraints ((List<Constraints>) yyVals[-2+yyTop]);
 
6300
                lbag.AddMember (current_delegate, GetModifierLocations (), GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6301
 
 
6302
                yyVal = current_delegate;
 
6303
 
 
6304
                current_delegate = null;
 
6305
          }
 
6306
 
 
6307
void case_341()
 
6308
#line 2831 "cs-parser.jay"
 
6309
{
 
6310
                if (lang_version < LanguageVersion.ISO_2)
 
6311
                        FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types");
 
6312
          
 
6313
                yyVal = ComposedTypeSpecifier.CreateNullable (GetLocation (yyVals[0+yyTop]));
 
6314
          }
 
6315
 
 
6316
void case_343()
 
6317
#line 2842 "cs-parser.jay"
 
6318
{
 
6319
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6320
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6321
                
 
6322
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
 
6323
                lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
 
6324
          }
 
6325
 
 
6326
void case_345()
 
6327
#line 2854 "cs-parser.jay"
 
6328
{
 
6329
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6330
                yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
 
6331
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
6332
                };
 
6333
          }
 
6334
 
 
6335
void case_346()
 
6336
#line 2864 "cs-parser.jay"
 
6337
{
 
6338
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6339
                yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
 
6340
          }
 
6341
 
 
6342
void case_348()
 
6343
#line 2876 "cs-parser.jay"
 
6344
{
 
6345
                if (lang_version < LanguageVersion.ISO_2)
 
6346
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
 
6347
                var list = locationListStack.Pop ();
 
6348
                list.Add (GetLocation (yyVals[-2+yyTop]));
 
6349
                list.Add (GetLocation (yyVals[-1+yyTop]));
 
6350
                lbag.AddLocation (yyVals[-1+yyTop], list);
 
6351
        
 
6352
                yyVal = yyVals[-1+yyTop];;
 
6353
          }
 
6354
 
 
6355
void case_349()
 
6356
#line 2887 "cs-parser.jay"
 
6357
{
 
6358
                Error_TypeExpected (lexer.Location);
 
6359
                yyVal = new TypeArguments ();
 
6360
          }
 
6361
 
 
6362
void case_350()
 
6363
#line 2895 "cs-parser.jay"
 
6364
{
 
6365
                TypeArguments type_args = new TypeArguments ();
 
6366
                type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
6367
                yyVal = type_args;
 
6368
                locationListStack.Push (new List<Location> ());
 
6369
          }
 
6370
 
 
6371
void case_351()
 
6372
#line 2902 "cs-parser.jay"
 
6373
{
 
6374
                TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop];
 
6375
                type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
6376
                yyVal = type_args;
 
6377
                locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
 
6378
          }
 
6379
 
 
6380
void case_353()
 
6381
#line 2919 "cs-parser.jay"
 
6382
{
 
6383
                lexer.parsing_generic_declaration = false;
 
6384
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6385
                yyVal = new MemberName (lt.Value, (TypeParameters)yyVals[0+yyTop], lt.Location);
 
6386
          }
 
6387
 
 
6388
void case_354()
 
6389
#line 2928 "cs-parser.jay"
 
6390
{
 
6391
                MemberName mn = (MemberName)yyVals[0+yyTop];
 
6392
                if (mn.TypeParameters != null)
 
6393
                        syntax_error (mn.Location, string.Format ("Member `{0}' cannot declare type arguments",
 
6394
                                mn.GetSignatureForError ()));
 
6395
          }
 
6396
 
 
6397
void case_356()
 
6398
#line 2939 "cs-parser.jay"
 
6399
{
 
6400
                lexer.parsing_generic_declaration = false;        
 
6401
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6402
                yyVal = new MemberName (lt.Value, (TypeParameters) yyVals[0+yyTop], (ATypeNameExpression) yyVals[-2+yyTop], lt.Location);
 
6403
          }
 
6404
 
 
6405
void case_357()
 
6406
#line 2948 "cs-parser.jay"
 
6407
{
 
6408
                lexer.parsing_generic_declaration = false;        
 
6409
                yyVal = new MemberName (TypeDefinition.DefaultIndexerName, GetLocation (yyVals[0+yyTop]));
 
6410
          }
 
6411
 
 
6412
void case_358()
 
6413
#line 2953 "cs-parser.jay"
 
6414
{
 
6415
                lexer.parsing_generic_declaration = false;
 
6416
                yyVal = new MemberName (TypeDefinition.DefaultIndexerName, null, (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
 
6417
          }
 
6418
 
 
6419
void case_359()
 
6420
#line 2961 "cs-parser.jay"
 
6421
{
 
6422
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6423
                yyVal = new SimpleName (lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
 
6424
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6425
          }
 
6426
 
 
6427
void case_360()
 
6428
#line 2967 "cs-parser.jay"
 
6429
{
 
6430
                var lt1 = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
6431
                var lt2 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6432
 
 
6433
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[-1+yyTop], lt1.Location);
 
6434
                lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[0+yyTop]));
 
6435
          }
 
6436
 
 
6437
void case_361()
 
6438
#line 2975 "cs-parser.jay"
 
6439
{
 
6440
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6441
                yyVal = new MemberAccess ((ATypeNameExpression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
 
6442
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6443
          }
 
6444
 
 
6445
void case_363()
 
6446
#line 2985 "cs-parser.jay"
 
6447
{
 
6448
                if (lang_version < LanguageVersion.ISO_2)
 
6449
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
 
6450
          
 
6451
                yyVal = yyVals[-1+yyTop];
 
6452
                var list = locationListStack.Pop ();
 
6453
                list.Add (GetLocation (yyVals[-2+yyTop]));
 
6454
                list.Add (GetLocation (yyVals[-1+yyTop]));
 
6455
                lbag.AddLocation (yyVals[-1+yyTop], list);
 
6456
          }
 
6457
 
 
6458
void case_364()
 
6459
#line 2999 "cs-parser.jay"
 
6460
{
 
6461
                var tparams = new TypeParameters ();
 
6462
                tparams.Add ((TypeParameter)yyVals[0+yyTop]);
 
6463
                yyVal = tparams;
 
6464
                locationListStack.Push (new List<Location> ());
 
6465
          }
 
6466
 
 
6467
void case_365()
 
6468
#line 3006 "cs-parser.jay"
 
6469
{
 
6470
                var tparams = (TypeParameters) yyVals[-2+yyTop];
 
6471
                tparams.Add ((TypeParameter)yyVals[0+yyTop]);
 
6472
                yyVal = tparams;
 
6473
                locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
 
6474
          }
 
6475
 
 
6476
void case_366()
 
6477
#line 3016 "cs-parser.jay"
 
6478
{
 
6479
                var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
 
6480
                var variance = (Variance) yyVals[-1+yyTop];
 
6481
                yyVal = new TypeParameter (new MemberName (lt.Value, lt.Location), (Attributes)yyVals[-2+yyTop], variance);
 
6482
                if (variance != Variance.None)
 
6483
                        lbag.AddLocation (yyVal, savedLocation);
 
6484
          }
 
6485
 
 
6486
void case_367()
 
6487
#line 3024 "cs-parser.jay"
 
6488
{
 
6489
                if (GetTokenName (yyToken) == "type")
 
6490
                        report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type");
 
6491
                else
 
6492
                        Error_SyntaxError (yyToken);
 
6493
                        
 
6494
                yyVal = new TypeParameter (MemberName.Null, null, Variance.None);
 
6495
          }
 
6496
 
 
6497
void case_372()
 
6498
#line 3058 "cs-parser.jay"
 
6499
{
 
6500
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
 
6501
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
6502
          }
 
6503
 
 
6504
void case_374()
 
6505
#line 3067 "cs-parser.jay"
 
6506
{
 
6507
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
 
6508
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
6509
          }
 
6510
 
 
6511
void case_376()
 
6512
#line 3076 "cs-parser.jay"
 
6513
{
 
6514
                report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'");
 
6515
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
6516
          }
 
6517
 
 
6518
void case_379()
 
6519
#line 3092 "cs-parser.jay"
 
6520
{
 
6521
                if (yyVals[0+yyTop] != null) {
 
6522
                        yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
6523
                } else {
 
6524
                        var sn = yyVals[-1+yyTop] as SimpleName;
 
6525
                        if (sn != null && sn.Name == "var")
 
6526
                                yyVal = new VarExpr (sn.Location);
 
6527
                        else
 
6528
                                yyVal = yyVals[-1+yyTop];
 
6529
                }
 
6530
          }
 
6531
 
 
6532
void case_381()
 
6533
#line 3108 "cs-parser.jay"
 
6534
{
 
6535
                if (yyVals[0+yyTop] != null)
 
6536
                        yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
6537
          }
 
6538
 
 
6539
void case_384()
 
6540
#line 3124 "cs-parser.jay"
 
6541
{
 
6542
                var types = new List<FullNamedExpression> (2);
 
6543
                types.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
6544
                yyVal = types;
 
6545
          }
 
6546
 
 
6547
void case_385()
 
6548
#line 3130 "cs-parser.jay"
 
6549
{
 
6550
                var types = (List<FullNamedExpression>) yyVals[-2+yyTop];
 
6551
                types.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
6552
                lbag.AddLocation (types, GetLocation (yyVals[-1+yyTop]));
 
6553
                yyVal = types;
 
6554
          }
 
6555
 
 
6556
void case_386()
 
6557
#line 3140 "cs-parser.jay"
 
6558
{
 
6559
                if (yyVals[0+yyTop] is ComposedCast) {
 
6560
                        report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
 
6561
                }
 
6562
                yyVal = yyVals[0+yyTop];
 
6563
          }
 
6564
 
 
6565
void case_423()
 
6566
#line 3204 "cs-parser.jay"
 
6567
{
 
6568
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6569
                yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);   
 
6570
          }
 
6571
 
 
6572
void case_424()
 
6573
#line 3208 "cs-parser.jay"
 
6574
{
 
6575
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6576
               yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location);
 
6577
          }
 
6578
 
 
6579
void case_435()
 
6580
#line 3249 "cs-parser.jay"
 
6581
{
 
6582
                yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6583
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6584
          }
 
6585
 
 
6586
void case_437()
 
6587
#line 3261 "cs-parser.jay"
 
6588
{
 
6589
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6590
                yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
 
6591
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
6592
                };
 
6593
          }
 
6594
 
 
6595
void case_438()
 
6596
#line 3268 "cs-parser.jay"
 
6597
{
 
6598
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6599
                yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
 
6600
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
6601
                };
 
6602
          }
 
6603
 
 
6604
void case_439()
 
6605
#line 3275 "cs-parser.jay"
 
6606
{
 
6607
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6608
                yyVal = new MemberAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location) {
 
6609
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
6610
                };
 
6611
          }
 
6612
 
 
6613
void case_440()
 
6614
#line 3282 "cs-parser.jay"
 
6615
{
 
6616
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6617
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6618
 
 
6619
                yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (TypeArguments) yyVals[0+yyTop], lt1.Location);
 
6620
                lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
 
6621
          }
 
6622
 
 
6623
void case_442()
 
6624
#line 3292 "cs-parser.jay"
 
6625
{
 
6626
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6627
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
 
6628
          }
 
6629
 
 
6630
void case_444()
 
6631
#line 3300 "cs-parser.jay"
 
6632
{
 
6633
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
6634
                yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
 
6635
          }
 
6636
 
 
6637
void case_445()
 
6638
#line 3308 "cs-parser.jay"
 
6639
{
 
6640
                yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
 
6641
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6642
          }
 
6643
 
 
6644
void case_446()
 
6645
#line 3313 "cs-parser.jay"
 
6646
{
 
6647
                Error_SyntaxError (yyToken);
 
6648
 
 
6649
                yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
 
6650
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
6651
          }
 
6652
 
 
6653
void case_447()
 
6654
#line 3320 "cs-parser.jay"
 
6655
{
 
6656
                Error_SyntaxError (yyToken);
 
6657
 
 
6658
                yyVal = new Invocation ((Expression) yyVals[-2+yyTop], null);
 
6659
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6660
          }
 
6661
 
 
6662
void case_450()
 
6663
#line 3335 "cs-parser.jay"
 
6664
{
 
6665
                if (yyVals[-1+yyTop] == null) {
 
6666
                        yyVal = new CollectionOrObjectInitializers (GetLocation (yyVals[-2+yyTop]));
 
6667
                } else {
 
6668
                        yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6669
                }
 
6670
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6671
          }
 
6672
 
 
6673
void case_451()
 
6674
#line 3344 "cs-parser.jay"
 
6675
{
 
6676
                yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
 
6677
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6678
          }
 
6679
 
 
6680
void case_454()
 
6681
#line 3360 "cs-parser.jay"
 
6682
{
 
6683
                var a = new List<Expression> ();
 
6684
                a.Add ((Expression) yyVals[0+yyTop]);
 
6685
                yyVal = a;
 
6686
          }
 
6687
 
 
6688
void case_455()
 
6689
#line 3366 "cs-parser.jay"
 
6690
{
 
6691
                var a = (List<Expression>)yyVals[-2+yyTop];
 
6692
                a.Add ((Expression) yyVals[0+yyTop]);
 
6693
                lbag.AddLocation (a, GetLocation (yyVals[-1+yyTop]));
 
6694
                yyVal = a;
 
6695
          }
 
6696
 
 
6697
void case_456()
 
6698
#line 3372 "cs-parser.jay"
 
6699
{
 
6700
                Error_SyntaxError (yyToken);
 
6701
                yyVal = yyVals[-1+yyTop];
 
6702
          }
 
6703
 
 
6704
void case_457()
 
6705
#line 3380 "cs-parser.jay"
 
6706
{
 
6707
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
6708
                yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
 
6709
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6710
          }
 
6711
 
 
6712
void case_458()
 
6713
#line 3386 "cs-parser.jay"
 
6714
{
 
6715
                var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[-2+yyTop]);
 
6716
                yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
 
6717
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6718
          }
 
6719
 
 
6720
void case_460()
 
6721
#line 3395 "cs-parser.jay"
 
6722
{
 
6723
                CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName;
 
6724
                if (csn == null)
 
6725
                        yyVal = new CollectionElementInitializer ((Expression)yyVals[-1+yyTop]);
 
6726
                else
 
6727
                        yyVal = new CompletionElementInitializer (csn.Prefix, csn.Location);
 
6728
          }
 
6729
 
 
6730
void case_461()
 
6731
#line 3403 "cs-parser.jay"
 
6732
{
 
6733
                if (yyVals[-1+yyTop] == null)
 
6734
                        yyVal = null;
 
6735
                else {
 
6736
                        yyVal = new CollectionElementInitializer ((List<Expression>)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6737
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6738
                }
 
6739
          }
 
6740
 
 
6741
void case_462()
 
6742
#line 3412 "cs-parser.jay"
 
6743
{
 
6744
                report.Error (1920, GetLocation (yyVals[-1+yyTop]), "An element initializer cannot be empty");
 
6745
                yyVal = new CollectionElementInitializer (new List<Expression> (), GetLocation (yyVals[-1+yyTop]));
 
6746
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6747
          }
 
6748
 
 
6749
void case_467()
 
6750
#line 3431 "cs-parser.jay"
 
6751
 
6752
                Arguments list = new Arguments (4);
 
6753
                list.Add ((Argument) yyVals[0+yyTop]);
 
6754
                yyVal = list;
 
6755
          }
 
6756
 
 
6757
void case_468()
 
6758
#line 3437 "cs-parser.jay"
 
6759
{
 
6760
                Arguments list = (Arguments) yyVals[-2+yyTop];
 
6761
                if (list [list.Count - 1] is NamedArgument)
 
6762
                        Error_NamedArgumentExpected ((NamedArgument) list [list.Count - 1]);
 
6763
                
 
6764
                list.Add ((Argument) yyVals[0+yyTop]);
 
6765
                lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
 
6766
                yyVal = list;
 
6767
          }
 
6768
 
 
6769
void case_469()
 
6770
#line 3447 "cs-parser.jay"
 
6771
{
 
6772
                Arguments list = (Arguments) yyVals[-2+yyTop];
 
6773
                NamedArgument a = (NamedArgument) yyVals[0+yyTop];
 
6774
                for (int i = 0; i < list.Count; ++i) {
 
6775
                        NamedArgument na = list [i] as NamedArgument;
 
6776
                        if (na != null && na.Name == a.Name)
 
6777
                                report.Error (1740, na.Location, "Named argument `{0}' specified multiple times",
 
6778
                                        na.Name);
 
6779
                }
 
6780
                
 
6781
                list.Add (a);
 
6782
                lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
 
6783
                yyVal = list;
 
6784
          }
 
6785
 
 
6786
void case_470()
 
6787
#line 3462 "cs-parser.jay"
 
6788
{
 
6789
                if (lexer.putback_char == -1)
 
6790
                        lexer.putback (')'); /* TODO: Wrong but what can I do*/
 
6791
                Error_SyntaxError (yyToken);
 
6792
                yyVal = yyVals[-2+yyTop];
 
6793
          }
 
6794
 
 
6795
void case_471()
 
6796
#line 3469 "cs-parser.jay"
 
6797
{
 
6798
                report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing");
 
6799
                yyVal = null;
 
6800
          }
 
6801
 
 
6802
void case_476()
 
6803
#line 3490 "cs-parser.jay"
 
6804
 
6805
                yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
 
6806
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6807
          }
 
6808
 
 
6809
void case_477()
 
6810
#line 3495 "cs-parser.jay"
 
6811
 
6812
                yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
 
6813
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
6814
          }
 
6815
 
 
6816
void case_478()
 
6817
#line 3500 "cs-parser.jay"
 
6818
{
 
6819
                yyVal = new Argument (new Arglist ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])));
 
6820
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6821
          }
 
6822
 
 
6823
void case_479()
 
6824
#line 3505 "cs-parser.jay"
 
6825
{
 
6826
                yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop])));
 
6827
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6828
          }
 
6829
 
 
6830
void case_481()
 
6831
#line 3517 "cs-parser.jay"
 
6832
{
 
6833
                yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6834
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6835
          }
 
6836
 
 
6837
void case_482()
 
6838
#line 3522 "cs-parser.jay"
 
6839
{
 
6840
                Error_SyntaxError (yyToken);
 
6841
                yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6842
          }
 
6843
 
 
6844
void case_483()
 
6845
#line 3527 "cs-parser.jay"
 
6846
{
 
6847
                Error_SyntaxError (yyToken);
 
6848
                yyVal = new ElementAccess ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
 
6849
          }
 
6850
 
 
6851
void case_484()
 
6852
#line 3535 "cs-parser.jay"
 
6853
{
 
6854
                var list = new List<Expression> (4);
 
6855
                list.Add ((Expression) yyVals[0+yyTop]);
 
6856
                yyVal = list;
 
6857
          }
 
6858
 
 
6859
void case_485()
 
6860
#line 3541 "cs-parser.jay"
 
6861
{
 
6862
                var list = (List<Expression>) yyVals[-2+yyTop];
 
6863
                list.Add ((Expression) yyVals[0+yyTop]);
 
6864
                lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
 
6865
                yyVal = list;
 
6866
          }
 
6867
 
 
6868
void case_486()
 
6869
#line 3551 "cs-parser.jay"
 
6870
{
 
6871
                Arguments args = new Arguments (4);
 
6872
                args.Add ((Argument) yyVals[0+yyTop]);
 
6873
                yyVal = args;
 
6874
          }
 
6875
 
 
6876
void case_487()
 
6877
#line 3557 "cs-parser.jay"
 
6878
{
 
6879
                Arguments args = (Arguments) yyVals[-2+yyTop];
 
6880
                if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument))
 
6881
                        Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
 
6882
          
 
6883
                args.Add ((Argument) yyVals[0+yyTop]);
 
6884
                lbag.AddLocation (args, GetLocation (yyVals[-1+yyTop]));
 
6885
                yyVal = args;     
 
6886
          }
 
6887
 
 
6888
void case_491()
 
6889
#line 3585 "cs-parser.jay"
 
6890
{
 
6891
                yyVal = new ElementAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6892
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
6893
          }
 
6894
 
 
6895
void case_492()
 
6896
#line 3590 "cs-parser.jay"
 
6897
{
 
6898
                Error_SyntaxError (yyToken);
 
6899
                yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop]));
 
6900
          }
 
6901
 
 
6902
void case_495()
 
6903
#line 3612 "cs-parser.jay"
 
6904
{
 
6905
                if (yyVals[0+yyTop] != null) {
 
6906
                        if (lang_version <= LanguageVersion.ISO_2)
 
6907
                                FeatureIsNotAvailable (GetLocation (yyVals[-5+yyTop]), "object initializers");
 
6908
                                
 
6909
                        yyVal = new NewInitialize ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop]));
 
6910
                } else {
 
6911
                        yyVal = new New ((FullNamedExpression) yyVals[-4+yyTop], (Arguments) yyVals[-2+yyTop], GetLocation (yyVals[-5+yyTop]));
 
6912
                }
 
6913
                
 
6914
                lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
6915
          }
 
6916
 
 
6917
void case_496()
 
6918
#line 3625 "cs-parser.jay"
 
6919
{
 
6920
                if (lang_version <= LanguageVersion.ISO_2)
 
6921
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers");
 
6922
          
 
6923
                yyVal = new NewInitialize ((FullNamedExpression) yyVals[-1+yyTop], null, (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6924
          }
 
6925
 
 
6926
void case_497()
 
6927
#line 3637 "cs-parser.jay"
 
6928
{
 
6929
                yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], (List<Expression>) yyVals[-3+yyTop],
 
6930
                                new ComposedTypeSpecifier (((List<Expression>) yyVals[-3+yyTop]).Count, GetLocation (yyVals[-4+yyTop])) {
 
6931
                                        Next = (ComposedTypeSpecifier) yyVals[-1+yyTop]
 
6932
                                }, (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
 
6933
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
6934
          }
 
6935
 
 
6936
void case_498()
 
6937
#line 3645 "cs-parser.jay"
 
6938
{
 
6939
                if (yyVals[0+yyTop] == null)
 
6940
                        report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer");
 
6941
 
 
6942
                yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-2+yyTop], (ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
 
6943
          }
 
6944
 
 
6945
void case_499()
 
6946
#line 3652 "cs-parser.jay"
 
6947
{
 
6948
                if (lang_version <= LanguageVersion.ISO_2)
 
6949
                        FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays");
 
6950
          
 
6951
                yyVal = new ImplicitlyTypedArrayCreation ((ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
6952
          }
 
6953
 
 
6954
void case_500()
 
6955
#line 3659 "cs-parser.jay"
 
6956
{
 
6957
                report.Error (178, GetLocation (yyVals[-1+yyTop]), "Invalid rank specifier, expecting `,' or `]'");
 
6958
                yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], null, GetLocation (yyVals[-6+yyTop]));
 
6959
          }
 
6960
 
 
6961
void case_501()
 
6962
#line 3664 "cs-parser.jay"
 
6963
{
 
6964
                Error_SyntaxError (yyToken);
 
6965
                /* It can be any of new expression, create the most common one*/
 
6966
                yyVal = new New ((FullNamedExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
 
6967
          }
 
6968
 
 
6969
void case_503()
 
6970
#line 3676 "cs-parser.jay"
 
6971
{
 
6972
                --lexer.parsing_type;
 
6973
                yyVal = yyVals[0+yyTop];
 
6974
          }
 
6975
 
 
6976
void case_504()
 
6977
#line 3684 "cs-parser.jay"
 
6978
{
 
6979
                if (lang_version <= LanguageVersion.ISO_2)
 
6980
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types");
 
6981
 
 
6982
                yyVal = new NewAnonymousType ((List<AnonymousTypeParameter>) yyVals[-1+yyTop], current_container, GetLocation (yyVals[-3+yyTop]));
 
6983
                
 
6984
                /* TODO: lbag comma location*/
 
6985
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
6986
          }
 
6987
 
 
6988
void case_509()
 
6989
#line 3707 "cs-parser.jay"
 
6990
{
 
6991
                var a = new List<AnonymousTypeParameter> (4);
 
6992
                a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
 
6993
                yyVal = a;
 
6994
          }
 
6995
 
 
6996
void case_510()
 
6997
#line 3713 "cs-parser.jay"
 
6998
{
 
6999
                var a = (List<AnonymousTypeParameter>) yyVals[-2+yyTop];
 
7000
                a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
 
7001
                lbag.AddLocation (a, GetLocation (yyVals[-1+yyTop]));
 
7002
 
 
7003
                yyVal = a;
 
7004
          }
 
7005
 
 
7006
void case_511()
 
7007
#line 3724 "cs-parser.jay"
 
7008
{
 
7009
                var lt = (Tokenizer.LocatedToken)yyVals[-2+yyTop];
 
7010
                yyVal = new AnonymousTypeParameter ((Expression)yyVals[0+yyTop], lt.Value, lt.Location);
 
7011
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7012
          }
 
7013
 
 
7014
void case_512()
 
7015
#line 3730 "cs-parser.jay"
 
7016
{
 
7017
                var lt = (Tokenizer.LocatedToken)yyVals[0+yyTop];
 
7018
                yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location),
 
7019
                        lt.Value, lt.Location);
 
7020
          }
 
7021
 
 
7022
void case_513()
 
7023
#line 3736 "cs-parser.jay"
 
7024
{
 
7025
                MemberAccess ma = (MemberAccess) yyVals[0+yyTop];
 
7026
                yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location);
 
7027
          }
 
7028
 
 
7029
void case_514()
 
7030
#line 3741 "cs-parser.jay"
 
7031
{
 
7032
                report.Error (746, lexer.Location,
 
7033
                        "Invalid anonymous type member declarator. Anonymous type members must be a member assignment, simple name or member access expression");
 
7034
                yyVal = null;
 
7035
          }
 
7036
 
 
7037
void case_518()
 
7038
#line 3756 "cs-parser.jay"
 
7039
{
 
7040
                ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
 
7041
                yyVal = yyVals[-1+yyTop];
 
7042
          }
 
7043
 
 
7044
void case_519()
 
7045
#line 3764 "cs-parser.jay"
 
7046
{
 
7047
                yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop]));
 
7048
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
7049
          }
 
7050
 
 
7051
void case_520()
 
7052
#line 3769 "cs-parser.jay"
 
7053
{
 
7054
                yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
7055
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
7056
          }
 
7057
 
 
7058
void case_525()
 
7059
#line 3799 "cs-parser.jay"
 
7060
{
 
7061
                var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop]));
 
7062
                ai.VariableDeclaration = current_variable;
 
7063
                lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
 
7064
                yyVal = ai;
 
7065
          }
 
7066
 
 
7067
void case_526()
 
7068
#line 3806 "cs-parser.jay"
 
7069
{
 
7070
                var ai = new ArrayInitializer ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7071
                ai.VariableDeclaration = current_variable;
 
7072
                if (yyVals[-1+yyTop] != null) {
 
7073
                        lbag.AddLocation (ai, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7074
                } else {
 
7075
                        lbag.AddLocation (ai, GetLocation (yyVals[0+yyTop]));
 
7076
                }
 
7077
                yyVal = ai;
 
7078
          }
 
7079
 
 
7080
void case_527()
 
7081
#line 3820 "cs-parser.jay"
 
7082
{
 
7083
                var list = new List<Expression> (4);
 
7084
                list.Add ((Expression) yyVals[0+yyTop]);
 
7085
                yyVal = list;
 
7086
          }
 
7087
 
 
7088
void case_528()
 
7089
#line 3826 "cs-parser.jay"
 
7090
{
 
7091
                var list = (List<Expression>) yyVals[-2+yyTop];
 
7092
                list.Add ((Expression) yyVals[0+yyTop]);
 
7093
                lbag.AddLocation (list, GetLocation (yyVals[-1+yyTop]));
 
7094
                yyVal = list;
 
7095
          }
 
7096
 
 
7097
void case_530()
 
7098
#line 3840 "cs-parser.jay"
 
7099
{
 
7100
                lexer.TypeOfParsing = false;
 
7101
                yyVal = new TypeOf ((FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
 
7102
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7103
          }
 
7104
 
 
7105
void case_533()
 
7106
#line 3851 "cs-parser.jay"
 
7107
{
 
7108
                Error_TypeExpected (lexer.Location);
 
7109
                yyVal = null;
 
7110
         }
 
7111
 
 
7112
void case_534()
 
7113
#line 3859 "cs-parser.jay"
 
7114
{  
 
7115
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7116
                var sn = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
 
7117
                yyVal = sn;
 
7118
                lbag.AddLocation (sn.TypeArguments, Lexer.GetGenericDimensionLocations ());
 
7119
          }
 
7120
 
 
7121
void case_535()
 
7122
#line 3866 "cs-parser.jay"
 
7123
{
 
7124
                var lt1 = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
7125
                var lt2 = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7126
                var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
 
7127
                yyVal = qam;
 
7128
                lbag.AddLocation (qam.TypeArguments, Lexer.GetGenericDimensionLocations ());
 
7129
                lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
 
7130
          }
 
7131
 
 
7132
void case_536()
 
7133
#line 3875 "cs-parser.jay"
 
7134
{
 
7135
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
7136
                
 
7137
                yyVal = new MemberAccess ((Expression) yyVals[-2+yyTop], lt.Value, lt.Location) {
 
7138
                        DotLocation = GetLocation (yyVals[-1+yyTop])
 
7139
                };
 
7140
          }
 
7141
 
 
7142
void case_537()
 
7143
#line 3883 "cs-parser.jay"
 
7144
{
 
7145
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7146
                
 
7147
                var ma = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location) {
 
7148
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
7149
                };
 
7150
                yyVal = ma;
 
7151
                lbag.AddLocation (ma.TypeArguments, Lexer.GetGenericDimensionLocations ());
 
7152
          }
 
7153
 
 
7154
void case_538()
 
7155
#line 3893 "cs-parser.jay"
 
7156
{
 
7157
                var tne = (ATypeNameExpression) yyVals[-3+yyTop];
 
7158
                if (tne.HasTypeArguments)
 
7159
                        Error_TypeExpected (GetLocation (yyVals[0+yyTop]));
 
7160
 
 
7161
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7162
                var ma = new MemberAccess (tne, lt.Value, (int) yyVals[0+yyTop], lt.Location) {
 
7163
                        DotLocation = GetLocation (yyVals[-2+yyTop])
 
7164
                };              
 
7165
                yyVal = ma;
 
7166
                lbag.AddLocation (ma.TypeArguments, Lexer.GetGenericDimensionLocations ());
 
7167
          }
 
7168
 
 
7169
void case_539()
 
7170
#line 3909 "cs-parser.jay"
 
7171
{
 
7172
                if (lang_version < LanguageVersion.ISO_2)
 
7173
                        FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics");
 
7174
 
 
7175
                yyVal = yyVals[0+yyTop];
 
7176
          }
 
7177
 
 
7178
void case_540()
 
7179
#line 3919 "cs-parser.jay"
 
7180
{
 
7181
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7182
                if (lang_version == LanguageVersion.ISO_1)
 
7183
                        FeatureIsNotAvailable (lt.Location, "namespace alias qualifier");
 
7184
                savedLocation = GetLocation (yyVals[0+yyTop]);
 
7185
                yyVal = lt;             
 
7186
          }
 
7187
 
 
7188
void case_541()
 
7189
#line 3930 "cs-parser.jay"
 
7190
 
7191
                yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7192
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7193
          }
 
7194
 
 
7195
void case_542()
 
7196
#line 3935 "cs-parser.jay"
 
7197
{
 
7198
                Error_SyntaxError (yyToken);
 
7199
 
 
7200
                yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7201
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
7202
          }
 
7203
 
 
7204
void case_543()
 
7205
#line 3945 "cs-parser.jay"
 
7206
{
 
7207
                yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7208
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7209
          }
 
7210
 
 
7211
void case_544()
 
7212
#line 3950 "cs-parser.jay"
 
7213
{
 
7214
                Error_SyntaxError (yyToken);
 
7215
 
 
7216
                yyVal = new CheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
 
7217
          }
 
7218
 
 
7219
void case_545()
 
7220
#line 3959 "cs-parser.jay"
 
7221
{
 
7222
                yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7223
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7224
          }
 
7225
 
 
7226
void case_546()
 
7227
#line 3964 "cs-parser.jay"
 
7228
{
 
7229
                Error_SyntaxError (yyToken);
 
7230
 
 
7231
                yyVal = new UnCheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
 
7232
          }
 
7233
 
 
7234
void case_547()
 
7235
#line 3973 "cs-parser.jay"
 
7236
{
 
7237
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7238
                yyVal = new MemberAccess (new Indirection ((Expression) yyVals[-3+yyTop], GetLocation (yyVals[-2+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
 
7239
          }
 
7240
 
 
7241
void case_549()
 
7242
#line 3985 "cs-parser.jay"
 
7243
{
 
7244
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7245
                if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
 
7246
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
 
7247
                } else {
 
7248
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]));
 
7249
                }
 
7250
          }
 
7251
 
 
7252
void case_551()
 
7253
#line 3998 "cs-parser.jay"
 
7254
{
 
7255
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7256
                
 
7257
                if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
 
7258
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), savedOpenLocation, savedCloseLocation);
 
7259
                } else {
 
7260
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]));
 
7261
                }
 
7262
          }
 
7263
 
 
7264
void case_555()
 
7265
#line 4023 "cs-parser.jay"
 
7266
{
 
7267
                valid_param_mod = 0;
 
7268
                yyVal = yyVals[-1+yyTop];
 
7269
                savedOpenLocation = GetLocation (yyVals[-3+yyTop]);
 
7270
                savedCloseLocation = GetLocation (yyVals[-2+yyTop]);
 
7271
          }
 
7272
 
 
7273
void case_556()
 
7274
#line 4033 "cs-parser.jay"
 
7275
{
 
7276
                if (lang_version < LanguageVersion.ISO_2)
 
7277
                        FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression");
 
7278
 
 
7279
                yyVal = new DefaultValueExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7280
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7281
          }
 
7282
 
 
7283
void case_560()
 
7284
#line 4053 "cs-parser.jay"
 
7285
{
 
7286
                yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7287
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7288
          }
 
7289
 
 
7290
void case_561()
 
7291
#line 4058 "cs-parser.jay"
 
7292
{
 
7293
                if (!async_block) {
 
7294
                         if (current_anonymous_method is LambdaExpression) {
 
7295
                                report.Error (4034, GetLocation (yyVals[-1+yyTop]),
 
7296
                                        "The `await' operator can only be used when its containing lambda expression is marked with the `async' modifier");
 
7297
                        } else if (current_anonymous_method is AnonymousMethodExpression) {
 
7298
                                report.Error (4035, GetLocation (yyVals[-1+yyTop]),
 
7299
                                        "The `await' operator can only be used when its containing anonymous method is marked with the `async' modifier");
 
7300
                        } else {
 
7301
                                report.Error (4033, GetLocation (yyVals[-1+yyTop]),
 
7302
                                        "The `await' operator can only be used when its containing method is marked with the `async' modifier");
 
7303
                        }
 
7304
                } else {
 
7305
                        current_block.Explicit.RegisterAsyncAwait ();
 
7306
                }
 
7307
                
 
7308
                yyVal = new Await ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
 
7309
          }
 
7310
 
 
7311
void case_562()
 
7312
#line 4077 "cs-parser.jay"
 
7313
{
 
7314
                Error_SyntaxError (yyToken);
 
7315
 
 
7316
                yyVal = new Unary (Unary.Operator.LogicalNot, null, GetLocation (yyVals[-1+yyTop]));
 
7317
          }
 
7318
 
 
7319
void case_563()
 
7320
#line 4083 "cs-parser.jay"
 
7321
{
 
7322
                Error_SyntaxError (yyToken);
 
7323
 
 
7324
                yyVal = new Unary (Unary.Operator.OnesComplement, null, GetLocation (yyVals[-1+yyTop]));
 
7325
          }
 
7326
 
 
7327
void case_564()
 
7328
#line 4089 "cs-parser.jay"
 
7329
{
 
7330
                Error_SyntaxError (yyToken);
 
7331
 
 
7332
                yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
7333
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7334
          }
 
7335
 
 
7336
void case_565()
 
7337
#line 4096 "cs-parser.jay"
 
7338
{
 
7339
                Error_SyntaxError (yyToken);
 
7340
 
 
7341
                yyVal = new Await (null, GetLocation (yyVals[-1+yyTop]));
 
7342
          }
 
7343
 
 
7344
void case_573()
 
7345
#line 4134 "cs-parser.jay"
 
7346
 
7347
                Error_SyntaxError (yyToken);
 
7348
 
 
7349
                yyVal = new Unary (Unary.Operator.UnaryPlus, null, GetLocation (yyVals[-1+yyTop]));
 
7350
          }
 
7351
 
 
7352
void case_574()
 
7353
#line 4140 "cs-parser.jay"
 
7354
 
7355
                Error_SyntaxError (yyToken);
 
7356
 
 
7357
                yyVal = new Unary (Unary.Operator.UnaryNegation, null, GetLocation (yyVals[-1+yyTop]));
 
7358
          }
 
7359
 
 
7360
void case_575()
 
7361
#line 4146 "cs-parser.jay"
 
7362
{
 
7363
                Error_SyntaxError (yyToken);
 
7364
 
 
7365
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, null, GetLocation (yyVals[-1+yyTop]));
 
7366
          }
 
7367
 
 
7368
void case_576()
 
7369
#line 4152 "cs-parser.jay"
 
7370
{
 
7371
                Error_SyntaxError (yyToken);
 
7372
 
 
7373
                yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, null, GetLocation (yyVals[-1+yyTop]));
 
7374
          }
 
7375
 
 
7376
void case_577()
 
7377
#line 4158 "cs-parser.jay"
 
7378
{
 
7379
                Error_SyntaxError (yyToken);
 
7380
 
 
7381
                yyVal = new Indirection (null, GetLocation (yyVals[-1+yyTop]));
 
7382
          }
 
7383
 
 
7384
void case_578()
 
7385
#line 4164 "cs-parser.jay"
 
7386
{
 
7387
                Error_SyntaxError (yyToken);
 
7388
 
 
7389
                yyVal = new Unary (Unary.Operator.AddressOf, null, GetLocation (yyVals[-1+yyTop]));
 
7390
          }
 
7391
 
 
7392
void case_580()
 
7393
#line 4174 "cs-parser.jay"
 
7394
{
 
7395
                yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7396
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7397
          }
 
7398
 
 
7399
void case_581()
 
7400
#line 4179 "cs-parser.jay"
 
7401
{
 
7402
                yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7403
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7404
          }
 
7405
 
 
7406
void case_582()
 
7407
#line 4184 "cs-parser.jay"
 
7408
{
 
7409
                yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7410
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7411
          }
 
7412
 
 
7413
void case_583()
 
7414
#line 4189 "cs-parser.jay"
 
7415
{
 
7416
                Error_SyntaxError (yyToken);
 
7417
 
 
7418
                yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], null);
 
7419
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7420
          }
 
7421
 
 
7422
void case_584()
 
7423
#line 4196 "cs-parser.jay"
 
7424
{
 
7425
                Error_SyntaxError (yyToken);
 
7426
 
 
7427
                yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], null);
 
7428
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7429
          }
 
7430
 
 
7431
void case_585()
 
7432
#line 4203 "cs-parser.jay"
 
7433
{
 
7434
                Error_SyntaxError (yyToken);
 
7435
 
 
7436
                yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], null);
 
7437
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7438
          }
 
7439
 
 
7440
void case_587()
 
7441
#line 4214 "cs-parser.jay"
 
7442
{
 
7443
                yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7444
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7445
          }
 
7446
 
 
7447
void case_588()
 
7448
#line 4219 "cs-parser.jay"
 
7449
{
 
7450
                yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7451
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7452
          }
 
7453
 
 
7454
void case_591()
 
7455
#line 4232 "cs-parser.jay"
 
7456
{
 
7457
                Error_SyntaxError (yyToken);
 
7458
 
 
7459
                yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], null);
 
7460
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7461
          }
 
7462
 
 
7463
void case_592()
 
7464
#line 4239 "cs-parser.jay"
 
7465
{
 
7466
                Error_SyntaxError (yyToken);
 
7467
 
 
7468
                yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], null);
 
7469
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7470
          }
 
7471
 
 
7472
void case_593()
 
7473
#line 4246 "cs-parser.jay"
 
7474
{
 
7475
                Error_SyntaxError (yyToken);
 
7476
 
 
7477
                yyVal = new As ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
 
7478
          }
 
7479
 
 
7480
void case_594()
 
7481
#line 4252 "cs-parser.jay"
 
7482
{
 
7483
                Error_SyntaxError (yyToken);
 
7484
 
 
7485
                yyVal = new Is ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
 
7486
          }
 
7487
 
 
7488
void case_596()
 
7489
#line 4262 "cs-parser.jay"
 
7490
{
 
7491
                yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7492
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7493
          }
 
7494
 
 
7495
void case_597()
 
7496
#line 4267 "cs-parser.jay"
 
7497
{
 
7498
                yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7499
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7500
          }
 
7501
 
 
7502
void case_598()
 
7503
#line 4272 "cs-parser.jay"
 
7504
{
 
7505
                Error_SyntaxError (yyToken);
 
7506
 
 
7507
                yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], null);
 
7508
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7509
          }
 
7510
 
 
7511
void case_599()
 
7512
#line 4279 "cs-parser.jay"
 
7513
{
 
7514
                Error_SyntaxError (yyToken);
 
7515
 
 
7516
                yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], null);
 
7517
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7518
          }
 
7519
 
 
7520
void case_601()
 
7521
#line 4290 "cs-parser.jay"
 
7522
{
 
7523
                yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7524
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7525
          }
 
7526
 
 
7527
void case_602()
 
7528
#line 4295 "cs-parser.jay"
 
7529
{
 
7530
                yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7531
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7532
          }
 
7533
 
 
7534
void case_603()
 
7535
#line 4300 "cs-parser.jay"
 
7536
{
 
7537
                yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7538
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7539
          }
 
7540
 
 
7541
void case_604()
 
7542
#line 4305 "cs-parser.jay"
 
7543
{
 
7544
                yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7545
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7546
          }
 
7547
 
 
7548
void case_605()
 
7549
#line 4310 "cs-parser.jay"
 
7550
{
 
7551
                Error_SyntaxError (yyToken);
 
7552
 
 
7553
                yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], null);
 
7554
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7555
          }
 
7556
 
 
7557
void case_606()
 
7558
#line 4317 "cs-parser.jay"
 
7559
{
 
7560
                Error_SyntaxError (yyToken);
 
7561
 
 
7562
                yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], null);
 
7563
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7564
          }
 
7565
 
 
7566
void case_607()
 
7567
#line 4324 "cs-parser.jay"
 
7568
{
 
7569
                Error_SyntaxError (yyToken);
 
7570
 
 
7571
                yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], null);
 
7572
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7573
          }
 
7574
 
 
7575
void case_608()
 
7576
#line 4331 "cs-parser.jay"
 
7577
{
 
7578
                Error_SyntaxError (yyToken);
 
7579
 
 
7580
                yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], null);
 
7581
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7582
          }
 
7583
 
 
7584
void case_610()
 
7585
#line 4342 "cs-parser.jay"
 
7586
{
 
7587
                yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7588
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7589
          }
 
7590
 
 
7591
void case_611()
 
7592
#line 4347 "cs-parser.jay"
 
7593
{
 
7594
                yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7595
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7596
          }
 
7597
 
 
7598
void case_612()
 
7599
#line 4352 "cs-parser.jay"
 
7600
{
 
7601
                Error_SyntaxError (yyToken);
 
7602
 
 
7603
                yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], null);
 
7604
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7605
          }
 
7606
 
 
7607
void case_613()
 
7608
#line 4359 "cs-parser.jay"
 
7609
{
 
7610
                Error_SyntaxError (yyToken);
 
7611
 
 
7612
                yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], null);
 
7613
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7614
          }
 
7615
 
 
7616
void case_615()
 
7617
#line 4370 "cs-parser.jay"
 
7618
{
 
7619
                yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7620
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7621
          }
 
7622
 
 
7623
void case_616()
 
7624
#line 4375 "cs-parser.jay"
 
7625
{
 
7626
                Error_SyntaxError (yyToken);
 
7627
 
 
7628
                yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], null);
 
7629
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7630
          }
 
7631
 
 
7632
void case_618()
 
7633
#line 4386 "cs-parser.jay"
 
7634
{
 
7635
                yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7636
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7637
          }
 
7638
 
 
7639
void case_619()
 
7640
#line 4391 "cs-parser.jay"
 
7641
{
 
7642
                Error_SyntaxError (yyToken);
 
7643
 
 
7644
                yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], null);
 
7645
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7646
          }
 
7647
 
 
7648
void case_621()
 
7649
#line 4402 "cs-parser.jay"
 
7650
{
 
7651
                yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7652
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7653
          }
 
7654
 
 
7655
void case_622()
 
7656
#line 4407 "cs-parser.jay"
 
7657
{
 
7658
                Error_SyntaxError (yyToken);
 
7659
 
 
7660
                yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], null);
 
7661
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7662
          }
 
7663
 
 
7664
void case_624()
 
7665
#line 4418 "cs-parser.jay"
 
7666
{
 
7667
                yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7668
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7669
          }
 
7670
 
 
7671
void case_625()
 
7672
#line 4423 "cs-parser.jay"
 
7673
{
 
7674
                Error_SyntaxError (yyToken);
 
7675
 
 
7676
                yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], null);
 
7677
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7678
          }
 
7679
 
 
7680
void case_627()
 
7681
#line 4434 "cs-parser.jay"
 
7682
{
 
7683
                yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7684
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7685
          }
 
7686
 
 
7687
void case_628()
 
7688
#line 4439 "cs-parser.jay"
 
7689
{
 
7690
                Error_SyntaxError (yyToken);
 
7691
 
 
7692
                yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], null);
 
7693
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7694
          }
 
7695
 
 
7696
void case_630()
 
7697
#line 4450 "cs-parser.jay"
 
7698
{
 
7699
                if (lang_version < LanguageVersion.ISO_2)
 
7700
                        FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator");
 
7701
                        
 
7702
                yyVal = new Nullable.NullCoalescingOperator ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7703
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7704
          }
 
7705
 
 
7706
void case_632()
 
7707
#line 4462 "cs-parser.jay"
 
7708
{
 
7709
                yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7710
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7711
          }
 
7712
 
 
7713
void case_633()
 
7714
#line 4467 "cs-parser.jay"
 
7715
{
 
7716
                Error_SyntaxError (yyToken);
 
7717
 
 
7718
                yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-3+yyTop]), (Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
 
7719
          }
 
7720
 
 
7721
void case_634()
 
7722
#line 4473 "cs-parser.jay"
 
7723
{
 
7724
                Error_SyntaxError (yyToken);
 
7725
 
 
7726
                yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
7727
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7728
          }
 
7729
 
 
7730
void case_635()
 
7731
#line 4480 "cs-parser.jay"
 
7732
{
 
7733
                Error_SyntaxError (Token.CLOSE_BRACE);
 
7734
 
 
7735
                yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
7736
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7737
                lexer.putback ('}');
 
7738
          }
 
7739
 
 
7740
void case_636()
 
7741
#line 4491 "cs-parser.jay"
 
7742
{
 
7743
                yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7744
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7745
          }
 
7746
 
 
7747
void case_637()
 
7748
#line 4496 "cs-parser.jay"
 
7749
{
 
7750
                yyVal = new CompoundAssign (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7751
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7752
          }
 
7753
 
 
7754
void case_638()
 
7755
#line 4501 "cs-parser.jay"
 
7756
{
 
7757
                yyVal = new CompoundAssign (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7758
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7759
          }
 
7760
 
 
7761
void case_639()
 
7762
#line 4506 "cs-parser.jay"
 
7763
{
 
7764
                yyVal = new CompoundAssign (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7765
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7766
          }
 
7767
 
 
7768
void case_640()
 
7769
#line 4511 "cs-parser.jay"
 
7770
{
 
7771
                yyVal = new CompoundAssign (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7772
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7773
          }
 
7774
 
 
7775
void case_641()
 
7776
#line 4516 "cs-parser.jay"
 
7777
{
 
7778
                yyVal = new CompoundAssign (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7779
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7780
          }
 
7781
 
 
7782
void case_642()
 
7783
#line 4521 "cs-parser.jay"
 
7784
{
 
7785
                yyVal = new CompoundAssign (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7786
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7787
          }
 
7788
 
 
7789
void case_643()
 
7790
#line 4526 "cs-parser.jay"
 
7791
{
 
7792
                yyVal = new CompoundAssign (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7793
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7794
          }
 
7795
 
 
7796
void case_644()
 
7797
#line 4531 "cs-parser.jay"
 
7798
{
 
7799
                yyVal = new CompoundAssign (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7800
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7801
          }
 
7802
 
 
7803
void case_645()
 
7804
#line 4536 "cs-parser.jay"
 
7805
{
 
7806
                yyVal = new CompoundAssign (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7807
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7808
          }
 
7809
 
 
7810
void case_646()
 
7811
#line 4541 "cs-parser.jay"
 
7812
{
 
7813
                yyVal = new CompoundAssign (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
 
7814
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
7815
          }
 
7816
 
 
7817
void case_647()
 
7818
#line 4549 "cs-parser.jay"
 
7819
{
 
7820
                var pars = new List<Parameter> (4);
 
7821
                pars.Add ((Parameter) yyVals[0+yyTop]);
 
7822
                parameterListCommas.Clear ();
 
7823
                yyVal = pars;
 
7824
          }
 
7825
 
 
7826
void case_648()
 
7827
#line 4556 "cs-parser.jay"
 
7828
{
 
7829
                var pars = (List<Parameter>) yyVals[-2+yyTop];
 
7830
                Parameter p = (Parameter)yyVals[0+yyTop];
 
7831
                if (pars[0].GetType () != p.GetType ()) {
 
7832
                        report.Error (748, p.Location, "All lambda parameters must be typed either explicitly or implicitly");
 
7833
                }
 
7834
                
 
7835
                pars.Add (p);
 
7836
                parameterListCommas.Add (GetLocation (yyVals[-1+yyTop]));
 
7837
 
 
7838
                yyVal = pars;
 
7839
          }
 
7840
 
 
7841
void case_649()
 
7842
#line 4572 "cs-parser.jay"
 
7843
{
 
7844
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
7845
 
 
7846
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], null, lt.Location);
 
7847
          }
 
7848
 
 
7849
void case_650()
 
7850
#line 4578 "cs-parser.jay"
 
7851
{
 
7852
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
7853
 
 
7854
                yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, Parameter.Modifier.NONE, null, lt.Location);
 
7855
          }
 
7856
 
 
7857
void case_651()
 
7858
#line 4584 "cs-parser.jay"
 
7859
{
 
7860
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
7861
                yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
 
7862
          }
 
7863
 
 
7864
void case_652()
 
7865
#line 4589 "cs-parser.jay"
 
7866
{
 
7867
                var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[0+yyTop]);
 
7868
                yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
 
7869
          }
 
7870
 
 
7871
void case_654()
 
7872
#line 4597 "cs-parser.jay"
 
7873
 
7874
                var pars_list = (List<Parameter>) yyVals[0+yyTop];
 
7875
                yyVal = new ParametersCompiled (pars_list.ToArray ());
 
7876
                lbag.AddLocation (yyVal, parameterListCommas);
 
7877
          }
 
7878
 
 
7879
void case_656()
 
7880
#line 4609 "cs-parser.jay"
 
7881
{
 
7882
                Block b = end_block (Location.Null);
 
7883
                b.IsCompilerGenerated = true;
 
7884
                b.AddStatement (new ContextualReturn ((Expression) yyVals[0+yyTop]));
 
7885
                yyVal = b;
 
7886
          }
 
7887
 
 
7888
void case_658()
 
7889
#line 4617 "cs-parser.jay"
 
7890
{
 
7891
                /* Handles only cases like foo = x.FirstOrDefault (l => );*/
 
7892
                /* where we must restore current_variable*/
 
7893
                Block b = end_block (Location.Null);
 
7894
                b.IsCompilerGenerated = true;
 
7895
 
 
7896
                Error_SyntaxError (yyToken);
 
7897
                yyVal = null;
 
7898
          }
 
7899
 
 
7900
void case_660()
 
7901
#line 4631 "cs-parser.jay"
 
7902
{
 
7903
                Error_SyntaxError (yyToken);
 
7904
                yyVal = null;
 
7905
          }
 
7906
 
 
7907
void case_661()
 
7908
#line 4639 "cs-parser.jay"
 
7909
{
 
7910
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];     
 
7911
                Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
 
7912
                start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
 
7913
          }
 
7914
 
 
7915
void case_662()
 
7916
#line 4645 "cs-parser.jay"
 
7917
{
 
7918
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7919
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
7920
          }
 
7921
 
 
7922
void case_663()
 
7923
#line 4650 "cs-parser.jay"
 
7924
{
 
7925
                var lt = (Tokenizer.LocatedToken) Error_AwaitAsIdentifier (yyVals[-1+yyTop]);
 
7926
                Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
 
7927
                start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
 
7928
          }
 
7929
 
 
7930
void case_664()
 
7931
#line 4656 "cs-parser.jay"
 
7932
{
 
7933
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7934
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
7935
          }
 
7936
 
 
7937
void case_665()
 
7938
#line 4661 "cs-parser.jay"
 
7939
{
 
7940
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
7941
                Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
 
7942
                start_anonymous (true, new ParametersCompiled (p), true, lt.Location);
 
7943
          }
 
7944
 
 
7945
void case_666()
 
7946
#line 4667 "cs-parser.jay"
 
7947
{
 
7948
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7949
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
7950
          }
 
7951
 
 
7952
void case_668()
 
7953
#line 4676 "cs-parser.jay"
 
7954
{
 
7955
                valid_param_mod = 0;
 
7956
                start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], false, GetLocation (yyVals[-4+yyTop]));
 
7957
          }
 
7958
 
 
7959
void case_669()
 
7960
#line 4681 "cs-parser.jay"
 
7961
{
 
7962
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7963
                lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
7964
          }
 
7965
 
 
7966
void case_671()
 
7967
#line 4690 "cs-parser.jay"
 
7968
{
 
7969
                valid_param_mod = 0;
 
7970
                start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], true, GetLocation (yyVals[-5+yyTop]));
 
7971
          }
 
7972
 
 
7973
void case_672()
 
7974
#line 4695 "cs-parser.jay"
 
7975
{
 
7976
                yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
 
7977
                lbag.AddLocation (yyVal, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
7978
          }
 
7979
 
 
7980
void case_679()
 
7981
#line 4718 "cs-parser.jay"
 
7982
{
 
7983
                yyVal = new RefValueExpr ((Expression) yyVals[-3+yyTop], (FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
 
7984
                lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7985
          }
 
7986
 
 
7987
void case_680()
 
7988
#line 4723 "cs-parser.jay"
 
7989
{
 
7990
                yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7991
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
7992
          }
 
7993
 
 
7994
void case_681()
 
7995
#line 4728 "cs-parser.jay"
 
7996
{
 
7997
                yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
7998
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));          
 
7999
          }
 
8000
 
 
8001
void case_685()
 
8002
#line 4756 "cs-parser.jay"
 
8003
{
 
8004
                lexer.ConstraintsParsing = true;
 
8005
 
 
8006
                Class c = new Class (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]);
 
8007
                if (((c.ModFlags & Modifiers.STATIC) != 0) && lang_version == LanguageVersion.ISO_1) {
 
8008
                        FeatureIsNotAvailable (c.Location, "static classes");
 
8009
                }
 
8010
                        
 
8011
                push_current_container (c, yyVals[-3+yyTop]);
 
8012
                lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
 
8013
          }
 
8014
 
 
8015
void case_686()
 
8016
#line 4769 "cs-parser.jay"
 
8017
{
 
8018
                lexer.ConstraintsParsing = false;
 
8019
 
 
8020
                if (yyVals[0+yyTop] != null)
 
8021
                        current_container.SetConstraints ((List<Constraints>) yyVals[0+yyTop]);
 
8022
 
 
8023
                if (doc_support) {
 
8024
                        current_container.PartialContainer.DocComment = Lexer.consume_doc_comment ();
 
8025
                        Lexer.doc_state = XmlCommentState.Allowed;
 
8026
                }
 
8027
                
 
8028
                lexer.parsing_modifiers = true;
 
8029
          }
 
8030
 
 
8031
void case_687()
 
8032
#line 4783 "cs-parser.jay"
 
8033
{
 
8034
                --lexer.parsing_declaration;
 
8035
                if (doc_support)
 
8036
                        Lexer.doc_state = XmlCommentState.Allowed;
 
8037
          }
 
8038
 
 
8039
void case_688()
 
8040
#line 4789 "cs-parser.jay"
 
8041
{
 
8042
                if (yyVals[0+yyTop] == null) {
 
8043
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
8044
                } else {
 
8045
                        lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8046
                }
 
8047
                yyVal = pop_current_class ();
 
8048
          }
 
8049
 
 
8050
void case_691()
 
8051
#line 4808 "cs-parser.jay"
 
8052
{
 
8053
            mod_locations = null;
 
8054
                yyVal = ModifierNone;
 
8055
                lexer.parsing_modifiers = false;
 
8056
          }
 
8057
 
 
8058
void case_694()
 
8059
#line 4822 "cs-parser.jay"
 
8060
 
8061
                var m1 = (Modifiers) yyVals[-1+yyTop];
 
8062
                var m2 = (Modifiers) yyVals[0+yyTop];
 
8063
 
 
8064
                if ((m1 & m2) != 0) {
 
8065
                        report.Error (1004, lexer.Location - ModifiersExtensions.Name (m2).Length,
 
8066
                                "Duplicate `{0}' modifier", ModifiersExtensions.Name (m2));
 
8067
                } else if ((m2 & Modifiers.AccessibilityMask) != 0 && (m1 & Modifiers.AccessibilityMask) != 0 &&
 
8068
                        ((m2 | m1 & Modifiers.AccessibilityMask) != (Modifiers.PROTECTED | Modifiers.INTERNAL))) {
 
8069
                        report.Error (107, lexer.Location - ModifiersExtensions.Name (m2).Length,
 
8070
                                "More than one protection modifier specified");
 
8071
                }
 
8072
                
 
8073
                yyVal = m1 | m2;
 
8074
          }
 
8075
 
 
8076
void case_695()
 
8077
#line 4841 "cs-parser.jay"
 
8078
{
 
8079
                yyVal = Modifiers.NEW;
 
8080
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8081
                
 
8082
                if (current_container.Kind == MemberKind.Namespace)
 
8083
                        report.Error (1530, GetLocation (yyVals[0+yyTop]), "Keyword `new' is not allowed on namespace elements");
 
8084
          }
 
8085
 
 
8086
void case_696()
 
8087
#line 4849 "cs-parser.jay"
 
8088
{
 
8089
                yyVal = Modifiers.PUBLIC;
 
8090
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8091
          }
 
8092
 
 
8093
void case_697()
 
8094
#line 4854 "cs-parser.jay"
 
8095
{
 
8096
                yyVal = Modifiers.PROTECTED;
 
8097
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8098
          }
 
8099
 
 
8100
void case_698()
 
8101
#line 4859 "cs-parser.jay"
 
8102
{
 
8103
                yyVal = Modifiers.INTERNAL;
 
8104
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8105
          }
 
8106
 
 
8107
void case_699()
 
8108
#line 4864 "cs-parser.jay"
 
8109
{
 
8110
                yyVal = Modifiers.PRIVATE;
 
8111
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8112
          }
 
8113
 
 
8114
void case_700()
 
8115
#line 4869 "cs-parser.jay"
 
8116
{
 
8117
                yyVal = Modifiers.ABSTRACT;
 
8118
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8119
          }
 
8120
 
 
8121
void case_701()
 
8122
#line 4874 "cs-parser.jay"
 
8123
{
 
8124
                yyVal = Modifiers.SEALED;
 
8125
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8126
          }
 
8127
 
 
8128
void case_702()
 
8129
#line 4879 "cs-parser.jay"
 
8130
{
 
8131
                yyVal = Modifiers.STATIC;
 
8132
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8133
          }
 
8134
 
 
8135
void case_703()
 
8136
#line 4884 "cs-parser.jay"
 
8137
{
 
8138
                yyVal = Modifiers.READONLY;
 
8139
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8140
          }
 
8141
 
 
8142
void case_704()
 
8143
#line 4889 "cs-parser.jay"
 
8144
{
 
8145
                yyVal = Modifiers.VIRTUAL;
 
8146
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8147
          }
 
8148
 
 
8149
void case_705()
 
8150
#line 4894 "cs-parser.jay"
 
8151
{
 
8152
                yyVal = Modifiers.OVERRIDE;
 
8153
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8154
          }
 
8155
 
 
8156
void case_706()
 
8157
#line 4899 "cs-parser.jay"
 
8158
{
 
8159
                yyVal = Modifiers.EXTERN;
 
8160
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8161
          }
 
8162
 
 
8163
void case_707()
 
8164
#line 4904 "cs-parser.jay"
 
8165
{
 
8166
                yyVal = Modifiers.VOLATILE;
 
8167
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8168
          }
 
8169
 
 
8170
void case_708()
 
8171
#line 4909 "cs-parser.jay"
 
8172
{
 
8173
                yyVal = Modifiers.UNSAFE;
 
8174
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8175
                if (!settings.Unsafe)
 
8176
                        Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
 
8177
          }
 
8178
 
 
8179
void case_709()
 
8180
#line 4916 "cs-parser.jay"
 
8181
{
 
8182
                yyVal = Modifiers.ASYNC;
 
8183
                StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8184
          }
 
8185
 
 
8186
void case_711()
 
8187
#line 4925 "cs-parser.jay"
 
8188
{
 
8189
                current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[0+yyTop]);
 
8190
                lbag.AppendToMember (current_type, GetLocation (yyVals[-1+yyTop]));
 
8191
         }
 
8192
 
 
8193
void case_712()
 
8194
#line 4930 "cs-parser.jay"
 
8195
{
 
8196
                Error_SyntaxError (yyToken);
 
8197
 
 
8198
                current_type.AddBasesForPart ((List<FullNamedExpression>) yyVals[-1+yyTop]);
 
8199
          }
 
8200
 
 
8201
void case_715()
 
8202
#line 4947 "cs-parser.jay"
 
8203
{
 
8204
                var constraints = new List<Constraints> (1);
 
8205
                constraints.Add ((Constraints) yyVals[0+yyTop]);
 
8206
                yyVal = constraints;
 
8207
          }
 
8208
 
 
8209
void case_716()
 
8210
#line 4953 "cs-parser.jay"
 
8211
{
 
8212
                var constraints = (List<Constraints>) yyVals[-1+yyTop];
 
8213
                Constraints new_constraint = (Constraints)yyVals[0+yyTop];
 
8214
 
 
8215
                foreach (Constraints c in constraints) {
 
8216
                        if (new_constraint.TypeParameter.Value == c.TypeParameter.Value) {
 
8217
                                report.Error (409, new_constraint.Location,
 
8218
                                        "A constraint clause has already been specified for type parameter `{0}'",
 
8219
                                        new_constraint.TypeParameter.Value);
 
8220
                        }
 
8221
                }
 
8222
 
 
8223
                constraints.Add (new_constraint);
 
8224
                yyVal = constraints;
 
8225
          }
 
8226
 
 
8227
void case_717()
 
8228
#line 4972 "cs-parser.jay"
 
8229
{
 
8230
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
8231
                yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), (List<FullNamedExpression>) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
 
8232
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
 
8233
          }
 
8234
 
 
8235
void case_718()
 
8236
#line 4978 "cs-parser.jay"
 
8237
{
 
8238
                Error_SyntaxError (yyToken);
 
8239
          
 
8240
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
8241
                yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), null, GetLocation (yyVals[-2+yyTop]));
 
8242
          }
 
8243
 
 
8244
void case_719()
 
8245
#line 4988 "cs-parser.jay"
 
8246
{
 
8247
                var constraints = new List<FullNamedExpression> (1);
 
8248
                constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
8249
                yyVal = constraints;
 
8250
          }
 
8251
 
 
8252
void case_720()
 
8253
#line 4994 "cs-parser.jay"
 
8254
{
 
8255
                var constraints = (List<FullNamedExpression>) yyVals[-2+yyTop];
 
8256
                var prev = constraints [constraints.Count - 1] as SpecialContraintExpr;
 
8257
                if (prev != null && (prev.Constraint & SpecialConstraint.Constructor) != 0) {                   
 
8258
                        report.Error (401, GetLocation (yyVals[-1+yyTop]), "The `new()' constraint must be the last constraint specified");
 
8259
                }
 
8260
                
 
8261
                prev = yyVals[0+yyTop] as SpecialContraintExpr;
 
8262
                if (prev != null) {
 
8263
                        if ((prev.Constraint & (SpecialConstraint.Class | SpecialConstraint.Struct)) != 0) {
 
8264
                                report.Error (449, prev.Location, "The `class' or `struct' constraint must be the first constraint specified");                 
 
8265
                        } else {
 
8266
                                prev = constraints [0] as SpecialContraintExpr;
 
8267
                                if (prev != null && (prev.Constraint & SpecialConstraint.Struct) != 0) {                        
 
8268
                                        report.Error (451, GetLocation (yyVals[0+yyTop]), "The `new()' constraint cannot be used with the `struct' constraint");
 
8269
                                }
 
8270
                        }
 
8271
                }
 
8272
 
 
8273
                constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
 
8274
                lbag.AddLocation (constraints, GetLocation (yyVals[-1+yyTop]));
 
8275
                yyVal = constraints;
 
8276
          }
 
8277
 
 
8278
void case_721()
 
8279
#line 5021 "cs-parser.jay"
 
8280
{
 
8281
                if (yyVals[0+yyTop] is ComposedCast)
 
8282
                        report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
 
8283
          
 
8284
                yyVal = yyVals[0+yyTop];
 
8285
          }
 
8286
 
 
8287
void case_722()
 
8288
#line 5028 "cs-parser.jay"
 
8289
{
 
8290
                yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop]));
 
8291
                lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8292
          }
 
8293
 
 
8294
void case_726()
 
8295
#line 5048 "cs-parser.jay"
 
8296
{
 
8297
                if (lang_version <= LanguageVersion.V_3)
 
8298
                        FeatureIsNotAvailable (lexer.Location, "generic type variance");
 
8299
                
 
8300
                yyVal = yyVals[0+yyTop];
 
8301
          }
 
8302
 
 
8303
void case_727()
 
8304
#line 5058 "cs-parser.jay"
 
8305
{
 
8306
                yyVal = Variance.Covariant;
 
8307
                savedLocation = GetLocation (yyVals[0+yyTop]);
 
8308
          }
 
8309
 
 
8310
void case_728()
 
8311
#line 5063 "cs-parser.jay"
 
8312
{
 
8313
                yyVal = Variance.Contravariant;
 
8314
                savedLocation = GetLocation (yyVals[0+yyTop]);
 
8315
          }
 
8316
 
 
8317
void case_729()
 
8318
#line 5084 "cs-parser.jay"
 
8319
{
 
8320
                ++lexer.parsing_block;
 
8321
                start_block (GetLocation (yyVals[0+yyTop]));
 
8322
          }
 
8323
 
 
8324
void case_731()
 
8325
#line 5096 "cs-parser.jay"
 
8326
{
 
8327
                --lexer.parsing_block;
 
8328
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8329
          }
 
8330
 
 
8331
void case_732()
 
8332
#line 5101 "cs-parser.jay"
 
8333
{
 
8334
                --lexer.parsing_block;
 
8335
                yyVal = end_block (lexer.Location);
 
8336
          }
 
8337
 
 
8338
void case_733()
 
8339
#line 5110 "cs-parser.jay"
 
8340
{
 
8341
                ++lexer.parsing_block;
 
8342
                current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
 
8343
          }
 
8344
 
 
8345
void case_734()
 
8346
#line 5115 "cs-parser.jay"
 
8347
{
 
8348
                --lexer.parsing_block;
 
8349
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8350
          }
 
8351
 
 
8352
void case_735()
 
8353
#line 5119 "cs-parser.jay"
 
8354
{
 
8355
                report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol '}', expected '{'");
 
8356
                lexer.putback ('}');
 
8357
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8358
          }
 
8359
 
 
8360
void case_736()
 
8361
#line 5128 "cs-parser.jay"
 
8362
{
 
8363
                ++lexer.parsing_block;
 
8364
                current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
 
8365
          }
 
8366
 
 
8367
void case_737()
 
8368
#line 5133 "cs-parser.jay"
 
8369
{
 
8370
                --lexer.parsing_block;
 
8371
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8372
          }
 
8373
 
 
8374
void case_745()
 
8375
#line 5161 "cs-parser.jay"
 
8376
{
 
8377
                Error_SyntaxError (yyToken);
 
8378
                var lt =(Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
8379
                var sn = new SimpleName (lt.Value, lt.Location);
 
8380
                current_block.AddStatement(new StatementErrorExpression (sn));
 
8381
                yyVal = null;
 
8382
        }
 
8383
 
 
8384
void case_746()
 
8385
#line 5170 "cs-parser.jay"
 
8386
{
 
8387
                Error_SyntaxError (yyToken);
 
8388
                yyVal = null;
 
8389
          }
 
8390
 
 
8391
void case_779()
 
8392
#line 5234 "cs-parser.jay"
 
8393
{
 
8394
                  report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
 
8395
                  yyVal = null;
 
8396
          }
 
8397
 
 
8398
void case_780()
 
8399
#line 5239 "cs-parser.jay"
 
8400
{
 
8401
                  report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
 
8402
                  yyVal = null;
 
8403
          }
 
8404
 
 
8405
void case_781()
 
8406
#line 5244 "cs-parser.jay"
 
8407
{
 
8408
                Error_SyntaxError (yyToken);
 
8409
                yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8410
          }
 
8411
 
 
8412
void case_782()
 
8413
#line 5252 "cs-parser.jay"
 
8414
{
 
8415
                /* Uses lexer.Location because semicolon location is not kept in quick mode*/
 
8416
                yyVal = new EmptyStatement (lexer.Location);
 
8417
          }
 
8418
 
 
8419
void case_783()
 
8420
#line 5260 "cs-parser.jay"
 
8421
{
 
8422
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
8423
                LabeledStatement labeled = new LabeledStatement (lt.Value, current_block, lt.Location);
 
8424
                lbag.AddLocation (labeled, GetLocation (yyVals[0+yyTop]));
 
8425
                current_block.AddLabel (labeled);
 
8426
                current_block.AddStatement (labeled);
 
8427
          }
 
8428
 
 
8429
void case_786()
 
8430
#line 5273 "cs-parser.jay"
 
8431
{
 
8432
                if (yyVals[-1+yyTop] is VarExpr)
 
8433
                        yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
 
8434
          
 
8435
                yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
8436
          }
 
8437
 
 
8438
void case_787()
 
8439
#line 5289 "cs-parser.jay"
 
8440
 
8441
                /* Ok, the above "primary_expression" is there to get rid of*/
 
8442
                /* both reduce/reduce and shift/reduces in the grammar, it should*/
 
8443
                /* really just be "type_name".  If you use type_name, a reduce/reduce*/
 
8444
                /* creeps up.  If you use namespace_or_type_name (which is all we need*/
 
8445
                /* really) two shift/reduces appear.*/
 
8446
                /* */
 
8447
 
 
8448
                /* So the super-trick is that primary_expression*/
 
8449
                /* can only be either a SimpleName or a MemberAccess. */
 
8450
                /* The MemberAccess case arises when you have a fully qualified type-name like :*/
 
8451
                /* Foo.Bar.Blah i;*/
 
8452
                /* SimpleName is when you have*/
 
8453
                /* Blah i;*/
 
8454
                
 
8455
                Expression expr = (Expression) yyVals[-1+yyTop];
 
8456
                if (yyVals[0+yyTop] == null) {
 
8457
                        SimpleName sn = expr as SimpleName;
 
8458
                        if (sn != null && sn.Name == "var")
 
8459
                                yyVal = new VarExpr (sn.Location);
 
8460
                        else
 
8461
                                yyVal = yyVals[-1+yyTop];
 
8462
                } else if (expr is ATypeNameExpression) {
 
8463
                        yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
8464
                } else {
 
8465
                        Error_ExpectingTypeName (expr);
 
8466
                        yyVal = null;
 
8467
                }
 
8468
          }
 
8469
 
 
8470
void case_788()
 
8471
#line 5319 "cs-parser.jay"
 
8472
{
 
8473
                ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
 
8474
 
 
8475
                if (expr != null) {
 
8476
                        yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
8477
                } else {
 
8478
                        Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
 
8479
                        yyVal = expr;
 
8480
                }
 
8481
          }
 
8482
 
 
8483
void case_789()
 
8484
#line 5330 "cs-parser.jay"
 
8485
{
 
8486
                if (yyVals[0+yyTop] == null)
 
8487
                        yyVal = yyVals[-1+yyTop];
 
8488
                else
 
8489
                        yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
 
8490
          }
 
8491
 
 
8492
void case_792()
 
8493
#line 5345 "cs-parser.jay"
 
8494
{
 
8495
                Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
 
8496
                yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
 
8497
          }
 
8498
 
 
8499
void case_794()
 
8500
#line 5354 "cs-parser.jay"
 
8501
{
 
8502
                ((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
 
8503
                yyVal = yyVals[-1+yyTop];
 
8504
          }
 
8505
 
 
8506
void case_798()
 
8507
#line 5377 "cs-parser.jay"
 
8508
{
 
8509
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
8510
                var li = new LocalVariable (current_block, lt.Value, lt.Location);
 
8511
                current_block.AddLocalName (li);
 
8512
                current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
 
8513
          }
 
8514
 
 
8515
void case_799()
 
8516
#line 5384 "cs-parser.jay"
 
8517
{
 
8518
                yyVal = current_variable;
 
8519
                current_variable = null;
 
8520
                if (yyVals[-2+yyTop] != null)
 
8521
                        lbag.AddLocation (yyVal, PopLocation (), GetLocation (yyVals[0+yyTop]));
 
8522
                else
 
8523
                        lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8524
          }
 
8525
 
 
8526
void case_800()
 
8527
#line 5393 "cs-parser.jay"
 
8528
{
 
8529
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
8530
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
 
8531
                current_block.AddLocalName (li);
 
8532
                current_variable = new BlockConstantDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
 
8533
          }
 
8534
 
 
8535
void case_801()
 
8536
#line 5400 "cs-parser.jay"
 
8537
{
 
8538
                if (current_variable.Initializer != null) {
 
8539
                        lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
 
8540
                } else {
 
8541
                        lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8542
                }
 
8543
                yyVal = current_variable;;
 
8544
                current_variable = null;
 
8545
          }
 
8546
 
 
8547
void case_803()
 
8548
#line 5413 "cs-parser.jay"
 
8549
{
 
8550
                /* Redundant, but wont regress*/
 
8551
                report.Error (1525, lexer.Location, "Unexpected symbol }");
 
8552
                lexer.putback ('}');
 
8553
                yyVal = yyVals[0+yyTop];
 
8554
          }
 
8555
 
 
8556
void case_805()
 
8557
#line 5424 "cs-parser.jay"
 
8558
{
 
8559
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
 
8560
                PushLocation (GetLocation (yyVals[-1+yyTop]));
 
8561
                yyVal = current_variable;
 
8562
          }
 
8563
 
 
8564
void case_806()
 
8565
#line 5430 "cs-parser.jay"
 
8566
{
 
8567
                if (yyToken == Token.OPEN_BRACKET_EXPR) {
 
8568
                        report.Error (650, lexer.Location,
 
8569
                                "Syntax error, bad array declarator. To declare a managed array the rank specifier precedes the variable's identifier. To declare a fixed size buffer field, use the fixed keyword before the field type");
 
8570
                } else {
 
8571
                        Error_SyntaxError (yyToken);
 
8572
                }
 
8573
          }
 
8574
 
 
8575
void case_810()
 
8576
#line 5448 "cs-parser.jay"
 
8577
{
 
8578
                foreach (var d in current_variable.Declarators) {
 
8579
                        if (d.Initializer == null)
 
8580
                                Error_MissingInitializer (d.Variable.Location);
 
8581
                }
 
8582
          }
 
8583
 
 
8584
void case_813()
 
8585
#line 5463 "cs-parser.jay"
 
8586
{
 
8587
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];        
 
8588
                var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
 
8589
                var d = new BlockVariableDeclaration.Declarator (li, null);
 
8590
                current_variable.AddDeclarator (d);
 
8591
                current_block.AddLocalName (li);
 
8592
                lbag.AddLocation (d, GetLocation (yyVals[-1+yyTop]));
 
8593
          }
 
8594
 
 
8595
void case_814()
 
8596
#line 5472 "cs-parser.jay"
 
8597
{
 
8598
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];       
 
8599
                var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
 
8600
                var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
 
8601
                current_variable.AddDeclarator (d);
 
8602
                current_block.AddLocalName (li);
 
8603
                lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
8604
          }
 
8605
 
 
8606
void case_816()
 
8607
#line 5488 "cs-parser.jay"
 
8608
{
 
8609
                savedLocation = GetLocation (yyVals[-1+yyTop]);
 
8610
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
 
8611
          }
 
8612
 
 
8613
void case_821()
 
8614
#line 5506 "cs-parser.jay"
 
8615
{
 
8616
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];       
 
8617
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
 
8618
                var d = new BlockVariableDeclaration.Declarator (li, (Expression) yyVals[0+yyTop]);
 
8619
                current_variable.AddDeclarator (d);
 
8620
                current_block.AddLocalName (li);
 
8621
                lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
8622
          }
 
8623
 
 
8624
void case_823()
 
8625
#line 5519 "cs-parser.jay"
 
8626
{
 
8627
                yyVal = new StackAlloc ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
 
8628
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8629
          }
 
8630
 
 
8631
void case_824()
 
8632
#line 5524 "cs-parser.jay"
 
8633
{
 
8634
                report.Error (1575, GetLocation (yyVals[-1+yyTop]), "A stackalloc expression requires [] after type");
 
8635
                yyVal = new StackAlloc ((Expression) yyVals[0+yyTop], null, GetLocation (yyVals[-1+yyTop]));            
 
8636
          }
 
8637
 
 
8638
void case_825()
 
8639
#line 5532 "cs-parser.jay"
 
8640
{
 
8641
                yyVal = yyVals[-1+yyTop];
 
8642
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
 
8643
          }
 
8644
 
 
8645
void case_827()
 
8646
#line 5538 "cs-parser.jay"
 
8647
{
 
8648
                yyVal = yyVals[-1+yyTop];
 
8649
                report.Error (1002, GetLocation (yyVals[0+yyTop]), "; expected");
 
8650
                lexer.putback ('}');
 
8651
          }
 
8652
 
 
8653
void case_830()
 
8654
#line 5556 "cs-parser.jay"
 
8655
{
 
8656
                ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
 
8657
                if (s == null) {
 
8658
                        var expr = yyVals[0+yyTop] as Expression;
 
8659
                        expr.Error_InvalidExpressionStatement (report);
 
8660
                        yyVal = new StatementErrorExpression (expr);
 
8661
                } else {
 
8662
                        yyVal = new StatementExpression (s);
 
8663
                }
 
8664
          }
 
8665
 
 
8666
void case_831()
 
8667
#line 5570 "cs-parser.jay"
 
8668
{
 
8669
                Expression expr = (Expression) yyVals[0+yyTop];
 
8670
                ExpressionStatement s;
 
8671
 
 
8672
                s = new OptionalAssign (new SimpleName ("$retval", lexer.Location), expr, lexer.Location);
 
8673
                yyVal = new StatementExpression (s);
 
8674
          }
 
8675
 
 
8676
void case_832()
 
8677
#line 5578 "cs-parser.jay"
 
8678
{
 
8679
                Error_SyntaxError (yyToken);
 
8680
                yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8681
          }
 
8682
 
 
8683
void case_835()
 
8684
#line 5592 "cs-parser.jay"
 
8685
 
8686
                if (yyVals[0+yyTop] is EmptyStatement)
 
8687
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8688
                
 
8689
                yyVal = new If ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
8690
                lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
8691
          }
 
8692
 
 
8693
void case_836()
 
8694
#line 5601 "cs-parser.jay"
 
8695
{
 
8696
                yyVal = new If ((BooleanExpression) yyVals[-4+yyTop], (Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
 
8697
                lbag.AddStatement (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
8698
                
 
8699
                if (yyVals[-2+yyTop] is EmptyStatement)
 
8700
                        Warning_EmptyStatement (GetLocation (yyVals[-2+yyTop]));
 
8701
                if (yyVals[0+yyTop] is EmptyStatement)
 
8702
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8703
          }
 
8704
 
 
8705
void case_837()
 
8706
#line 5611 "cs-parser.jay"
 
8707
{
 
8708
                Error_SyntaxError (yyToken);
 
8709
                
 
8710
                yyVal = new If ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
8711
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
8712
          }
 
8713
 
 
8714
void case_839()
 
8715
#line 5625 "cs-parser.jay"
 
8716
{
 
8717
                yyVal = new Switch ((Expression) yyVals[-5+yyTop], (ExplicitBlock) current_block.Explicit, GetLocation (yyVals[-7+yyTop]));     
 
8718
                end_block (GetLocation (yyVals[0+yyTop]));
 
8719
                lbag.AddStatement (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8720
          }
 
8721
 
 
8722
void case_840()
 
8723
#line 5631 "cs-parser.jay"
 
8724
{
 
8725
                Error_SyntaxError (yyToken);
 
8726
          
 
8727
                yyVal = new Switch ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));       
 
8728
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
8729
          }
 
8730
 
 
8731
void case_847()
 
8732
#line 5662 "cs-parser.jay"
 
8733
{
 
8734
                var label = (SwitchLabel) yyVals[0+yyTop];
 
8735
                label.SectionStart = true;
 
8736
                current_block.AddStatement (label);
 
8737
          }
 
8738
 
 
8739
void case_849()
 
8740
#line 5675 "cs-parser.jay"
 
8741
{
 
8742
                yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
8743
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
8744
         }
 
8745
 
 
8746
void case_850()
 
8747
#line 5680 "cs-parser.jay"
 
8748
{
 
8749
                Error_SyntaxError (yyToken);
 
8750
                yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
8751
          }
 
8752
 
 
8753
void case_856()
 
8754
#line 5699 "cs-parser.jay"
 
8755
{
 
8756
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
8757
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8758
          
 
8759
                yyVal = new While ((BooleanExpression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
8760
                lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
8761
          }
 
8762
 
 
8763
void case_857()
 
8764
#line 5707 "cs-parser.jay"
 
8765
{
 
8766
                Error_SyntaxError (yyToken);
 
8767
                
 
8768
                yyVal = new While ((BooleanExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
8769
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
8770
          }
 
8771
 
 
8772
void case_858()
 
8773
#line 5717 "cs-parser.jay"
 
8774
{
 
8775
                yyVal = new Do ((Statement) yyVals[-5+yyTop], (BooleanExpression) yyVals[-2+yyTop], GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]));
 
8776
                lbag.AddStatement (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
8777
          }
 
8778
 
 
8779
void case_859()
 
8780
#line 5722 "cs-parser.jay"
 
8781
{
 
8782
                Error_SyntaxError (yyToken);
 
8783
                yyVal = new Do ((Statement) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), Location.Null);
 
8784
          }
 
8785
 
 
8786
void case_860()
 
8787
#line 5727 "cs-parser.jay"
 
8788
{
 
8789
                Error_SyntaxError (yyToken);
 
8790
          
 
8791
                yyVal = new Do ((Statement) yyVals[-4+yyTop], (BooleanExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]));
 
8792
                lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
8793
          }
 
8794
 
 
8795
void case_861()
 
8796
#line 5737 "cs-parser.jay"
 
8797
{
 
8798
                start_block (GetLocation (yyVals[0+yyTop]));
 
8799
                current_block.IsCompilerGenerated = true;
 
8800
                For f = new For (GetLocation (yyVals[-1+yyTop]));
 
8801
                current_block.AddStatement (f);
 
8802
                lbag.AddStatement (f, current_block.StartLocation);
 
8803
                yyVal = f;
 
8804
          }
 
8805
 
 
8806
void case_863()
 
8807
#line 5754 "cs-parser.jay"
 
8808
{
 
8809
                For f =  (For) yyVals[-2+yyTop];
 
8810
                f.Initializer = (Statement) yyVals[-1+yyTop];
 
8811
                lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
 
8812
                yyVal = f;
 
8813
          }
 
8814
 
 
8815
void case_865()
 
8816
#line 5764 "cs-parser.jay"
 
8817
{
 
8818
                report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
 
8819
                For f =  (For) yyVals[-2+yyTop];
 
8820
                f.Initializer = (Statement) yyVals[-1+yyTop];
 
8821
                lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
 
8822
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8823
        }
 
8824
 
 
8825
void case_866()
 
8826
#line 5775 "cs-parser.jay"
 
8827
{
 
8828
                For f =  (For) yyVals[-2+yyTop];
 
8829
                f.Condition = (BooleanExpression) yyVals[-1+yyTop];
 
8830
                lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
 
8831
                yyVal = f;
 
8832
          }
 
8833
 
 
8834
void case_868()
 
8835
#line 5786 "cs-parser.jay"
 
8836
{
 
8837
                report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
 
8838
                For f =  (For) yyVals[-2+yyTop];
 
8839
                f.Condition = (BooleanExpression) yyVals[-1+yyTop];
 
8840
                lbag.AddLocation (f, GetLocation (yyVals[0+yyTop]));
 
8841
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8842
        }
 
8843
 
 
8844
void case_869()
 
8845
#line 5798 "cs-parser.jay"
 
8846
{
 
8847
                For f =  (For) yyVals[-3+yyTop];
 
8848
                f.Iterator = (Statement) yyVals[-2+yyTop];
 
8849
                
 
8850
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
8851
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8852
          
 
8853
                f.Statement = (Statement) yyVals[0+yyTop];
 
8854
                lbag.AddLocation (f, GetLocation (yyVals[-1+yyTop]));
 
8855
 
 
8856
                yyVal = end_block (GetLocation (yyVals[-1+yyTop]));
 
8857
          }
 
8858
 
 
8859
void case_870()
 
8860
#line 5811 "cs-parser.jay"
 
8861
{
 
8862
                Error_SyntaxError (yyToken);
 
8863
                yyVal = end_block (current_block.StartLocation);
 
8864
          }
 
8865
 
 
8866
void case_873()
 
8867
#line 5824 "cs-parser.jay"
 
8868
{
 
8869
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
8870
                var li = new LocalVariable (current_block, lt.Value, lt.Location);
 
8871
                current_block.AddLocalName (li);
 
8872
                current_variable = new BlockVariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
 
8873
          }
 
8874
 
 
8875
void case_874()
 
8876
#line 5831 "cs-parser.jay"
 
8877
{
 
8878
                yyVal = current_variable;
 
8879
                if (yyVals[-1+yyTop] != null)
 
8880
                        lbag.AddLocation (current_variable, PopLocation ());
 
8881
 
 
8882
                current_variable = null;
 
8883
          }
 
8884
 
 
8885
void case_882()
 
8886
#line 5858 "cs-parser.jay"
 
8887
{
 
8888
                var sl = yyVals[-2+yyTop] as StatementList;
 
8889
                if (sl == null) {
 
8890
                        sl = new StatementList ((Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop]);
 
8891
                        lbag.AddStatement (sl, GetLocation (yyVals[-1+yyTop]));
 
8892
                } else {
 
8893
                        sl.Add ((Statement) yyVals[0+yyTop]);
 
8894
                        lbag.AddLocation (sl, GetLocation (yyVals[-1+yyTop]));
 
8895
                        
 
8896
                }
 
8897
                        
 
8898
                yyVal = sl;
 
8899
          }
 
8900
 
 
8901
void case_883()
 
8902
#line 5875 "cs-parser.jay"
 
8903
{
 
8904
                report.Error (230, GetLocation (yyVals[-3+yyTop]), "Type and identifier are both required in a foreach statement");
 
8905
 
 
8906
                start_block (GetLocation (yyVals[-2+yyTop]));
 
8907
                current_block.IsCompilerGenerated = true;
 
8908
                
 
8909
                Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
 
8910
                current_block.AddStatement (f);
 
8911
                
 
8912
                lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
 
8913
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8914
          }
 
8915
 
 
8916
void case_884()
 
8917
#line 5888 "cs-parser.jay"
 
8918
{
 
8919
                Error_SyntaxError (yyToken);
 
8920
        
 
8921
                start_block (GetLocation (yyVals[-3+yyTop]));
 
8922
                current_block.IsCompilerGenerated = true;
 
8923
                
 
8924
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
8925
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
 
8926
                current_block.AddLocalName (li);
 
8927
                
 
8928
                Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
 
8929
                current_block.AddStatement (f);
 
8930
                
 
8931
                lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
 
8932
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8933
          }
 
8934
 
 
8935
void case_885()
 
8936
#line 5905 "cs-parser.jay"
 
8937
{
 
8938
                start_block (GetLocation (yyVals[-5+yyTop]));
 
8939
                current_block.IsCompilerGenerated = true;
 
8940
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
8941
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location);
 
8942
                current_block.AddLocalName (li);
 
8943
                yyVal = li;
 
8944
          }
 
8945
 
 
8946
void case_886()
 
8947
#line 5914 "cs-parser.jay"
 
8948
{
 
8949
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
8950
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
8951
                
 
8952
                Foreach f = new Foreach ((Expression) yyVals[-6+yyTop], (LocalVariable) yyVals[-1+yyTop], (Expression) yyVals[-3+yyTop], (Statement) yyVals[0+yyTop], current_block, GetLocation (yyVals[-8+yyTop]));
 
8953
                lbag.AddStatement (f, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
8954
                end_block (GetLocation (yyVals[-2+yyTop]));
 
8955
                
 
8956
                yyVal = f;
 
8957
          }
 
8958
 
 
8959
void case_887()
 
8960
#line 5925 "cs-parser.jay"
 
8961
{
 
8962
                start_block (GetLocation (yyVals[-3+yyTop]));
 
8963
                current_block.IsCompilerGenerated = true;
 
8964
                var lt = yyVals[-1+yyTop] as Tokenizer.LocatedToken;
 
8965
                var li = lt != null ? new LocalVariable (current_block, lt.Value, LocalVariable.Flags.ForeachVariable | LocalVariable.Flags.Used, lt.Location) : null;
 
8966
                
 
8967
                Foreach f = new Foreach ((Expression) yyVals[-2+yyTop], li, null, null, null, GetLocation (yyVals[-4+yyTop]));
 
8968
                current_block.AddStatement (f);
 
8969
                
 
8970
                lbag.AddStatement (f, GetLocation (yyVals[-3+yyTop]));
 
8971
                yyVal = end_block (GetLocation (yyVals[0+yyTop]));
 
8972
          }
 
8973
 
 
8974
void case_888()
 
8975
#line 5938 "cs-parser.jay"
 
8976
{
 
8977
                Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
 
8978
                current_block.AddStatement (f);
 
8979
                
 
8980
                lbag.AddStatement (f, GetLocation (yyVals[-2+yyTop]));
 
8981
                yyVal = f;
 
8982
          }
 
8983
 
 
8984
void case_895()
 
8985
#line 5958 "cs-parser.jay"
 
8986
{
 
8987
                yyVal = new Break (GetLocation (yyVals[-1+yyTop]));
 
8988
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
 
8989
          }
 
8990
 
 
8991
void case_896()
 
8992
#line 5966 "cs-parser.jay"
 
8993
{
 
8994
                yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
 
8995
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
 
8996
          }
 
8997
 
 
8998
void case_897()
 
8999
#line 5971 "cs-parser.jay"
 
9000
{
 
9001
                Error_SyntaxError (yyToken);
 
9002
                yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
 
9003
          }
 
9004
 
 
9005
void case_898()
 
9006
#line 5979 "cs-parser.jay"
 
9007
{
 
9008
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
9009
                yyVal = new Goto (lt.Value, GetLocation (yyVals[-2+yyTop]));
 
9010
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9011
          }
 
9012
 
 
9013
void case_899()
 
9014
#line 5985 "cs-parser.jay"
 
9015
{
 
9016
                yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
 
9017
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9018
          }
 
9019
 
 
9020
void case_900()
 
9021
#line 5990 "cs-parser.jay"
 
9022
{
 
9023
                yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop]));
 
9024
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9025
          }
 
9026
 
 
9027
void case_901()
 
9028
#line 5998 "cs-parser.jay"
 
9029
{
 
9030
                yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
9031
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
 
9032
          }
 
9033
 
 
9034
void case_902()
 
9035
#line 6003 "cs-parser.jay"
 
9036
{
 
9037
                Error_SyntaxError (yyToken);
 
9038
                yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
9039
          }
 
9040
 
 
9041
void case_903()
 
9042
#line 6008 "cs-parser.jay"
 
9043
{
 
9044
                Error_SyntaxError (yyToken);
 
9045
                yyVal = new Return (null, GetLocation (yyVals[-1+yyTop]));
 
9046
          }
 
9047
 
 
9048
void case_904()
 
9049
#line 6016 "cs-parser.jay"
 
9050
{
 
9051
                yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
 
9052
                lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
 
9053
          }
 
9054
 
 
9055
void case_905()
 
9056
#line 6021 "cs-parser.jay"
 
9057
{
 
9058
                Error_SyntaxError (yyToken);
 
9059
                yyVal = new Throw (null, GetLocation (yyVals[-1+yyTop]));
 
9060
          }
 
9061
 
 
9062
void case_906()
 
9063
#line 6029 "cs-parser.jay"
 
9064
{
 
9065
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
9066
                string s = lt.Value;
 
9067
                if (s != "yield"){
 
9068
                        report.Error (1003, lt.Location, "; expected");
 
9069
                } else if (yyVals[-1+yyTop] == null) {
 
9070
                        report.Error (1627, GetLocation (yyVals[0+yyTop]), "Expression expected after yield return");
 
9071
                } else if (lang_version == LanguageVersion.ISO_1){
 
9072
                        FeatureIsNotAvailable (lt.Location, "iterators");
 
9073
                }
 
9074
                
 
9075
                current_block.Explicit.RegisterIteratorYield ();
 
9076
                yyVal = new Yield ((Expression) yyVals[-1+yyTop], lt.Location);
 
9077
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9078
          }
 
9079
 
 
9080
void case_907()
 
9081
#line 6045 "cs-parser.jay"
 
9082
{
 
9083
                Error_SyntaxError (yyToken);
 
9084
 
 
9085
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
9086
                string s = lt.Value;
 
9087
                if (s != "yield"){
 
9088
                        report.Error (1003, lt.Location, "; expected");
 
9089
                } else if (yyVals[-1+yyTop] == null) {
 
9090
                        report.Error (1627, GetLocation (yyVals[0+yyTop]), "Expression expected after yield return");
 
9091
                } else if (lang_version == LanguageVersion.ISO_1){
 
9092
                        FeatureIsNotAvailable (lt.Location, "iterators");
 
9093
                }
 
9094
                
 
9095
                current_block.Explicit.RegisterIteratorYield ();
 
9096
                yyVal = new Yield ((Expression) yyVals[-1+yyTop], lt.Location);
 
9097
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9098
          }
 
9099
 
 
9100
void case_908()
 
9101
#line 6063 "cs-parser.jay"
 
9102
{
 
9103
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9104
                string s = lt.Value;
 
9105
                if (s != "yield"){
 
9106
                        report.Error (1003, lt.Location, "; expected");
 
9107
                } else if (lang_version == LanguageVersion.ISO_1){
 
9108
                        FeatureIsNotAvailable (lt.Location, "iterators");
 
9109
                }
 
9110
                
 
9111
                current_block.Explicit.RegisterIteratorYield ();
 
9112
                yyVal = new YieldBreak (lt.Location);
 
9113
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9114
          }
 
9115
 
 
9116
void case_912()
 
9117
#line 6089 "cs-parser.jay"
 
9118
{
 
9119
                yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (Block) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
 
9120
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
 
9121
          }
 
9122
 
 
9123
void case_913()
 
9124
#line 6094 "cs-parser.jay"
 
9125
{
 
9126
                yyVal = new TryFinally (new TryCatch ((Block) yyVals[-3+yyTop], (List<Catch>) yyVals[-2+yyTop], GetLocation (yyVals[-4+yyTop]), true), (Block) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
9127
                lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
 
9128
          }
 
9129
 
 
9130
void case_914()
 
9131
#line 6099 "cs-parser.jay"
 
9132
{
 
9133
                Error_SyntaxError (1524, yyToken);
 
9134
                yyVal = new TryCatch ((Block) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), false);
 
9135
          }
 
9136
 
 
9137
void case_915()
 
9138
#line 6107 "cs-parser.jay"
 
9139
{
 
9140
                var l = new List<Catch> (2);
 
9141
 
 
9142
                l.Add ((Catch) yyVals[0+yyTop]);
 
9143
                yyVal = l;
 
9144
          }
 
9145
 
 
9146
void case_916()
 
9147
#line 6114 "cs-parser.jay"
 
9148
{
 
9149
                var l = (List<Catch>) yyVals[-1+yyTop];
 
9150
                
 
9151
                Catch c = (Catch) yyVals[0+yyTop];
 
9152
                if (l [l.Count - 1].IsGeneral) {
 
9153
                        report.Error (1017, c.loc, "Try statement already has an empty catch block");
 
9154
                }
 
9155
                
 
9156
                l.Add (c);
 
9157
                yyVal = l;
 
9158
          }
 
9159
 
 
9160
void case_920()
 
9161
#line 6138 "cs-parser.jay"
 
9162
{
 
9163
                start_block (GetLocation (yyVals[-3+yyTop]));
 
9164
                var c = new Catch (current_block, GetLocation (yyVals[-4+yyTop]));
 
9165
                c.TypeExpression = (FullNamedExpression) yyVals[-2+yyTop];
 
9166
 
 
9167
                if (yyVals[-1+yyTop] != null) {
 
9168
                        var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
9169
                        c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
 
9170
                        current_block.AddLocalName (c.Variable);
 
9171
                }
 
9172
 
 
9173
                lbag.AddLocation (c, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
 
9174
                yyVal = c;
 
9175
          }
 
9176
 
 
9177
void case_922()
 
9178
#line 6157 "cs-parser.jay"
 
9179
{
 
9180
                if (yyToken == Token.CLOSE_PARENS) {
 
9181
                        report.Error (1015, lexer.Location,
 
9182
                                "A type that derives from `System.Exception', `object', or `string' expected");
 
9183
                } else {
 
9184
                        Error_SyntaxError (yyToken);
 
9185
                }
 
9186
                
 
9187
                yyVal = new Catch (null, GetLocation (yyVals[-2+yyTop]));
 
9188
          }
 
9189
 
 
9190
void case_923()
 
9191
#line 6168 "cs-parser.jay"
 
9192
{
 
9193
                Error_SyntaxError (yyToken);
 
9194
 
 
9195
                /* Required otherwise missing block could not be detected because*/
 
9196
                /* start_block is run early*/
 
9197
                var c = new Catch (null, GetLocation (yyVals[-5+yyTop]));
 
9198
                c.TypeExpression = (FullNamedExpression) yyVals[-3+yyTop];
 
9199
                
 
9200
                if (yyVals[-2+yyTop] != null) {
 
9201
                        var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9202
                        c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
 
9203
                }
 
9204
 
 
9205
                if (yyVals[-2+yyTop] != null) {
 
9206
                        var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9207
                        c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
 
9208
                }
 
9209
 
 
9210
                lbag.AddLocation (c, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
9211
 
 
9212
                yyVal = c;
 
9213
          }
 
9214
 
 
9215
void case_926()
 
9216
#line 6208 "cs-parser.jay"
 
9217
{
 
9218
                if (!settings.Unsafe)
 
9219
                        Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
 
9220
          }
 
9221
 
 
9222
void case_928()
 
9223
#line 6218 "cs-parser.jay"
 
9224
{
 
9225
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
9226
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
9227
          
 
9228
                yyVal = new Lock ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
9229
                lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
9230
          }
 
9231
 
 
9232
void case_929()
 
9233
#line 6226 "cs-parser.jay"
 
9234
{
 
9235
                Error_SyntaxError (yyToken);
 
9236
 
 
9237
                yyVal = new Lock ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
9238
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9239
          }
 
9240
 
 
9241
void case_930()
 
9242
#line 6236 "cs-parser.jay"
 
9243
{
 
9244
            start_block (GetLocation (yyVals[-2+yyTop]));
 
9245
            
 
9246
                current_block.IsCompilerGenerated = true;
 
9247
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
9248
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.FixedVariable | LocalVariable.Flags.Used, lt.Location);
 
9249
                current_block.AddLocalName (li);
 
9250
                current_variable = new Fixed.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
 
9251
          }
 
9252
 
 
9253
void case_931()
 
9254
#line 6246 "cs-parser.jay"
 
9255
{
 
9256
                yyVal = current_variable;
 
9257
                current_variable = null;
 
9258
          }
 
9259
 
 
9260
void case_932()
 
9261
#line 6251 "cs-parser.jay"
 
9262
{
 
9263
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
9264
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
9265
          
 
9266
                Fixed f = new Fixed ((Fixed.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-9+yyTop]));
 
9267
                current_block.AddStatement (f);
 
9268
                lbag.AddStatement (f, GetLocation (yyVals[-8+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
9269
                yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
 
9270
          }
 
9271
 
 
9272
void case_933()
 
9273
#line 6264 "cs-parser.jay"
 
9274
{
 
9275
            start_block (GetLocation (yyVals[-2+yyTop]));
 
9276
            
 
9277
                current_block.IsCompilerGenerated = true;
 
9278
                var lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
9279
                var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.UsingVariable | LocalVariable.Flags.Used, lt.Location);
 
9280
                current_block.AddLocalName (li);
 
9281
                current_variable = new Using.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
 
9282
          }
 
9283
 
 
9284
void case_934()
 
9285
#line 6274 "cs-parser.jay"
 
9286
{
 
9287
                yyVal = current_variable;         
 
9288
                current_variable = null;
 
9289
          }
 
9290
 
 
9291
void case_935()
 
9292
#line 6279 "cs-parser.jay"
 
9293
{
 
9294
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
9295
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
9296
          
 
9297
                Using u = new Using ((Using.VariableDeclaration) yyVals[-1+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-8+yyTop]));
 
9298
                lbag.AddStatement (u, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-2+yyTop]));
 
9299
                current_block.AddStatement (u);
 
9300
                yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
 
9301
          }
 
9302
 
 
9303
void case_936()
 
9304
#line 6289 "cs-parser.jay"
 
9305
{
 
9306
                if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
 
9307
                        Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
 
9308
          
 
9309
                yyVal = new Using ((Expression) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
9310
                lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
 
9311
          }
 
9312
 
 
9313
void case_937()
 
9314
#line 6297 "cs-parser.jay"
 
9315
{
 
9316
                Error_SyntaxError (yyToken);
 
9317
                
 
9318
                yyVal = new Using ((Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-3+yyTop]));
 
9319
                lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9320
          }
 
9321
 
 
9322
void case_939()
 
9323
#line 6308 "cs-parser.jay"
 
9324
{
 
9325
                /* It has to be here for the parent to safely restore artificial block*/
 
9326
                Error_SyntaxError (yyToken);
 
9327
          }
 
9328
 
 
9329
void case_941()
 
9330
#line 6320 "cs-parser.jay"
 
9331
{
 
9332
                current_variable.Initializer = (Expression) yyVals[0+yyTop];
 
9333
                lbag.AddLocation (current_variable, GetLocation (yyVals[-1+yyTop]));
 
9334
                yyVal = current_variable;
 
9335
          }
 
9336
 
 
9337
void case_942()
 
9338
#line 6332 "cs-parser.jay"
 
9339
{
 
9340
                lexer.query_parsing = false;
 
9341
                        
 
9342
                Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
 
9343
                        
 
9344
                from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9345
                yyVal = from;
 
9346
                
 
9347
                current_block.SetEndLocation (lexer.Location);
 
9348
                current_block = current_block.Parent;
 
9349
          }
 
9350
 
 
9351
void case_943()
 
9352
#line 6344 "cs-parser.jay"
 
9353
{
 
9354
                Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
 
9355
                        
 
9356
                from.Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9357
                yyVal = from;
 
9358
                
 
9359
                current_block.SetEndLocation (lexer.Location);
 
9360
                current_block = current_block.Parent;
 
9361
          }
 
9362
 
 
9363
void case_944()
 
9364
#line 6355 "cs-parser.jay"
 
9365
{
 
9366
                lexer.query_parsing = false;
 
9367
                yyVal = yyVals[-1+yyTop];
 
9368
 
 
9369
                current_block.SetEndLocation (lexer.Location);
 
9370
                current_block = current_block.Parent;
 
9371
          }
 
9372
 
 
9373
void case_945()
 
9374
#line 6362 "cs-parser.jay"
 
9375
{
 
9376
                yyVal = yyVals[-1+yyTop];
 
9377
                current_block.SetEndLocation (lexer.Location);
 
9378
                current_block = current_block.Parent;
 
9379
          }
 
9380
 
 
9381
void case_946()
 
9382
#line 6371 "cs-parser.jay"
 
9383
{
 
9384
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9385
          
 
9386
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9387
                var rv = new Linq.RangeVariable (lt.Value, lt.Location);
 
9388
                var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
 
9389
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
 
9390
                yyVal = new Linq.QueryExpression (start);
 
9391
          }
 
9392
 
 
9393
void case_947()
 
9394
#line 6381 "cs-parser.jay"
 
9395
{
 
9396
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9397
          
 
9398
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9399
                var rv = new Linq.RangeVariable (lt.Value, lt.Location);
 
9400
                var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
 
9401
                        IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
 
9402
                };
 
9403
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
 
9404
                yyVal = new Linq.QueryExpression (start);
 
9405
          }
 
9406
 
 
9407
void case_948()
 
9408
#line 6396 "cs-parser.jay"
 
9409
{
 
9410
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9411
          
 
9412
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9413
                var rv = new Linq.RangeVariable (lt.Value, lt.Location);
 
9414
                var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-3+yyTop]));
 
9415
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
 
9416
                yyVal = new Linq.QueryExpression (start);
 
9417
          }
 
9418
 
 
9419
void case_949()
 
9420
#line 6406 "cs-parser.jay"
 
9421
{
 
9422
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9423
          
 
9424
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9425
                var rv = new Linq.RangeVariable (lt.Value, lt.Location);
 
9426
                var start = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], rv, GetLocation (yyVals[-4+yyTop])) {
 
9427
                        IdentifierType = (FullNamedExpression)yyVals[-3+yyTop]
 
9428
                };
 
9429
                lbag.AddLocation (start, GetLocation (yyVals[-1+yyTop]));
 
9430
                yyVal = new Linq.QueryExpression (start);
 
9431
          }
 
9432
 
 
9433
void case_951()
 
9434
#line 6425 "cs-parser.jay"
 
9435
{
 
9436
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
9437
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
 
9438
                yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
9439
                
 
9440
                current_block.SetEndLocation (lexer.Location);
 
9441
                current_block = current_block.Parent;
 
9442
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
 
9443
 
 
9444
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9445
          }
 
9446
 
 
9447
void case_953()
 
9448
#line 6441 "cs-parser.jay"
 
9449
{
 
9450
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
9451
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
 
9452
 
 
9453
                yyVal = new Linq.SelectMany ((Linq.QueryBlock)current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-5+yyTop])) {
 
9454
                        IdentifierType = (FullNamedExpression)yyVals[-4+yyTop]
 
9455
                };
 
9456
                
 
9457
                current_block.SetEndLocation (lexer.Location);
 
9458
                current_block = current_block.Parent;
 
9459
                
 
9460
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
 
9461
                
 
9462
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9463
          }
 
9464
 
 
9465
void case_954()
 
9466
#line 6460 "cs-parser.jay"
 
9467
{
 
9468
                Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop];
 
9469
                
 
9470
                if (yyVals[0+yyTop] != null)
 
9471
                        head.Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9472
                                
 
9473
                if (yyVals[-2+yyTop] != null) {
 
9474
                        Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-2+yyTop];
 
9475
                        clause.Tail.Next = head;
 
9476
                        head = clause;
 
9477
                }
 
9478
                
 
9479
                yyVal = head;
 
9480
          }
 
9481
 
 
9482
void case_955()
 
9483
#line 6475 "cs-parser.jay"
 
9484
{
 
9485
                Linq.AQueryClause head = (Linq.AQueryClause)yyVals[0+yyTop];
 
9486
 
 
9487
                if (yyVals[-1+yyTop] != null) {
 
9488
                        Linq.AQueryClause clause = (Linq.AQueryClause)yyVals[-1+yyTop];
 
9489
                        clause.Tail.Next = head;
 
9490
                        head = clause;
 
9491
                }
 
9492
                
 
9493
                yyVal = head;
 
9494
          }
 
9495
 
 
9496
void case_957()
 
9497
#line 6488 "cs-parser.jay"
 
9498
{
 
9499
                report.Error (742, GetLocation (yyVals[0+yyTop]), "Unexpected symbol `{0}'. A query body must end with select or group clause", GetSymbolName (yyToken));
 
9500
                yyVal = yyVals[-1+yyTop];
 
9501
          }
 
9502
 
 
9503
void case_958()
 
9504
#line 6493 "cs-parser.jay"
 
9505
{
 
9506
                Error_SyntaxError (yyToken);
 
9507
                yyVal = null;
 
9508
          }
 
9509
 
 
9510
void case_960()
 
9511
#line 6505 "cs-parser.jay"
 
9512
{
 
9513
                yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
9514
 
 
9515
                current_block.SetEndLocation (lexer.Location);
 
9516
                current_block = current_block.Parent;
 
9517
          }
 
9518
 
 
9519
void case_961()
 
9520
#line 6512 "cs-parser.jay"
 
9521
{
 
9522
                if (linq_clause_blocks == null)
 
9523
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
 
9524
                        
 
9525
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9526
                linq_clause_blocks.Push ((Linq.QueryBlock)current_block);
 
9527
          }
 
9528
 
 
9529
void case_962()
 
9530
#line 6520 "cs-parser.jay"
 
9531
{
 
9532
                current_block.SetEndLocation (lexer.Location);
 
9533
                current_block = current_block.Parent;
 
9534
          
 
9535
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9536
          }
 
9537
 
 
9538
void case_963()
 
9539
#line 6527 "cs-parser.jay"
 
9540
{
 
9541
                var obj = (object[]) yyVals[0+yyTop];
 
9542
 
 
9543
                yyVal = new Linq.GroupBy ((Linq.QueryBlock)current_block, (Expression)yyVals[-2+yyTop], linq_clause_blocks.Pop (), (Expression)obj[0], GetLocation (yyVals[-4+yyTop]));
 
9544
                lbag.AddLocation (yyVal, (Location) obj[1]);
 
9545
                
 
9546
                current_block.SetEndLocation (lexer.Location);
 
9547
                current_block = current_block.Parent;
 
9548
          }
 
9549
 
 
9550
void case_965()
 
9551
#line 6544 "cs-parser.jay"
 
9552
{
 
9553
                Error_SyntaxError (yyToken);
 
9554
                yyVal = new object[2] { null, Location.Null };
 
9555
          }
 
9556
 
 
9557
void case_967()
 
9558
#line 6553 "cs-parser.jay"
 
9559
{
 
9560
                ((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9561
                yyVal = yyVals[-1+yyTop];
 
9562
          }
 
9563
 
 
9564
void case_974()
 
9565
#line 6573 "cs-parser.jay"
 
9566
{
 
9567
                var lt = (Tokenizer.LocatedToken) yyVals[-3+yyTop];
 
9568
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
 
9569
                yyVal = new Linq.Let ((Linq.QueryBlock) current_block, sn, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
 
9570
                lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
 
9571
                
 
9572
                current_block.SetEndLocation (lexer.Location);
 
9573
                current_block = current_block.Parent;
 
9574
                
 
9575
                ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
 
9576
          }
 
9577
 
 
9578
void case_976()
 
9579
#line 6592 "cs-parser.jay"
 
9580
{
 
9581
                yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
 
9582
 
 
9583
                current_block.SetEndLocation (lexer.Location);
 
9584
                current_block = current_block.Parent;
 
9585
          }
 
9586
 
 
9587
void case_977()
 
9588
#line 6602 "cs-parser.jay"
 
9589
{
 
9590
                if (linq_clause_blocks == null)
 
9591
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
 
9592
                        
 
9593
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9594
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
 
9595
          }
 
9596
 
 
9597
void case_978()
 
9598
#line 6610 "cs-parser.jay"
 
9599
{
 
9600
                current_block.SetEndLocation (lexer.Location);
 
9601
                current_block = current_block.Parent;
 
9602
 
 
9603
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9604
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
 
9605
          }
 
9606
 
 
9607
void case_979()
 
9608
#line 6618 "cs-parser.jay"
 
9609
{
 
9610
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
 
9611
                current_block.SetEndLocation (lexer.Location);
 
9612
                current_block = current_block.Parent;
 
9613
 
 
9614
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9615
          }
 
9616
 
 
9617
void case_980()
 
9618
#line 6626 "cs-parser.jay"
 
9619
{
 
9620
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
 
9621
                current_block.SetEndLocation (lexer.Location);
 
9622
          
 
9623
                var outer_selector = linq_clause_blocks.Pop ();
 
9624
                var block = linq_clause_blocks.Pop ();
 
9625
 
 
9626
                var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];    
 
9627
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
 
9628
                Linq.RangeVariable into;
 
9629
                
 
9630
                if (yyVals[0+yyTop] == null) {
 
9631
                        into = sn;
 
9632
                        yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-11+yyTop]));
 
9633
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]));
 
9634
                } else {
 
9635
                        /**/
 
9636
                        /* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
 
9637
                        /**/
 
9638
                        var parent = block.Parent;
 
9639
                        while (parent is Linq.QueryBlock) {
 
9640
                                parent = parent.Parent;
 
9641
                        }
 
9642
                        current_block.Parent = parent;
 
9643
                        
 
9644
                        ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
 
9645
                
 
9646
                        lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
9647
                        into = new Linq.RangeVariable (lt.Value, lt.Location);
 
9648
 
 
9649
                        yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-11+yyTop]));   
 
9650
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), opt_intoStack.Pop ());
 
9651
                }
 
9652
 
 
9653
                current_block = block.Parent;
 
9654
                ((Linq.QueryBlock)current_block).AddRangeVariable (into);
 
9655
          }
 
9656
 
 
9657
void case_981()
 
9658
#line 6664 "cs-parser.jay"
 
9659
{
 
9660
                if (linq_clause_blocks == null)
 
9661
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
 
9662
                        
 
9663
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9664
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
 
9665
          }
 
9666
 
 
9667
void case_982()
 
9668
#line 6672 "cs-parser.jay"
 
9669
{
 
9670
                current_block.SetEndLocation (lexer.Location);
 
9671
                current_block = current_block.Parent;
 
9672
 
 
9673
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9674
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
 
9675
          }
 
9676
 
 
9677
void case_983()
 
9678
#line 6680 "cs-parser.jay"
 
9679
{
 
9680
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
 
9681
                current_block.SetEndLocation (lexer.Location);
 
9682
                current_block = current_block.Parent;
 
9683
 
 
9684
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9685
          }
 
9686
 
 
9687
void case_984()
 
9688
#line 6688 "cs-parser.jay"
 
9689
{
 
9690
                current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
 
9691
                current_block.SetEndLocation (lexer.Location);
 
9692
          
 
9693
                var outer_selector = linq_clause_blocks.Pop ();
 
9694
                var block = linq_clause_blocks.Pop ();
 
9695
                
 
9696
                var lt = (Tokenizer.LocatedToken) yyVals[-10+yyTop];
 
9697
                var sn = new Linq.RangeVariable (lt.Value, lt.Location);
 
9698
                Linq.RangeVariable into;
 
9699
                
 
9700
                if (yyVals[0+yyTop] == null) {
 
9701
                        into = sn;              
 
9702
                        yyVal = new Linq.Join (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, GetLocation (yyVals[-12+yyTop])) {
 
9703
                                IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
 
9704
                        };
 
9705
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]));
 
9706
                } else {
 
9707
                        /**/
 
9708
                        /* Set equals right side parent to beginning of linq query, it is not accessible therefore cannot cause name collisions*/
 
9709
                        /**/
 
9710
                        var parent = block.Parent;
 
9711
                        while (parent is Linq.QueryBlock) {
 
9712
                                parent = parent.Parent;
 
9713
                        }
 
9714
                        current_block.Parent = parent;
 
9715
                
 
9716
                        ((Linq.QueryBlock)current_block).AddRangeVariable (sn);
 
9717
                
 
9718
                        lt = (Tokenizer.LocatedToken) yyVals[0+yyTop];
 
9719
                        into = new Linq.RangeVariable (lt.Value, lt.Location); /* TODO:*/
 
9720
                        
 
9721
                        yyVal = new Linq.GroupJoin (block, sn, (Expression)yyVals[-7+yyTop], outer_selector, (Linq.QueryBlock) current_block, into, GetLocation (yyVals[-12+yyTop])) {
 
9722
                                IdentifierType = (FullNamedExpression)yyVals[-11+yyTop]
 
9723
                        };                      
 
9724
                        lbag.AddLocation (yyVal, GetLocation (yyVals[-10+yyTop]), GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-4+yyTop]), opt_intoStack.Pop ());
 
9725
                }
 
9726
                
 
9727
                current_block = block.Parent;
 
9728
                ((Linq.QueryBlock)current_block).AddRangeVariable (into);               
 
9729
          }
 
9730
 
 
9731
void case_986()
 
9732
#line 6734 "cs-parser.jay"
 
9733
{
 
9734
                opt_intoStack.Push (GetLocation (yyVals[-1+yyTop]));
 
9735
                yyVal = yyVals[0+yyTop];
 
9736
          }
 
9737
 
 
9738
void case_987()
 
9739
#line 6742 "cs-parser.jay"
 
9740
{
 
9741
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9742
                lbag.AddLocation (current_block, GetLocation (yyVals[0+yyTop]));
 
9743
          }
 
9744
 
 
9745
void case_988()
 
9746
#line 6747 "cs-parser.jay"
 
9747
{
 
9748
                current_block.SetEndLocation (lexer.Location);
 
9749
                current_block = current_block.Parent;
 
9750
          
 
9751
                yyVal = yyVals[0+yyTop];
 
9752
          }
 
9753
 
 
9754
void case_990()
 
9755
#line 6758 "cs-parser.jay"
 
9756
{
 
9757
                current_block.SetEndLocation (lexer.Location);
 
9758
                current_block = current_block.Parent;
 
9759
          
 
9760
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9761
          }
 
9762
 
 
9763
void case_991()
 
9764
#line 6765 "cs-parser.jay"
 
9765
{
 
9766
                ((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9767
                yyVal = yyVals[-3+yyTop];
 
9768
          }
 
9769
 
 
9770
void case_993()
 
9771
#line 6774 "cs-parser.jay"
 
9772
{
 
9773
                current_block.SetEndLocation (lexer.Location);
 
9774
                current_block = current_block.Parent;
 
9775
          
 
9776
                current_block = new Linq.QueryBlock ((Linq.QueryBlock) current_block, lexer.Location);   
 
9777
         }
 
9778
 
 
9779
void case_994()
 
9780
#line 6781 "cs-parser.jay"
 
9781
{
 
9782
                ((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
 
9783
                yyVal = yyVals[-3+yyTop];
 
9784
         }
 
9785
 
 
9786
void case_996()
 
9787
#line 6793 "cs-parser.jay"
 
9788
{
 
9789
                yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);      
 
9790
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
9791
          }
 
9792
 
 
9793
void case_997()
 
9794
#line 6798 "cs-parser.jay"
 
9795
{
 
9796
                yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);     
 
9797
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
9798
          }
 
9799
 
 
9800
void case_999()
 
9801
#line 6810 "cs-parser.jay"
 
9802
{
 
9803
                yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);       
 
9804
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
9805
          }
 
9806
 
 
9807
void case_1000()
 
9808
#line 6815 "cs-parser.jay"
 
9809
{
 
9810
                yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);      
 
9811
                lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
 
9812
          }
 
9813
 
 
9814
void case_1002()
 
9815
#line 6825 "cs-parser.jay"
 
9816
{
 
9817
                /* query continuation block is not linked with query block but with block*/
 
9818
                /* before. This means each query can use same range variable names for*/
 
9819
                /* different identifiers.*/
 
9820
 
 
9821
                current_block.SetEndLocation (GetLocation (yyVals[-1+yyTop]));
 
9822
                current_block = current_block.Parent;
 
9823
        
 
9824
                current_block = new Linq.QueryBlock (current_block, lexer.Location);
 
9825
                
 
9826
                if (linq_clause_blocks == null)
 
9827
                        linq_clause_blocks = new Stack<Linq.QueryBlock> ();
 
9828
                        
 
9829
                linq_clause_blocks.Push ((Linq.QueryBlock) current_block);              
 
9830
          }
 
9831
 
 
9832
void case_1003()
 
9833
#line 6841 "cs-parser.jay"
 
9834
{
 
9835
                var current_block = linq_clause_blocks.Pop ();    
 
9836
                var lt = (Tokenizer.LocatedToken) yyVals[-2+yyTop];
 
9837
                var rv = new Linq.RangeVariable (lt.Value, lt.Location);
 
9838
                yyVal = new Linq.QueryStartClause ((Linq.QueryBlock)current_block, null, rv, GetLocation (yyVals[-3+yyTop])) {
 
9839
                        next = (Linq.AQueryClause)yyVals[0+yyTop]
 
9840
                };
 
9841
          }
 
9842
 
 
9843
void case_1006()
 
9844
#line 6868 "cs-parser.jay"
 
9845
 
9846
                current_container = current_type = new Class (current_container, new MemberName ("<InteractiveExpressionClass>"), Modifiers.PUBLIC, null);
 
9847
 
 
9848
                /* (ref object retval)*/
 
9849
                Parameter [] mpar = new Parameter [1];
 
9850
                mpar [0] = new Parameter (new TypeExpression (compiler.BuiltinTypes.Object, Location.Null), "$retval", Parameter.Modifier.REF, null, Location.Null);
 
9851
 
 
9852
                ParametersCompiled pars = new ParametersCompiled (mpar);
 
9853
                var mods = Modifiers.PUBLIC | Modifiers.STATIC;
 
9854
                if (settings.Unsafe)
 
9855
                        mods |= Modifiers.UNSAFE;
 
9856
 
 
9857
                current_local_parameters = pars;
 
9858
                Method method = new Method (
 
9859
                        current_type,
 
9860
                        new TypeExpression (compiler.BuiltinTypes.Void, Location.Null),
 
9861
                        mods,
 
9862
                        new MemberName ("Host"),
 
9863
                        pars,
 
9864
                        null /* attributes */);
 
9865
                        
 
9866
                current_type.AddMember (method);                        
 
9867
 
 
9868
                oob_stack.Push (method);
 
9869
                ++lexer.parsing_block;
 
9870
                start_block (lexer.Location);
 
9871
          }
 
9872
 
 
9873
void case_1007()
 
9874
#line 6896 "cs-parser.jay"
 
9875
{
 
9876
                --lexer.parsing_block;
 
9877
                Method method = (Method) oob_stack.Pop ();
 
9878
 
 
9879
                method.Block = (ToplevelBlock) end_block(lexer.Location);
 
9880
 
 
9881
                InteractiveResult = (Class) pop_current_class ();
 
9882
                current_local_parameters = null;
 
9883
          }
 
9884
 
 
9885
void case_1017()
 
9886
#line 6939 "cs-parser.jay"
 
9887
{
 
9888
                module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop];
 
9889
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
 
9890
                yyVal = null;
 
9891
          }
 
9892
 
 
9893
void case_1018()
 
9894
#line 6945 "cs-parser.jay"
 
9895
{
 
9896
                module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-3+yyTop];
 
9897
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
 
9898
                var lt = (Tokenizer.LocatedToken) yyVals[-1+yyTop];
 
9899
                yyVal = new MemberName (lt.Value);
 
9900
          }
 
9901
 
 
9902
void case_1021()
 
9903
#line 6960 "cs-parser.jay"
 
9904
{
 
9905
                module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[-1+yyTop];
 
9906
                yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], MemberCache.IndexerNameAlias, Location.Null);
 
9907
          }
 
9908
 
 
9909
void case_1022()
 
9910
#line 6965 "cs-parser.jay"
 
9911
{
 
9912
                var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
 
9913
                p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
 
9914
                module.DocumentationBuilder.ParsedParameters = p;
 
9915
                module.DocumentationBuilder.ParsedOperator = Operator.OpType.Explicit;
 
9916
                yyVal = null;
 
9917
          }
 
9918
 
 
9919
void case_1023()
 
9920
#line 6973 "cs-parser.jay"
 
9921
{
 
9922
                var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
 
9923
                p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
 
9924
                module.DocumentationBuilder.ParsedParameters = p;
 
9925
                module.DocumentationBuilder.ParsedOperator = Operator.OpType.Implicit;
 
9926
                yyVal = null;
 
9927
          }
 
9928
 
 
9929
void case_1024()
 
9930
#line 6981 "cs-parser.jay"
 
9931
{
 
9932
                var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
 
9933
                module.DocumentationBuilder.ParsedParameters = p;
 
9934
                module.DocumentationBuilder.ParsedOperator = (Operator.OpType) yyVals[-1+yyTop];
 
9935
                yyVal = null;
 
9936
          }
 
9937
 
 
9938
void case_1032()
 
9939
#line 7019 "cs-parser.jay"
 
9940
{
 
9941
                var parameters = new List<DocumentationParameter> ();
 
9942
                parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
 
9943
                yyVal = parameters;
 
9944
          }
 
9945
 
 
9946
void case_1033()
 
9947
#line 7025 "cs-parser.jay"
 
9948
{
 
9949
                var parameters = yyVals[-2+yyTop] as List<DocumentationParameter>;
 
9950
                parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
 
9951
                yyVal = parameters;
 
9952
          }
 
9953
 
 
9954
void case_1034()
 
9955
#line 7034 "cs-parser.jay"
 
9956
{
 
9957
                if (yyVals[-1+yyTop] != null)
 
9958
                        yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]);
 
9959
                else
 
9960
                        yyVal = new DocumentationParameter ((FullNamedExpression) yyVals[0+yyTop]);
 
9961
          }
 
9962
 
 
9963
#line default
 
9964
   static readonly short [] yyLhs  = {              -1,
 
9965
    0,    4,    0,    0,    1,    1,    1,    1,    2,    2,
 
9966
   11,   11,   12,   12,   13,   13,   14,   15,   15,   15,
 
9967
   19,   20,   17,   17,   22,   22,   22,   18,   18,   18,
 
9968
   23,   23,   24,   24,    7,    7,    6,    6,   21,   21,
 
9969
    8,    8,   25,   25,   25,   26,   26,   26,   26,   26,
 
9970
    9,    9,   10,   10,   34,   32,   37,   33,   33,   33,
 
9971
   33,   35,   35,   35,   36,   36,   41,   38,   39,   40,
 
9972
   40,   42,   42,   42,   42,   42,   43,   43,   43,   47,
 
9973
   44,   46,   49,   49,   49,   50,   50,   51,   51,   52,
 
9974
   52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
 
9975
   52,   52,   67,   69,   71,   72,   73,   28,   28,   76,
 
9976
   53,   53,   77,   77,   78,   78,   79,   81,   75,   75,
 
9977
   80,   80,   86,   54,   90,   54,   54,   85,   93,   85,
 
9978
   87,   87,   94,   94,   95,   96,   95,   91,   91,   97,
 
9979
   97,   98,   99,   89,   89,   92,   92,   92,  102,   55,
 
9980
  105,  106,  100,  107,  108,  109,  100,  100,  100,  101,
 
9981
  101,  104,  104,  112,  112,  112,  112,  112,  112,  112,
 
9982
  112,  112,  112,  113,  113,  116,  116,  116,  116,  119,
 
9983
  116,  117,  117,  120,  120,  121,  121,  121,  114,  114,
 
9984
  114,  122,  122,  122,  115,  124,  126,  127,   56,  129,
 
9985
  130,  131,   58,  125,  125,  125,  125,  125,  135,  132,
 
9986
  136,  133,  134,  134,  134,  137,  138,  139,  141,   29,
 
9987
   29,  140,  140,  142,  142,  143,  143,  143,  143,  143,
 
9988
  143,  143,  143,  143,  146,   59,  145,  145,  147,  147,
 
9989
  150,  144,  144,  149,  149,  149,  149,  149,  149,  149,
 
9990
  149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
 
9991
  149,  149,  149,  149,  149,  152,  151,  153,  151,  151,
 
9992
  151,   60,  156,  158,  154,  155,  155,  157,  157,  162,
 
9993
  160,  163,  160,  160,  160,  164,   61,  166,   57,  169,
 
9994
  170,   57,   57,  165,  172,  165,  167,  167,  173,  173,
 
9995
  174,  175,  174,  176,  171,  168,  168,  168,  168,  168,
 
9996
  180,  177,  181,  178,  179,  179,   62,   63,  183,  185,
 
9997
  186,   30,  182,  182,  182,  184,  184,  184,  187,  187,
 
9998
  188,  189,  188,  188,  188,  190,  191,  192,   31,  193,
 
9999
  193,   16,   16,  194,  194,  197,  196,  196,  196,  198,
 
10000
  198,  200,   66,  123,  103,  103,  128,  128,  201,  201,
 
10001
  201,  199,  199,  202,  202,  203,  203,  205,  205,   84,
 
10002
   74,   74,   88,   88,  118,  118,  148,  148,  206,  206,
 
10003
  206,  206,  206,  210,  210,  211,  209,  209,  209,  209,
 
10004
  209,  209,  209,  212,  212,  212,  212,  212,  212,  212,
 
10005
  212,  212,  213,  213,  213,  213,  213,  213,  213,  213,
 
10006
  213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
 
10007
  213,  213,  214,  214,  214,  215,  215,  215,  235,  235,
 
10008
  236,  236,  237,  237,  217,  217,  234,  234,  234,  234,
 
10009
  234,  234,  234,  234,  219,  219,  219,  239,  239,  240,
 
10010
  240,  241,  241,  243,  243,  243,  244,  244,  244,  244,
 
10011
  244,  244,  245,  245,  161,  161,  238,  238,  238,  238,
 
10012
  238,  250,  250,  249,  249,  251,  251,  251,  251,  252,
 
10013
  220,  220,  220,  248,  248,  253,  253,  255,  255,  221,
 
10014
  222,  222,  223,  224,  225,  225,  216,  216,  216,  216,
 
10015
  216,  260,  256,  226,  261,  261,  262,  262,  263,  263,
 
10016
  264,  264,  264,  264,  257,  257,  207,  207,  259,  259,
 
10017
  265,  265,  258,  258,   83,   83,  266,  266,  267,  227,
 
10018
  268,  268,  268,  269,  269,  269,  269,  269,  270,  195,
 
10019
  228,  228,  229,  229,  230,  230,  231,  272,  232,  273,
 
10020
  232,  271,  271,  275,  274,  218,  276,  276,  276,  276,
 
10021
  276,  276,  276,  276,  276,  277,  277,  277,  277,  277,
 
10022
  277,  277,  277,  277,  277,  277,  277,  277,  278,  278,
 
10023
  278,  278,  278,  278,  278,  279,  279,  279,  279,  279,
 
10024
  279,  279,  279,  279,  280,  280,  280,  280,  280,  281,
 
10025
  281,  281,  281,  281,  281,  281,  281,  281,  282,  282,
 
10026
  282,  282,  282,  283,  283,  283,  284,  284,  284,  285,
 
10027
  285,  285,  286,  286,  286,  287,  287,  287,  288,  288,
 
10028
  289,  289,  289,  289,  289,  290,  290,  290,  290,  290,
 
10029
  290,  290,  290,  290,  290,  290,  291,  291,  292,  292,
 
10030
  292,  292,  293,  293,  295,  294,  294,  294,  254,  254,
 
10031
  297,  296,  298,  296,  299,  296,  300,  301,  296,  302,
 
10032
  303,  296,   45,   45,  246,  246,  246,  246,  233,  233,
 
10033
  233,   82,  305,  306,  307,  308,  309,   27,   65,   65,
 
10034
   64,   64,  110,  110,  310,  310,  310,  310,  310,  310,
 
10035
  310,  310,  310,  310,  310,  310,  310,  310,  310,   68,
 
10036
   68,   68,   70,   70,  311,  311,  312,  312,  313,  313,
 
10037
  314,  314,  314,  314,  204,  204,  315,  315,  317,  111,
 
10038
  318,  318,  319,  159,  159,  321,  320,  316,  316,  322,
 
10039
  322,  323,  323,  323,  323,  323,  327,  327,  328,  328,
 
10040
  328,  325,  325,  325,  325,  325,  325,  325,  325,  325,
 
10041
  325,  325,  325,  325,  329,  329,  329,  329,  329,  329,
 
10042
  329,  329,  329,  329,  329,  329,  329,  343,  343,  343,
 
10043
  343,  330,  344,  326,  345,  345,  346,  346,  346,  346,
 
10044
  346,  346,  208,  208,  347,   48,   48,  349,  324,  353,
 
10045
  324,  351,  351,  348,  348,  348,  350,  350,  357,  357,
 
10046
  356,  356,  358,  358,  352,  352,  354,  354,  359,  359,
 
10047
  360,  355,  355,  355,  331,  331,  331,  342,  342,  361,
 
10048
  362,  362,  332,  332,  363,  363,  363,  366,  364,  364,
 
10049
  365,  365,  367,  367,  367,  368,  369,  369,  370,  370,
 
10050
  370,  333,  333,  333,  333,  371,  371,  372,  372,  372,
 
10051
  376,  373,  379,  375,  375,  382,  378,  378,  381,  381,
 
10052
  377,  377,  385,  384,  384,  380,  380,  383,  383,  387,
 
10053
  386,  386,  374,  374,  388,  374,  374,  374,  334,  334,
 
10054
  334,  334,  334,  334,  389,  390,  390,  391,  391,  391,
 
10055
  392,  392,  392,  393,  393,  394,  394,  394,  395,  395,
 
10056
  335,  335,  335,  335,  396,  396,  398,  398,  397,  399,
 
10057
  397,  397,  397,  336,  337,  400,  340,  338,  338,  402,
 
10058
  403,  341,  405,  406,  339,  339,  339,  404,  404,  401,
 
10059
  401,  304,  304,  304,  304,  407,  407,  409,  409,  411,
 
10060
  410,  412,  410,  408,  408,  408,  408,  408,  416,  414,
 
10061
  417,  419,  414,  418,  418,  413,  413,  420,  420,  420,
 
10062
  420,  420,  425,  421,  426,  422,  427,  428,  429,  423,
 
10063
  431,  432,  433,  423,  430,  430,  435,  424,  434,  438,
 
10064
  434,  437,  440,  437,  436,  436,  436,  439,  439,  439,
 
10065
  415,  441,  415,    3,    3,  442,    3,    3,  443,  443,
 
10066
  247,  247,  242,  242,    5,  444,  444,  444,  444,  448,
 
10067
  444,  444,  444,  444,  445,  445,  446,  449,  446,  447,
 
10068
  447,  450,  450,  451,
 
10069
  };
 
10070
   static readonly short [] yyLen = {           2,
 
10071
    2,    0,    3,    1,    2,    4,    3,    1,    0,    1,
 
10072
    1,    2,    4,    2,    1,    2,    1,    3,    5,    2,
 
10073
    0,    0,   11,    3,    0,    1,    1,    1,    3,    1,
 
10074
    0,    1,    0,    1,    0,    1,    0,    1,    0,    1,
 
10075
    1,    2,    1,    1,    2,    1,    1,    1,    1,    1,
 
10076
    0,    1,    1,    2,    0,    3,    0,    6,    3,    2,
 
10077
    1,    1,    1,    1,    1,    3,    0,    3,    1,    0,
 
10078
    3,    0,    1,    1,    3,    3,    1,    1,    1,    0,
 
10079
    4,    4,    0,    1,    1,    0,    1,    1,    2,    1,
 
10080
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10081
    1,    1,    0,    0,    0,    0,    0,   16,    5,    0,
 
10082
    9,    5,    0,    1,    1,    2,    3,    0,    3,    1,
 
10083
    1,    1,    0,    8,    0,    9,    6,    0,    0,    3,
 
10084
    0,    1,    1,    2,    2,    0,    5,    0,    1,    1,
 
10085
    2,    3,    0,    4,    2,    1,    1,    1,    0,    3,
 
10086
    0,    0,   10,    0,    0,    0,   12,    8,    5,    1,
 
10087
    1,    0,    1,    1,    3,    3,    3,    5,    3,    5,
 
10088
    1,    1,    1,    1,    3,    4,    6,    2,    4,    0,
 
10089
    7,    0,    1,    1,    2,    1,    1,    1,    4,    6,
 
10090
    4,    1,    2,    2,    1,    0,    0,    0,   10,    0,
 
10091
    0,    0,   13,    1,    2,    1,    2,    1,    0,    5,
 
10092
    0,    5,    1,    1,    1,    0,    0,    0,    0,   15,
 
10093
    5,    0,    1,    1,    2,    1,    1,    1,    1,    1,
 
10094
    1,    1,    1,    1,    0,    5,    1,    1,    1,    1,
 
10095
    0,    7,    1,    1,    1,    1,    1,    1,    1,    1,
 
10096
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10097
    1,    1,    1,    1,    1,    0,    7,    0,    7,    2,
 
10098
    2,    2,    0,    0,    9,    1,    1,    0,    1,    0,
 
10099
    6,    0,    6,    2,    1,    0,    8,    0,    9,    0,
 
10100
    0,   10,    5,    0,    0,    3,    0,    1,    1,    2,
 
10101
    2,    0,    5,    0,    2,    2,    2,    1,    1,    1,
 
10102
    0,    5,    0,    5,    1,    1,    2,    4,    0,    0,
 
10103
    0,   12,    0,    2,    2,    0,    1,    2,    1,    3,
 
10104
    2,    0,    5,    3,    1,    0,    0,    0,   13,    0,
 
10105
    1,    1,    3,    1,    4,    2,    0,    3,    2,    1,
 
10106
    3,    0,    3,    1,    1,    3,    1,    2,    3,    4,
 
10107
    4,    0,    3,    1,    3,    3,    1,    1,    1,    1,
 
10108
    1,    1,    1,    1,    1,    1,    1,    2,    2,    2,
 
10109
    2,    2,    2,    1,    3,    1,    1,    1,    1,    1,
 
10110
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10111
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10112
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10113
    1,    1,    2,    2,    1,    1,    1,    1,    1,    1,
 
10114
    1,    1,    1,    1,    3,    3,    4,    4,    4,    3,
 
10115
    3,    4,    3,    4,    4,    4,    3,    0,    1,    3,
 
10116
    4,    0,    1,    1,    3,    2,    3,    3,    1,    2,
 
10117
    3,    2,    1,    1,    0,    1,    1,    3,    3,    3,
 
10118
    2,    1,    1,    1,    1,    2,    2,    4,    3,    1,
 
10119
    4,    4,    3,    1,    3,    1,    3,    1,    1,    1,
 
10120
    4,    3,    2,    2,    6,    3,    7,    4,    3,    7,
 
10121
    3,    0,    2,    4,    1,    2,    0,    1,    1,    3,
 
10122
    3,    1,    1,    1,    0,    1,    1,    2,    2,    3,
 
10123
    1,    2,    0,    1,    2,    4,    1,    3,    0,    5,
 
10124
    1,    1,    1,    2,    3,    3,    4,    4,    1,    2,
 
10125
    4,    4,    4,    2,    4,    2,    4,    0,    4,    0,
 
10126
    5,    0,    1,    0,    4,    4,    1,    2,    2,    4,
 
10127
    2,    2,    2,    4,    2,    1,    2,    2,    2,    2,
 
10128
    2,    2,    2,    2,    2,    2,    2,    2,    1,    3,
 
10129
    3,    3,    3,    3,    3,    1,    3,    3,    3,    3,
 
10130
    3,    3,    3,    3,    1,    3,    3,    3,    3,    1,
 
10131
    3,    3,    3,    3,    3,    3,    3,    3,    1,    3,
 
10132
    3,    3,    3,    1,    3,    3,    1,    3,    3,    1,
 
10133
    3,    3,    1,    3,    3,    1,    3,    3,    1,    3,
 
10134
    1,    5,    4,    5,    5,    3,    3,    3,    3,    3,
 
10135
    3,    3,    3,    3,    3,    3,    1,    3,    3,    2,
 
10136
    1,    1,    0,    1,    0,    2,    1,    1,    1,    1,
 
10137
    0,    4,    0,    4,    0,    5,    0,    0,    7,    0,
 
10138
    0,    8,    1,    1,    1,    1,    1,    1,    6,    4,
 
10139
    4,    1,    1,    0,    0,    0,    0,   15,    0,    1,
 
10140
    0,    1,    1,    2,    1,    1,    1,    1,    1,    1,
 
10141
    1,    1,    1,    1,    1,    1,    1,    1,    1,    0,
 
10142
    2,    3,    0,    1,    1,    2,    4,    3,    1,    3,
 
10143
    1,    3,    1,    1,    0,    1,    1,    1,    0,    4,
 
10144
    1,    1,    0,    4,    1,    0,    4,    0,    1,    1,
 
10145
    2,    1,    1,    1,    2,    1,    1,    2,    1,    1,
 
10146
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10147
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10148
    1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
10149
    1,    1,    0,    4,    1,    2,    2,    2,    2,    2,
 
10150
    2,    1,    1,    2,    1,    1,    1,    0,    6,    0,
 
10151
    7,    1,    1,    0,    2,    1,    0,    1,    0,    1,
 
10152
    1,    2,    2,    4,    0,    2,    0,    1,    1,    2,
 
10153
    4,    1,    5,    2,    2,    2,    2,    2,    2,    1,
 
10154
    1,    1,    1,    1,    5,    7,    4,    0,    8,    4,
 
10155
    0,    1,    1,    2,    1,    2,    1,    2,    3,    3,
 
10156
    1,    1,    1,    1,    1,    5,    4,    7,    3,    6,
 
10157
    0,    4,    0,    4,    2,    0,    4,    2,    3,    1,
 
10158
    0,    1,    0,    5,    1,    0,    1,    0,    1,    1,
 
10159
    1,    3,    4,    5,    0,    9,    5,    4,    1,    1,
 
10160
    1,    1,    1,    1,    2,    2,    2,    3,    4,    3,
 
10161
    3,    3,    2,    3,    2,    4,    4,    3,    0,    1,
 
10162
    3,    4,    5,    3,    1,    2,    0,    1,    2,    0,
 
10163
    7,    3,    6,    2,    2,    0,    3,    5,    4,    0,
 
10164
    0,   10,    0,    0,    9,    5,    4,    2,    1,    0,
 
10165
    2,    2,    2,    2,    2,    4,    5,    4,    5,    0,
 
10166
    5,    0,    6,    3,    2,    2,    2,    1,    0,    3,
 
10167
    0,    0,    5,    2,    1,    1,    2,    1,    1,    1,
 
10168
    1,    1,    0,    5,    0,    3,    0,    0,    0,   12,
 
10169
    0,    0,    0,   13,    0,    2,    0,    3,    1,    0,
 
10170
    4,    1,    0,    4,    1,    2,    2,    1,    2,    2,
 
10171
    0,    0,    4,    2,    3,    0,    4,    2,    2,    3,
 
10172
    0,    1,    1,    1,    2,    2,    2,    4,    3,    0,
 
10173
    7,    4,    4,    3,    1,    3,    0,    0,    4,    0,
 
10174
    1,    1,    3,    2,
 
10175
  };
 
10176
   static readonly short [] yyDefRed = {            0,
 
10177
    8,    0,    0,    0,    0,    0,    0,    0,    2,    4,
 
10178
    0,    0,   11,   14,    0, 1004,    0,    0, 1008,    0,
 
10179
    0,   15,   17,  389,  395,  402,  390,  392,    0,  391,
 
10180
    0,  398,  400,  387,    0,  394,  396,  388,  399,  401,
 
10181
  397,  352, 1025,    0,  393, 1015,    0,   10,    1,    0,
 
10182
    0,    0,   12,    0,  832,    0,    0,    0,    0,    0,
 
10183
    0,    0,    0,  430,    0,    0,    0,    0,    0,    0,
 
10184
    0,  428,    0,    0,    0,  490,    0,  429,    0,  529,
 
10185
    0,  926,    0,    0,    0,  678,    0,    0,    0,    0,
 
10186
    0,    0,    0,  729,    0,  782,    0,    0,    0,    0,
 
10187
    0,    0,    0,    0,  427,    0,  667,    0,  831,    0,
 
10188
  765,    0,    0,    0,    0,  404,  405,  406,  407,  408,
 
10189
  409,  410,  411,  412,  413,  414,  415,  416,  417,  418,
 
10190
  419,  420,  421,  422,  425,  426,  674,  566,    0,    0,
 
10191
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10192
  675,  673,  676,  677,  749,  751,    0,  747,  750,  766,
 
10193
  768,  769,  770,  771,  772,  773,  774,  775,  776,  777,
 
10194
  767,    0,    0,    0,  833,  834,  852,  853,  854,  855,
 
10195
  889,  890,  891,  892,  893,  894,    0,    0,    0,   20,
 
10196
    0,    0,  342,    0,  344, 1012,   16, 1005,    0,    0,
 
10197
  249,  248,  245,  250,  251,  244,  263,  262,  255,  256,
 
10198
  252,  254,  253,  257,  246,  247,  258,  259,  265,  264,
 
10199
  260,  261,    0,    0, 1028,    0, 1017,    0, 1016,    3,
 
10200
   55,    0,    0,    0,   44,   41,   43,   46,   47,   48,
 
10201
   49,   50,   53,   13,    0,    0,    0,  895,  544,  431,
 
10202
  432,  924,    0,    0,    0,    0,    0,    0,    0,  897,
 
10203
  896,    0,  554,  548,  553,  781,  830,  752,  779,  778,
 
10204
  780,  753,  754,  755,  756,  757,  758,  759,  760,  761,
 
10205
  762,  763,  764,    0,    0,    0,  861,    0,    0,    0,
 
10206
  797,  796,    0,    0,    0,    0,    0,    0,    0,    0,
 
10207
  903,    0,    0,    0,    0,  403,    0,    0,    0,  905,
 
10208
  910,    0,    0,    0,  546,  925,    0,    0,    0,  795,
 
10209
  791,    0,    0,    0,    0,    0,    0,    0,  371,    0,
 
10210
    0,    0,    0,    0,    0,    0,    0,  670,    0,  565,
 
10211
  663,    0,  561,    0,    0,  563,  559,  573,  567,  574,
 
10212
  568,  562,  558,  578,  572,  577,  571,  575,  569,  576,
 
10213
  570,  661,  540,    0,  424,  423,    0,    0,    0,    0,
 
10214
    0,  783,    0,  341,    0,  789,  790,    0,  493,  494,
 
10215
    0,    0,    0,  787,  788,    0,    0,    0,    0,    0,
 
10216
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10217
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10218
    0,    0,    0,    0,    0,    0,    0,    0, 1007,  748,
 
10219
  798,  786,    0,  828,  829,  958,  975,    0,    0,  959,
 
10220
  961,    0,  987,  944,  942,  968,    0,    0,  966,  969,
 
10221
  970,  971,  972,  945,  943,    0,    0,    0,  346,    0,
 
10222
   18,    0,    0,    0, 1024,    0,  353,    0,    0,    0,
 
10223
 1026,    0,    0,   42,  700,  706,  698,    0,  695,  705,
 
10224
  699,  697,  696,  703,  701,  702,  708,  704,  707,  709,
 
10225
    0,    0,  693,   45,   54,  492,    0,  488,  489,    0,
 
10226
    0,  486,    0,  800,    0,    0,    0,  859,    0,  827,
 
10227
  825,  826,    0,    0,    0,  682,    0,  900,  898,  683,
 
10228
    0,    0,  514,    0,    0,    0,    0,  505,    0,  509,
 
10229
  519,  521,    0,  501,    0,    0,    0,    0,    0,  496,
 
10230
    0,  499,    0,  503,  373,  902,  901,    0,    0,  904,
 
10231
  914,    0,    0,    0,  915,    0,    0,  927,    0,    0,
 
10232
  794,    0,  383,  379,  380,    0,    0,  378,  381,  382,
 
10233
    0,    0,    0,  579,    0,    0,  550,    0,  665,    0,
 
10234
  746,    0,    0,    0,  740,  742,  743,  744,  435,  436,
 
10235
    0,  349,  350,    0,  187,  186,  188,    0,  652,    0,
 
10236
    0,    0,  375,    0,  647,    0,    0,  908,    0,    0,
 
10237
    0,  440,    0,  443,    0,    0,  441,    0,    0,  483,
 
10238
    0,  447,    0,    0,    0,    0,  472,  475,    0,    0,
 
10239
  467,  474,  473,  636,  637,  638,  639,  640,  641,  642,
 
10240
  643,  644,  646,  645,  583,  580,  585,  582,  584,  581,
 
10241
  593,  589,  594,  590,  591,    0,  592,    0,  598,    0,
 
10242
  599,    0,  605,    0,  606,    0,  607,    0,  608,    0,
 
10243
  612,    0,  613,    0,  616,    0,  619,    0,  622,    0,
 
10244
  625,    0,  628,    0,  630,    0,    0,  518,    0,    0,
 
10245
    0,    0,    0,    0,    0,    0,    0,  957,  956,    0,
 
10246
  967,    0,  955,    0,    0,  343, 1022, 1023,  367,    0,
 
10247
    0,    0,  364,    0,    0,  184,    0,    0, 1032, 1018,
 
10248
 1020,   61,   63,   64,    0,    0,   56,    0,    0,   65,
 
10249
   67,   30,   28,    0,    0,    0,  690,    0,  694,  439,
 
10250
    0,  491,    0,  543,    0,  556,  173,  195,    0,    0,
 
10251
    0,  163,    0,    0,    0,  174,  549,    0,  930,    0,
 
10252
  881,  862,    0,  872,    0,  883,    0,  899,  837,    0,
 
10253
  929,    0,    0,  504,    0,  520,  522,    0,    0,    0,
 
10254
  459,    0,    0,  454,    0,    0,  660,  659,    0,  484,
 
10255
  524,  498,    0,    0,  148,  525,  146,  147,  527,    0,
 
10256
  542,  541,  840,    0,  919,    0,  912,    0,  916,  533,
 
10257
    0,    0,    0,  368,    0,  531,    0,    0,  545,  937,
 
10258
    0,  933,  857,    0,  948,    0,  946,    0,    0,  680,
 
10259
  681,    0,    0,    0,  658,  657,  664,    0,  745,  731,
 
10260
  732,  730,  741,  662,    0,  348,  650,    0,    0,    0,
 
10261
  564,  560,  907,  906,  784,  444,  438,  442,  437,  547,
 
10262
  482,  481,  480,  477,  476,    0,  471,  433,  434,  445,
 
10263
  446,    0,  633,    0,  806,    0,    0,  976,  950,    0,
 
10264
  977,    0,  960,  962,  973,    0,  988,    0,  954, 1002,
 
10265
   19,  345,  728,  727,    0,  726,    0,  363, 1034,  185,
 
10266
 1029,    0,    0,   60,   57,    0,    0,    0,    0,    0,
 
10267
    0,  370,    0,  684,    0,    0,   85,   84,    0,  487,
 
10268
    0,    0,    0,    0,    0,  178,  555,    0,    0,    0,
 
10269
    0,    0,  873,  865,  863,    0,  884,    0,    0,  928,
 
10270
  511,  510,    0,  462,    0,    0, 1013, 1014,  450,  456,
 
10271
    0,  460,    0,    0,    0,    0,    0,    0,  838,  922,
 
10272
    0,  913,    0,  539,  534,    0,    0,  530,    0,  936,
 
10273
    0,  856,  949,  947,    0,  551,    0,  666,  656,  351,
 
10274
  649,  648,  668,  479,    0,  470,  469,  468,  634,  635,
 
10275
  632,    0,  822,  805,    0,    0,    0,  811,    0,  952,
 
10276
    0,  981,    0,    0,  996,  997,  990,    0,  366,  365,
 
10277
 1033,    0,    0,   66,   59,    0,   68,   29,   22,    0,
 
10278
    0,  319,    0,  221,    0,  109,    0,   82,  816,  121,
 
10279
  122,    0,    0,    0,  819,  193,  194,    0,    0,    0,
 
10280
    0,  166,  175,  167,  169,  860,    0,    0,    0,    0,
 
10281
    0,  882,    0,    0,  463,  464,  458,  461,  457,  451,
 
10282
  455,    0,  516,    0,  485,  495,  449,  528,  526,    0,
 
10283
  918,    0,    0,    0,  535,    0,  939,    0,    0,  679,
 
10284
  671,    0,  478,    0,    0,  803,  802,  799,  812,  951,
 
10285
    0,    0,    0,  965,    0,  963,  974,    0, 1003, 1021,
 
10286
    0,   79,    0,    0,   73,   74,   77,   78,    0,  336,
 
10287
  325,  324,    0,  685,  217,  104,    0,  801,  820,  179,
 
10288
    0,  191,    0,    0,    0,  858,  941,    0,    0,    0,
 
10289
    0,  864,    0,  885,  836,  500,  497,  845,    0,  851,
 
10290
    0,    0,  843,    0,  847,    0,  538,  537,  938,  934,
 
10291
    0,  669,    0,    0,  953,  978,    0,  964,    0,    0,
 
10292
  992,    0,   80,   71,    0,    0,    0,  320,    0,    0,
 
10293
    0,    0,    0,  180,    0,  170,  168,  931,  874,  868,
 
10294
  866,    0,    0,  839,  844,    0,  848,  923,    0,    0,
 
10295
  672,    0,  814,    0,  982,  999, 1000,  993,   58,    0,
 
10296
   75,   76,    0,    0,    0,    0,    0,    0,    0,  821,
 
10297
  177,    0,  190,    0,    0,  886,  850,  849,  736,  921,
 
10298
  935,  823,    0,    0,    0,   81,    0,    0,  337,    0,
 
10299
    0,  335,  321,    0,  329,  386,    0,  384,    0,  686,
 
10300
    0,  715,  218,  105,  181,  932,  870,  867,    0,    0,
 
10301
  879,    0,  979,    0,  994,    0,    0,    0,  317,    0,
 
10302
    0,  712,    0,    0,    0,  716,    0,    0,    0,    0,
 
10303
    0,  983,   27,   26,   23,  338,  334,    0,    0,  330,
 
10304
  385,  718,    0,    0,    0,  106,  869,  737,    0,    0,
 
10305
    0,    0,   32,  322,  723,    0,  724,  721,    0,  719,
 
10306
  102,    0,   99,    0,    0,   88,   90,   91,   92,   93,
 
10307
   94,   95,   96,   97,   98,  100,  101,  149,    0,    0,
 
10308
  234,  226,  227,  228,  229,  230,  231,  232,  233,    0,
 
10309
    0,  224,    0,    0,  980,    0,  339,  333,    0,    0,
 
10310
    0,  687,   89,    0,  733,  735,  277,  272,  276,    0,
 
10311
  219,  225,    0,  986,  984,  722,  720,    0,    0,    0,
 
10312
    0,    0,    0,    0,  286,    0,    0,  235,    0,    0,
 
10313
  243,    0,  161,  150,  160,    0,    0,    0,  107,    0,
 
10314
    0,  271,    0,    0,  270,    0,  154,    0,    0,  357,
 
10315
  318,    0,  355,    0,    0,  196,    0,    0,    0,    0,
 
10316
    0,  688,    0,  220,    0,  112,  110,  293,    0,  354,
 
10317
    0,    0,    0,    0,  125,    0,    0,    0,    0,    0,
 
10318
    0,  159,  151,    0,    0,  200,    0,  358,    0,  238,
 
10319
  237,  236,    0,  734,  108,    0,  290,    0,  268,  127,
 
10320
    0,  266,    0,    0,    0,  129,    0,  359,    0,    0,
 
10321
  197,    0,    0,    0,  356,  241,  120,  118,    0,    0,
 
10322
  295,    0,    0,    0,    0,    0,  155,    0,  274,    0,
 
10323
    0,    0,    0,  133,    0,    0,    0,    0,  360,  361,
 
10324
    0,    0,    0,    0,    0,  115,  310,    0,  291,    0,
 
10325
    0,  304,    0,    0,    0,  299,    0,  145,    0,    0,
 
10326
    0,    0,  140,    0,    0,  287,    0,  130,    0,  124,
 
10327
  134,  152,  158,  208,    0,  198,    0,    0,  201,    0,
 
10328
  119,    0,  111,  116,    0,    0,    0,  306,    0,  307,
 
10329
  296,    0,    0,  289,  300,  269,    0,    0,  126,  141,
 
10330
  267,    0,  285,    0,  275,  279,  136,    0,    0,    0,
 
10331
  205,  207,    0,  242,  117,  311,  313,  292,    0,    0,
 
10332
  305,  302,  144,  142,  156,  284,    0,    0,    0,  153,
 
10333
  209,  211,  199,    0,    0,    0,  304,    0,  280,  282,
 
10334
  137,    0,    0,  202,  315,  316,  312,  314,  303,  157,
 
10335
    0,    0,  215,  214,  213,  210,  212,    0,    0,    0,
 
10336
  203,  281,  283,
 
10337
  };
 
10338
  protected static readonly short [] yyDgoto  = {             7,
 
10339
    8,   49,    9,   50,   10,   11,   51,  232,  739,  701,
 
10340
   12,   13,   52,   22,   23,  326,  235,  724,  900, 1099,
 
10341
 1218, 1265, 1575,  897,  236,  237,  238,  239,  240,  241,
 
10342
  242,  243,  717,  462,  718,  719, 1003,  720,  721, 1007,
 
10343
  898, 1094, 1095, 1096,  267,  618, 1190,  110,  909, 1294,
 
10344
 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
 
10345
 1305, 1306, 1307,  481,  728, 1383, 1017, 1197, 1161, 1230,
 
10346
 1258, 1323, 1395, 1226, 1449, 1426, 1474, 1475, 1476, 1019,
 
10347
 1472, 1020,  788,  901, 1437, 1410, 1462,  534, 1455, 1431,
 
10348
 1491,  983, 1460, 1463, 1464, 1559, 1492, 1493, 1489, 1308,
 
10349
 1364, 1334, 1384,  741, 1439, 1538, 1407, 1495, 1568,  482,
 
10350
  268,  742,  743,  744,  745,  746,  704,  591, 1202,  705,
 
10351
  706,  915, 1386, 1415, 1506, 1467, 1540, 1387, 1442, 1543,
 
10352
 1588, 1507, 1508, 1586, 1572, 1573, 1015, 1160, 1257, 1320,
 
10353
 1368, 1321, 1322, 1358, 1422, 1390, 1359,  329,  223, 1471,
 
10354
 1361, 1456, 1453, 1309, 1338, 1379, 1535, 1497, 1339, 1536,
 
10355
  619, 1581, 1582, 1378, 1452, 1428, 1484, 1479, 1450, 1516,
 
10356
 1521, 1482, 1485, 1486, 1567, 1522, 1480, 1481, 1577, 1565,
 
10357
 1566, 1012, 1103, 1223, 1195, 1250, 1224, 1225, 1268, 1157,
 
10358
 1247, 1281,  554,  193,  112,  366,  195,  584,  457,  224,
 
10359
 1402,  702,  703,  885,  902,  330,  422,  553,  305, 1227,
 
10360
 1228,   45,  114,  306,  116,  117,  118,  119,  120,  121,
 
10361
  122,  123,  124,  125,  126,  127,  128,  129,  130,  131,
 
10362
  132,  133,  134,  135,  136,  253,  860,  784, 1056, 1046,
 
10363
  772,  939,  773,  774, 1047,  137,  198,  779,  621,  622,
 
10364
  623,  854,  491,  780,  492,  298, 1054,  782,  423,  300,
 
10365
  517,  518,  519,  520,  523,  790,  314,  807,  808,  955,
 
10366
  264,  497,  822,  265,  496,  138,  139,  140,  141,  142,
 
10367
  143,  144,  145,  146,  147,  148,  149,  150,  151,  152,
 
10368
  594,  595,  596,  827,  828,  153,  581,  570,  824,  367,
 
10369
 1072,  568, 1141,  154,  511, 1013, 1159, 1255, 1362,  483,
 
10370
 1231, 1232, 1289, 1290,  886,  573,  344,  832, 1366, 1210,
 
10371
 1242,  574,  575,  269,  270,  271,  157,  158,  159,  272,
 
10372
  273,  274,  275,  276,  277,  278,  279,  280,  281,  282,
 
10373
  283,  171,  284,  601,  172,  173,  322,  867,  677,  986,
 
10374
 1078,  912,  735, 1023,  984,  987, 1119,  988, 1024, 1025,
 
10375
  285,  174,  175,  176, 1131, 1060, 1132, 1133, 1134, 1135,
 
10376
  177,  178,  179,  180,  752,  504,  753, 1122, 1041, 1123,
 
10377
 1238, 1205, 1239,  754, 1040,  755, 1241, 1172,  181,  182,
 
10378
  183,  184,  185,  186,  307,  544,  545, 1062, 1179,  318,
 
10379
 1039,  922, 1204, 1069,  961, 1180,  187,  435,  188,  436,
 
10380
  989, 1081,  437,  438,  693,  684,  685, 1086,  993,  439,
 
10381
  440,  441,  442,  443,  994,  679,  991, 1184, 1261, 1325,
 
10382
 1083, 1214, 1280,  877,  687,  878, 1150, 1088, 1151, 1215,
 
10383
  998,   17,   19,   46,   47,  227,  707,  893,  458,  708,
 
10384
  709,
 
10385
  };
 
10386
  protected static readonly short [] yySindex = {          -69,
 
10387
    0, -197,   55,  -20,   16, 1599,    0,  135,    0,    0,
 
10388
   16,  -20,    0,    0,  129,    0, 6984,   16,    0, -180,
 
10389
 -262,    0,    0,    0,    0,    0,    0,    0,  101,    0,
 
10390
  296,    0,    0,    0,  999,    0,    0,    0,    0,    0,
 
10391
    0,    0,    0,  572,    0,    0,  662,    0,    0,  135,
 
10392
   48,   16,    0,  230,    0,  242,  251, -174,16437, -162,
 
10393
  278,  313, 7141,    0,  278,  278,  278, -171,  278,  278,
 
10394
  -42,    0, 8985,  278,  278,    0, 9142,    0,  374,    0,
 
10395
 -156,    0,  278,  365,  278,    0,16981,16981,  412,  278,
 
10396
  278,   17,10058,    0,15540,    0,10189,10320,10451,10582,
 
10397
10713,10844,10975,11106,    0,  336,    0, 7943,    0,  174,
 
10398
    0,  218, -244,  939, -247,    0,    0,    0,    0,    0,
 
10399
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10400
    0,    0,    0,    0,    0,    0,    0,    0, 1167,  861,
 
10401
  208,  705,  664,  897,  420,  428,  442,  437,  451,  492,
 
10402
    0,    0,    0,    0,    0,    0, 3497,    0,    0,    0,
 
10403
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10404
    0,  218,  557,  219,    0,    0,    0,    0,    0,    0,
 
10405
    0,    0,    0,    0,    0,    0,  226,  362,   48,    0,
 
10406
  540,  706,    0,  535,    0,    0,    0,    0, 7943, 7943,
 
10407
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10408
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10409
    0,    0,  604,  568,    0,  573,    0,   -5,    0,    0,
 
10410
    0,   48,17517,  859,    0,    0,    0,    0,    0,    0,
 
10411
    0,    0,    0,    0,  742,  218,15676,    0,    0,    0,
 
10412
    0,    0,15540, -163, -153,  736, -282,  939,  218,    0,
 
10413
    0, 7943,    0,    0,    0,    0,    0,    0,    0,    0,
 
10414
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10415
    0,    0,    0, -191, -252,16437,    0, 7943,15540,  672,
 
10416
    0,    0,  714,15540,15540,13857,  741, -165,  762, 8100,
 
10417
    0,10058,  336,  886,  788,    0,  807, 7943,15540,    0,
 
10418
    0,  817,  656,  278,    0,    0,15540,  374,15132,    0,
 
10419
    0,  365,15540,  365,   82,  467,  877,  218,    0,  557,
 
10420
 -247,  906,  218,15540,15540,15540,  313,    0,  881,    0,
 
10421
    0,11237,    0, 7298, -277,    0,    0,    0,    0,    0,
 
10422
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10423
    0,    0,    0, 3903,    0,    0,16834,   82,  860,  863,
 
10424
15540,    0,  821,    0,  139,    0,    0,  146,    0,    0,
 
10425
  834, 9299, 7612,    0,    0,15540,15540,15540,15540,15540,
 
10426
15540,15540,15540,15540,15540,15540,11368,11499,11630, 4062,
 
10427
 4380,11761,11892,12023,12154,12285,12416,12547,12678,12809,
 
10428
12940,13071,13202,13333,13464,13595,16220,15540,    0,    0,
 
10429
    0,    0,  557,    0,    0,    0,    0,16981,16981,    0,
 
10430
    0,  218,    0,    0,    0,    0,  384,  889,    0,    0,
 
10431
    0,    0,    0,    0,    0,   48,  859,  837,    0,  855,
 
10432
    0,  821,  604,  604,    0,  -53,    0,  590,  604,  891,
 
10433
    0, -195,17517,    0,    0,    0,    0, -150,    0,    0,
 
10434
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10435
  261,17547,    0,    0,    0,    0,  821,    0,    0,  901,
 
10436
  751,    0,  907,    0,  911,  222,  374,    0,  278,    0,
 
10437
    0,    0,  218,15132, -179,    0,  940,    0,    0,    0,
 
10438
   54,  103,    0, -282,  944,    0,  919,    0,  947,    0,
 
10439
    0,    0,  760,    0, 8355,  766, 9456,  762,14996,    0,
 
10440
 7769,    0,  365,    0,    0,    0,    0,  143,  147,    0,
 
10441
    0,  293,  374,  649,    0,  828,  986,    0,  148,  218,
 
10442
    0,  151,    0,    0,    0,15540, 1053,    0,    0,    0,
 
10443
15540, 1072,  994,    0,  998, 1018,    0,16834,    0,   75,
 
10444
    0, -172,   43, 7298,    0,    0,    0,    0,    0,    0,
 
10445
   75,    0,    0, -272,    0,    0,    0,  365,    0,   82,
 
10446
  218, 8531,    0, 1029,    0, 1033,13726,    0, 1150, 1031,
 
10447
 7298,    0,  980,    0,  821,  984,    0,  821,  821,    0,
 
10448
  137,    0,15540,15540, 1040, 1157,    0,    0,  108,  -78,
 
10449
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10450
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10451
    0,    0,    0,    0,    0,  861,    0,  861,    0,  208,
 
10452
    0,  208,    0,  705,    0,  705,    0,  705,    0,  705,
 
10453
    0,  664,    0,  664,    0,  897,    0,  420,    0,  428,
 
10454
    0,  442,    0,  437,    0,   68, -141,    0, 9456, 1122,
 
10455
  218, 1123,  218, 9456, 9456, 1038,15540,    0,    0,  889,
 
10456
    0,  218,    0,  780,  821,    0,    0,    0,    0,  630,
 
10457
   48,  306,    0, 8531,  590,    0, 1048, 1047,    0,    0,
 
10458
    0,    0,    0,    0,  -80, 1049,    0, 1050, 1054,    0,
 
10459
    0,    0,    0, 1051, 8688, 1005,    0,  466,    0,    0,
 
10460
  737,    0,15676,    0, 1046,    0,    0,    0,  686,  107,
 
10461
 1057,    0, 1056, 1058, 1061,    0,    0,15540,    0,  218,
 
10462
    0,    0,  309,    0, 1062,    0,  469,    0,    0, 7141,
 
10463
    0, 7141, 8514,    0,13857,    0,    0, 9927, 8671,  329,
 
10464
    0,  175,   91,    0, 1002, 1014,    0,    0,  800,    0,
 
10465
    0,    0, 1069, 1068,    0,    0,    0,    0,    0, 1070,
 
10466
    0,    0,    0, 1079,    0, 4539,    0,  374,    0,    0,
 
10467
  365,  560, 1028,    0,  281,    0, 1078, 1080,    0,    0,
 
10468
 7141,    0,    0, 7141,    0,15540,    0,15540, 7943,    0,
 
10469
    0,  374, 1082,   75,    0,    0,    0,15540,    0,    0,
 
10470
    0,    0,    0,    0, 7943,    0,    0,  218,16834, 1108,
 
10471
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10472
    0,    0,    0,    0,    0,14860,    0,    0,    0,    0,
 
10473
    0, 7926,    0, 8828,    0, 8083, 1084,    0,    0, 1158,
 
10474
    0, 1162,    0,    0,    0,  946,    0, 1085,    0,    0,
 
10475
    0,    0,    0,    0, 1042,    0,  -53,    0,    0,    0,
 
10476
    0,  590,  590,    0,    0,  837, 1092, 1093, 1045, 1098,
 
10477
 1005,    0, 1094,    0, 1212, 1214,    0,    0,15540,    0,
 
10478
15268, 1097,  686, 8531, 7943,    0,    0,  152, 1217, 1218,
 
10479
  154, 1095,    0,    0,    0,15540,    0,15540, 1195,    0,
 
10480
    0,    0,15404,    0,  635,15404,    0,    0,    0,    0,
 
10481
 8219,    0, 1221,  557, 9456, 1111, 8514, 1112,    0,    0,
 
10482
  218,    0,  308,    0,    0,  821, 1028,    0,  218,    0,
 
10483
 -121,    0,    0,    0, 1107,    0, 1139,    0,    0,    0,
 
10484
    0,    0,    0,    0,  682,    0,    0,    0,    0,    0,
 
10485
    0, 8100,    0,    0,  218, -246, 1084,    0, 9456,    0,
 
10486
 9456,    0,   90, 9456,    0,    0,    0,  728,    0,    0,
 
10487
    0, 1113,  837,    0,    0, 9613,    0,    0,    0, 1114,
 
10488
 4704,    0, 1005,    0, 1005,    0, 1005,    0,    0,    0,
 
10489
    0,  218, 1110, 1097,    0,    0,    0, -167, -145, 1115,
 
10490
 1116,    0,    0,    0,    0,    0, 1117, 8514, 1084, -141,
 
10491
15540,    0, 1125, 7141,    0,    0,    0,    0,    0,    0,
 
10492
    0, 1118,    0,  762,    0,    0,    0,    0,    0, -189,
 
10493
    0, 1126,  821, 1028,    0, 1028,    0, 1084, 1128,    0,
 
10494
    0,   75,    0, 1064, 1103,    0,    0,    0,    0,    0,
 
10495
 9456, 1147, 9456,    0, 9456,    0,    0,15540,    0,    0,
 
10496
 1054,    0,  406,  691,    0,    0,    0,    0,  -20,    0,
 
10497
    0,    0, 1135,    0,    0,    0, 1132,    0,    0,    0,
 
10498
  519,    0, 1133, 1239, 1247,    0,    0, 1084, 1134, 1084,
 
10499
 1143,    0, 1140,    0,    0,    0,    0,    0,15540,    0,
 
10500
 1149, -217,    0, 6825,    0, 1263,    0,    0,    0,    0,
 
10501
   75,    0,15540, 8083,    0,    0, 1174,    0,  975, 1148,
 
10502
    0, 1155,    0,    0, 9613,   16,  222,    0, 1151, 1151,
 
10503
 1151,15268, 1159,    0,15540,    0,    0,    0,    0,    0,
 
10504
    0, 7141,   77,    0,    0, 7298,    0,    0, 1160, 7141,
 
10505
    0, 1161,    0, 9456,    0,    0,    0,    0,    0,15540,
 
10506
    0,    0,   48, 1166,   48, 7943, 1191, 1191, 1191,    0,
 
10507
    0,15540,    0, 7141, 9770,    0,    0,    0,    0,    0,
 
10508
    0,    0, 1185, 9456,15540,    0,   48, 1172,    0, 1127,
 
10509
  977,    0,    0, 1169,    0,    0,  112,    0, 1131,    0,
 
10510
 1191,    0,    0,    0,    0,    0,    0,    0, 1178, 1062,
 
10511
    0, 7298,    0, 1193,    0, -160, 1191, 1288,    0, 1184,
 
10512
   48,    0, 7943,   88, 1186,    0, 1187, 1190, 7141, 1192,
 
10513
 9456,    0,    0,    0,    0,    0,    0, 1177, 1183,    0,
 
10514
    0,    0,16516,  162,   48,    0,    0,    0, 1210, 9456,
 
10515
 1203,15540,    0,    0,    0, 1209,    0,    0, 1207,    0,
 
10516
    0,17547,    0, 1215,  162,    0,    0,    0,    0,    0,
 
10517
    0,    0,    0,    0,    0,    0,    0,    0,  588,17547,
 
10518
    0,    0,    0,    0,    0,    0,    0,    0,    0, 1216,
 
10519
   48,    0,  162,  218,    0, 1210,    0,    0, 1189,16516,
 
10520
16682,    0,    0, -240,    0,    0,    0,    0,    0,16714,
 
10521
    0,    0, 1219,    0,    0,    0,    0, 7943, 7943,  368,
 
10522
 8100,  449,  365, 1245,    0,   82,14714,    0, 1280,    0,
 
10523
    0, 1183,    0,    0,    0, 7298,14752, 1183,    0, -139,
 
10524
 -138,    0, 7943, -128,    0, 7943,    0, 1168, 1220,    0,
 
10525
    0,   82,    0,   49,14790,    0, 1223, 1170,   72,  574,
 
10526
  999,    0, 1222,    0, 1183,    0,    0,    0,   82,    0,
 
10527
 1226, 1171, 1224, 1225,    0, 1227, 1176, 1234,  222, 1242,
 
10528
 1233,    0,    0, 1254, 1229,    0,  821,    0,  934,    0,
 
10529
    0,    0, 1256,    0,    0,  -77,    0, 1243,    0,    0,
 
10530
 1228,    0, 1257, 1259, 1260,    0, 1255,    0,  222,  222,
 
10531
    0,  222, 1261, 1262,    0,    0,    0,    0, 1264,  166,
 
10532
    0, 1266,  222, 1377, 1268,  222,    0, -240,    0, 8514,
 
10533
 1230, 1267, 1255,    0, 1265, 1272,  199, 1275,    0,    0,
 
10534
  222,15268, 1231, 1271, 1264,    0,    0,17547,    0,   48,
 
10535
   48,    0, 1236, 1276, 1266,    0, 1279,    0,15540, 1237,
 
10536
 1281, 1268,    0, 1284,  222,    0,   89,    0, 1277,    0,
 
10537
    0,    0,    0,    0,17547,    0,  199,  199,    0, 1287,
 
10538
    0,  -77,    0,    0,  221, 1292,17547,    0,17547,    0,
 
10539
    0, 8514, 1282,    0,    0,    0, 1291, 1228,    0,    0,
 
10540
    0, 1290,    0,  338,    0,    0,    0, 1191,  988, 1296,
 
10541
    0,    0, 1269,    0,    0,    0,    0,    0, 1353, 1406,
 
10542
    0,    0,    0,    0,    0,    0, 1301, 1302, 8514,    0,
 
10543
    0,    0,    0,  199,  611,  611,    0, 1191,    0,    0,
 
10544
    0,   58,   58,    0,    0,    0,    0,    0,    0,    0,
 
10545
14996,14996,    0,    0,    0,    0,    0, 1306, 1303, 1305,
 
10546
    0,    0,    0,
 
10547
  };
 
10548
  protected static readonly short [] yyRindex = {         3000,
 
10549
    0,    0, 7455, 3000,    0,    0,    0, 1682,    0,    0,
 
10550
 3160, 1369,    0,    0,    0,    0,    0, 3160,    0,    0,
 
10551
   52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10552
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10553
    0,    0,    0, 1683,    0,    0, 1683,    0,    0, 1682,
 
10554
 3203, 3043,    0,    0,    0,    0,    0,    0,    0,    0,
 
10555
    0, 1317,    0,    0,    0,    0,    0,    0,    0,    0,
 
10556
 8845,    0, 1309,    0,    0,    0, 1309,    0,    0,    0,
 
10557
    0,    0,    0,  276,    0,    0,    0,    0,    0,    0,
 
10558
    0,    0,  202,    0,    0,    0,    0,    0,    0,    0,
 
10559
    0,    0,    0,    0,    0, 4697,    0,    0,    0,    0,
 
10560
    0,    0,  340, 4790, 4132,    0,    0,    0,    0,    0,
 
10561
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10562
    0,    0,    0,    0,    0,    0,    0,    0, 4946, 5014,
 
10563
 5254, 5458, 5798, 6002, 6138, 6274, 6410, 6546, 4877,  523,
 
10564
    0,    0,    0,    0,    0,    0,   52,    0,    0,    0,
 
10565
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10566
    0,    0,  327,    0,    0,    0,    0,    0,    0,    0,
 
10567
    0,    0,    0,    0,    0,    0,    0,    0, 3246,    0,
 
10568
  829,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10569
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10570
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10571
    0,    0, 1683,   57,    0,    0,    0,    0,    0,    0,
 
10572
    0, 3289,  311, 3332,    0,    0,    0,    0,    0,    0,
 
10573
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10574
    0,    0,    0,    0,    0,    0, 3743,    0,    0,    0,
 
10575
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10576
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10577
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10578
    0,    0,    0,    0,    0, 1319,    0,    0,    0,    0,
 
10579
    0,    0, 3743, 1312,    0,    0,    0,    0,    0,    0,
 
10580
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10581
    0, 2373,    0, 2753,  256, 2503,    0,    0,    0, 1438,
 
10582
 2503,    0,    0,    0,    0,    0, 1317,    0,    0,    0,
 
10583
    0,    0,    0,  225,    0,    0,    0,    0,    0,    0,
 
10584
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10585
    0,    0,    0,    0,    0,    0, 1321, 2607,    0,    0,
 
10586
 1309,    0, 3743,    0,    0,    0,    0,    0,    0,    0,
 
10587
    0,    0,  119,    0,    0,    0,    0,    0,    0,    0,
 
10588
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10589
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10590
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10591
    0,    0, 1766,    0,    0,    0,    0,    0,    0,    0,
 
10592
    0,    0,    0,    0,    0,    0,    0, 2715,    0,    0,
 
10593
    0,    0,    0,    0,    0, 3375, 3418,    0,    0,    0,
 
10594
    0, 2227, 1683, 1683,    0,   36,    0, 7629, 1683, 1689,
 
10595
    0,    0,  217,    0,    0,    0,    0,    0,    0,    0,
 
10596
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10597
  537,16369,    0,    0,    0,    0, 3743,    0,    0,    0,
 
10598
    0,    0,    0,    0,    0,16758,    0,    0,    0,    0,
 
10599
    0,    0,    0,  805,    0,    0,    0,    0,    0,    0,
 
10600
    0,    0,    0,  869,  677,  795,    0,    0, 1323,    0,
 
10601
    0,    0,    0,    0,  253,    0,    0, 4220, 1325,    0,
 
10602
    0,    0,  594,    0,    0,    0,    0,    0,    0,    0,
 
10603
    0,    0,    0, 1934,    0,    0,    0,    0,    0,    0,
 
10604
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10605
    0,    0,    0,    0,    0,    0,    0, 1321,    0,15812,
 
10606
    0, 6665,    0,  254,    0,    0,    0,    0,    0,    0,
 
10607
15812,    0,    0,    0,    0,    0,    0,   28,    0,  433,
 
10608
    0,    0,    0, 1326,    0,    0,    0,    0, 1312,    0,
 
10609
    0,    0, 3584,    0, 3743, 3584,    0, 3743, 4379,    0,
 
10610
    0,    0,    0,    0, -202,    0,    0,    0,    0,  127,
 
10611
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10612
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10613
    0,    0,    0,    0,    0, 5118,    0, 5186,    0, 5322,
 
10614
    0, 5390,    0, 5526,    0, 5594,    0, 5662,    0, 5730,
 
10615
    0, 5866,    0, 5934,    0, 6070,    0, 6206,    0, 6342,
 
10616
    0, 6478,    0, 6602,    0,    0,  668,    0,    0,    0,
 
10617
    0,    0,    0,    0,    0,    0,    0,    0,    0, 2715,
 
10618
    0,    0,    0,    0, 2227,    0,    0,    0,    0, 1283,
 
10619
14019,    0,    0,    0, 9002,    0,    0,  738,    0,    0,
 
10620
    0,    0,    0,    0,  731,  699,    0,    0, 1333,    0,
 
10621
    0,    0,    0, 1639,    0,    0,    0,    0,    0,    0,
 
10622
15948,    0,    0,    0,  761,    0,    0,    0, 9159,16905,
 
10623
    0,    0,  836,  839,  842,    0,    0,    0,    0,    0,
 
10624
    0,    0,    0,    0,  814,    0,    0,    0,    0,    0,
 
10625
    0,    0,    0,    0, 1327,    0,    0,    0,    0, 3650,
 
10626
    0,    0,  263,    0,   92, 3902,    0,    0,    0,    0,
 
10627
    0,    0,    0, 1334,    0,    0,    0,    0,    0, 1340,
 
10628
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10629
 -273,  832,    0,    0,    0,    0,    0, 1337,    0,    0,
 
10630
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10631
    0,    0,    0,15812,    0,    0,    0,    0,    0,    0,
 
10632
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10633
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10634
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10635
    0,    0,    0,    0,    0,    0,  480,    0,    0,    0,
 
10636
    0,    0,    0,    0,    0, -184,    0,  432,    0,    0,
 
10637
    0,    0,    0,    0,    0,    0,   36,    0,    0,    0,
 
10638
    0, 9159, 7786,    0,    0, 1342,    0,  822,    0,    0,
 
10639
    0,    0, 1343,    0, 1295, 1297,    0,    0,    0,    0,
 
10640
    0, 1338, 9316,    0,    0,    0,    0,16937,    0,    0,
 
10641
    0,  845,    0,    0,    0,    0,    0,    0, 2101,    0,
 
10642
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10643
    0,    0,    0, 4061,    0, 4538, 1348,    0,    0,    0,
 
10644
 1057,    0,    0,    0,    0,  565,    0,    0,    0,    0,
 
10645
  845,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10646
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10647
    0,    0,    0,    0,    0,    0,  647,    0,    0,    0,
 
10648
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10649
    0,    0,    0,    0,    0,  894,    0,    0,    0,    0,
 
10650
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10651
    0,    0,    0, 1341,    0,    0,    0,    0,    0,  902,
 
10652
  918,    0,    0,    0,    0,    0,    0,    0,  986,  748,
 
10653
 1344,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10654
    0,    0,    0, 4220,    0,    0,    0,    0,    0, 1350,
 
10655
    0,    0,  565,    0,    0,  983,    0,  986,    0,    0,
 
10656
    0,15812,    0,  715,  720,    0,    0,    0,    0,    0,
 
10657
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10658
 1333,    0,13858,    0,    0,    0,    0,    0,17029,    0,
 
10659
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10660
  777,    0,  810,    0,    0,    0,    0, 1347,    0,  827,
 
10661
 1345,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10662
    0, 1355,    0,    0,    0, 1357,    0,    0,    0,    0,
 
10663
15812,    0,    0,    0,    0,    0,    0,    0, -164,  479,
 
10664
    0,    0,    0,    0,    0,17105,16758,    0,  354,  354,
 
10665
  354,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10666
    0,    0,    0,    0,    0,  -70,    0,    0,    0,    0,
 
10667
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10668
    0,    0,17210,    0, -245,    0, 1358, 1358, 1358,    0,
 
10669
    0,    0,    0,    0, 1354,    0,    0,    0,    0,    0,
 
10670
    0,    0,    0,    0,    0,    0,17253,    0,    0,    0,
 
10671
14322,    0,    0, 1359,    0,    0,  499,    0,    0,    0,
 
10672
  612,    0,    0,    0,    0,    0,    0,    0,    0, 1356,
 
10673
    0, 1364,    0,    0,    0, 3086, 1363, -243,    0,    0,
 
10674
  279,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10675
    0,    0,    0,    0,    0,    0,    0,    0, 2911,    0,
 
10676
    0,    0,    0,14124,14408,    0,    0,    0,  688,    0,
 
10677
    0,    0,    0,    0,    0,    0,    0,    0,  427,    0,
 
10678
    0,16540,    0,    0,14223,    0,    0,    0,    0,    0,
 
10679
    0,    0,    0,    0,    0,    0,    0,    0,    0,16608,
 
10680
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10681
14502,    0,14124,    0,    0,  688,    0,    0,    0,    0,
 
10682
  537,    0,    0,    0,    0,    0,    0,    0,    0,  537,
 
10683
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10684
    0,    0,14614,  587,    0,14544,    0,    0,    0,14676,
 
10685
    0, 2911,    0,    0,    0, 1364,    0, 2911,    0,    0,
 
10686
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10687
    0,  285,    0, 1366,    0,    0,    0,    0,    0,    0,
 
10688
    0,    0,    0,    0, 2911,    0,    0,    0,  849,    0,
 
10689
  644,    0,    0,    0,    0,    0,    0,    0,16758,  917,
 
10690
    0,    0,    0,    0,    0,    0, 1361,    0,  394,    0,
 
10691
    0,    0,    0,    0,    0,    0,    0,  937,    0,    0,
 
10692
    0,    0,    0,    0,    0,    0, 1365,    0,16758,16758,
 
10693
    0,16790,    0,    0,    0,    0,    0,    0, 1368,17477,
 
10694
    0, 1370,16758,16084, 1375,16758,    0,    0,    0,    0,
 
10695
    0,    0, 1378,    0,    0,    0,17447,    0,    0,    0,
 
10696
16758,    0,    0,    0, 1380,    0,    0,  380,    0,17371,
 
10697
17409,    0,    0,    0, 1381,    0,    0,    0,    0,    0,
 
10698
    0, 1382,    0,    0,16758,    0,  591,    0,  941,    0,
 
10699
    0,    0,    0,    0,  996,    0,17295,17333,    0,    0,
 
10700
    0,    0,    0,    0,    0,    0, 1427,    0, 1490,    0,
 
10701
    0,    0,  959,    0,    0,    0,    0,    0,    0,    0,
 
10702
    0,    0,    0,    0,    0,    0,    0,  614,    0,    0,
 
10703
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10704
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10705
    0,    0,    0,17447,16256,17147,    0,  614,    0,    0,
 
10706
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10707
 1325, 1325,    0,    0,    0,    0,    0,    0,    0,    0,
 
10708
    0,    0,    0,
 
10709
  };
 
10710
  protected static readonly short [] yyGindex = {            0,
 
10711
    0, 1710,    0,    0,    0,   -2,  -15, -177,  -41,  -38,
 
10712
    0, 1749, 1757,  756,    0,    5,    0,    0,    0,    0,
 
10713
    0,    0, -974, -751, -211, -326,    0,    0,    0,    0,
 
10714
    0, -216,    0,    0,    0,  764,    0,  868,    0,    0,
 
10715
    0,    0,  610,  613,  -17, -232,    0,  -46,    0,  446,
 
10716
    0,  475, -804, -506, -495, -477, -440, -434, -432, -417,
 
10717
    0,-1088,    0,-1202,    0,   13,    0,  203,    0,-1149,
 
10718
    0,    0,    0,  -79,  260,    0,    0,    0,  298,-1119,
 
10719
    0, -275, -294, -330,    0,    0,    0, -942,  247,    0,
 
10720
    0, -520,    0,    0,  315,    0,    0,  287,    0,    0,
 
10721
  322,    0, -585, -887,    0,    0,    0,    0,    0,-1224,
 
10722
  -10,    0,    0,  865,  878,  879, 1059, -530,    0,    0,
 
10723
 -293,  890,  410,    0, -875,    0,    0,    0,    0,    0,
 
10724
    0,    0,    0,  231,    0,    0,    0,    0,    0,    0,
 
10725
    0,    0,  478,    0,    0,    0,    0, -309,  416,    0,
 
10726
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10727
 -523,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10728
  244,    0,    0,  330,    0,    0,  337,  344,  259,    0,
 
10729
    0,    0,    0,    0,    0,    0,    0,  575,    0,    0,
 
10730
    0,    0,  -45,    0,  161, -161,    0,    0,  411,    0,
 
10731
 -741,    0,  942,    0, 1285, -296, -266,  -60,  685,    0,
 
10732
  589,    0,  -33,   95,    0,    0,    0,    0,    0,    0,
 
10733
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10734
    0,    0,    0, -268,    0, 1253,    0, -348,    0, -271,
 
10735
    0,    0,    0,  899,  905, -300, -124, 1074,    0,  982,
 
10736
    0, 1232, 1463, -604, 1119,    0,    0,  793, 1777,    0,
 
10737
    0,    0,    0, 1088,    0,    0,    0,    0,    0, -452,
 
10738
 1512,    0,    0,    0,    0,    0, 1205,  970,  995,  933,
 
10739
  964, 1443, 1437, 1444, 1445, 1446,    0, 1442,    0,    0,
 
10740
    0, 1024, 1300, -543,    0,    0,    0,    0,    0,    0,
 
10741
    0,    0,    0,    0, -286,    0,    0,    0,    0, -465,
 
10742
    0,  639,    0,  541,    0,-1043,    0,    0,    0,    0,
 
10743
    0,  739, -538,  -16, -313,   -1,    0, 1715,    0,   69,
 
10744
    0,   71,   87,   97,  136,  142,  144,  178,  205,  207,
 
10745
  280,    0, -677,    0,  -12,    0,    0,  835,    0,  757,
 
10746
    0,    0,    0,    0,  732, -321,  811, -886,    0,  856,
 
10747
 -481,    0,    0,    0,    0,    0,    0,  752,    0,  749,
 
10748
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10749
    0,    0,    0,    0,    0,  680,    0,    0,    0,    0,
 
10750
    0,    0,    0,    0,  -32,    0, 1346,    0,    0,    0,
 
10751
  925,    0,    0,    0,    0,    0,    0, -168,    0,    0,
 
10752
    0,    0,    0, 1451, 1201,    0,    0,    0,    0, 1456,
 
10753
    0,    0,    0,    0,    0,    0,    0,    0,    0,  569,
 
10754
    0,    0,    0,    0,    0,    0,    0,    0,  683,    0,
 
10755
    0,    0,    0,    0,    0,   -3, 1004,    0,    0,    0,
 
10756
 1009,
 
10757
  };
 
10758
  protected static readonly short [] yyTable = {           109,
 
10759
  155,   18,  189,  535,  532,  783,  111,  328,  333,  233,
 
10760
  789,  446,  234,  507,  489,  156,  729,  485,   43,  445,
 
10761
  464,  293,  751,  321,  192,  258,  530,  516,  369,  449,
 
10762
  577,  528,  419,  563,  620,  833,  552,  834,  948, 1074,
 
10763
  327,  332, 1200,  229,  312,  339,  259,  252, 1233, 1234,
 
10764
 1129, 1011,  377,  678,  385,  304,  362,  593,   14,  311,
 
10765
  712,  838,  845,  558,  498,  373, 1128,  376,  313,  384,
 
10766
  316,  995,   20,  592,  868,  190,  756,  345, 1129,  873,
 
10767
  874,  249,  929,  829,  930,  160,  713,  161, 1110, 1331,
 
10768
  524,  998,  249,  260,  579, 1263,  289, 1266,  369,  315,
 
10769
 1079,  835,  315,  162,  290,  722, 1222, 1340,  363,  374,
 
10770
 1112,  115,  374,  163,  865,  500, 1396, 1398,  714,  453,
 
10771
  454, 1076,  326,  501,  331,  421,   94, 1404,  375, 1077,
 
10772
  331,  364, 1385,  960, 1067, 1363,  962,  332,  320,  109,
 
10773
  155,  320, 1385,  836,  369,  365,  111,  233,  499,  489,
 
10774
  447,  580,  164,  115,  995,  156,  678,  115,  165,  995,
 
10775
  166,  995, 1222,  449,  995,  995,  196,  995,  995,  678,
 
10776
  362,  678,   51,  889,  998,  894,  502,  861, 1447,  998,
 
10777
  194,  998,  495,  291,  998,  998,    1,  998,  998,  995,
 
10778
  463,  291,   94,  447,  167,  291,  250,  846, 1260,  487,
 
10779
  490,  525,  699,  526, 1130,  250,  449,  250,  505,  998,
 
10780
   94,  602,  494,  261,  250, 1264,    6,  250,  363,  455,
 
10781
   15,  168,  715,  169,  775,  160,  678,  161,  538,  488,
 
10782
  485, 1079, 1130,  781,  464,  493,  804,  191,  292,  866,
 
10783
  461,  364,  931,  162,  995,  251,  292,  194,  194,  515,
 
10784
  292,  115,  258,  163,  251,  365,  251,  527,  593, 1038,
 
10785
  577,  551,  258,  251,  998,  555,  251,  723,  194, 1194,
 
10786
  560,  506, 1113,  503,  592, 1515,  510,  512, 1397, 1399,
 
10787
  968,  557,  593,  376,  583,  559,  562,  577,    2, 1405,
 
10788
  696,  539,  164,  337, 1284,  862,  170,  846,  165,  547,
 
10789
  166,  549, 1539, 1448, 1412,  510,  550,  548, 1011,  759,
 
10790
  363,   16,  362, 1583, 1549,  231, 1550,  565,  566,  460,
 
10791
  642,  644, 1393,  863,  296,  730,  297,  576,  605,   51,
 
10792
  825,  608, 1207,  364,  167,  490,  490,    2,  600, 1152,
 
10793
 1055,   51,  578, 1272, 1533, 1084,  940, 1011,  681,  683,
 
10794
   20,  846, 1511,  599,    3,    4,    5,    6,  761,  194,
 
10795
  194,  168,  916,  169,  488,  617, 1125, 1252,  624,  625,
 
10796
  626,  627,  628,  629,  630,  631,  632,  633,  634,  291,
 
10797
  115,  680,  682, 1028, 1080,  686, 1082, 1392, 1560, 1087,
 
10798
  376,   48,  851, 1394,  593,  362, 1418,  376,  791,  376,
 
10799
  676,  376,  793,  810,  233,  199,  813,  447, 1374, 1036,
 
10800
  830,  890,   42,  115,  700,  804,  231, 1291, 1580, 1413,
 
10801
 1425, 1477,  194,  362,   94,  760, 1058,  362,  449,  362,
 
10802
  362,  362,  362, 1584,  292,  338,  170,  362,  115,  370,
 
10803
 1085,   94,  864,  847, 1042,  376,  849,  850,  194,  697,
 
10804
  698, 1208,  694,   51, 1504,  710,  749,  740,  757, 1011,
 
10805
  194,  921, 1273, 1534,  941, 1011,  716,  797,  194,  400,
 
10806
 1312,  831,  363,    6,  762,  231, 1145,  737, 1147,  858,
 
10807
 1148,  426,  490, 1546,  485, 1253,  747,  371,  691, 1419,
 
10808
  465,  750, 1030,  691, 1206,  364,  516,  691,  466,  803,
 
10809
  489,  291, 1211,  812, 1065,  401,  852,  975,  291,  778,
 
10810
  733,  617,  691,  787,  792,  797, 1312, 1117,  794,  811,
 
10811
  231, 1435,  814,  485,  194, 1037, 1236,  194, 1142,  593,
 
10812
  231,  795,  797,  882,  231, 1547,  859,  725,  815,  691,
 
10813
  352,  726,  937,  817,  837,  592,   54,  465,  372,  796,
 
10814
  802, 1465, 1466,  449, 1468,  466,  603,  576,  691,  826,
 
10815
  194,  194,  738,  606,  427, 1487,  604,  231, 1494,  428,
 
10816
  826,  429,  578,  607,  430,  431,  797,  432,  433, 1213,
 
10817
  291, 1277,  691, 1510,  576,  402,  403,  691,  194,  194,
 
10818
  231,  691,  738, 1556,  424,  853,  853, 1181,  115,  578,
 
10819
  200, 1557,  727,  938,  593,  244,  691, 1532,  194, 1244,
 
10820
  245, 1137,  347, 1138,  246, 1389, 1021,  426,  347, 1026,
 
10821
  452,  739,  194, 1372,  347, 1389,  248,  347,  347,  977,
 
10822
  453, 1541, 1542,  691,  870,  292,  872,  833,  792,  688,
 
10823
  775,  347,  691,  291,  792,  880,  328,  425,  250,  362,
 
10824
  942,  352,  691,  738,  434,  352, 1279,  347,  123,   94,
 
10825
  123,  778, 1558,  250,  247,  123,  778,  778,  115,  876,
 
10826
  291,  362, 1373,  347, 1057, 1326,  796, 1053,  362,  887,
 
10827
  924,  452,  739,  263,  925,  535,  490,  989, 1574,  785,
 
10828
   44,  453,  710,  792,  691,  115,   51,  251,  956,  352,
 
10829
  427,  113,  340,  923, 1375,  428,  805,  429,  340,  936,
 
10830
  430,  431,  251,  432,  433,  488,  951, 1118,  515,  363,
 
10831
  710,  888,  427,  751,  927, 1063,  363,  428,  194,  429,
 
10832
  510,  258,  430,  431,  991,  432,  433,  904,  903,  965,
 
10833
   94,  555,  364,  113,  785,  787, 1118,  113,  362,  364,
 
10834
  320,  778,  194, 1376, 1121,  970,  365,  340,  957,  781,
 
10835
  362,  905,  928,  365,  362,  717,  347,  362, 1313,  362,
 
10836
  989,  331,  331, 1098,  362,  989,  197,  989,  631, 1314,
 
10837
  989,  989,  334,  989,  989, 1400, 1153,  952,  906,  347,
 
10838
  444,  971,  331,  717,  696,  347,  363, 1315,  963, 1414,
 
10839
  964,  347,  717,  412,  651,  347,  651,  197,  689,  490,
 
10840
  969,  966,  689,  826, 1313,  490,  413,  991,  347,  364,
 
10841
  577, 1433,  991,  374,  991, 1314,  414,  991,  991, 1089,
 
10842
  991,  991,  689,  365, 1316, 1029,  415,  711,  617,  450,
 
10843
 1317,  113, 1318, 1315,  617,  700,  981,  807,  787,  374,
 
10844
  347,  416,  320, 1173,  115,  807,  115, 1319,  690,  689,
 
10845
  989,  631,  577,  417,  194,  711,  631, 1021,  631,  631,
 
10846
  631,  631,  631,  631,  631,  631,  631,  631,  631,  740,
 
10847
 1316,  418,  690,  331,  331,  194, 1317, 1163, 1318, 1203,
 
10848
  631, 1018,  631,  506,  631,  585,  631,  631,  631, 1164,
 
10849
  716,  882,  586, 1319, 1061,  115, 1064,  991,  115,  690,
 
10850
 1043,  541, 1066, 1010,  587, 1045,  374,  542, 1045,  729,
 
10851
  448,  347, 1098,  883,  542,  297, 1235,  778,  577,  787,
 
10852
  363, 1102,  953,  347,  798,  884,  347,  347, 1075, 1498,
 
10853
   94,  543,  225,  985,  226,  320,  331, 1293, 1311, 1420,
 
10854
  347,  631,  452,  364, 1335, 1336,  194,  278,  278,  490,
 
10855
  374,  374,  374, 1337,  374,  374,  278,  374, 1293,  374,
 
10856
  113,  778,  331,  778,  225, 1107,  778,   94,  714,  194,
 
10857
  713, 1111,  456,  426,  331,  796, 1283,  714, 1097,  713,
 
10858
  459,  585,  331,  913, 1311,  194, 1293,  486,  586,  194,
 
10859
 1357, 1551, 1048,  113,  485,  464, 1328,  716,  945, 1367,
 
10860
  587,  374,  337,  374,  808, 1217,  374,  288,  808,  288,
 
10861
  787, 1360,  808,  510,  288, 1104,  985, 1105,  113, 1106,
 
10862
 1360,  985,  225,  985,  228,  804,  985,  985, 1571,  985,
 
10863
  985,  804,  907,  804,  512,  406,  407,  508,  331,  908,
 
10864
  512,  331,  577, 1073,  535,  862,  194, 1589, 1590,  408,
 
10865
  409,  826, 1154,  778, 1155,  778,  427,  778,   69,   69,
 
10866
 1149,  428,   69,  429,  194,  194,  430,  431,  450,  432,
 
10867
  433,  451,  824,  800,  331,  331,  824,  813,  824,  509,
 
10868
  824,  813,   24,  813,   25,  813, 1156,   26,  404,  405,
 
10869
  347,  347,   27,  347,  347,   62,   28, 1031,  490, 1031,
 
10870
  521,  506,  331,  331,  522,   30,  985,  576,  740,  804,
 
10871
  732,  804,   32,  804,  733, 1182,  787,   33,  531,  766,
 
10872
  826,   34,  578,  767,  815,  776,  815, 1097,  115,  522,
 
10873
 1193,  536,  194,   36,  506,   37,  176,  506,  176,   38,
 
10874
  176,  233,  450, 1220,  447,  881, 1221,   39,   40,  576,
 
10875
  375,   41,  513,  194,  801,  425,  778,  425,  513,  944,
 
10876
  556,  194, 1216,  945,  578,  233,  871, 1021,  447,  189,
 
10877
  871,  189,  537,  189,  506,  875,  425,  425,  113,  875,
 
10878
  291,   70,  540, 1288,  449,   70,  778, 1149,  807,  561,
 
10879
  340,  347,  807,  340,  347,  164,  425,  164,  171, 1220,
 
10880
  171,  172, 1221,  172,  425,  352,  940,  425,  940,  352,
 
10881
 1411,  347,  352,  569,  352,  576,  484,  231,  115,  352,
 
10882
  331,  597, 1292, 1310,  364, 1221,  796, 1411,  598,  347,
 
10883
  578,  347,  796,  778,  692,  325,  397,  398,  399,  796,
 
10884
 1288,  609,  331, 1292,  368, 1443, 1221, 1444,  113,  711,
 
10885
  347,  347,  778,  352,  506,   72,  115,   72, 1370, 1371,
 
10886
  115,  195,  695,  195,  115,  731,  331, 1344,  734, 1310,
 
10887
  347, 1292,  736,  201, 1221,  113,  764,  165,  347,  165,
 
10888
  128,  347,  128, 1403,  410,  411, 1406,  343,  115,  995,
 
10889
  996,  347,  349,  351,  353,  355,  357,  359,  361,  250,
 
10890
  294,  378,  294,  262,  135,  758,  135,  286,  287,  288,
 
10891
  765,  294,  295, 1365,  763,  202,  308,  309, 1186, 1187,
 
10892
  379,  380,  301,  317,  301,  319,  115,  323,  654,  656,
 
10893
  658,  660,  335,  336, 1249,  231,  816,  364,  456,  576,
 
10894
  381, 1561, 1562,  115,  536,  536,  194,  809,  251,  691,
 
10895
  691,  382, 1198, 1199,  578,  818,  383,  819,   38,  820,
 
10896
  740,  646,  648,  662,  664,  203,  204,  205,  206, 1421,
 
10897
  207,  208,  209,  210,  211,  212,  213,  214,  331,  821,
 
10898
  215,  216,  217,  218,  219,  220,  221,  222,  650,  652,
 
10899
  740,  740,  839,  740,  840,  843,  844,  846, 1478,  331,
 
10900
  856,  848,  857,  194,  740,  869,  871,  740,  875,  891,
 
10901
  892,  450,   42,  899,  895, 1505,  911,  896,  917,  918,
 
10902
  196,  919,  740,  194,  920,  926,  943,  377, 1517, 1519,
 
10903
  946,  862,  787,  947,  113,  949,  113, 1365,  954,  958,
 
10904
  973,  990,  959,  967,  506,  992,  740,  985,  997,  999,
 
10905
  115, 1005, 1008, 1006, 1009, 1505, 1505, 1014, 1011, 1016,
 
10906
 1022, 1527, 1034, 1035, 1044, 1038, 1052,  525, 1070, 1059,
 
10907
  331, 1071, 1090, 1144, 1100, 1108, 1143, 1126, 1114, 1115,
 
10908
  194,  194, 1116, 1146, 1166,  113, 1124, 1136,  113, 1140,
 
10909
  194, 1158, 1167,  331,  787, 1168,  343,  317,  194,  194,
 
10910
  383,  194, 1162, 1165, 1170, 1171, 1174, 1388, 1178,  331,
 
10911
 1185, 1188, 1505,  331, 1189, 1196, 1209, 1388, 1201, 1229,
 
10912
 1212, 1388, 1243,  194,  490,  490,  194, 1219,  564, 1246,
 
10913
 1262,  787, 1251, 1267, 1248, 1388,  343,  386, 1254, 1259,
 
10914
  529, 1269, 1274, 1275, 1576, 1576, 1276, 1282, 1283, 1278,
 
10915
 1346, 1585, 1585,  617,  617, 1324,  546, 1388,  387,  388,
 
10916
  389,  390,  391,  392,  393,  394,  395,  396, 1327, 1329,
 
10917
 1330, 1377, 1332, 1341, 1391, 1408, 1369, 1417, 1419, 1424,
 
10918
 1409, 1416, 1427, 1399, 1429, 1441, 1454, 1432,  331,  331,
 
10919
 1430,  636,  638,  640, 1434, 1438,  564,  564,  564,  564,
 
10920
  564,  564,  564,  564,  564,  564,  564,  564,  564,  564,
 
10921
  564,  564, 1436, 1451, 1440,   38, 1446, 1457, 1461,   38,
 
10922
 1458, 1459, 1488, 1469, 1470, 1564, 1502, 1473,   24, 1483,
 
10923
   38, 1490, 1500, 1503, 1509,   38, 1513, 1499, 1512,   38,
 
10924
 1526, 1524,   38, 1523, 1528, 1531, 1529, 1537, 1544, 1548,
 
10925
 1553, 1555, 1552, 1563,   38,   38,  331, 1547, 1546,   38,
 
10926
   38, 1569, 1570, 1591, 1592,   38, 1593,   38,   38,   38,
 
10927
   38,    9, 1027,  552,  909,   38,  507,  910, 1019,   38,
 
10928
  508,   38,  653,  377,  506,  331,  465,  654,  377,  377,
 
10929
  725,   38,   33,   38,   38,  466,   38,   33,  532,  323,
 
10930
   38,   34,  216,  817,  103,   34,  818,  841,  810,  876,
 
10931
  877,  377,  842,  920,  713,  878,  327,  880,  113,  564,
 
10932
   38,  738,  354,  347,  377,  377,   38,   38,  713,  377,
 
10933
  131,  691,  377,  113,  377,  297,  377,  377,  377,  377,
 
10934
  138,  748,  691,  132,  377,  114,  298,  139,  377,  230,
 
10935
   53,   21,  377, 1004, 1191,  517, 1091, 1192, 1343, 1333,
 
10936
  377, 1545, 1514,  377, 1554,  377,  377, 1501, 1530, 1496,
 
10937
 1401,  377, 1031,  377,  377,  377,  377,  377,  377,  377,
 
10938
  377,  377,  377,  377,  796, 1032, 1033,  914, 1342,  377,
 
10939
  377,  842, 1027, 1587,  377,  377, 1423,  377,  377,  377,
 
10940
 1579,  377,  377,  377, 1525,  377,  377, 1520,  113,  377,
 
10941
  377,  377,  377, 1518, 1578, 1270,  377,  377, 1000, 1445,
 
10942
  806,  377,  377,  377,  377,  377,  377,  377,  377, 1051,
 
10943
 1049, 1271,  935,  978,  611,  855, 1127,  299,  567,  668,
 
10944
  377,  910,  932,  377,  666,  377,  113,  670,  675,  672,
 
10945
  113,  674,  972,   24,  113,   25,  377,  823,   26, 1256,
 
10946
 1347,  420, 1176,   27, 1120, 1183, 1169,   28, 1139, 1109,
 
10947
  331,   29, 1177, 1175, 1240, 1068,   30,  690,  113,  799,
 
10948
  879,   31,  691,   32, 1345,   24, 1002, 1245,   33,   24,
 
10949
 1001,    0,   34,   35,    0,    0,    0,    0,    0,    0,
 
10950
   24,    0,    0,    0,   36,   24,   37,    0,    0,   24,
 
10951
   38,    0,   24,    0,    0,    0,  113,    0,   39,   40,
 
10952
    0,    0,   41,  911,   24,   24,    0,  331,    0,   24,
 
10953
   24,    0,    0,  113,    0,   24,    0,   24,   24,   24,
 
10954
   24,    0,    0,    0,    0,   24,    0,  331,    0,   24,
 
10955
    0,   24,    0,    0,    0,    0,    0,    0,    0,    0,
 
10956
    0,   24,  343,    0,   24,    0,   24,    0,    0,    0,
 
10957
   24,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10958
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10959
   24,    0,    0,    0,    0,   21,   24,   24,    0,    0,
 
10960
    0,    0,    0,    0,  331,  331,   42,    0,    0,    0,
 
10961
    0,  517,    0,    0,  331,    0,  517,  517,    0,    0,
 
10962
    0,    0,  331,  331,    0,  331,    0,    0,    0,    0,
 
10963
    0,    0,    0,    0,    0,    0,    0,    0,    0,  517,
 
10964
  113,    0,    0,    0,    0,    0,    0,  331,    0,    0,
 
10965
  331,    0,  517,  517,    0,    0,    0,  517,    0,    0,
 
10966
  517,    0,  517,    0,  517,  517,  517,  517,    0,    0,
 
10967
    0,    0,  517,    0,    0,    0,  517,    0,    0,    0,
 
10968
  517,    0,    0,    0,    0,    0,    0,    0,  517,    0,
 
10969
  835,  517,    0,  517,  517,    0,    0,    0,    0,  517,
 
10970
    0,  517,  517,  517,  517,  517,  517,  517,  517,  517,
 
10971
  517,  517,    0,    0,    0,    0,    0,  517,  517,    0,
 
10972
    0,    0,  517,  517,    0,  517,  517,  517,  517,  517,
 
10973
  517,  517,    0,  517,  517,  564,  517,  517,  517,  517,
 
10974
  517,  517,  517,  517,  517,  517,    0,  517,  517,  517,
 
10975
  517,  517,  517,  517,  517,  517,  517,  517,  517,  517,
 
10976
  517,  517,  517,  517,  517,  517,  517,  517,  517,    0,
 
10977
    0,  517,    0,  517,    0,  517,    0,    0,  517,  911,
 
10978
  911,    0,    0,    0,  517,    0,    0,  911,  911,  911,
 
10979
  911,  911,    0,  911,  911,    0,  911,  911,  911,  911,
 
10980
  911,  911,  911,  911,    0,    0,    0,    0,  911,    0,
 
10981
  911,  911,  911,  911,  911,  911,  347,    0,  911,    0,
 
10982
    0,    0,  911,  911,    0,  911,  911,  911,    0,    0,
 
10983
    0,    0,    0,    0,    0,    0,    0,  911,    0,  911,
 
10984
    0,  911,  911,    0,    0,  911,    0,  911,  911,  911,
 
10985
  911,  911,  911,  911,  911,  911,  911,  911,  911,    0,
 
10986
  911,    0,    0,  911,  911,    0,    0,  911,  911,    0,
 
10987
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10988
    0,    0,  911,  911,  911,  911,  911,    0,    0,    0,
 
10989
  911,  911,    0,    0,  911,    0,    0,    0,    0,  911,
 
10990
  911,  911,  911,  911,    0,    0,    0,  911,    0,  911,
 
10991
    0,    0,    0,    0,    0,  911,  911,    0,    0,    0,
 
10992
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10993
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
10994
  911,  911,  911,  911,    0,  911,  835,  835,    0,    0,
 
10995
    0,    0,  911,    0,  835,  835,  835,  835,  835,    0,
 
10996
  835,  835,  793,  835,  835,  835,  835,  835,  835,  835,
 
10997
    0,    0,    0,    0,    0,  835,    0,  835,  835,  835,
 
10998
  835,  835,  835,    0,    0,  835,    0,    0,    0,  835,
 
10999
  835,    0,  835,  835,  835,    0,    0,    0,    0,    0,
 
11000
    0,    0,    0,    0,  835,    0,  835,    0,  835,  835,
 
11001
    0,    0,  835,    0,  835,  835,  835,  835,  835,  835,
 
11002
  835,  835,  835,  835,  835,  835,    0,  835,    0,    0,
 
11003
  835,  835,    0,    0,  835,  835,    0,    0,    0,    0,
 
11004
    0,    0,    0,    0,    0,    0,    0,    0,    0,  835,
 
11005
  835,  835,  835,  835,    0,    0,    0,  835,  835,    0,
 
11006
    0,  835,    0,    0,    0,    0,  835,  835,  835,  835,
 
11007
  835,    0,  347,    0,  835,    0,  835,  347,  347,    0,
 
11008
    0,    0,  835,  835,    0,    0,    0,    0,    0,    0,
 
11009
    0,    0,  340,    0,    0,    0,    0,    0,    0,    0,
 
11010
  347,    0,    0,    0,    0,    0,    0,  835,  835,  835,
 
11011
  835,    0,  835,  347,  347,    0,    0,    0,  347,  835,
 
11012
    0,  347,    0,  347,    0,  347,  347,  347,  347,    0,
 
11013
    0,    0,    0,  347,    0,    0,    0,  347,    0,    0,
 
11014
    0,  347,    0,    0,    0,    0,    0,    0,    0,  347,
 
11015
    0,    0,  347,    0,  347,  347,    0,    0,    0,    0,
 
11016
  347,    0,  347,  347,  347,  347,  347,  347,  347,  347,
 
11017
  347,  347,  347,  347,    0,    0,    0,    0,  347,  347,
 
11018
    0,    0,    0,  347,  347,  347,  347,  347,  347,  347,
 
11019
  347,  347,  347,    0,  347,  347,  347,    0,  347,  347,
 
11020
  347,  347,  347,    0,    0,  347,  347,    0,    0,    0,
 
11021
  347,  347,  347,  347,  347,  347,  347,  347,  793,    0,
 
11022
    0,    0,    0,  793,  793,    0,    0,    0,    0,  347,
 
11023
    0,    0,  347,    0,  347,    0,  347,    0,    0,  347,
 
11024
    0,    0,    0,    0,    0,  347,  793,    0,    0,    0,
 
11025
    0,    0,    0,    0,    0,    0,    0,    0,    0,  793,
 
11026
  793,    0,    0,    0,  793,    0,    0,  793,    0,  793,
 
11027
    0,  793,  793,  793,  793,    0,    0,    0,    0,  793,
 
11028
    0,    0,    0,  793,    0,    0,    0,  793,    0,    0,
 
11029
    0,    0,    0,    0,    0,  793,    0,    0,  793,    0,
 
11030
  793,  793,    0,    0,    0,    0,  793,    0,  793,  793,
 
11031
  793,  793,  793,  793,  793,  793,  793,  793,  793,    0,
 
11032
    0,    0,    0,    0,  793,  793,    0,    0,    0,  793,
 
11033
  793,  793,  793,  793,  793,    0,  793,  793,  793,    0,
 
11034
  793,  793,  372,    0,  793,  793,  793,  793,  340,    0,
 
11035
    0,  793,  793,  340,  340,    0,  793,  793,  793,  793,
 
11036
  793,  793,  793,  793,    0,    0,    0,    0,    0,    0,
 
11037
    0,    0,    0,    0,    0,  793,  340,    0,  793,    0,
 
11038
  793,    0,  793,    0,    0,  793,    0,    0,    0,  340,
 
11039
  340,  793,    0,    0,  340,    0,    0,  340,    0,  340,
 
11040
    0,  340,  340,  340,  340,    0,    0,    0,    0,  340,
 
11041
    0,    0,    0,  340,    0,    0,    0,  340,    0,    0,
 
11042
    0,    0,    0,    0,    0,  340,    0,    0,  340,    0,
 
11043
  340,  340,    0,    0,    0,    0,  340,    0,  340,  340,
 
11044
  340,  340,  340,  340,  340,  340,  340,  340,  340,    0,
 
11045
    0,    0,  347,    0,  340,  340,    0,    0,  347,  340,
 
11046
  340,  340,  340,  340,  340,    0,  340,  340,  340,    0,
 
11047
  340,  340,    0,    0,  340,  340,  340,  340,    0,    0,
 
11048
    0,  340,  340,    0,    0,    0,  340,  340,  340,  340,
 
11049
  340,  340,  340,  340,  347,    0,    0,    0,    0,    0,
 
11050
   31,    0,    0,    0,    0,  340,    0,    0,  340,    0,
 
11051
  340,    0,  340,    0,    0,  340,    0,    0,    0,    0,
 
11052
    0,  340,    0,    0,    0,    0,    0,    0,    0,    0,
 
11053
    0,    0,    0,    0,    0,  347,    0,    0,    0,    0,
 
11054
  347,    0,  347,  347,  347,  347,  347,  347,  347,  347,
 
11055
  347,  347,  347,  347,    0,    0,    0,    0,    0,  347,
 
11056
 1001,    0,    0,  347,  347,  347,  347,  347,  347,  347,
 
11057
  347,  347,  347,    0,  347,  347,    0,    0,  347,  347,
 
11058
  347,  347,  347,    0,    0,  347,  347,    0,    0,   37,
 
11059
  347,  347,  347,  347,  347,  347,  347,  347,  372,    0,
 
11060
    0,    0,    0,    0,  372,    0,    0,    0,    0,  347,
 
11061
    0,    0,  347,    0,  347,    0,  347,    0,    0,  347,
 
11062
    0,    0,    0,    0,    0,  347,    0,    0,    0,    0,
 
11063
    0,    0,   36,    0,    0,    0,    0,    0,    0,    0,
 
11064
  372,    0,    0, 1001,    0,    0,    0,    0, 1001,    0,
 
11065
 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
 
11066
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11067
    0,    0, 1001,    0, 1001,   25, 1001,    0, 1001, 1001,
 
11068
 1001,  372,    0,    0,    0,    0,  372,    0,  372,  372,
 
11069
  372,  372,  372,  372,  372,  372,  372,  372,  372,    0,
 
11070
    0,    0,    0,    0,    0,  372,    0,    0,    0,  372,
 
11071
  372,    0,  372,  372,  372,    0,  372,  372,  372,    0,
 
11072
  372,  372,    0,    0,  372,  372,  372,  372,    0,    0,
 
11073
    0,  372,  372, 1001,    0,    0,  372,  372,  372,  372,
 
11074
  372,  372,  372,  372,    0,    0,    0,    0,    0,   35,
 
11075
    0,    0,    0,    0,    0,  372,   31,   31,  372,    0,
 
11076
  372,   31,    0,    0,    0,   31,    0,   31,    0,    0,
 
11077
   31,  372,   31,   31,    0,   31,    0,   31,    0,   31,
 
11078
    0,   31,   31,   31,   31,    0,    0,   31,   31,    0,
 
11079
    0,    0,    5,   31,    0,   31,   31,   31,    0,    0,
 
11080
   31,   31,   31,    0,   31,    0,    0,   31,    0,   31,
 
11081
   31,   31,   31,    0,    0,    0,   31,   31,   31,    0,
 
11082
    0,   31,   31,   31,    0,    0,    0,    0,    0,    0,
 
11083
   31,   31,    0,   31,   31, 1009,   31,   31,   31,    0,
 
11084
    0,    0,   31,    0,    0,    0,   37,    0,    0,    0,
 
11085
   37,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11086
    0,   37,   31,    0,    0,    0,   37,    0,   31,   31,
 
11087
   37,    0,    0,   37,    0,    0,    0,   31,   51,    0,
 
11088
    0,    0,    0,    0,    0,   37,   37,    0,    0,   36,
 
11089
   37,   37,    0,   36,    0,    0,   37,    0,   37,   37,
 
11090
   37,   37,    0,    0,   36,    0,   37,    0,    0,   36,
 
11091
   37,    0,   37,   36,    0,    0,   36,    0,   31,    0,
 
11092
    0,    7,   37,    0,   37,   37,    0,   37,   36,   36,
 
11093
    0,   37,   25,   36,   36,    0,   25,    0,    0,   36,
 
11094
    0,   36,   36,   36,   36,    0,    0,   25,    0,   36,
 
11095
    0,   37,   25,   36,    0,   36,   25,    0,   37,   25,
 
11096
    0,    0,    0,    0, 1010,   36,    0,    0,   36,    0,
 
11097
   36,   25,   25,    0,   36,    0,   25,   25,    0,    0,
 
11098
    0,    0,   25,    0,   25,   25,   25,   25,    0,    0,
 
11099
    0,    0,   25,    0,   36,    0,   25,    0,   25,    0,
 
11100
   36,   36,    0,    0,    0,    0,   35,   52,   25,    0,
 
11101
   35,   25,    0,   25,    0,    0,    0,   25,    0,    0,
 
11102
    0,   35,    0,    0,    0,    0,   35,    0,    0,    0,
 
11103
   35,    0,    0,   35,    0,    0,    0,   25,    0,    0,
 
11104
    0,    0,    0,   25,   25,   35,   35,    0,    0,    5,
 
11105
   35,   35,    0,   51,    0,    0,   35,    0,   35,   35,
 
11106
   35,   35,    0,    0,   51,    0,   35,    0,    0,   51,
 
11107
   35,    0,   35,   51,    0,    0,   51,    0,    0,    0,
 
11108
    0,    0,   35,    0,    0,   35,    0,   35,   51,   51,
 
11109
    0,   35, 1009,   51,   51,    0,   51,    0,    0,   51,
 
11110
    0,   51,   51,   51,   51,    0,    0,   51,    0,   51,
 
11111
    0,   35,   51,   51,    0,   51,   51,    0,   35,   51,
 
11112
    0,    0,    0,    0,    0,   51,    0,    0,   51,    0,
 
11113
   51,   51,   51,    0,   51,   51,   51,   51,    0,   51,
 
11114
    0,    0,   51,    0,   51,   51,   51,   51,    0,    0,
 
11115
   51,    0,   51,    0,   51,   51,   51,    0,   51,   51,
 
11116
    0,    0,   51,    0,    0,    0,    0,    0,   51,    0,
 
11117
    0,   51,    0,   51,   51,   51,    0,   51,    7,   51,
 
11118
   51,    0,   52,    0,    0,   51,    0,   51,   51,   51,
 
11119
   51,    0,    0,   52,    0,   51,    0,   51,   52,   51,
 
11120
    0,   51,   52,    0,    0,   52,    0,    0,    0,    0,
 
11121
    0,   51,    0,    0,   51,    0,   51,   52,   52,    0,
 
11122
   51, 1010,   52,   52,    0,   51,    0,    0,   52,    0,
 
11123
   52,   52,   52,   52,    0,    0,   51,    0,   52,    0,
 
11124
   51,   51,   52,    0,   52,   51,    0,    0,   51,    0,
 
11125
    0,    0,    0,    0,   52,    0,    0,   52,    0,   52,
 
11126
   51,   51,    0,   52,   52,   51,   51,    0,   52,    0,
 
11127
    0,   51,    0,   51,   51,   51,   51,    0,    0,   52,
 
11128
    0,   51,    0,   52,   52,   51,    0,   51,   52,    0,
 
11129
    0,   52,    0,    0,    0,    0,    0,   51,    0,    0,
 
11130
   51,    0,   51,   52,   52,    0,   51,    0,   52,   52,
 
11131
    0,    0,    0,    0,   52,    0,   52,   52,   52,   52,
 
11132
    0,    0,    0,    0,   52,    0,   51,    0,   52,    0,
 
11133
   52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11134
   52,    0,   55,   52,    0,   52,    0,    0,    0,   52,
 
11135
   56,   24,   57,   25,    0,    0,   26,   58,    0,   59,
 
11136
   60,   27,   61,   62,   63,   28,    0,    0,    0,   52,
 
11137
    0,   64,    0,   65,   30,   66,   67,   68,   69,    0,
 
11138
    0,   32,    0,    0,    0,   70,   33,    0,   71,   72,
 
11139
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11140
   73,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
11141
   75,   76,   77,   78,   79,   80,   39,   40,   81,   82,
 
11142
   41,   83,    0,   84,    0,    0,   85,   86,    0,  796,
 
11143
   87,   88,    0,    0,    0,  796,    0,    0,    0,    0,
 
11144
    0,    0,    0,    0,    0,   89,   90,   91,   92,   93,
 
11145
    0,    0,    0,   94,    0,    0,    0,   95,    0,    0,
 
11146
    0,    0,   96,   97,   98,   99,  100,    0,    0,    0,
 
11147
  101,  796,  102,    0,    0,    0,    0,    0,  103,  104,
 
11148
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11149
    0,    0,    0,    0,    0,  347,    0,    0,    0,    0,
 
11150
    0,  347,    0,  105,  106,  107,  108,    0,    0,    0,
 
11151
    0,    0,  796,    0,    0,  196,    0,  796,    0,  796,
 
11152
  796,  796,  796,  796,  796,  796,  796,  796,  796,  796,
 
11153
  796,    0,    0,    0,    0,    0,  796,  347,    0,    0,
 
11154
    0,  796,  796,  796,  796,  796,  796,  796,  796,  796,
 
11155
    0,  796,  796,    0,  796,  796,  796,  796,  796,  796,
 
11156
  796,  796,  796,  796,    0,  796,  796,  796,  796,  796,
 
11157
  796,  796,  796,  796,  796,  796,  796,  796,  796,  796,
 
11158
  796,  796,  796,  796,  796,  796,  796,  796,  347,    0,
 
11159
    0,  796,    0,  796,  347,    0,  796,    0,    0,    0,
 
11160
    0,    0,  796,    0,    0,    0,    0,  347,    0,    0,
 
11161
  347,    0,  347,  347,    0,    0,    0,  347,  347,    0,
 
11162
    0,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11163
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11164
  347,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11165
    0,  347,  347,    0,    0,    0,    0,    0,    0,  347,
 
11166
    0,    0,  347,    0,    0,    0,    0,    0,  347,    0,
 
11167
    0,  347,    0,    0,    0,    0,  347,    0,  347,  347,
 
11168
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11169
    0,    0,    0,    0,    0,  347,    0,    0,    0,    0,
 
11170
  347,  347,  347,  347,  347,  347,  347,  347,  347,    0,
 
11171
  347,  347,    0,  347,  347,  347,  347,  347,  347,  347,
 
11172
  347,  347,  347,    0,  347,  347,  347,  347,  347,  347,
 
11173
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11174
  347,  347,  347,  347,  347,  347,    0,  519,  582,    0,
 
11175
  347,    0,  347,  519,    0,  347,    0,   24,    0,   25,
 
11176
    0,  347,   26,    0,    0,    0,    0,   27,    0,    0,
 
11177
    0,   28,    0,    0,    0,    0,    0,    0,    0,    0,
 
11178
   30,    0,    0,    0,    0,    0,    0,   32,    0,  519,
 
11179
    0,    0,   33,    0,    0,    0,   34,    0,    0,    0,
 
11180
    0,    0,    0,    0,    0,    0,    0,    0,   36,    0,
 
11181
   37,    0,    0,    0,   38,    0,    0,    0,    0,    0,
 
11182
    0,    0,   39,   40,    0,    0,   41,    0,    0,  324,
 
11183
  519,    0,    0,    0,    0,  519,    0,  519,  519,  519,
 
11184
  519,  519,  519,  519,  519,  519,  519,  519,    0,    0,
 
11185
    0,    0,    0,    0,    0,    0,    0,    0,  519,  519,
 
11186
  519,  519,  519,  519,  519,  519,  519,  519,    0,  519,
 
11187
  519,    0,  519,  519,  519,  519,  519,  519,  519,  519,
 
11188
  519,  519,    0,  519,  519,  519,  519,  519,  519,  519,
 
11189
  519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
 
11190
  519,  519,  519,  519,  519,    0,  515,  641,    0,    0,
 
11191
  368,  519,  515,    0,    0,    0,   24,    0,   25,    0,
 
11192
  519,   26,    0,    0,    0,    0,   27,    0,    0,    0,
 
11193
   28,    0,    0,    0,    0,    0,    0,    0,    0,   30,
 
11194
    0,    0,    0,    0,    0,    0,   32,    0,  515,    0,
 
11195
    0,   33,    0,    0,    0,   34,    0,    0,    0,    0,
 
11196
    0,    0,    0,    0,    0,    0,    0,   36,    0,   37,
 
11197
    0,    0,    0,   38,    0,    0,    0,  403,    0,    0,
 
11198
    0,   39,   40,  403,    0,   41,    0,    0,  324,  515,
 
11199
    0,    0,    0,    0,  515,    0,  515,  515,  515,  515,
 
11200
  515,  515,  515,  515,  515,  515,  515,    0,    0,    0,
 
11201
    0,    0,    0,    0,    0,    0,    0,  515,  515,  403,
 
11202
  515,  515,  515,  515,  515,  515,  515,    0,  515,  515,
 
11203
    0,  515,  515,  515,  515,  515,  515,  515,  515,  515,
 
11204
  515,    0,  515,  515,  515,  515,  515,  515,  515,  515,
 
11205
  515,  515,  515,  515,  515,  515,  515,  515,  515,  515,
 
11206
  515,  515,  515,  515,    0,  523,    0,    0,    0,  368,
 
11207
  515,  523,    0,  515,    0,    0,    0,    0,    0,  515,
 
11208
    0,    0,    0,    0,  340,    0,    0,    0,    0,  403,
 
11209
  340,    0,  403,  403,  403,  403,    0,  403,    0,  403,
 
11210
  403,    0,  403,  403,  403,  403,  403,  523,  403,  403,
 
11211
  403,  403,    0,  403,  403,  403,  403,  403,  403,  403,
 
11212
  403,  403,  403,  403,  403,  403,  403,  403,  403,  403,
 
11213
  403,  403,  403,  403,  403,    0,    0,    0,    0,  340,
 
11214
    0,  403,    0,    0,  403,    0,    0,    0,  523,    0,
 
11215
  403,    0,    0,  523,    0,  523,  523,  523,  523,  523,
 
11216
  523,  523,  523,  523,  523,  523,    0,    0,    0,    0,
 
11217
    0,    0,    0,    0,    0,    0,    0,  523,    0,  523,
 
11218
  523,  523,  523,  523,  523,  523,    0,  523,  523,    0,
 
11219
  523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
 
11220
    0,  523,  523,  523,  523,  523,  523,  523,  523,  523,
 
11221
  523,  523,  523,  523,  523,  523,  523,  523,  523,  523,
 
11222
  523,  523,  523,    0,  347,  643,    0,    0,    0,  523,
 
11223
  347,    0,  523,    0,   24,    0,   25,    0,  523,   26,
 
11224
    0,    0,    0,    0,   27,    0,    0,    0,   28,    0,
 
11225
    0,    0,    0,    0,    0,    0,    0,   30,    0,    0,
 
11226
    0,    0,    0,    0,   32,    0,  347,    0,    0,   33,
 
11227
    0,    0,    0,   34,    0,    0,    0,    0,    0,    0,
 
11228
    0,    0,    0,    0,    0,   36,    0,   37,    0,    0,
 
11229
    0,   38,    0,    0,    0,    0,    0,    0,    0,   39,
 
11230
   40,    0,    0,   41,    0,    0,  324,  347,    0,    0,
 
11231
    0,    0,  347,    0,  347,  347,  347,  347,  347,  347,
 
11232
  347,  347,  347,  347,  347,    0,    0,    0,    0,    0,
 
11233
    0,    0,    0,    0,    0,    0,  347,    0,  347,  347,
 
11234
  347,  347,  347,  347,  347,    0,  347,  347,    0,  347,
 
11235
  347,  347,  347,  347,  347,  347,  347,  347,  347,    0,
 
11236
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11237
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11238
  347,  347,    0,  448,  950,    0,    0,  368,  347,  448,
 
11239
    0,  347,    0,   24,    0,   25,    0,  347,   26,    0,
 
11240
    0,    0,    0,   27,    0,    0,    0,   28,    0,    0,
 
11241
    0,    0,    0,    0,    0,    0,   30,    0,    0,    0,
 
11242
    0,    0,    0,   32,    0,  448,    0,    0,   33,    0,
 
11243
    0,    0,   34,    0,    0,    0,    0,    0,    0,    0,
 
11244
    0,    0,    0,    0,   36,    0,   37,    0,    0,    0,
 
11245
   38,    0,    0,    0,    0,    0,    0,    0,   39,   40,
 
11246
    0,    0,   41,    0,    0,  324,  448,    0,    0,    0,
 
11247
    0,  448,    0,  448,  448,  448,  448,  448,  448,  448,
 
11248
  448,  448,  448,  448,    0,    0,    0,    0,    0,    0,
 
11249
    0,    0,    0,    0,    0,  448,    0,  448,  448,  448,
 
11250
  448,  448,  448,  448,    0,  448,  448,    0,  448,  448,
 
11251
  448,  448,  448,  448,  448,  448,  448,  448,    0,  448,
 
11252
  448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
 
11253
  448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
 
11254
  448,    0,  347,    0,    0,    0,  368,  448,  347, 1101,
 
11255
  448,    0,  796,    0,    0,    0,  448,    0,   24,    0,
 
11256
   25,    0,    0,   26,    0,    0,    0,    0,   27,    0,
 
11257
    0,    0,   28,    0,    0,    0,    0,    0,    0,    0,
 
11258
    0,   30,    0,    0,  347,    0,    0,    0,   32,    0,
 
11259
    0,    0,    0,   33,    0,    0,    0,   34,    0,    0,
 
11260
  796,    0,    0,    0,    0,    0,    0,    0,    0,   36,
 
11261
    0,   37,    0,    0,    0,   38,    0,    0,    0,    0,
 
11262
    0,    0,    0,   39,   40,    0,    0,   41,    0,    0,
 
11263
  324,    0,    0,    0,    0,  557,    0,    0,    0,    0,
 
11264
    0,  557,    0,  347,    0,    0,    0,    0,    0,  347,
 
11265
    0,    0,    0,    0,  347,  347,  347,  347,  347,  347,
 
11266
  347,  796,  347,    0,  347,  347,    0,  347,  347,  347,
 
11267
  347,  347,  347,  347,  347,  347,  347,  557,  347,  347,
 
11268
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11269
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11270
    0,    0,    0,    0,  347,    0,  347,    0,    0,  347,
 
11271
    0,  368,    0,    0,    0,  347,    0,    0,  557,    0,
 
11272
    0,    0,  629,  557,    0,  557,  557,  557,  557,  557,
 
11273
  557,  557,  557,  557,  557,  557,    0,    0,    0,    0,
 
11274
    0,    0,    0,    0,    0,    0,    0,  557,    0,  557,
 
11275
    0,  557,    0,  557,  557,  557,    0,  557,  557,    0,
 
11276
  557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
 
11277
    0,    0,    0,  557,  557,  557,  557,  557,  557,  557,
 
11278
  557,  557,  557,  557,  557,  557,  557,  557,  557,  557,
 
11279
  557,  579,  557,    0,    0,    0,    0,  579,    0,    0,
 
11280
    0,    0,    0,    0,    0,  629,    0,    0,  557,    0,
 
11281
  629,    0,  629,  629,  629,  629,  629,  629,  629,  629,
 
11282
  629,  629,  629,    0,    0,    0,    0,    0,    0,    0,
 
11283
    0,    0,    0,  579,  629,    0,  629,    0,  629,    0,
 
11284
  629,  629,  629,    0,    0,    0,    0,    0,    0,    0,
 
11285
    0,    0,    0,    0,    0,    0,  629,    0,    0,  586,
 
11286
    0,    0,    0,    0,    0,  586,    0,    0,    0,    0,
 
11287
    0,    0,    0,    0,  579,    0,    0,    0,    0,  579,
 
11288
    0,  579,  579,  579,  579,  579,  579,  579,  579,  579,
 
11289
  579,  579,    0,    0,    0,  629,    0,    0,    0,    0,
 
11290
    0,  586,    0,  579,    0,  579,    0,  579,    0,  579,
 
11291
  579,  579,    0,  579,  579,    0,    0,  579,  579,  579,
 
11292
  579,  579,  579,  579,  579,  579,    0,    0,    0,  579,
 
11293
  579,  579,  579,  579,  579,  579,  579,    0,    0,    0,
 
11294
    0,    0,  586,    0,    0,    0,    0,  586,  579,  586,
 
11295
  586,  586,  586,  586,  586,  586,  586,  586,  586,  586,
 
11296
    0,    0,    0,  587,  579,    0,    0,    0,    0,  587,
 
11297
    0,  586,    0,  586,    0,  586,    0,  586,  586,  586,
 
11298
    0,  586,  586,    0,    0,  586,  586,  586,  586,    0,
 
11299
    0,    0,  586,  586,    0,    0,    0,  586,  586,  586,
 
11300
  586,  586,  586,  586,  586,  587,    0,    0,    0,    0,
 
11301
    0,    0,    0,    0,    0,    0,  586,    0,    0,    0,
 
11302
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11303
    0,  588,  586,    0,    0,    0,    0,  588,    0,    0,
 
11304
    0,    0,    0,    0,    0,    0,  587,    0,    0,    0,
 
11305
    0,  587,    0,  587,  587,  587,  587,  587,  587,  587,
 
11306
  587,  587,  587,  587,    0,    0,    0,    0,    0,    0,
 
11307
    0,    0,    0,  588,    0,  587,    0,  587,    0,  587,
 
11308
    0,  587,  587,  587,    0,  587,  587,    0,    0,  587,
 
11309
  587,  587,  587,    0,    0,    0,  587,  587,    0,  595,
 
11310
    0,  587,  587,  587,  587,  587,  587,  587,  587,    0,
 
11311
    0,    0,    0,    0,  588,    0,    0,    0,    0,  588,
 
11312
  587,  588,  588,  588,  588,  588,  588,  588,  588,  588,
 
11313
  588,  588,    0,    0,    0,    0,  587,    0,    0,    0,
 
11314
    0,    0,    0,  588,    0,  588,    0,  588,    0,  588,
 
11315
  588,  588,    0,  588,  588,    0,    0,  588,  588,  588,
 
11316
  588,    0,    0,    0,  588,  588,    0,  596,    0,  588,
 
11317
  588,  588,  588,  588,  588,  588,  588,    0,    0,    0,
 
11318
    0,    0,  595,    0,    0,    0,    0,  595,  588,  595,
 
11319
  595,  595,  595,  595,  595,  595,  595,  595,  595,  595,
 
11320
    0,    0,    0,    0,  588,    0,    0,    0,    0,    0,
 
11321
    0,  595,    0,  595,    0,  595,    0,  595,  595,  595,
 
11322
    0,    0,    0,    0,    0,  595,  595,  595,  595,    0,
 
11323
    0,    0,  595,  595,    0,  597,    0,  595,  595,  595,
 
11324
  595,  595,  595,  595,  595,    0,    0,    0,    0,    0,
 
11325
  596,    0,    0,    0,    0,  596,  595,  596,  596,  596,
 
11326
  596,  596,  596,  596,  596,  596,  596,  596,    0,    0,
 
11327
    0,    0,  595,    0,    0,    0,    0,    0,    0,  596,
 
11328
    0,  596,    0,  596,    0,  596,  596,  596,    0,    0,
 
11329
    0,    0,    0,  596,  596,  596,  596,    0,    0,    0,
 
11330
  596,  596,    0,  600,    0,  596,  596,  596,  596,  596,
 
11331
  596,  596,  596,    0,    0,    0,    0,    0,  597,    0,
 
11332
    0,    0,    0,  597,  596,  597,  597,  597,  597,  597,
 
11333
  597,  597,  597,  597,  597,  597,    0,    0,    0,    0,
 
11334
  596,    0,    0,    0,    0,    0,    0,  597,    0,  597,
 
11335
    0,  597,    0,  597,  597,  597,    0,    0,    0,    0,
 
11336
    0,  597,  597,  597,  597,    0,    0,    0,  597,  597,
 
11337
    0,  601,    0,  597,  597,  597,  597,  597,  597,  597,
 
11338
  597,    0,    0,    0,    0,    0,  600,    0,    0,    0,
 
11339
    0,  600,  597,  600,  600,  600,  600,  600,  600,  600,
 
11340
  600,  600,  600,  600,    0,    0,    0,    0,  597,    0,
 
11341
    0,    0,    0,    0,    0,  600,    0,  600,    0,  600,
 
11342
    0,  600,  600,  600,    0,    0,    0,    0,    0,  600,
 
11343
  600,  600,  600,    0,    0,    0,  600,  600,    0,  602,
 
11344
    0,    0,    0,  600,  600,  600,  600,  600,  600,    0,
 
11345
    0,    0,    0,    0,  601,    0,    0,    0,    0,  601,
 
11346
  600,  601,  601,  601,  601,  601,  601,  601,  601,  601,
 
11347
  601,  601,    0,    0,    0,    0,  600,    0,    0,    0,
 
11348
    0,    0,    0,  601,    0,  601,    0,  601,    0,  601,
 
11349
  601,  601,    0,    0,    0,    0,    0,  601,  601,  601,
 
11350
  601,    0,    0,    0,  601,  601,    0,  603,    0,    0,
 
11351
    0,  601,  601,  601,  601,  601,  601,    0,    0,    0,
 
11352
    0,    0,  602,    0,    0,    0,    0,  602,  601,  602,
 
11353
  602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
 
11354
    0,    0,    0,    0,  601,    0,    0,    0,    0,    0,
 
11355
    0,  602,    0,  602,    0,  602,    0,  602,  602,  602,
 
11356
    0,    0,    0,    0,    0,  602,  602,  602,  602,    0,
 
11357
    0,    0,  602,  602,    0,  604,    0,    0,    0,  602,
 
11358
  602,  602,  602,  602,  602,    0,    0,    0,    0,    0,
 
11359
  603,    0,    0,    0,    0,  603,  602,  603,  603,  603,
 
11360
  603,  603,  603,  603,  603,  603,  603,  603,    0,    0,
 
11361
    0,    0,  602,    0,    0,    0,    0,    0,    0,  603,
 
11362
    0,  603,    0,  603,    0,  603,  603,  603,    0,    0,
 
11363
    0,    0,    0,  603,  603,  603,  603,    0,    0,    0,
 
11364
  603,  603,    0,  609,    0,    0,    0,  603,  603,  603,
 
11365
  603,  603,  603,    0,    0,    0,    0,    0,  604,    0,
 
11366
    0,    0,    0,  604,  603,  604,  604,  604,  604,  604,
 
11367
  604,  604,  604,  604,  604,  604,    0,    0,    0,    0,
 
11368
  603,    0,    0,    0,    0,    0,    0,  604,    0,  604,
 
11369
    0,  604,    0,  604,  604,  604,    0,    0,    0,    0,
 
11370
    0,  604,  604,  604,  604,    0,    0,    0,  604,  604,
 
11371
    0,  610,    0,    0,    0,  604,  604,  604,  604,  604,
 
11372
  604,    0,    0,    0,    0,    0,  609,    0,    0,    0,
 
11373
    0,  609,  604,  609,  609,  609,  609,  609,  609,  609,
 
11374
  609,  609,  609,  609,    0,    0,    0,    0,  604,    0,
 
11375
    0,    0,    0,    0,    0,  609,    0,  609,    0,  609,
 
11376
    0,  609,  609,  609,    0,    0,    0,    0,    0,    0,
 
11377
    0,  609,  609,    0,    0,    0,  609,  609,    0,  611,
 
11378
    0,    0,    0,    0,    0,  609,  609,  609,  609,    0,
 
11379
    0,    0,    0,    0,  610,    0,    0,    0,    0,  610,
 
11380
  609,  610,  610,  610,  610,  610,  610,  610,  610,  610,
 
11381
  610,  610,    0,    0,    0,    0,  609,    0,    0,    0,
 
11382
    0,    0,    0,  610,    0,  610,    0,  610,    0,  610,
 
11383
  610,  610,    0,    0,    0,    0,    0,    0,    0,  610,
 
11384
  610,    0,    0,    0,  610,  610,    0,  614,    0,    0,
 
11385
    0,    0,    0,  610,  610,  610,  610,    0,    0,    0,
 
11386
    0,    0,  611,    0,    0,    0,    0,  611,  610,  611,
 
11387
  611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
 
11388
    0,    0,    0,    0,  610,    0,    0,    0,    0,    0,
 
11389
    0,  611,    0,  611,    0,  611,    0,  611,  611,  611,
 
11390
    0,    0,    0,    0,    0,    0,    0,  611,  611,    0,
 
11391
    0,    0,  611,  611,    0,  615,    0,    0,    0,    0,
 
11392
    0,  611,  611,  611,  611,    0,    0,    0,    0,    0,
 
11393
  614,    0,    0,    0,    0,  614,  611,  614,  614,  614,
 
11394
  614,  614,  614,  614,  614,  614,  614,  614,    0,    0,
 
11395
    0,    0,  611,    0,    0,    0,    0,    0,    0,  614,
 
11396
    0,  614,    0,  614,    0,  614,  614,  614,    0,    0,
 
11397
    0,    0,    0,    0,    0,  614,  614,    0,    0,    0,
 
11398
  614,  614,    0,  617,    0,    0,    0,    0,    0,    0,
 
11399
    0,  614,  614,    0,    0,    0,    0,    0,  615,    0,
 
11400
    0,    0,    0,  615,  614,  615,  615,  615,  615,  615,
 
11401
  615,  615,  615,  615,  615,  615,    0,    0,    0,    0,
 
11402
  614,    0,    0,    0,    0,    0,    0,  615,    0,  615,
 
11403
    0,  615,    0,  615,  615,  615,    0,    0,    0,    0,
 
11404
    0,    0,    0,  615,  615,    0,    0,    0,  615,  615,
 
11405
    0,  618,    0,    0,    0,    0,    0,    0,    0,  615,
 
11406
  615,    0,    0,    0,    0,    0,  617,    0,    0,    0,
 
11407
    0,  617,  615,  617,  617,  617,  617,  617,  617,  617,
 
11408
  617,  617,  617,  617,    0,    0,    0,    0,  615,    0,
 
11409
    0,    0,    0,    0,    0,  617,    0,  617,    0,  617,
 
11410
    0,  617,  617,  617,    0,    0,    0,    0,    0,    0,
 
11411
    0,    0,  617,    0,    0,    0,  617,  617,    0,  620,
 
11412
    0,    0,    0,    0,    0,    0,    0,  617,  617,    0,
 
11413
    0,    0,    0,    0,  618,    0,    0,    0,    0,  618,
 
11414
  617,  618,  618,  618,  618,  618,  618,  618,  618,  618,
 
11415
  618,  618,    0,    0,    0,    0,  617,    0,    0,    0,
 
11416
    0,    0,    0,  618,    0,  618,    0,  618,    0,  618,
 
11417
  618,  618,    0,    0,    0,    0,    0,    0,    0,    0,
 
11418
  618,    0,    0,    0,  618,  618,    0,  621,    0,    0,
 
11419
    0,    0,    0,    0,    0,  618,  618,    0,    0,    0,
 
11420
    0,    0,  620,    0,    0,    0,    0,  620,  618,  620,
 
11421
  620,  620,  620,  620,  620,  620,  620,  620,  620,  620,
 
11422
    0,    0,    0,    0,  618,    0,    0,    0,    0,    0,
 
11423
    0,  620,    0,  620,    0,  620,    0,  620,  620,  620,
 
11424
    0,    0,    0,    0,    0,    0,    0,    0,  620,    0,
 
11425
    0,    0,    0,  620,    0,  623,    0,    0,    0,    0,
 
11426
    0,    0,    0,  620,  620,    0,    0,    0,    0,    0,
 
11427
  621,    0,    0,    0,    0,  621,  620,  621,  621,  621,
 
11428
  621,  621,  621,  621,  621,  621,  621,  621,    0,    0,
 
11429
    0,    0,  620,    0,    0,    0,    0,    0,    0,  621,
 
11430
    0,  621,    0,  621,    0,  621,  621,  621,    0,    0,
 
11431
    0,    0,    0,    0,    0,    0,  621,    0,    0,    0,
 
11432
    0,  621,    0,  624,    0,    0,    0,    0,    0,    0,
 
11433
    0,  621,  621,    0,    0,    0,    0,    0,  623,    0,
 
11434
    0,    0,    0,  623,  621,  623,  623,  623,  623,  623,
 
11435
  623,  623,  623,  623,  623,  623,    0,    0,    0,    0,
 
11436
  621,    0,    0,    0,    0,    0,    0,  623,    0,  623,
 
11437
    0,  623,    0,  623,  623,  623,    0,    0,    0,    0,
 
11438
    0,    0,    0,    0,    0,    0,    0,    0,    0,  623,
 
11439
    0,  626,    0,    0,    0,    0,    0,    0,    0,  623,
 
11440
  623,    0,    0,    0,    0,    0,  624,    0,    0,    0,
 
11441
    0,  624,  623,  624,  624,  624,  624,  624,  624,  624,
 
11442
  624,  624,  624,  624,    0,    0,    0,    0,  623,    0,
 
11443
    0,    0,    0,    0,    0,  624,    0,  624,    0,  624,
 
11444
    0,  624,  624,  624,    0,    0,    0,  627,    0,    0,
 
11445
    0,    0,    0,    0,    0,    0,    0,  624,    0,    0,
 
11446
    0,    0,    0,    0,    0,    0,    0,  624,  624,    0,
 
11447
    0,    0,    0,    0,  626,    0,    0,    0,    0,  626,
 
11448
  624,  626,  626,  626,  626,  626,  626,  626,  626,  626,
 
11449
  626,  626,    0,    0,    0,    0,  624,    0,    0,    0,
 
11450
    0,    0,    0,  626,    0,  626,    0,  626,    0,  626,
 
11451
  626,  626,    0,    0,    0,    0,  347,    0,    0,    0,
 
11452
  796,    0,    0,    0,    0,  626,    0,    0,    0,    0,
 
11453
  627,    0,    0,    0,    0,  627,  626,  627,  627,  627,
 
11454
  627,  627,  627,  627,  627,  627,  627,  627,  626,    0,
 
11455
    0,    0,  347,    0,    0,    0,    0,    0,    0,  627,
 
11456
    0,  627,    0,  627,  626,  627,  627,  627,  796,    0,
 
11457
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11458
    0,  627,    0,    0,    0,    0,    0,    0,    0,    0,
 
11459
    0,    0,  627,    0,    0,    0,    0,    0,    0,    0,
 
11460
    0,    0,    0,    0,  627,    0,    0,    0,    0,    0,
 
11461
    0,  347,    0,    0,    0,    0,    0,  347,    0,    0,
 
11462
  627,    0,  347,  347,    0,  347,    0,  347,    0,  796,
 
11463
  347,    0,  347,  347,    0,  347,  347,  347,  347,  347,
 
11464
  347,  347,  347,  347,  347,    0,  347,  347,  347,  347,
 
11465
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
11466
  347,  347,  347,  347,  347,  347,  347,  347,    0,    0,
 
11467
  571,    0,  347,    0,  347,    0,    0,  347,   56,   24,
 
11468
   57,   25, 1129,  347,   26,   58,    0,   59,   60,   27,
 
11469
   61,   62,   63,   28,    0,    0,    0,    0,    0,   64,
 
11470
    0,   65,   30,   66,   67,   68,   69,    0,    0,   32,
 
11471
    0,    0,    0,   70,   33,    0,   71,   72,   34,    0,
 
11472
    0,    0,    0,    0,    0,    0,    0,    0,   73,    0,
 
11473
   36,    0,   37,   74,    0,    0,   38,    0,   75,   76,
 
11474
   77,   78,   79,   80,   39,   40,   81,   82,   41,   83,
 
11475
    0,   84,    0,    0,   85,   86,    0,    0,   87,   88,
 
11476
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11477
    0,    0,    0,   89,   90,   91,   92,   93,    0,    0,
 
11478
    0,   94,    0,    0,    0,   95,    0,    0,    0,    0,
 
11479
   96,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
11480
  102,    0,    0,    0,    0,    0,  103,  104,    0,    0,
 
11481
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11482
    0,    0,    0,    0,    0,    0,    0,    0,    0,   55,
 
11483
    0,  105,  572,  107,  108,    0, 1130,   56,   24,   57,
 
11484
   25,    0,    0,   26,   58,    0,   59,   60,   27,   61,
 
11485
   62,   63,   28,    0,    0,    0,    0,    0,   64,    0,
 
11486
   65,   30,   66,   67,   68,   69,    0,    0,   32,    0,
 
11487
    0,    0,   70,   33,    0,   71,   72,   34,    0,    0,
 
11488
    0,    0,    0,    0,    0,    0,    0,   73,    0,   36,
 
11489
    0,   37,   74,    0,    0,   38,    0,   75,   76,   77,
 
11490
   78,   79,   80,   39,   40,   81,   82,   41,   83,    0,
 
11491
   84,    0,    0,   85,   86,    0,    0,   87,   88,    0,
 
11492
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11493
    0,    0,   89,   90,   91,   92,   93,    0,    0,    0,
 
11494
   94,    0,    0,    0,   95,    0,    0,    0,    0,   96,
 
11495
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
11496
    0,    0,    0,    0,    0,  103,  104,    0,    0,    0,
 
11497
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11498
    0,    0,    0,    0,    0,    0,  266,    0,    0,    0,
 
11499
  105,  106,  107,  108,   56,   24,   57,   25,    0,    0,
 
11500
   26,   58,    0,   59,   60,   27,   61,   62,   63,   28,
 
11501
    0,    0,    0,    0,    0,   64,    0,   65,   30,   66,
 
11502
   67,   68,   69,    0,    0,   32,    0,    0,    0,   70,
 
11503
   33,    0,   71,   72,   34,    0,    0,    0,    0,    0,
 
11504
    0,    0,    0,    0,   73,    0,   36,    0,   37,   74,
 
11505
    0,    0,   38,    0,   75,   76,   77,   78,   79,   80,
 
11506
   39,   40,   81,   82,   41,   83,    0,   84,    0,    0,
 
11507
   85,   86,    0,    0,   87,   88,    0,    0,    0,    0,
 
11508
    0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
 
11509
   90,   91,   92,   93,    0,    0,    0,   94,    0,    0,
 
11510
    0,   95,    0,    0,    0,    0,   96,   97,   98,   99,
 
11511
  100,    0,    0,    0,  101,    0,  102,    0,    0,    0,
 
11512
    0,    0,  103,  104,    0,    0,    0,    0,    0,    0,
 
11513
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11514
    0,    0,    0,  571,    0,    0,    0,  105,  106,  107,
 
11515
  108,   56,   24,   57,   25,    0,    0,   26,   58,    0,
 
11516
   59,   60,   27,   61,   62,   63,   28,    0,    0,    0,
 
11517
    0,    0,   64,    0,   65,   30,   66,   67,   68,   69,
 
11518
    0,    0,   32,    0,    0,    0,   70,   33,    0,   71,
 
11519
   72,   34,    0,    0,    0,    0,    0,    0,    0,    0,
 
11520
    0,   73,    0,   36,    0,   37,   74,    0,    0,   38,
 
11521
    0,   75,   76,   77,   78,   79,   80,   39,   40,   81,
 
11522
   82,   41,   83,    0,   84,    0,    0,   85,   86,    0,
 
11523
    0,   87,   88,    0,    0,    0,    0,    0,    0,    0,
 
11524
    0,    0,    0,    0,    0,    0,   89,   90,   91,   92,
 
11525
   93,    0,    0,    0,   94,    0,    0,    0,   95,    0,
 
11526
    0,    0,    0,   96,   97,   98,   99,  100,    0,    0,
 
11527
    0,  101,    0,  102,    0,    0,    0,    0,    0,  103,
 
11528
  104,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11529
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11530
 1006,    0,    0,    0,  105,  572,  107,  108, 1006, 1006,
 
11531
 1006, 1006,    0,    0, 1006, 1006,    0, 1006, 1006, 1006,
 
11532
 1006, 1006, 1006, 1006,    0,    0,    0,    0,    0, 1006,
 
11533
    0, 1006, 1006, 1006, 1006, 1006, 1006,    0,    0, 1006,
 
11534
    0,    0,    0, 1006, 1006,    0, 1006, 1006, 1006,    0,
 
11535
    0,    0,    0,    0,    0,    0,    0,    0, 1006,    0,
 
11536
 1006,    0, 1006, 1006,    0,    0, 1006,    0, 1006, 1006,
 
11537
 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
 
11538
    0, 1006,    0,    0, 1006, 1006,    0,    0, 1006, 1006,
 
11539
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11540
    0,    0,    0, 1006, 1006, 1006, 1006, 1006,    0,    0,
 
11541
    0, 1006,    0,    0,    0, 1006,    0,    0,    0,    0,
 
11542
 1006, 1006, 1006, 1006, 1006,    0,    0,    0, 1006,    0,
 
11543
 1006,    0,    0,    0,    0,    0, 1006, 1006,    0,    0,
 
11544
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11545
    0,    0,    0,    0,    0,    0,    0,  612,    0,    0,
 
11546
    0, 1006, 1006, 1006, 1006,   56,   24,    0,   25,    0,
 
11547
    0,   26,  254,    0,    0,    0,   27,   61,   62,    0,
 
11548
   28,    0,    0,  182,    0,  182,   64,    0,  182,   30,
 
11549
    0,    0,    0,  182,    0,    0,   32,  182,    0,    0,
 
11550
    0,   33,    0,   71,   72,   34,  182,  613,    0,    0,
 
11551
    0,    0,    0,  182,  614,    0,    0,   36,  182,   37,
 
11552
   74,    0,  182,   38,    0,    0,   76,    0,   78,    0,
 
11553
   80,   39,   40,  255,  182,   41,  182,    0,    0,    0,
 
11554
  182,    0,  615,    0,    0,   87,   88,    0,  182,  182,
 
11555
    0,    0,  182,    0,    0,  182,    0,    0,    0,    0,
 
11556
   89,   90,   91,   92,   93,    0,    0,    0,    0,    0,
 
11557
    0,    0,   95,    0,    0,  616,    0,    0,   97,   98,
 
11558
   99,  100,    0,    0,    0,  101,    0,  102,    0,    0,
 
11559
 1030,    0,    0,  103,  104,    0,    0,    0,    0,    0,
 
11560
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11561
    0,    0,    0,    0,  785,    0,    0,    0,  105,  106,
 
11562
  107,  108,   56,   24,    0,   25,    0,    0,   26,  254,
 
11563
    0,    0,    0,   27,   61,   62,  182,   28,    0,    0,
 
11564
  182,    0,  182,   64,    0,  182,   30,    0,    0,    0,
 
11565
  182,    0,    0,   32,  182,    0,    0,    0,   33,    0,
 
11566
   71,   72,   34,  182,    0,    0,    0,    0,    0,    0,
 
11567
  182,    0,    0,    0,   36,  182,   37,   74,    0,  182,
 
11568
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
11569
  255,  182,   41,  182,    0,    0,    0,  182,    0,   86,
 
11570
    0,    0,   87,   88,    0,  182,  182,    0,    0,  182,
 
11571
    0,    0,  182,    0,    0,    0,    0,   89,   90,   91,
 
11572
   92,  302,    0,    0,    0,  531,  786,    0,    0,   95,
 
11573
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
11574
    0,    0,  101,    0,  102, 1030,    0,    0,    0,    0,
 
11575
  103,  104,    0,    0,    0,    0,    0,    0,    0,    0,
 
11576
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11577
    0,  976,    0,    0,    0,  105,  303,  107,  108,   56,
 
11578
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
11579
   27,   61,   62,  182,   28,    0,    0,   24,    0,   25,
 
11580
   64,    0,   26,   30,    0,    0,    0,   27,    0,    0,
 
11581
   32,   28,    0,    0,    0,   33,    0,   71,   72,   34,
 
11582
   30,  613,    0,    0,    0,    0,    0,   32,  614,    0,
 
11583
    0,   36,   33,   37,   74,    0,   34,   38,    0,    0,
 
11584
   76,    0,   78,    0,   80,   39,   40,  255,   36,   41,
 
11585
   37,    0,    0,    0,   38,    0,  615,    0,    0,   87,
 
11586
   88,    0,   39,   40,    0,    0,   41,    0,    0,  324,
 
11587
    0,    0,    0,    0,   89,   90,   91,   92,   93,    0,
 
11588
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
11589
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
11590
    0,  102,    0,    0,    0,    0,    0,  103,  104,    0,
 
11591
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11592
    0,    0,    0,    0,    0,    0,    0,    0,  785,    0,
 
11593
    0,    0,  105,  106,  107,  108,   56,   24,    0,   25,
 
11594
    0,    0,   26,  254,    0,    0,    0,   27,   61,   62,
 
11595
  368,   28,    0,    0,   24,    0,   25,   64,    0,   26,
 
11596
   30,    0,    0,    0,   27,    0,    0,   32,   28,    0,
 
11597
    0,    0,   33,    0,   71,   72,   34,   30,    0,    0,
 
11598
    0,    0,    0,    0,   32,    0,    0,    0,   36,   33,
 
11599
   37,   74,  982,   34,   38,    0,    0,   76,    0,   78,
 
11600
    0,   80,   39,   40,  255,   36,   41,   37,    0,    0,
 
11601
    0,   38,    0,   86,    0,    0,   87,   88,    0,   39,
 
11602
   40,    0,    0,   41,    0,    0,  533,    0,    0,    0,
 
11603
    0,   89,   90,   91,   92,  302,    0,    0,    0,  531,
 
11604
    0,    0,    0,   95,    0,    0,    0,    0,    0,   97,
 
11605
   98,   99,  100,    0,    0,    0,  101,    0,  102,    0,
 
11606
    0,    0,    0,    0,  103,  104,    0,    0,    0,    0,
 
11607
    0,    0,   56,   24,    0,   25,    0,    0,   26,  254,
 
11608
    0,    0,    0,   27,   61,   62,    0,   28,    0,  105,
 
11609
  303,  107,  108,   64,    0,    0,   30,    0,    0,    0,
 
11610
    0,    0,    0,   32,    0,    0,    0,  368,   33,    0,
 
11611
   71,   72,   34,    0,    0,    0,    0,    0,    0,    0,
 
11612
    0,    0,    0,    0,   36,    0,   37,   74,    0,    0,
 
11613
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
11614
  255,    0,   41,    0,    0,    0,    0,    0,    0,   86,
 
11615
    0,    0,   87,   88,    0,    0,    0,    0,    0,    0,
 
11616
    0,    0,    0,    0,    0,    0,    0,   89,   90,   91,
 
11617
   92,  768,    0,    0,    0,  769, 1050,    0,    0,   95,
 
11618
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
11619
    0,    0,  101,    0,  102,    0,    0,    0,    0,    0,
 
11620
  103,  104,    0,    0,    0,    0,    0,    0,   56,   24,
 
11621
    0,   25,    0,    0,   26,  254,    0,    0,    0,   27,
 
11622
   61,   62,    0,   28,    0,  105,  770,  107,  108,   64,
 
11623
    0,    0,   30,    0,    0,    0,  771,    0,    0,   32,
 
11624
    0,    0,    0,    0,   33,    0,   71,   72,   34,    0,
 
11625
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11626
   36,    0,   37,   74,    0,    0,   38,    0,    0,   76,
 
11627
    0,   78,    0,   80,   39,   40,  255,    0,   41,    0,
 
11628
    0,    0,    0,    0,    0,   86,    0,    0,   87,   88,
 
11629
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11630
    0,    0,    0,   89,   90,   91,   92,  768,    0,    0,
 
11631
    0,  769,    0,    0,    0,   95,    0,    0,    0,    0,
 
11632
    0,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
11633
  102,    0,    0,    0,    0,    0,  103,  104,    0,    0,
 
11634
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11635
    0,    0,    0,    0,    0,    0,    0,    0,    0,  785,
 
11636
    0,  105,  770,  107,  108,    0,    0,   56,   24,    0,
 
11637
   25,    0,  771,   26,  254,    0,    0,    0,   27,   61,
 
11638
   62,    0,   28,    0,    0,   24,    0,   25,   64,    0,
 
11639
   26,   30,    0,    0,    0,   27,    0,    0,   32,   28,
 
11640
    0,    0,    0,   33,    0,   71,   72,   34,   30,    0,
 
11641
    0,    0,    0,    0,    0,   32,    0,    0,    0,   36,
 
11642
   33,   37,   74,    0,   34,   38,    0,    0,   76,    0,
 
11643
   78,    0,   80,   39,   40,  255,   36,   41,   37,    0,
 
11644
    0,    0,   38,    0,   86,    0,    0,   87,   88,    0,
 
11645
   39,   40,    0,    0,   41,    0,    0,  588,    0,    0,
 
11646
    0,    0,   89,   90,   91,   92,  302,    0,    0,    0,
 
11647
  531,    0,    0,    0,   95,    0,    0,    0,    0,    0,
 
11648
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
11649
    0,    0,    0,    0,    0,  103,  104,    0,    0,    0,
 
11650
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11651
    0,    0,    0,    0,    0,    0,  777,    0,    0,    0,
 
11652
  105,  303,  107,  108,   56,   24,    0,   25,    0,    0,
 
11653
   26,  254,    0,    0,    0,   27,   61,   62,  368,   28,
 
11654
    0,    0,   24,    0,   25,   64,    0,   26,   30,    0,
 
11655
    0,    0,   27,    0,    0,   32,   28,    0,    0,    0,
 
11656
   33,    0,   71,   72,   34,   30,    0,    0,    0,    0,
 
11657
    0,    0,   32,    0,    0,    0,   36,   33,   37,   74,
 
11658
    0,   34,   38,    0,    0,   76,    0,   78,    0,   80,
 
11659
   39,   40,  255,   36,   41,   37,    0,    0,    0,   38,
 
11660
    0,   86,    0,    0,   87,   88,    0,   39,   40,    0,
 
11661
    0,   41,    0,    0,  801,    0,    0,    0,    0,   89,
 
11662
   90,   91,   92,  302,    0,    0,    0,    0,  934,    0,
 
11663
    0,   95,    0,    0,    0,    0,    0,   97,   98,   99,
 
11664
  100,    0,    0,    0,  101,    0,  102,    0,    0,    0,
 
11665
    0,    0,  103,  104,    0,    0,    0,    0,    0,    0,
 
11666
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11667
    0,    0,    0,  979,    0,    0,    0,  105,  303,  107,
 
11668
  108,   56,   24,    0,   25,    0,    0,   26,  254,    0,
 
11669
    0,    0,   27,   61,   62,  368,   28,    0,    0,  502,
 
11670
    0,  502,   64,    0,  502,   30,    0,    0,    0,  502,
 
11671
    0,    0,   32,  502,    0,    0,    0,   33,    0,   71,
 
11672
   72,   34,  502,    0,    0,    0,    0,    0,    0,  502,
 
11673
    0,    0,    0,   36,  502,   37,   74,    0,  502,   38,
 
11674
    0,    0,   76,    0,   78,    0,   80,   39,   40,  255,
 
11675
  502,   41,  502,    0,    0,    0,  502,    0,   86,    0,
 
11676
    0,   87,   88,    0,  502,  502,    0,    0,  502,    0,
 
11677
    0,  502,    0,    0,    0,    0,   89,   90,   91,   92,
 
11678
  302,    0,    0,    0,    0,  980,    0,    0,   95,    0,
 
11679
    0,    0,    0,    0,   97,   98,   99,  100,    0,    0,
 
11680
    0,  101,    0,  102,    0,    0,    0,    0,    0,  103,
 
11681
  104,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11682
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11683
  301,    0,    0,    0,  105,  303,  107,  108,   56,   24,
 
11684
    0,   25,    0,    0,   26,  254,    0,    0,    0,   27,
 
11685
   61,   62,  502,   28,    0,    0,  183,    0,  183,   64,
 
11686
    0,  183,   30,    0,    0,    0,  183,    0,    0,   32,
 
11687
  183,    0,    0,    0,   33,    0,   71,   72,   34,  183,
 
11688
    0,    0,    0,    0,    0,    0,  183,    0,    0,    0,
 
11689
   36,  183,   37,   74,    0,  183,   38,    0,    0,   76,
 
11690
    0,   78,    0,   80,   39,   40,  255,  183,   41,  183,
 
11691
    0,    0,    0,  183,    0,   86,    0,    0,   87,   88,
 
11692
    0,  183,  183,    0,    0,  183,    0,    0,  183,    0,
 
11693
    0,    0,    0,   89,   90,   91,   92,  302,    0,    0,
 
11694
    0,    0,    0,    0,    0,   95,    0,    0,    0,    0,
 
11695
    0,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
11696
  102,    0,    0,    0,    0,    0,  103,  104,    0,    0,
 
11697
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11698
    0,    0,    0,    0,    0,    0,    0,  310,    0,    0,
 
11699
    0,  105,  303,  107,  108,   56,   24,    0,   25,    0,
 
11700
    0,   26,  254,    0,    0,    0,   27,   61,   62,  183,
 
11701
   28,    0,    0,  182,    0,  182,   64,    0,  182,   30,
 
11702
    0,    0,    0,  182,    0,    0,   32,  182,    0,    0,
 
11703
    0,   33,    0,   71,   72,   34,  182,    0,    0,    0,
 
11704
    0,    0,    0,  182,    0,    0,    0,   36,  182,   37,
 
11705
   74,    0,  182,   38,    0,    0,   76,    0,   78,    0,
 
11706
   80,   39,   40,  255,  182,   41,  182,    0,    0,    0,
 
11707
  182,    0,   86,    0,    0,   87,   88,    0,  182,  182,
 
11708
    0,    0,  182,    0,    0,  182,    0,    0,    0,    0,
 
11709
   89,   90,   91,   92,  302,    0,    0,    0,    0,    0,
 
11710
    0,    0,   95,    0,    0,    0,    0,    0,   97,   98,
 
11711
   99,  100,    0,    0,    0,  101,    0,  102,    0,    0,
 
11712
    0,    0,    0,  103,  104,    0,    0,    0,    0,    0,
 
11713
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11714
    0,    0,    0,    0,  610,    0,    0,    0,  105,  303,
 
11715
  107,  108,   56,   24,    0,   25,    0,    0,   26,  254,
 
11716
    0,    0,    0,   27,   61,   62,  182,   28,    0,    0,
 
11717
  192,    0,  192,   64,    0,  192,   30,    0,    0,    0,
 
11718
  192,    0,    0,   32,  192,    0,    0,    0,   33,    0,
 
11719
   71,   72,   34,  192,    0,    0,    0,    0,    0,    0,
 
11720
  192,    0,    0,    0,   36,  192,   37,   74,    0,  192,
 
11721
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
11722
  255,  192,   41,  192,    0,    0,    0,  192,    0,   86,
 
11723
    0,    0,   87,   88,    0,  192,  192,    0,    0,  192,
 
11724
    0,    0,  192,    0,    0,    0,    0,   89,   90,   91,
 
11725
   92,   93,    0,    0,    0,    0,    0,    0,    0,   95,
 
11726
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
11727
    0,    0,  101,    0,  102,    0,    0,    0,    0,    0,
 
11728
  103,  104,    0,    0,    0,    0,    0,    0,    0,    0,
 
11729
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11730
    0,  777,    0,    0,    0,  105,  106,  107,  108,   56,
 
11731
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
11732
   27,   61,   62,  192,   28,    0,    0,    0,    0,    0,
 
11733
   64,    0,    0,   30,    0,    0,    0,    0,    0,    0,
 
11734
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
11735
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11736
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
11737
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
11738
    0,    0,    0,    0,    0,    0,   86,    0,    0,   87,
 
11739
   88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11740
    0,    0,    0,    0,   89,   90,   91,   92,  302,    0,
 
11741
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
11742
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
11743
    0,  102,    0,    0,    0,    0,    0,  103,  104,    0,
 
11744
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11745
    0,    0,    0,    0,    0,    0,    0,    0, 1092,    0,
 
11746
    0,    0,  105,  303,  107,  108,   56,   24,    0,   25,
 
11747
    0,    0,   26,  254,    0,    0,    0,   27,   61,   62,
 
11748
    0,   28,    0,    0,    0,    0,    0,   64,    0,    0,
 
11749
   30,    0,    0,    0,    0,    0,    0,   32,    0,    0,
 
11750
    0,    0,   33,    0,   71,   72,   34,    0,    0,    0,
 
11751
    0,    0,    0,    0,    0,    0,    0,    0,   36,    0,
 
11752
   37,   74,    0,    0,   38,    0,    0,   76,    0,   78,
 
11753
    0,   80,   39,   40,  255,    0,   41,    0,    0,    0,
 
11754
    0,    0,    0,   86,    0,    0,   87,   88,    0,    0,
 
11755
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11756
    0,   89,   90,   91,   92,   93,    0,    0,    0,    0,
 
11757
    0,    0,    0,   95,    0,    0,    0,    0,    0,   97,
 
11758
   98,   99,  100,    0,    0,    0,  101,    0,  102,    0,
 
11759
    0,    0,    0,    0,  103,  104,    0,    0,    0,    0,
 
11760
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11761
    0,    0,    0,    0,    0, 1237,    0,    0,    0,  105,
 
11762
 1093,  107,  108,   56,   24,    0,   25,    0,    0,   26,
 
11763
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
11764
    0,    0,    0,    0,   64,    0,    0,   30,    0,    0,
 
11765
    0,    0,    0,    0,   32,    0,    0,    0,    0,   33,
 
11766
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
11767
    0,    0,    0,    0,    0,   36,    0,   37,   74,    0,
 
11768
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
11769
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
11770
   86,    0,    0,   87,   88,    0,    0,    0,    0,    0,
 
11771
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
11772
   91,   92,  302,    0,    0,    0,    0,    0,    0,    0,
 
11773
   95,    0,    0,    0,    0,    0,   97,   98,   99,  100,
 
11774
    0,    0,    0,  101,    0,  102,    0,    0,    0,    0,
 
11775
    0,  103,  104,    0,    0,    0,    0,    0,    0,    0,
 
11776
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11777
    0,    0,  340,    0,    0,    0,  105,  303,  107,  108,
 
11778
   56,   24,    0,   25,    0,    0,   26,  254,    0,    0,
 
11779
    0,   27,   61,   62,    0,   28,    0,    0,    0,    0,
 
11780
    0,   64,    0,    0,   30,    0,    0,    0,    0,    0,
 
11781
    0,   32,    0,    0,    0,    0,   33,    0,   71,   72,
 
11782
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11783
    0,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
11784
    0,   76,    0,   78,    0,   80,   39,   40,  255,    0,
 
11785
   41,    0,    0,    0,    0,    0,    0,    0,    0,  341,
 
11786
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11787
    0,    0,    0,    0,    0,   89,   90,   91,  256,  342,
 
11788
    0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
 
11789
    0,    0,    0,   97,   98,   99,  100,  933,    0,    0,
 
11790
  101,    0,  102,  340,    0,    0,    0,    0,  103,  104,
 
11791
    0,   56,   24,    0,   25,    0,    0,   26,  254,    0,
 
11792
    0,    0,   27,   61,   62,    0,   28,    0,    0,    0,
 
11793
    0,    0,   64,  105,  257,   30,  108,    0,    0,    0,
 
11794
    0,    0,   32,    0,    0,    0,    0,   33,    0,   71,
 
11795
   72,   34,    0,    0,    0,    0,    0,    0,    0,    0,
 
11796
    0,    0,    0,   36,    0,   37,   74,    0,    0,   38,
 
11797
    0,    0,   76,    0,   78,    0,   80,   39,   40,  255,
 
11798
    0,   41,    0,    0,    0,    0,    0,    0,    0,    0,
 
11799
  341,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11800
    0,    0,    0,    0,    0,    0,   89,   90,   91,  256,
 
11801
  342,    0,    0,    0,    0,    0,    0,    0,   95,    0,
 
11802
    0,    0,    0,    0,   97,   98,   99,  100,    0,    0,
 
11803
    0,  101,    0,  102,  346,    0,    0,    0,    0,  103,
 
11804
  104,    0,   56,   24,    0,   25,    0,    0,   26,  254,
 
11805
    0,    0,    0,   27,   61,   62,    0,   28,    0,    0,
 
11806
    0,    0,    0,   64,  105,  257,   30,  108,    0,    0,
 
11807
    0,    0,    0,   32,    0,    0,    0,    0,   33,    0,
 
11808
   71,   72,   34,    0,    0,    0,    0,    0,    0,    0,
 
11809
    0,    0,    0,    0,   36,    0,   37,   74,    0,    0,
 
11810
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
11811
  255,    0,   41,    0,    0,    0,    0,    0,    0,    0,
 
11812
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11813
    0,    0,    0,    0,    0,    0,    0,   89,   90,   91,
 
11814
  256,  342,    0,    0,    0,    0,    0,    0,    0,   95,
 
11815
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
11816
    0,    0,  101,    0,  102,  348,    0,    0,    0,    0,
 
11817
  103,  104,    0,   56,   24,    0,   25,    0,    0,   26,
 
11818
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
11819
    0,    0,    0,    0,   64,  105,  257,   30,  108,    0,
 
11820
    0,    0,    0,    0,   32,    0,    0,    0,    0,   33,
 
11821
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
11822
    0,    0,    0,    0,    0,   36,    0,   37,   74,    0,
 
11823
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
11824
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
11825
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11826
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
11827
   91,  256,  342,    0,    0,    0,    0,    0,    0,    0,
 
11828
   95,    0,    0,    0,    0,    0,   97,   98,   99,  100,
 
11829
    0,    0,    0,  101,    0,  102,  350,    0,    0,    0,
 
11830
    0,  103,  104,    0,   56,   24,    0,   25,    0,    0,
 
11831
   26,  254,    0,    0,    0,   27,   61,   62,    0,   28,
 
11832
    0,    0,    0,    0,    0,   64,  105,  257,   30,  108,
 
11833
    0,    0,    0,    0,    0,   32,    0,    0,    0,    0,
 
11834
   33,    0,   71,   72,   34,    0,    0,    0,    0,    0,
 
11835
    0,    0,    0,    0,    0,    0,   36,    0,   37,   74,
 
11836
    0,    0,   38,    0,    0,   76,    0,   78,    0,   80,
 
11837
   39,   40,  255,    0,   41,    0,    0,    0,    0,    0,
 
11838
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11839
    0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
 
11840
   90,   91,  256,  342,    0,    0,    0,    0,    0,    0,
 
11841
    0,   95,    0,    0,    0,    0,    0,   97,   98,   99,
 
11842
  100,    0,    0,    0,  101,    0,  102,  352,    0,    0,
 
11843
    0,    0,  103,  104,    0,   56,   24,    0,   25,    0,
 
11844
    0,   26,  254,    0,    0,    0,   27,   61,   62,    0,
 
11845
   28,    0,    0,    0,    0,    0,   64,  105,  257,   30,
 
11846
  108,    0,    0,    0,    0,    0,   32,    0,    0,    0,
 
11847
    0,   33,    0,   71,   72,   34,    0,    0,    0,    0,
 
11848
    0,    0,    0,    0,    0,    0,    0,   36,    0,   37,
 
11849
   74,    0,    0,   38,    0,    0,   76,    0,   78,    0,
 
11850
   80,   39,   40,  255,    0,   41,    0,    0,    0,    0,
 
11851
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11852
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11853
   89,   90,   91,  256,  342,    0,    0,    0,    0,    0,
 
11854
    0,    0,   95,    0,    0,    0,    0,    0,   97,   98,
 
11855
   99,  100,    0,    0,    0,  101,    0,  102,  354,    0,
 
11856
    0,    0,    0,  103,  104,    0,   56,   24,    0,   25,
 
11857
    0,    0,   26,  254,    0,    0,    0,   27,   61,   62,
 
11858
    0,   28,    0,    0,    0,    0,    0,   64,  105,  257,
 
11859
   30,  108,    0,    0,    0,    0,    0,   32,    0,    0,
 
11860
    0,    0,   33,    0,   71,   72,   34,    0,    0,    0,
 
11861
    0,    0,    0,    0,    0,    0,    0,    0,   36,    0,
 
11862
   37,   74,    0,    0,   38,    0,    0,   76,    0,   78,
 
11863
    0,   80,   39,   40,  255,    0,   41,    0,    0,    0,
 
11864
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11865
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11866
    0,   89,   90,   91,  256,  342,    0,    0,    0,    0,
 
11867
    0,    0,    0,   95,    0,    0,    0,    0,    0,   97,
 
11868
   98,   99,  100,    0,    0,    0,  101,    0,  102,  356,
 
11869
    0,    0,    0,    0,  103,  104,    0,   56,   24,    0,
 
11870
   25,    0,    0,   26,  254,    0,    0,    0,   27,   61,
 
11871
   62,    0,   28,    0,    0,    0,    0,    0,   64,  105,
 
11872
  257,   30,  108,    0,    0,    0,    0,    0,   32,    0,
 
11873
    0,    0,    0,   33,    0,   71,   72,   34,    0,    0,
 
11874
    0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
 
11875
    0,   37,   74,    0,    0,   38,    0,    0,   76,    0,
 
11876
   78,    0,   80,   39,   40,  255,    0,   41,    0,    0,
 
11877
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11878
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11879
    0,    0,   89,   90,   91,  256,  342,    0,    0,    0,
 
11880
    0,    0,    0,    0,   95,    0,    0,    0,    0,    0,
 
11881
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
11882
  358,    0,    0,    0,    0,  103,  104,    0,   56,   24,
 
11883
    0,   25,    0,    0,   26,  254,    0,    0,    0,   27,
 
11884
   61,   62,    0,   28,    0,    0,    0,    0,    0,   64,
 
11885
  105,  257,   30,  108,    0,    0,    0,    0,    0,   32,
 
11886
    0,    0,    0,    0,   33,    0,   71,   72,   34,    0,
 
11887
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11888
   36,    0,   37,   74,    0,    0,   38,    0,    0,   76,
 
11889
    0,   78,    0,   80,   39,   40,  255,    0,   41,    0,
 
11890
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11891
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11892
    0,    0,    0,   89,   90,   91,  256,  342,    0,    0,
 
11893
    0,    0,    0,    0,    0,   95,    0,    0,    0,    0,
 
11894
    0,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
11895
  102,  360,    0,    0,    0,    0,  103,  104,    0,   56,
 
11896
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
11897
   27,   61,   62,    0,   28,    0,    0,    0,    0,    0,
 
11898
   64,  105,  257,   30,  108,    0,    0,    0,    0,    0,
 
11899
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
11900
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11901
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
11902
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
11903
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11904
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11905
    0,    0,    0,    0,   89,   90,   91,  256,  342,    0,
 
11906
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
11907
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
11908
    0,  102,  340,    0,    0,    0,    0,  103,  104,    0,
 
11909
   56,   24,    0,   25,    0,    0,   26,  254,    0,    0,
 
11910
    0,   27,   61,   62,    0,   28,    0,    0,    0,    0,
 
11911
    0,   64,  105,  257,   30,  108,    0,    0,    0,    0,
 
11912
    0,   32,    0,    0,    0,    0,   33,    0,   71,   72,
 
11913
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11914
    0,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
11915
    0,   76,    0,   78,    0,   80,   39,   40,  255,    0,
 
11916
   41,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11917
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11918
    0,    0,    0,    0,    0,   89,   90,   91,  256,  342,
 
11919
    0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
 
11920
    0,    0,    0,   97,   98,   99,  100,    0,    0,    0,
 
11921
  101,    0,  102,  635,    0,    0,    0,    0,  103,  104,
 
11922
    0,   56,   24,    0,   25,    0,    0,   26,  254,    0,
 
11923
    0,    0,   27,   61,   62,    0,   28,    0,    0,    0,
 
11924
    0,    0,   64,  105,  257,   30,  108,    0,    0,    0,
 
11925
    0,    0,   32,    0,    0,    0,    0,   33,    0,   71,
 
11926
   72,   34,    0,    0,    0,    0,    0,    0,    0,    0,
 
11927
    0,    0,    0,   36,    0,   37,   74,    0,    0,   38,
 
11928
    0,    0,   76,    0,   78,    0,   80,   39,   40,  255,
 
11929
    0,   41,    0,    0,    0,    0,    0,    0,    0,    0,
 
11930
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11931
    0,    0,    0,    0,    0,    0,   89,   90,   91,  256,
 
11932
  342,    0,    0,    0,    0,    0,    0,    0,   95,    0,
 
11933
    0,    0,    0,    0,   97,   98,   99,  100,    0,    0,
 
11934
    0,  101,    0,  102,  637,    0,    0,    0,    0,  103,
 
11935
  104,    0,   56,   24,    0,   25,    0,    0,   26,  254,
 
11936
    0,    0,    0,   27,   61,   62,    0,   28,    0,    0,
 
11937
    0,    0,    0,   64,  105,  257,   30,  108,    0,    0,
 
11938
    0,    0,    0,   32,    0,    0,    0,    0,   33,    0,
 
11939
   71,   72,   34,    0,    0,    0,    0,    0,    0,    0,
 
11940
    0,    0,    0,    0,   36,    0,   37,   74,    0,    0,
 
11941
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
11942
  255,    0,   41,    0,    0,    0,    0,    0,    0,    0,
 
11943
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11944
    0,    0,    0,    0,    0,    0,    0,   89,   90,   91,
 
11945
  256,  342,    0,    0,    0,    0,    0,    0,    0,   95,
 
11946
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
11947
    0,    0,  101,    0,  102,  639,    0,    0,    0,    0,
 
11948
  103,  104,    0,   56,   24,    0,   25,    0,    0,   26,
 
11949
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
11950
    0,    0,    0,    0,   64,  105,  257,   30,  108,    0,
 
11951
    0,    0,    0,    0,   32,    0,    0,    0,    0,   33,
 
11952
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
11953
    0,    0,    0,    0,    0,   36,    0,   37,   74,    0,
 
11954
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
11955
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
11956
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11957
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
11958
   91,  256,  342,    0,    0,    0,    0,    0,    0,    0,
 
11959
   95,    0,    0,    0,    0,    0,   97,   98,   99,  100,
 
11960
    0,    0,    0,  101,    0,  102,  645,    0,    0,    0,
 
11961
    0,  103,  104,    0,   56,   24,    0,   25,    0,    0,
 
11962
   26,  254,    0,    0,    0,   27,   61,   62,    0,   28,
 
11963
    0,    0,    0,    0,    0,   64,  105,  257,   30,  108,
 
11964
    0,    0,    0,    0,    0,   32,    0,    0,    0,    0,
 
11965
   33,    0,   71,   72,   34,    0,    0,    0,    0,    0,
 
11966
    0,    0,    0,    0,    0,    0,   36,    0,   37,   74,
 
11967
    0,    0,   38,    0,    0,   76,    0,   78,    0,   80,
 
11968
   39,   40,  255,    0,   41,    0,    0,    0,    0,    0,
 
11969
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11970
    0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
 
11971
   90,   91,  256,  342,    0,    0,    0,    0,    0,    0,
 
11972
    0,   95,    0,    0,    0,    0,    0,   97,   98,   99,
 
11973
  100,    0,    0,    0,  101,    0,  102,  647,    0,    0,
 
11974
    0,    0,  103,  104,    0,   56,   24,    0,   25,    0,
 
11975
    0,   26,  254,    0,    0,    0,   27,   61,   62,    0,
 
11976
   28,    0,    0,    0,    0,    0,   64,  105,  257,   30,
 
11977
  108,    0,    0,    0,    0,    0,   32,    0,    0,    0,
 
11978
    0,   33,    0,   71,   72,   34,    0,    0,    0,    0,
 
11979
    0,    0,    0,    0,    0,    0,    0,   36,    0,   37,
 
11980
   74,    0,    0,   38,    0,    0,   76,    0,   78,    0,
 
11981
   80,   39,   40,  255,    0,   41,    0,    0,    0,    0,
 
11982
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11983
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11984
   89,   90,   91,  256,  342,    0,    0,    0,    0,    0,
 
11985
    0,    0,   95,    0,    0,    0,    0,    0,   97,   98,
 
11986
   99,  100,    0,    0,    0,  101,    0,  102,  649,    0,
 
11987
    0,    0,    0,  103,  104,    0,   56,   24,    0,   25,
 
11988
    0,    0,   26,  254,    0,    0,    0,   27,   61,   62,
 
11989
    0,   28,    0,    0,    0,    0,    0,   64,  105,  257,
 
11990
   30,  108,    0,    0,    0,    0,    0,   32,    0,    0,
 
11991
    0,    0,   33,    0,   71,   72,   34,    0,    0,    0,
 
11992
    0,    0,    0,    0,    0,    0,    0,    0,   36,    0,
 
11993
   37,   74,    0,    0,   38,    0,    0,   76,    0,   78,
 
11994
    0,   80,   39,   40,  255,    0,   41,    0,    0,    0,
 
11995
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11996
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
11997
    0,   89,   90,   91,  256,  342,    0,    0,    0,    0,
 
11998
    0,    0,    0,   95,    0,    0,    0,    0,    0,   97,
 
11999
   98,   99,  100,    0,    0,    0,  101,    0,  102,  651,
 
12000
    0,    0,    0,    0,  103,  104,    0,   56,   24,    0,
 
12001
   25,    0,    0,   26,  254,    0,    0,    0,   27,   61,
 
12002
   62,    0,   28,    0,    0,    0,    0,    0,   64,  105,
 
12003
  257,   30,  108,    0,    0,    0,    0,    0,   32,    0,
 
12004
    0,    0,    0,   33,    0,   71,   72,   34,    0,    0,
 
12005
    0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
 
12006
    0,   37,   74,    0,    0,   38,    0,    0,   76,    0,
 
12007
   78,    0,   80,   39,   40,  255,    0,   41,    0,    0,
 
12008
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12009
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12010
    0,    0,   89,   90,   91,  256,  342,    0,    0,    0,
 
12011
    0,    0,    0,    0,   95,    0,    0,    0,    0,    0,
 
12012
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
12013
  653,    0,    0,    0,    0,  103,  104,    0,   56,   24,
 
12014
    0,   25,    0,    0,   26,  254,    0,    0,    0,   27,
 
12015
   61,   62,    0,   28,    0,    0,    0,    0,    0,   64,
 
12016
  105,  257,   30,  108,    0,    0,    0,    0,    0,   32,
 
12017
    0,    0,    0,    0,   33,    0,   71,   72,   34,    0,
 
12018
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12019
   36,    0,   37,   74,    0,    0,   38,    0,    0,   76,
 
12020
    0,   78,    0,   80,   39,   40,  255,    0,   41,    0,
 
12021
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12022
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12023
    0,    0,    0,   89,   90,   91,  256,  342,    0,    0,
 
12024
    0,    0,    0,    0,    0,   95,    0,    0,    0,    0,
 
12025
    0,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
12026
  102,  655,    0,    0,    0,    0,  103,  104,    0,   56,
 
12027
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
12028
   27,   61,   62,    0,   28,    0,    0,    0,    0,    0,
 
12029
   64,  105,  257,   30,  108,    0,    0,    0,    0,    0,
 
12030
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
12031
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12032
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
12033
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
12034
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12035
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12036
    0,    0,    0,    0,   89,   90,   91,  256,  342,    0,
 
12037
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
12038
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
12039
    0,  102,  657,    0,    0,    0,    0,  103,  104,    0,
 
12040
   56,   24,    0,   25,    0,    0,   26,  254,    0,    0,
 
12041
    0,   27,   61,   62,    0,   28,    0,    0,    0,    0,
 
12042
    0,   64,  105,  257,   30,  108,    0,    0,    0,    0,
 
12043
    0,   32,    0,    0,    0,    0,   33,    0,   71,   72,
 
12044
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12045
    0,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
12046
    0,   76,    0,   78,    0,   80,   39,   40,  255,    0,
 
12047
   41,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12048
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12049
    0,    0,    0,    0,    0,   89,   90,   91,  256,  342,
 
12050
    0,    0,    0,    0,    0,    0,    0,   95,    0,    0,
 
12051
    0,    0,    0,   97,   98,   99,  100,    0,    0,    0,
 
12052
  101,    0,  102,  659,    0,    0,    0,    0,  103,  104,
 
12053
    0,   56,   24,    0,   25,    0,    0,   26,  254,    0,
 
12054
    0,    0,   27,   61,   62,    0,   28,    0,    0,    0,
 
12055
    0,    0,   64,  105,  257,   30,  108,    0,    0,    0,
 
12056
    0,    0,   32,    0,    0,    0,    0,   33,    0,   71,
 
12057
   72,   34,    0,    0,    0,    0,    0,    0,    0,    0,
 
12058
    0,    0,    0,   36,    0,   37,   74,    0,    0,   38,
 
12059
    0,    0,   76,    0,   78,    0,   80,   39,   40,  255,
 
12060
    0,   41,    0,    0,    0,    0,    0,    0,    0,    0,
 
12061
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12062
    0,    0,    0,    0,    0,    0,   89,   90,   91,  256,
 
12063
  342,    0,    0,    0,    0,    0,    0,    0,   95,    0,
 
12064
    0,    0,    0,    0,   97,   98,   99,  100,    0,    0,
 
12065
    0,  101,    0,  102,  661,    0,    0,    0,    0,  103,
 
12066
  104,    0,   56,   24,    0,   25,    0,    0,   26,  254,
 
12067
    0,    0,    0,   27,   61,   62,    0,   28,    0,    0,
 
12068
    0,    0,    0,   64,  105,  257,   30,  108,    0,    0,
 
12069
    0,    0,    0,   32,    0,    0,    0,    0,   33,    0,
 
12070
   71,   72,   34,    0,    0,    0,    0,    0,    0,    0,
 
12071
    0,    0,    0,    0,   36,    0,   37,   74,    0,    0,
 
12072
   38,    0,    0,   76,    0,   78,    0,   80,   39,   40,
 
12073
  255,    0,   41,    0,    0,    0,    0,    0,    0,    0,
 
12074
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12075
    0,    0,    0,    0,    0,    0,    0,   89,   90,   91,
 
12076
  256,  342,    0,    0,    0,    0,    0,    0,    0,   95,
 
12077
    0,    0,    0,    0,    0,   97,   98,   99,  100,    0,
 
12078
    0,    0,  101,    0,  102,  663,    0,    0,    0,    0,
 
12079
  103,  104,    0,   56,   24,    0,   25,    0,    0,   26,
 
12080
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
12081
    0,    0,    0,    0,   64,  105,  257,   30,  108,    0,
 
12082
    0,    0,    0,    0,   32,    0,    0,    0,    0,   33,
 
12083
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
12084
    0,    0,    0,    0,    0,   36,    0,   37,   74,    0,
 
12085
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
12086
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
12087
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12088
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
12089
   91,  256,  342,    0,    0,    0,    0,    0,    0,    0,
 
12090
   95,    0,    0,    0,    0,    0,   97,   98,   99,  100,
 
12091
    0,    0,    0,  101,    0,  102,  665,    0,    0,    0,
 
12092
    0,  103,  104,    0,   56,   24,    0,   25,    0,    0,
 
12093
   26,  254,    0,    0,    0,   27,   61,   62,    0,   28,
 
12094
    0,    0,    0,    0,    0,   64,  105,  257,   30,  108,
 
12095
    0,    0,    0,    0,    0,   32,    0,    0,    0,    0,
 
12096
   33,    0,   71,   72,   34,    0,    0,    0,    0,    0,
 
12097
    0,    0,    0,    0,    0,    0,   36,    0,   37,   74,
 
12098
    0,    0,   38,    0,    0,   76,    0,   78,    0,   80,
 
12099
   39,   40,  255,    0,   41,    0,    0,    0,    0,    0,
 
12100
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12101
    0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
 
12102
   90,   91,  256,  342,    0,    0,    0,    0,    0,    0,
 
12103
    0,   95,    0,    0,    0,    0,    0,   97,   98,   99,
 
12104
  100,    0,    0,    0,  101,    0,  102,  667,    0,    0,
 
12105
    0,    0,  103,  104,    0,   56,   24,    0,   25,    0,
 
12106
    0,   26,  254,    0,    0,    0,   27,   61,   62,    0,
 
12107
   28,    0,    0,    0,    0,    0,   64,  105,  257,   30,
 
12108
  108,    0,    0,    0,    0,    0,   32,    0,    0,    0,
 
12109
    0,   33,    0,   71,   72,   34,    0,    0,    0,    0,
 
12110
    0,    0,    0,    0,    0,    0,    0,   36,    0,   37,
 
12111
   74,    0,    0,   38,    0,    0,   76,    0,   78,    0,
 
12112
   80,   39,   40,  255,    0,   41,    0,    0,    0,    0,
 
12113
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12114
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12115
   89,   90,   91,  256,  342,    0,    0,    0,    0,    0,
 
12116
    0,    0,   95,    0,    0,    0,    0,    0,   97,   98,
 
12117
   99,  100,    0,    0,    0,  101,    0,  102,  669,    0,
 
12118
    0,    0,    0,  103,  104,    0,   56,   24,    0,   25,
 
12119
    0,    0,   26,  254,    0,    0,    0,   27,   61,   62,
 
12120
    0,   28,    0,    0,    0,    0,    0,   64,  105,  257,
 
12121
   30,  108,    0,    0,    0,    0,    0,   32,    0,    0,
 
12122
    0,    0,   33,    0,   71,   72,   34,    0,    0,    0,
 
12123
    0,    0,    0,    0,    0,    0,    0,    0,   36,    0,
 
12124
   37,   74,    0,    0,   38,    0,    0,   76,    0,   78,
 
12125
    0,   80,   39,   40,  255,    0,   41,    0,    0,    0,
 
12126
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12127
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12128
    0,   89,   90,   91,  256,  342,    0,    0,    0,    0,
 
12129
    0,    0,    0,   95,    0,    0,    0,    0,    0,   97,
 
12130
   98,   99,  100,    0,    0,    0,  101,    0,  102,  671,
 
12131
    0,    0,    0,    0,  103,  104,    0,   56,   24,    0,
 
12132
   25,    0,    0,   26,  254,    0,    0,    0,   27,   61,
 
12133
   62,    0,   28,    0,    0,    0,    0,    0,   64,  105,
 
12134
  257,   30,  108,    0,    0,    0,    0,    0,   32,    0,
 
12135
    0,    0,    0,   33,    0,   71,   72,   34,    0,    0,
 
12136
    0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
 
12137
    0,   37,   74,    0,    0,   38,    0,    0,   76,    0,
 
12138
   78,    0,   80,   39,   40,  255,    0,   41,    0,    0,
 
12139
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12140
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12141
    0,    0,   89,   90,   91,  256,  342,    0,    0,    0,
 
12142
    0,    0,    0,    0,   95,    0,    0,    0,    0,    0,
 
12143
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
12144
  673,    0,    0,    0,    0,  103,  104,    0,   56,   24,
 
12145
    0,   25,    0,    0,   26,  254,    0,    0,    0,   27,
 
12146
   61,   62,    0,   28,    0,    0,    0,    0,    0,   64,
 
12147
  105,  257,   30,  108,    0,    0,    0,    0,    0,   32,
 
12148
    0,    0,    0,    0,   33,    0,   71,   72,   34,    0,
 
12149
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12150
   36,    0,   37,   74,    0,    0,   38,    0,    0,   76,
 
12151
    0,   78,    0,   80,   39,   40,  255,    0,   41,    0,
 
12152
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12153
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12154
    0,    0,    0,   89,   90,   91,  256,  342,    0,    0,
 
12155
    0,    0,    0,    0,    0,   95,    0,    0,    0,    0,
 
12156
    0,   97,   98,   99,  100,    0,    0,    0,  101,    0,
 
12157
  102,  841,    0,    0,    0,    0,  103,  104,    0,   56,
 
12158
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
12159
   27,   61,   62,    0,   28,    0,    0,    0,    0,    0,
 
12160
   64,  105,  257,   30,  108,    0,    0,    0,    0,    0,
 
12161
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
12162
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12163
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
12164
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
12165
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12166
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12167
    0,    0,    0,    0,   89,   90,   91,  256,  342,    0,
 
12168
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
12169
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
12170
    0,  102,  513,    0,    0,    0,    0,  103,  104,  347,
 
12171
   56,   24,    0,   25,    0,    0,   26,  254,    0,    0,
 
12172
    0,   27,   61,   62,    0,   28,    0,    0,    0,    0,
 
12173
    0,   64,  105,  257,   30,  108,    0,    0,    0,    0,
 
12174
    0,   32,    0,    0,    0,  347,   33,    0,   71,   72,
 
12175
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12176
    0,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
12177
    0,   76,    0,   78,    0,   80,   39,   40,  255,    0,
 
12178
   41,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12179
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12180
    0,    0,    0,    0,    0,   89,   90,   91,  256,  291,
 
12181
    0,    0,    0,    0,    0,    0,    0,   95,  347,  347,
 
12182
  347,  347,  796,    0,    0,  347,  347,    0,    0,  347,
 
12183
  347,  347,  347,  347,  347,  347,  347,  347,    0,  347,
 
12184
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
12185
  347,  347,  347,  347,  347,  347,  347,  347,  347,  347,
 
12186
  347,    0,    0,  105,  514,    0,    0,  347,    0,   52,
 
12187
  347,   52,    0,   52,    0,   52,    0,    0,   52,    0,
 
12188
   52,   52,    0,   52,    0,   52,    0,   52,    0,   52,
 
12189
   52,   52,   52,    0,    0,   52,   52,    0,    0,    0,
 
12190
    0,   52,   52,   52,   52,   52,    0,    0,   52,    0,
 
12191
   52,    0,   52,    0,   52,   52,    0,   52,   52,   52,
 
12192
   52,    0,    0,   52,   52,   52,   52,    0,    0,   52,
 
12193
   52,   52,    0,    0,    0,    0,    0,    0,   52,   52,
 
12194
    0,   52,   52,    0,   52,   52,   52,    0,    0,    0,
 
12195
   52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12196
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12197
   52,    0,   52,   52,   51,    0,    0,    0,   51,    0,
 
12198
   51,    0,    0,   51,    0,   51,   51,    0,   51,    0,
 
12199
   51,    0,   51,    0,   51,   51,   51,   51,    0,    0,
 
12200
   51,   51,    0,    0,    0,    0,   51,    0,   51,   51,
 
12201
   51,    0,    0,   51,    0,   51,    0,   51,    0,    0,
 
12202
   51,    0,   51,   51,   51,   51,   52,    0,    0,   51,
 
12203
   51,   51,    0,    0,   51,   51,   51,    0,    0,    0,
 
12204
    0,    0,    0,   51,   51,    0,   51,   51,    0,   51,
 
12205
   51,   51,    0,    0,    0,   51,    0,    0,    0,    0,
 
12206
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12207
    0,    0,    0,   51,    0,   51,    0,   51,    0,   51,
 
12208
    0,   86,   51,    0,   51,   51,    0,   51,    0,   51,
 
12209
   51,   51,    0,   51,   51,   51,   51,    0,    0,   51,
 
12210
   51,    0,    0,    0,    0,   51,    0,   51,   51,   51,
 
12211
    0,    0,   51,    0,   51,    0,   51,    0,    0,   51,
 
12212
    0,   51,   51,   51,   51,    0,    0,    0,   51,   51,
 
12213
   51,   51,    0,   51,   51,   51,    0,    0,    0,    0,
 
12214
    0,    0,   51,   51,    0,   51,   51,    0,   51,   51,
 
12215
   51,    0,    0,    0,   51,    0,    0,    0,    0,    0,
 
12216
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12217
    0,    0,   52,    0,   51,    0,   52,    0,   52,    0,
 
12218
   87,   52,    0,   52,   52,    0,   52,    0,   52,   51,
 
12219
   52,    0,   52,   52,   52,   52,    0,    0,   52,   52,
 
12220
    0,    0,    0,    0,   52,    0,   52,   52,   52,    0,
 
12221
    0,   52,    0,   52,    0,   52,    0,    0,   52,    0,
 
12222
   52,   52,   52,   52,    0,    0,    0,   52,   52,   52,
 
12223
   51,    0,   52,   52,   52,    0,    0,    0,    0,    0,
 
12224
    0,   52,   52,    0,   52,   52,    0,   52,   52,   52,
 
12225
    0,    0,    0,   52,    0,    0,    0,    0,   51,    0,
 
12226
    0,    0,   51,    0,   51,    0,    0,   51,    0,   51,
 
12227
   51,    0,   51,   52,   51,    0,   51,    0,   51,   51,
 
12228
   51,   51,    0,    0,   51,   51,    0,    0,   52,    0,
 
12229
   51,    0,   51,   51,   51,    0,    0,   51,    0,   51,
 
12230
    0,   51,    0,    0,   51,    0,   51,   51,   51,   51,
 
12231
    0,    0,    0,   51,   51,   51,    0,    0,   51,   51,
 
12232
   51,    0,    0,    0,    0,    0,    0,   51,   51,   52,
 
12233
   51,   51,    0,   51,   51,   51,    0,    0,    0,   51,
 
12234
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12235
    0,    0,   51,    0,    0,    0,   51,    0,   51,   51,
 
12236
    0,   51,    0,   51,   51,  222,   51,    0,   51,    0,
 
12237
   51,    0,   51,   51,   51,   51,    0,    0,   51,   51,
 
12238
    0,    0,    0,    0,   51,    0,   51,   51,   51,    0,
 
12239
    0,   51,    0,   51,  347,   51,    0,    0,   51,    0,
 
12240
   51,   51,   51,   51,    0,    0,    0,   51,   51,   51,
 
12241
    0,    0,   51,   51,   51,   51,    0,  347,    0,    0,
 
12242
    0,   51,   51,    0,   51,   51,    0,   51,   51,   51,
 
12243
  347,    0,    0,   51,    0,  347,    0,    0,  347,    0,
 
12244
  347,    0,  347,  347,  347,  347,    0,    0,    0,    0,
 
12245
  347,    0,    0,   51,  347,    0,    0,    0,  347,  223,
 
12246
    0,    0,    0,    0,  369,    0,  347,    0,    0,  347,
 
12247
    0,  347,    0,    0,    0,    0,    0,    0,    0,    0,
 
12248
    0,    0,    0,    0,    0,    0,    0,  369,    0,    0,
 
12249
  347,    0,    0,    0,    0,  347,    0,    0,    0,    0,
 
12250
  369,  347,  347,    0,  273,  369,  347,    0,  240,   51,
 
12251
  369,    0,  369,  369,  369,  369,    0,    0,    0,  347,
 
12252
  369,    0,    0,    0,  369,    0,  368,    0,  369,    0,
 
12253
    0,    0,    0,    0,    0,    0,  369,    0,    0,  369,
 
12254
    0,  369,    0,    0,    0,    0,    0,    0,    0,  368,
 
12255
    0,  347,    0,    0,    0,    0,    0,    0,    0,    0,
 
12256
    0,    0,  368,    0,  465,  369,    0,  368,    0,    0,
 
12257
  239,  369,  368,    0,  368,  368,  368,  368,    0,    0,
 
12258
    0,    0,  368,    0,    0,    0,  368,  466,    0,    0,
 
12259
  368,    0,    0,    0,    0,    0,    0,    0,  368,    0,
 
12260
  467,  368,  465,  368,    0,  469,    0,    0,    0,    0,
 
12261
  470,    0,  471,  472,  473,  474,    0,    0,    0,    0,
 
12262
  475,  369,    0,    0,  476,  466,    0,  368, 1380,    0,
 
12263
    0,    0,    0,  368,    0,    0,  477,    0,  467,  478,
 
12264
  465,  479,    0,  469,    0,    0,    0,    0,  470,    0,
 
12265
  471,  472,  473,  474,    0,    0,    0,    0,  475,    0,
 
12266
    0,    0,  476,  466,    0,  480, 1380,    0,    0,    0,
 
12267
    0, 1381,    0,    0,  477,    0,  467,  478,    0,  479,
 
12268
    0,  469,    0,  368,    0,    0,  470,    0,  471,  472,
 
12269
  473,  474,    0,    0,    0,    0,  475,    0,    0,    0,
 
12270
  476,    0,    0,  480,    0,    0,    0,    0,    0,    0,
 
12271
    0,    0,  477,   56,   24,  478,   25,  479,    0,   26,
 
12272
  254, 1382,    0,    0,   27,   61,   62,    0,   28,    0,
 
12273
    0,    0,    0,    0,   64,    0,    0,   30,    0,    0,
 
12274
    0,  480,    0,    0,   32,    0,    0,    0,    0,   33,
 
12275
    0,   71,   72,   34,    0,  613,    0,    0,    0, 1382,
 
12276
    0,    0,  614,    0,    0,   36,    0,   37,   74,    0,
 
12277
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
12278
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
12279
  615,    0,    0,   87,   88,    0,    0, 1399,    0,    0,
 
12280
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
12281
   91,   92,   93,    0,    0,    0,    0,    0,    0,    0,
 
12282
   95,  974,    0,  616,    0,    0,   97,   98,   99,  100,
 
12283
    0,    0,    0,  101,    0,  102,    0,    0,    0,    0,
 
12284
    0,  103,  104,    0,    0,    0,    0,    0,    0,   56,
 
12285
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
12286
   27,   61,   62,    0,   28,    0,  105,  106,  107,  108,
 
12287
   64,    0,    0,   30,    0,    0,    0,    0,    0,    0,
 
12288
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
12289
    0,  613,    0,    0,    0,    0,    0,    0,  614,    0,
 
12290
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
12291
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
12292
    0,    0,    0,    0,    0,    0,  615,    0,    0,   87,
 
12293
   88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12294
    0,    0,    0,    0,   89,   90,   91,   92,   93,    0,
 
12295
    0,    0,    0,    0,    0,    0,   95,    0,    0,  616,
 
12296
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
12297
    0,  102,    0,    0,    0,    0,    0,  103,  104,    0,
 
12298
    0,    0,    0,    0,    0,   56,   24,    0,   25,    0,
 
12299
    0,   26,  254,    0,    0,    0,   27,   61,   62,    0,
 
12300
   28,    0,  105,  106,  107,  108,   64,    0,    0,   30,
 
12301
    0,    0,    0,    0,    0,    0,   32,    0,    0,    0,
 
12302
    0,   33,    0,   71,   72,   34,    0,    0,    0,    0,
 
12303
    0,    0,    0,    0,    0,    0,    0,   36,    0,   37,
 
12304
   74,    0,    0,   38,    0,    0,   76,    0,   78,    0,
 
12305
   80,   39,   40,  255,    0,   41,    0,    0,   84,    0,
 
12306
    0,    0,   86,    0,    0,   87,   88,    0,    0,    0,
 
12307
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12308
   89,   90,   91,   92,  302,    0,    0,    0,    0,    0,
 
12309
    0,    0,   95,    0,    0,    0,    0,    0,   97,   98,
 
12310
   99,  100,    0,    0,    0,  101,    0,  102,    0,    0,
 
12311
    0,    0,    0,  103,  104,    0,    0,    0,    0,    0,
 
12312
    0,   56,   24,    0,   25,    0,    0,   26,  254,    0,
 
12313
    0,    0,   27,   61,   62,    0,   28,    0,  105,  303,
 
12314
  107,  108,   64,    0,    0,   30,    0,    0,    0,    0,
 
12315
    0,    0,   32,    0,    0,    0,    0,   33,    0,   71,
 
12316
   72,   34,    0,    0,    0,    0,    0,    0,    0,    0,
 
12317
    0,    0,    0,   36,    0,   37,   74,    0,    0,   38,
 
12318
    0,    0,   76,    0,   78,    0,   80,   39,   40,  255,
 
12319
    0,   41,    0,    0,    0,    0,    0,    0,   86,    0,
 
12320
    0,   87,   88,    0,    0,    0,    0,    0,    0,    0,
 
12321
    0,    0,    0,    0,    0,    0,   89,   90,   91,   92,
 
12322
  302,    0,    0,    0,  531,    0,    0,    0,   95,    0,
 
12323
    0,    0,    0,    0,   97,   98,   99,  100,    0,    0,
 
12324
    0,  101,    0,  102,    0,    0,    0,    0,    0,  103,
 
12325
  104,    0,    0,    0,    0,    0,    0,   56,   24,    0,
 
12326
   25,    0,    0,   26,  254,    0,    0,    0,   27,   61,
 
12327
   62,    0,   28,    0,  105,  303,  107,  108,   64,    0,
 
12328
    0,   30,    0,    0,    0,    0,    0,    0,   32,    0,
 
12329
    0,    0,    0,   33,    0,   71,   72,   34,    0,    0,
 
12330
    0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
 
12331
    0,   37,   74,    0,    0,   38,    0,    0,   76,    0,
 
12332
   78,    0,   80,   39,   40,  255,    0,   41,    0,    0,
 
12333
    0,    0,    0,    0,   86,    0,    0,   87,   88,    0,
 
12334
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12335
    0,    0,   89,   90,   91,   92,  302,    0,    0,    0,
 
12336
  525,    0,    0,    0,   95,    0,    0,    0,    0,    0,
 
12337
   97,   98,   99,  100,    0,    0,    0,  101,    0,  102,
 
12338
    0,    0,    0,    0,    0,  103,  104,    0,    0,    0,
 
12339
    0,    0,    0,   56,   24,    0,   25,    0,    0,   26,
 
12340
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
12341
  105,  303,  107,  108,   64,    0,    0,   30,    0,    0,
 
12342
    0,    0,    0,    0,   32,    0,    0,    0,    0,   33,
 
12343
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
12344
    0,    0,    0,    0,    0,   36,    0,   37,   74,    0,
 
12345
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
12346
   40,  255,    0,   41,    0,    0,    0,    0,    0,    0,
 
12347
   86,    0,    0,   87,   88,    0,    0,    0,    0,    0,
 
12348
    0,    0,    0,    0,    0,    0,    0,    0,   89,   90,
 
12349
   91,   92,  302,    0,    0,    0,    0,    0,    0,    0,
 
12350
   95,    0,    0,    0,    0,    0,   97,   98,   99,  100,
 
12351
    0,    0,    0,  101,    0,  102,    0,    0,    0,    0,
 
12352
    0,  103,  104,    0,    0,    0,    0,    0,    0,   56,
 
12353
   24,    0,   25,    0,    0,   26,  254,    0,    0,    0,
 
12354
   27,   61,   62,    0,   28,    0,  105,  303,  107,  108,
 
12355
   64,    0,    0,   30,    0,    0,    0,    0,    0,    0,
 
12356
   32,    0,    0,    0,    0,   33,    0,   71,   72,   34,
 
12357
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12358
    0,   36,    0,   37,   74,    0,    0,   38,    0,    0,
 
12359
   76,    0,   78,    0,   80,   39,   40,  255,    0,   41,
 
12360
    0,    0,    0,    0,    0,    0,   86,    0,    0,   87,
 
12361
   88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12362
    0,    0,    0,    0,   89,   90,   91,   92,   93,    0,
 
12363
    0,    0,    0,    0,    0,    0,   95,    0,    0,    0,
 
12364
    0,    0,   97,   98,   99,  100,    0,    0,    0,  101,
 
12365
    0,  102,    0,    0,    0,    0,    0,  103,  104,    0,
 
12366
    0,    0,    0,    0,    0,  655,  655,    0,  655,    0,
 
12367
    0,  655,  655,    0,    0,    0,  655,  655,  655,    0,
 
12368
  655,    0,  105,  106,  107,  108,  655,    0,    0,  655,
 
12369
    0,    0,    0,    0,    0,    0,  655,    0,    0,    0,
 
12370
    0,  655,    0,  655,  655,  655,    0,    0,    0,    0,
 
12371
    0,    0,    0,    0,    0,    0,    0,  655,    0,  655,
 
12372
  655,    0,    0,  655,    0,    0,  655,    0,  655,    0,
 
12373
  655,  655,  655,  655,    0,  655,    0,    0,    0,    0,
 
12374
    0,    0,  655,    0,    0,  655,  655,    0,    0,    0,
 
12375
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12376
  655,  655,  655,  655,  655,    0,    0,    0,    0,    0,
 
12377
    0,    0,  655,    0,    0,    0,    0,    0,  655,  655,
 
12378
  655,  655,    0,    0,    0,  655,    0,  655,    0,    0,
 
12379
    0,    0,    0,  655,  655,    0,    0,    0,    0,    0,
 
12380
    0,   83,   83,    0,   83,    0,    0,   83,   83,    0,
 
12381
    0,    0,   83,   83,   83,    0,   83,    0,  655,  655,
 
12382
  655,  655,   83,    0,    0,   83,    0,    0,    0,    0,
 
12383
    0,    0,   83,    0,    0,    0,    0,   83,    0,   83,
 
12384
   83,   83,    0,    0,    0,    0,    0,    0,    0,    0,
 
12385
    0,    0,    0,   83,    0,   83,   83,    0,    0,   83,
 
12386
    0,    0,   83,    0,   83,    0,   83,   83,   83,   83,
 
12387
    0,   83,    0,    0,    0,    0,    0,    0,   83,    0,
 
12388
    0,   83,   83,    0,    0,    0,    0,    0,    0,    0,
 
12389
    0,    0,    0,    0,    0,    0,   83,   83,   83,   83,
 
12390
   83,    0,    0,    0,    0,    0,    0,    0,   83,    0,
 
12391
    0,    0,    0,    0,   83,   83,   83,   83,    0,    0,
 
12392
    0,   83,    0,   83,    0,    0,    0,    0,    0,   83,
 
12393
   83,    0,    0,    0,    0,    0,    0,  143,  143,    0,
 
12394
  143,    0,    0,  143,  143,    0,    0,    0,  143,  143,
 
12395
  143,    0,  143,    0,   83,   83,   83,   83,  143,    0,
 
12396
    0,  143,    0,    0,    0,    0,    0,    0,  143,    0,
 
12397
    0,    0,    0,  143,    0,  143,  143,  143,    0,    0,
 
12398
    0,    0,    0,    0,    0,    0,    0,    0,    0,  143,
 
12399
    0,  143,  143,    0,    0,  143,    0,    0,  143,    0,
 
12400
  143,    0,  143,  143,  143,  143,    0,  143,    0,    0,
 
12401
    0,    0,    0,    0,  143,    0,    0,  143,  143,    0,
 
12402
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12403
    0,    0,  143,  143,  143,  143,  143,    0,    0,    0,
 
12404
    0,    0,    0,    0,  143,    0,    0,    0,    0,    0,
 
12405
  143,  143,  143,  143,    0,    0,    0,  143,    0,  143,
 
12406
    0,    0,    0,    0,    0,  143,  143,    0,    0,    0,
 
12407
    0,    0,    0,   56,   24,    0,   25,    0,    0,   26,
 
12408
  254,    0,    0,    0,   27,   61,   62,    0,   28,    0,
 
12409
  143,  143,  143,  143,   64,    0,    0,   30,    0,    0,
 
12410
    0,    0,    0,    0,   32,    0,   31,    0,    0,   33,
 
12411
    0,   71,   72,   34,    0,    0,    0,    0,    0,    0,
 
12412
    0,    0,    0,    0,    0,   36,    0,   37,   74,   31,
 
12413
    0,   38,    0,    0,   76,    0,   78,    0,   80,   39,
 
12414
   40,  255,   31,   41,    0,    0,    0,   31,    0,    0,
 
12415
    0,    0,   31,    0,   31,   31,   31,   31,    0,    0,
 
12416
   31,    0,   31,    0,    0,    0,   31,    0,   89,   90,
 
12417
   91,  256,  342,    0,    0,    0,    0,    0,   31,    0,
 
12418
   95,   31,    0,   31,    0,    0,   97,   98,   99,  100,
 
12419
    0,    0,    0,  101,    0,  102,    0,    0,    0,    0,
 
12420
    0,  103,  104,    0,    0,    0,    0,   31,    0,    0,
 
12421
    0,    0,    0,   31,   31,    0,    0,    0,    0,    0,
 
12422
    0,  692,    0,  692,    0,  692,  105,  257,  692,  108,
 
12423
  692,  692,    0,  692,    0,  692,    0,  692,    0,  692,
 
12424
  692,  692,    0,    0,    0,  692,  692,    0,    0,    0,
 
12425
    0,  692,    0,  692,  692,    0,    0,    0,  692,    0,
 
12426
    0,    0,  692,    0,    0,    0,    0,    0,    0,    0,
 
12427
    0,    0,    0,  692,  692,    0,  692,    0,    0,    0,
 
12428
  692,  692,    0,    0,    0,    0,    0,    0,  692,  692,
 
12429
   56,   24,  692,   25,    0,  692,   26,  254,    0,    0,
 
12430
  692,   27,   61,   62,    0,   28,    0,    0,    0,    0,
 
12431
    0,   64,    0,    0,   30,    0,    0,    0,    0,    0,
 
12432
    0,   32,  692,  692,    0,    0,   33,    0,   71,   72,
 
12433
   34,    0,    0,    0,    0,  692,    0,    0,    0,    0,
 
12434
    0,    0,   36,    0,   37,   74,    0,    0,   38,    0,
 
12435
    0,   76,    0,   78,    0,   80,   39,   40,  255,    0,
 
12436
   41,    0,    0,   84,    0,    0,    0,    0,    0,    0,
 
12437
   24,    0,   25,    0,    0,   26,  692, 1285,    0,    0,
 
12438
   27,    0,    0,    0,   28,   89,   90,   91,  256,    0,
 
12439
    0,    0,    0,   30,  691,    0,  691,   95,    0,  691,
 
12440
   32,  691,  691,    0,  691,   33,  691, 1286,  691,   34,
 
12441
  691,  691,  691,    0,    0,    0,  691,  691,    0,    0,
 
12442
    0,   36,  691,   37,  691,  691,    0,   38, 1287,  691,
 
12443
    0,    0,    0,  691,    0,   39,   40,    0,    0,   41,
 
12444
    0,    0,  324,  105,  257,  691,    0,  691,    0,    0,
 
12445
    0,  691,  691,    0,    0,    0,    0,    0,    0,  691,
 
12446
  691,    0,  691,  691,  691,    0,  691,  691,    0,  691,
 
12447
  691,  691,  691,    0,  691,    0,  691,    0,  691,  691,
 
12448
  691,    0,    0,    0,  691,  691,    0,    0,    0,    0,
 
12449
  691,    0,  691,  691,    0,    0,    0,  691,    0,    0,
 
12450
    0,  691,    0,    0,    0,    0,  691,    0,    0,    0,
 
12451
    0,    0,    0,  691,    0,  691,    0,    0,    0,  691,
 
12452
  691,    0,    0,  368,    0,    0,    0,  691,  691,    0,
 
12453
    0,  691,    0,    0,  691,    0,   24,    0,   25,  691,
 
12454
    0,   26,    0,    0, 1348,    0,   27,  691,  725,    0,
 
12455
   28,    0,  726, 1349, 1350,    0,    0,    0, 1351,   30,
 
12456
    0,    0,    0,    0, 1352,    0,   32,    0,   24,    0,
 
12457
   25,   33,    0,   26,    0,   34, 1348,    0,   27,    0,
 
12458
  725,    0,   28,    0,  726, 1349, 1350,   36,    0,   37,
 
12459
 1351,   30,    0,   38,    0,    0, 1352,    0,   32,    0,
 
12460
    0,   39,   40,   33,    0,   41,    0,   34, 1353,    0,
 
12461
    0,    0,   51, 1354,   51,  691,    0,   51,    0,   36,
 
12462
    0,   37,   51,    0,    0,   38,   51,    0,    0,    0,
 
12463
    0,    0,    0,   39,   40,   51,    0,   41,    0,    0,
 
12464
 1353,    0,   51,    0,   51, 1354,   51,   51, 1355,   51,
 
12465
    0,   51,    0,   51,   51,   51,    0,    0,   51,    0,
 
12466
   51,    0,    0,   51,    0,   51,    0,   51,    0,   51,
 
12467
    0,    0,   51,    0,   51,    0,    0,   51,   51,   51,
 
12468
    0,   51,    0,   51,   51,   51,    0,   51,   24, 1356,
 
12469
   25,    0,   51,   26,    0,   51,    0,   51,   27,    0,
 
12470
    0,   51,   28,    0,   51,    0,    0,    0,    0,   51,
 
12471
   51,   30,    0,   51,    0,    0,   51,    0,   32,  162,
 
12472
    0, 1356,    0,   33,    0,    0,    0,   34,    0,  585,
 
12473
    0,    0,    0,    0,    0,    0,  586,    0,    0,   36,
 
12474
    0,   37,    0,    0,    0,   38,    0,    0,  587,  162,
 
12475
    0,    0,    0,   39,   40,    0,    0,   41,    0,   52,
 
12476
  588,   52,    0,    0,   52,   51,    0,    0,    0,   52,
 
12477
    0,    0,    0,   52,    0,    0,    0,    0,    0,    0,
 
12478
    0,    0,   52,    0,    0,    0,  589,    0,    0,   52,
 
12479
    0,   51,    0,   51,   52,    0,   51,   51,   52,    0,
 
12480
   52,   51,   52,    0,    0,   51,    0,   52,    0,    0,
 
12481
   52,    0,   52,    0,   51,    0,   52,    0,    0,   52,
 
12482
    0,   51,    0,    0,   52,   52,   51,    0,   52,    0,
 
12483
   51,   52,   51,    0,   51,   24,    0,   25,    0,   51,
 
12484
   26,  590,   51,    0,   51,   27,    0,    0,   51,   28,
 
12485
    0,   51,    0,    0,    0,    0,   51,   51,   30,    0,
 
12486
   51,    0,    0,   51,    0,   32,    0,    0,    0,    0,
 
12487
   33,    0,    0,    0,   34,    0,    0,    0,    0,   37,
 
12488
    0,    0,    0,    0,    0,    0,   36,    0,   37,    0,
 
12489
   37,    0,   38,    0,    0,   37,    0,    0,    0,   37,
 
12490
   39,   40,   37,    0,   41,    0,    0,  324,    0,    0,
 
12491
    0,    0,   52,    0,   37,   37,    0,    0,    0,   37,
 
12492
   37,    0,    0,    0,    0,   37,    0,   37,   37,   37,
 
12493
   37,    0,    0,  291,    0,   37,    0,    0,    0,   37,
 
12494
    0,   37,    0,    0,   51,    0,    0,    0,    0,    0,
 
12495
    0,   37,    0,   37,   37,   35,   37,    0,    0,    0,
 
12496
   37,    0,    0,    0,    0,    0,   35,    0,    0,    0,
 
12497
    0,   35,    0,    0,    0,   35,    0,    0,   35,    0,
 
12498
   37,    0,    0,    0,    0,    0,   37,   37,  325,    0,
 
12499
   35,   35,    0,    0,    0,   35,   35,   31,    0,   31,
 
12500
    0,   35,    0,   35,   35,   35,   35,    0,    0,    0,
 
12501
    0,   35,    0,    0,    0,   35,    0,   35,    0,    0,
 
12502
   31,    0,    0,    0,    0,    0,    0,   35,    0,    0,
 
12503
   35,    0,   35,   31,    0,    0,   35,    0,   31,    0,
 
12504
    0,    0,    0,   31,    0,   31,   31,   31,   31,    0,
 
12505
    0,    0,    0,   31,    0,    0,   35,   31,    0,    0,
 
12506
   51,    0,   35,   35,    0,    0,    0,    0,    0,   31,
 
12507
    0,   51,   31,    0,   31,    0,   51,    0,    0,    0,
 
12508
   51,    0,    0,   51,    0,    0,    0,    0,    0,    0,
 
12509
    0,    0,    0,    0,    0,   51,   51,    0,   31,    0,
 
12510
   51,   51,    0,   51,   31,   31,   51,    0,   51,   51,
 
12511
   51,   51,    0,    0,   51,    0,   51,    0,    0,   51,
 
12512
   51,    0,   51,   51,    0,    0,   51,    0,    0,    0,
 
12513
    0,    0,   51,    0,    0,   51,    0,   51,   51,   51,
 
12514
    0,   51,    0,   51,   51,   51,    0,    0,    0,   51,
 
12515
    0,   51,   51,   51,   51,    0,    0,    0,    0,   51,
 
12516
    0,   51,    0,   51,    0,   51,    0,   39,   51,    0,
 
12517
    0,    0,    0,    0,    0,   51,    0,    0,   51,    0,
 
12518
   51,   51,    0,   51,   51,    0,   51,    0,    0,    0,
 
12519
    0,   51,    0,   51,   51,   51,   51,    0,    0,    0,
 
12520
    0,   51,    0,    0,   51,   51,   51,    0,    0,    0,
 
12521
   40,    0,    0,    0,    0,    0,    0,   51,    0,   51,
 
12522
   51,   51,   51,    0,   51,    0,    0,    0,    0,   51,
 
12523
    0,   51,   51,   51,   51,    0,    0,    0,    0,   51,
 
12524
    0,    0,    0,   51,   51,    0,   51,    0,   51,   51,
 
12525
    0,    0,  204,    0,    0,   51,    0,   51,   51,   51,
 
12526
   51,   51,   51,    0,    0,    0,    0,   51,    0,   51,
 
12527
   51,   51,   51,    0,    0,   51,    0,   51,    0,    0,
 
12528
    0,   51,   51,    0,   51,    0,   51,   51,    0,    0,
 
12529
  206,    0,    0,   51,    0,   51,   51,   51,   51,    0,
 
12530
   51,    0,    0,    0,    0,   51,    0,   51,   51,   51,
 
12531
   51,    0,    0,    0,    0,   51,    0,    0,    0,   51,
 
12532
   51,    0,   51,    0,    0,    0,    0,   51,  308,   51,
 
12533
    0,   51,    0,   51,   51,    0,   51,    0,   51,    0,
 
12534
    0,    0,    0,   51,    0,   51,   51,   51,   51,    0,
 
12535
   51,    0,    0,   51,    0,    0,    0,   51,    0,    0,
 
12536
   51,    0,    0,   51,    0,    0,  309,  465,   51,   51,
 
12537
    0,    0,   51,   51,   51,   51,   51,   51,   51,    0,
 
12538
    0,   51,    0,   51,    0,    0,    0,   51,    0,    0,
 
12539
  466,    0,    0,    0,    0,    0,    0,  465,   51,   51,
 
12540
   51,   51,   51,  467,   51,    0,    0,  468,  469,    0,
 
12541
    0,    0,    0,  470,    0,  471,  472,  473,  474,    0,
 
12542
  466,    0,    0,  475,    0,    0,    0,  476,   51,    0,
 
12543
    0,    0,    0,  467,    0,    0,    0,    0,  469,  477,
 
12544
    0,    0,  478,  470,  479,  471,  472,  473,  474,    0,
 
12545
    0,    0,    0,  475,    0,    0,    0,  476,    0,    0,
 
12546
    0,    0,    0,    0,    0,    0,    0,    0,  480,  477,
 
12547
    0,    0,  478,    0,  479,    0,    0,    0,    0,    0,
 
12548
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 
12549
    0,    0,    0,    0,    0,    0,    0,    0,  480,
 
12550
  };
 
12551
  protected static readonly short [] yyCheck = {            17,
 
12552
   17,    4,   18,  300,  299,  529,   17,   87,   88,   51,
 
12553
  531,  189,   51,  289,  247,   17,  482,  234,    6,  188,
 
12554
  232,   68,  504,   84,   20,   59,  298,  296,  108,  191,
 
12555
  344,  298,  157,  334,  383,  574,  323,  581,  790,  982,
 
12556
   87,   88, 1162,   47,   77,   92,   59,   58, 1198, 1199,
 
12557
  268,    0,  113,  256,  115,   73,    0,  367,  256,   77,
 
12558
  256,  592,  601,  330,  256,  112,  256,  113,   79,  115,
 
12559
   81,  256,  335,  367,  679,  256,  256,   95,  268,  684,
 
12560
  685,  256,  760,  256,  762,   17,  282,   17,  256, 1292,
 
12561
  256,  256,  256,  256,  372,  256,  268, 1247,  372,  256,
 
12562
  987,  374,  256,   17,  276,  256, 1195, 1310,  391,  357,
 
12563
  256,   17,  357,   17,  256,  368,  256,  256,  314,  199,
 
12564
  200,  368,  368,  376,  368,  172,  367,  256,  373,  376,
 
12565
  374,  414, 1357,  811,  256,  376,  814,  381,  386,  157,
 
12566
  157,  386, 1367,  416,  418,  428,  157,  189,  340,  382,
 
12567
  189,  429,   17,   59,  339,  157,  423,   63,   17,  344,
 
12568
   17,  346, 1251,  325,  349,  350,  429,  352,  353,  372,
 
12569
  343,  374,  418,  704,  339,  256,  429,  256,  256,  344,
 
12570
   20,  346,  262,  363,  349,  350,  256,  352,  353,  374,
 
12571
  232,  363,  367,  232,   17,  363,  371,  268, 1242,  246,
 
12572
  247,  367,  256,  369,  422,  371,  368,  371,  288,  374,
 
12573
  367,  373,  259,  376,  371,  376,    0,  371,  391,  223,
 
12574
  418,   17,  418,   17,  525,  157,  429,  157,  308,  247,
 
12575
  447, 1118,  422,  528,  446,  253,  546,  418,  418,  381,
 
12576
  228,  414,  763,  157,  429,  420,  418,   87,   88,  296,
 
12577
  418,  157,  286,  157,  420,  428,  420,  423,  568,  381,
 
12578
  574,  322,  296,  420,  429,  326,  420,  418,  108, 1157,
 
12579
  331,  289,  418,  286,  568, 1478,  294,  295,  418,  418,
 
12580
  824,  328,  592,  256,  364,  331,  333,  601,  358,  418,
 
12581
  452,  309,  157,  277, 1269,  374,   17,  368,  157,  317,
 
12582
  157,  319, 1505,  381,  256,  323,  319,  318,  257,  256,
 
12583
  391,  257,  256,  256, 1517,  369, 1519,  335,  336,  325,
 
12584
  400,  401, 1366,  256,  367,  487,  369,  344,  375,  294,
 
12585
  256,  378,  256,  414,  157,  382,  383,  358,  371, 1091,
 
12586
  945,  306,  344,  256,  256,  256,  256,  256,  428,  429,
 
12587
  335,  422, 1472,  371,  424,  425,  426,  427,  256,  199,
 
12588
  200,  157,  256,  157,  382,  383, 1044,  256,  386,  387,
 
12589
  388,  389,  390,  391,  392,  393,  394,  395,  396,  363,
 
12590
  286,  428,  429,  914,  989,  432,  991, 1362, 1538,  994,
 
12591
  363,  257,  256, 1368,  704,  339,  325,  370,  256,  372,
 
12592
  418,  374,  256,  256,  446,  305,  256,  446, 1351,  256,
 
12593
  368,  705,  418,  319,  456,  725,  369,  256, 1568,  371,
 
12594
 1395,  256,  262,  367,  367,  372,  947,  371,  590,  373,
 
12595
  374,  375,  376,  376,  418,  419,  157,  381,  344,  266,
 
12596
  351,  367,  375,  605,  926,  418,  608,  609,  288,  453,
 
12597
  454,  375,  448,  418,  256,  459,  503,  496,  505,  368,
 
12598
  300,  748,  375,  375,  374,  374,  462,  266,  308,  262,
 
12599
 1275,  429,  391,  257,  372,  369, 1081,  256, 1083,  372,
 
12600
 1085,  256,  529,  263,  701,  374,  497,  314,  272,  418,
 
12601
  372,  504,  341,  277, 1172,  414,  765,  281,  372,  546,
 
12602
  733,  363, 1180,  550,  957,  298,  370,  856,  363,  527,
 
12603
  374,  529,  296,  531,  372,  314, 1321, 1038,  372,  372,
 
12604
  369, 1409,  372,  740,  364,  372, 1204,  367, 1072,  839,
 
12605
  369,  542,  543,  695,  369,  315,  429,  277,  556,  323,
 
12606
  256,  281,  368,  561,  591,  839,  418,  429,  375,  294,
 
12607
  546, 1439, 1440,  715, 1442,  429,  418,  574,  342,  570,
 
12608
  400,  401,  341,  418,  339, 1453,  428,  369, 1456,  344,
 
12609
  581,  346,  574,  428,  349,  350,  375,  352,  353, 1184,
 
12610
  363, 1259,  272, 1471,  601,  378,  379,  277,  428,  429,
 
12611
  369,  281,  368,  256,  376,  613,  614, 1141,  504,  601,
 
12612
  305,  264,  342,  429,  914,  376,  296, 1495,  448, 1214,
 
12613
  369, 1064,  357, 1066,  373, 1357,  911,  256,  363,  913,
 
12614
  368,  368,  462,  256,  369, 1367,  376,  372,  373,  862,
 
12615
  368, 1507, 1508,  323,  681,  418,  683, 1176,  363,  256,
 
12616
  941,  386,  263,  363,  369,  692,  368,  429,  371,  256,
 
12617
  775,  367,  342,  429,  429,  371, 1261,  373,  374,  367,
 
12618
  376,  679,  325,  371,  423,  381,  684,  685,  574,  687,
 
12619
  363,  343,  305,  418,  946, 1280,  421,  944,  343,  374,
 
12620
  372,  429,  429,  371,  376,  982,  733,  256, 1564,  363,
 
12621
    6,  429,  339,  418,  315,  601,  418,  420,  418,  415,
 
12622
  339,   17,  363,  750,  256,  344,  546,  346,  369,  381,
 
12623
  349,  350,  420,  352,  353,  733,  796, 1039,  765,  391,
 
12624
  367,  416,  339, 1205,  256,  418,  391,  344,  568,  346,
 
12625
  748,  765,  349,  350,  256,  352,  353,  272,  726,  819,
 
12626
  367,  802,  414,   59,  418,  763, 1068,   63,  343,  414,
 
12627
  386,  769,  592,  305, 1041,  835,  428,  418,  805, 1054,
 
12628
  367,  296,  294,  428,  371,  339,  373,  374, 1275,  376,
 
12629
  339,   87,   88, 1006,  381,  344,   21,  346,  256, 1275,
 
12630
  349,  350,  371,  352,  353, 1371,  381,  798,  323,  357,
 
12631
  429,  838,  108,  367,  956,  363,  391, 1275,  816, 1385,
 
12632
  818,  369,  376,  384,  372,  373,  374,   52,  272,  856,
 
12633
  828,  822,  429,  824, 1321,  862,  389,  339,  386,  414,
 
12634
 1134, 1407,  344,  357,  346, 1321,  385,  349,  350,  998,
 
12635
  352,  353,  296,  428, 1275,  915,  400,  339,  856,  373,
 
12636
 1275,  157, 1275, 1321,  862,  887,  864,  368,  866,  256,
 
12637
  418,  401,  386, 1129,  760,  376,  762, 1275,  272,  323,
 
12638
  429,  339, 1176,  413,  704,  367,  344, 1162,  346,  347,
 
12639
  348,  349,  350,  351,  352,  353,  354,  355,  356,  918,
 
12640
 1321,  390,  296,  199,  200,  725, 1321,  369, 1321, 1165,
 
12641
  368,  909,  370,  911,  372,  306,  374,  375,  376,  381,
 
12642
  896, 1063,  313, 1321,  951,  811,  953,  429,  814,  323,
 
12643
  928,  256,  959,  901,  325,  933,  357,  269,  936, 1385,
 
12644
  381,  357, 1155,  294,  269,  369, 1202,  945, 1242,  947,
 
12645
  391, 1011,  373,  369,  286,  306,  372,  373,  985, 1460,
 
12646
  367,  286,  371,  256,  373,  386,  262, 1274, 1275,  376,
 
12647
  386,  429,  418,  414,  367,  368,  796,  367,  368, 1006,
 
12648
  367,  368,  369,  376,  371,  372,  376,  374, 1295,  376,
 
12649
  286,  989,  288,  991,  371, 1022,  994,  367,  367,  819,
 
12650
  367, 1028,  415,  256,  300,  421,  376,  376, 1006,  376,
 
12651
  418,  306,  308,  308, 1321,  835, 1323,  256,  313,  839,
 
12652
 1331, 1522,  368,  319, 1221, 1217, 1282, 1003,  374, 1340,
 
12653
  325,  418,  277,  420,  368, 1193,  423,  374,  372,  376,
 
12654
 1038, 1331,  376, 1041,  381, 1013,  339, 1015,  344, 1017,
 
12655
 1340,  344,  371,  346,  373,  368,  349,  350, 1559,  352,
 
12656
  353,  374,  306,  376,  368,  382,  383,  376,  364,  313,
 
12657
  374,  367, 1366,  372, 1351,  374,  896, 1581, 1582,  396,
 
12658
  397, 1072,  372, 1081,  374, 1083,  339, 1085,  370,  371,
 
12659
 1088,  344,  374,  346,  914,  915,  349,  350,  373,  352,
 
12660
  353,  376,  368,  256,  400,  401,  372,  368,  374,  376,
 
12661
  376,  372,  265,  374,  267,  376, 1099,  270,  394,  395,
 
12662
  370,  371,  275,  373,  374,  375,  279,  370, 1155,  372,
 
12663
  370, 1129,  428,  429,  374,  288,  429, 1134, 1157,  372,
 
12664
  370,  374,  295,  376,  374, 1143, 1144,  300,  367,  370,
 
12665
 1141,  304, 1134,  374,  374,  370,  376, 1155, 1044,  374,
 
12666
 1156,  256,  982,  316, 1162,  318,  370, 1165,  372,  322,
 
12667
  374, 1193,  373, 1195, 1193,  376, 1195,  330,  331, 1176,
 
12668
  373,  334,  368, 1003,  337,  371, 1184,  373,  374,  370,
 
12669
  294, 1011, 1190,  374, 1176, 1217,  372, 1472, 1217,  370,
 
12670
  376,  372,  376,  374, 1202,  372,  392,  393,  504,  376,
 
12671
  363,  370,  376, 1273, 1356,  374, 1214, 1215,  372,  294,
 
12672
  369,  373,  376,  372,  376,  370,  412,  372,  370, 1251,
 
12673
  372,  370, 1251,  372,  420,  367,  372,  423,  374,  371,
 
12674
 1382,  373,  374,  343,  376, 1242,  368,  369, 1134,  381,
 
12675
  546,  372, 1274, 1275,  414, 1274,  368, 1399,  376,  371,
 
12676
 1242,  373,  374, 1261,  356,  418,  386,  387,  388,  381,
 
12677
 1330,  418,  568, 1295,  418, 1417, 1295, 1419,  574,  369,
 
12678
  392,  393, 1280,  415, 1282,  372, 1172,  374, 1348, 1349,
 
12679
 1176,  370,  418,  372, 1180,  375,  592, 1324,  372, 1321,
 
12680
  412, 1323,  372,  285, 1323,  601,  368,  370,  420,  372,
 
12681
  374,  423,  376, 1373,  398,  399, 1376,   93, 1204,  354,
 
12682
  355,   97,   98,   99,  100,  101,  102,  103,  104,  371,
 
12683
  374,  373,  376,   61,  374,  376,  376,   65,   66,   67,
 
12684
  374,   69,   70, 1334,  381,  327,   74,   75,  354,  355,
 
12685
  392,  393,  374,   81,  376,   83, 1242,   85,  406,  407,
 
12686
  408,  409,   90,   91,  368,  369,  294,  414,  415, 1366,
 
12687
  412,  364,  365, 1259,  372,  373, 1196,  372,  420,  364,
 
12688
  365,  423, 1160, 1161, 1366,  294,  114,  374,    0,  372,
 
12689
 1409,  402,  403,  410,  411,  377,  378,  379,  380, 1390,
 
12690
  382,  383,  384,  385,  386,  387,  388,  389,  704,  372,
 
12691
  392,  393,  394,  395,  396,  397,  398,  399,  404,  405,
 
12692
 1439, 1440,  374, 1442,  372,  256,  376,  428, 1450,  725,
 
12693
  371,  428,  256, 1253, 1453,  294,  294, 1456,  381,  372,
 
12694
  374,  373,  418,  373,  375, 1467,  381,  374,  372,  374,
 
12695
  429,  374, 1471, 1273,  374,  374,  423,    0, 1480, 1481,
 
12696
  372,  374, 1460,  374,  760,  367,  762, 1458,  421,  372,
 
12697
  343,  294,  373,  372, 1472,  294, 1495,  374,  374,  418,
 
12698
 1366,  370,  418,  371,  367, 1507, 1508,  256,  375,  256,
 
12699
  374, 1489,  256,  256,  280,  381,  256,  367,  372,  368,
 
12700
  796,  343,  370,  381,  371,  376,  423,  370,  374,  374,
 
12701
 1330, 1331,  376,  347,  256,  811,  372,  372,  814,  372,
 
12702
 1340,  367,  256,  819, 1522,  372,  302,  255, 1348, 1349,
 
12703
  258, 1351,  381,  381,  372,  376,  368, 1357,  256,  835,
 
12704
  347,  374, 1564,  839,  370,  375,  367, 1367,  370,  339,
 
12705
  370, 1371,  348, 1373, 1581, 1582, 1376,  372,  334,  368,
 
12706
  348, 1559,  374,  256,  418, 1385,  342,  381,  418,  372,
 
12707
  298,  368,  367,  367, 1565, 1566,  367,  381,  376,  368,
 
12708
  372, 1572, 1573, 1581, 1582,  356,  314, 1407,  402,  403,
 
12709
  404,  405,  406,  407,  408,  409,  410,  411,  376,  371,
 
12710
  374,  337,  368,  368,  305,  418,  368,  418,  418,  368,
 
12711
  371,  369,  367,  418,  371,  367,  369,  371,  914,  915,
 
12712
  376,  397,  398,  399,  371,  373,  402,  403,  404,  405,
 
12713
  406,  407,  408,  409,  410,  411,  412,  413,  414,  415,
 
12714
  416,  417,  381,  381,  371,  257,  371,  371,  374,  261,
 
12715
  372,  372,  256,  373,  373,  367,  372,  374,    0,  374,
 
12716
  272,  374,  376,  372,  370,  277,  376,  418,  418,  281,
 
12717
  372,  376,  284,  418,  418,  372,  376,  381,  372,  368,
 
12718
  370,  372,  381,  368,  296,  297,  982,  315,  263,  301,
 
12719
  302,  371,  371,  368,  372,  307,  372,  309,  310,  311,
 
12720
  312,    0,    0,  367,  376,  317,  368,  376,    0,  321,
 
12721
  368,  323,  372,  256,  368, 1011,  372,  372,  261,  262,
 
12722
  418,  333,  370,  335,  336,  372,  338,  368,  372,  367,
 
12723
  342,  370,  418,  376,  418,  368,  376,  368,  372,  376,
 
12724
  376,  284,  368,  367,  367,  372,  368,  372, 1044,  525,
 
12725
  362,  368,  367,  373,  297,  298,  368,  369,  376,  302,
 
12726
  376,  315,  305,  376,  307,  376,  309,  310,  311,  312,
 
12727
  376,  499,  263,  376,  317,  376,  376,  376,  321,   50,
 
12728
   12,    5,  325,  896, 1155,    0, 1003, 1155, 1323, 1295,
 
12729
  333, 1512, 1475,  336, 1528,  338,  339, 1463, 1492, 1458,
 
12730
 1371,  344,  918,  346,  347,  348,  349,  350,  351,  352,
 
12731
  353,  354,  355,  356,  542,  918,  918,  739, 1321,  362,
 
12732
  363,  597,  913, 1573,  367,  368, 1391,  370,  371,  372,
 
12733
 1567,  374,  375,  376, 1485,  378,  379, 1481, 1134,  382,
 
12734
  383,  384,  385, 1480, 1566, 1251,  389,  390,  887, 1419,
 
12735
  546,  394,  395,  396,  397,  398,  399,  400,  401,  941,
 
12736
  936, 1253,  769,  862,  382,  614, 1054,   71,  337,  413,
 
12737
  413,  733,  765,  416,  412,  418, 1172,  414,  417,  415,
 
12738
 1176,  416,  839,  265, 1180,  267,  429,  568,  270, 1231,
 
12739
 1330,  157, 1134,  275, 1040, 1144, 1120,  279, 1068, 1024,
 
12740
 1196,  283, 1134, 1132, 1205,  961,  288,  437, 1204,  544,
 
12741
  690,  293,  437,  295, 1326,  257,  893, 1215,  300,  261,
 
12742
  892,   -1,  304,  305,   -1,   -1,   -1,   -1,   -1,   -1,
 
12743
  272,   -1,   -1,   -1,  316,  277,  318,   -1,   -1,  281,
 
12744
  322,   -1,  284,   -1,   -1,   -1, 1242,   -1,  330,  331,
 
12745
   -1,   -1,  334,    0,  296,  297,   -1, 1253,   -1,  301,
 
12746
  302,   -1,   -1, 1259,   -1,  307,   -1,  309,  310,  311,
 
12747
  312,   -1,   -1,   -1,   -1,  317,   -1, 1273,   -1,  321,
 
12748
   -1,  323,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12749
   -1,  333,  768,   -1,  336,   -1,  338,   -1,   -1,   -1,
 
12750
  342,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12751
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12752
  362,   -1,   -1,   -1,   -1,  367,  368,  369,   -1,   -1,
 
12753
   -1,   -1,   -1,   -1, 1330, 1331,  418,   -1,   -1,   -1,
 
12754
   -1,  256,   -1,   -1, 1340,   -1,  261,  262,   -1,   -1,
 
12755
   -1,   -1, 1348, 1349,   -1, 1351,   -1,   -1,   -1,   -1,
 
12756
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  284,
 
12757
 1366,   -1,   -1,   -1,   -1,   -1,   -1, 1373,   -1,   -1,
 
12758
 1376,   -1,  297,  298,   -1,   -1,   -1,  302,   -1,   -1,
 
12759
  305,   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,
 
12760
   -1,   -1,  317,   -1,   -1,   -1,  321,   -1,   -1,   -1,
 
12761
  325,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  333,   -1,
 
12762
    0,  336,   -1,  338,  339,   -1,   -1,   -1,   -1,  344,
 
12763
   -1,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
12764
  355,  356,   -1,   -1,   -1,   -1,   -1,  362,  363,   -1,
 
12765
   -1,   -1,  367,  368,   -1,  370,  371,  372,  373,  374,
 
12766
  375,  376,   -1,  378,  379,  941,  381,  382,  383,  384,
 
12767
  385,  386,  387,  388,  389,  390,   -1,  392,  393,  394,
 
12768
  395,  396,  397,  398,  399,  400,  401,  402,  403,  404,
 
12769
  405,  406,  407,  408,  409,  410,  411,  412,  413,   -1,
 
12770
   -1,  416,   -1,  418,   -1,  420,   -1,   -1,  423,  256,
 
12771
  257,   -1,   -1,   -1,  429,   -1,   -1,  264,  265,  266,
 
12772
  267,  268,   -1,  270,  271,   -1,  273,  274,  275,  276,
 
12773
  277,  278,  279,  280,   -1,   -1,   -1,   -1,  285,   -1,
 
12774
  287,  288,  289,  290,  291,  292,    0,   -1,  295,   -1,
 
12775
   -1,   -1,  299,  300,   -1,  302,  303,  304,   -1,   -1,
 
12776
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  314,   -1,  316,
 
12777
   -1,  318,  319,   -1,   -1,  322,   -1,  324,  325,  326,
 
12778
  327,  328,  329,  330,  331,  332,  333,  334,  335,   -1,
 
12779
  337,   -1,   -1,  340,  341,   -1,   -1,  344,  345,   -1,
 
12780
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12781
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
12782
  367,  368,   -1,   -1,  371,   -1,   -1,   -1,   -1,  376,
 
12783
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
12784
   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,
 
12785
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12786
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12787
  417,  418,  419,  420,   -1,  422,  256,  257,   -1,   -1,
 
12788
   -1,   -1,  429,   -1,  264,  265,  266,  267,  268,   -1,
 
12789
  270,  271,    0,  273,  274,  275,  276,  277,  278,  279,
 
12790
   -1,   -1,   -1,   -1,   -1,  285,   -1,  287,  288,  289,
 
12791
  290,  291,  292,   -1,   -1,  295,   -1,   -1,   -1,  299,
 
12792
  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
 
12793
   -1,   -1,   -1,   -1,  314,   -1,  316,   -1,  318,  319,
 
12794
   -1,   -1,  322,   -1,  324,  325,  326,  327,  328,  329,
 
12795
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,   -1,
 
12796
  340,  341,   -1,   -1,  344,  345,   -1,   -1,   -1,   -1,
 
12797
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,
 
12798
  360,  361,  362,  363,   -1,   -1,   -1,  367,  368,   -1,
 
12799
   -1,  371,   -1,   -1,   -1,   -1,  376,  377,  378,  379,
 
12800
  380,   -1,  256,   -1,  384,   -1,  386,  261,  262,   -1,
 
12801
   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,
 
12802
   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12803
  284,   -1,   -1,   -1,   -1,   -1,   -1,  417,  418,  419,
 
12804
  420,   -1,  422,  297,  298,   -1,   -1,   -1,  302,  429,
 
12805
   -1,  305,   -1,  307,   -1,  309,  310,  311,  312,   -1,
 
12806
   -1,   -1,   -1,  317,   -1,   -1,   -1,  321,   -1,   -1,
 
12807
   -1,  325,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  333,
 
12808
   -1,   -1,  336,   -1,  338,  339,   -1,   -1,   -1,   -1,
 
12809
  344,   -1,  346,  347,  348,  349,  350,  351,  352,  353,
 
12810
  354,  355,  356,  357,   -1,   -1,   -1,   -1,  362,  363,
 
12811
   -1,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
 
12812
  374,  375,  376,   -1,  378,  379,    0,   -1,  382,  383,
 
12813
  384,  385,  386,   -1,   -1,  389,  390,   -1,   -1,   -1,
 
12814
  394,  395,  396,  397,  398,  399,  400,  401,  256,   -1,
 
12815
   -1,   -1,   -1,  261,  262,   -1,   -1,   -1,   -1,  413,
 
12816
   -1,   -1,  416,   -1,  418,   -1,  420,   -1,   -1,  423,
 
12817
   -1,   -1,   -1,   -1,   -1,  429,  284,   -1,   -1,   -1,
 
12818
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  297,
 
12819
  298,   -1,   -1,   -1,  302,   -1,   -1,  305,   -1,  307,
 
12820
   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,  317,
 
12821
   -1,   -1,   -1,  321,   -1,   -1,   -1,  325,   -1,   -1,
 
12822
   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,   -1,
 
12823
  338,  339,   -1,   -1,   -1,   -1,  344,   -1,  346,  347,
 
12824
  348,  349,  350,  351,  352,  353,  354,  355,  356,   -1,
 
12825
   -1,   -1,   -1,   -1,  362,  363,   -1,   -1,   -1,  367,
 
12826
  368,  369,  370,  371,  372,   -1,  374,  375,  376,   -1,
 
12827
  378,  379,    0,   -1,  382,  383,  384,  385,  256,   -1,
 
12828
   -1,  389,  390,  261,  262,   -1,  394,  395,  396,  397,
 
12829
  398,  399,  400,  401,   -1,   -1,   -1,   -1,   -1,   -1,
 
12830
   -1,   -1,   -1,   -1,   -1,  413,  284,   -1,  416,   -1,
 
12831
  418,   -1,  420,   -1,   -1,  423,   -1,   -1,   -1,  297,
 
12832
  298,  429,   -1,   -1,  302,   -1,   -1,  305,   -1,  307,
 
12833
   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,  317,
 
12834
   -1,   -1,   -1,  321,   -1,   -1,   -1,  325,   -1,   -1,
 
12835
   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,   -1,
 
12836
  338,  339,   -1,   -1,   -1,   -1,  344,   -1,  346,  347,
 
12837
  348,  349,  350,  351,  352,  353,  354,  355,  356,   -1,
 
12838
   -1,   -1,  256,   -1,  362,  363,   -1,   -1,  262,  367,
 
12839
  368,  369,  370,  371,  372,   -1,  374,  375,  376,   -1,
 
12840
  378,  379,   -1,   -1,  382,  383,  384,  385,   -1,   -1,
 
12841
   -1,  389,  390,   -1,   -1,   -1,  394,  395,  396,  397,
 
12842
  398,  399,  400,  401,  298,   -1,   -1,   -1,   -1,   -1,
 
12843
    0,   -1,   -1,   -1,   -1,  413,   -1,   -1,  416,   -1,
 
12844
  418,   -1,  420,   -1,   -1,  423,   -1,   -1,   -1,   -1,
 
12845
   -1,  429,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12846
   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,
 
12847
  344,   -1,  346,  347,  348,  349,  350,  351,  352,  353,
 
12848
  354,  355,  356,  357,   -1,   -1,   -1,   -1,   -1,  363,
 
12849
  256,   -1,   -1,  367,  368,  369,  370,  371,  372,  373,
 
12850
  374,  375,  376,   -1,  378,  379,   -1,   -1,  382,  383,
 
12851
  384,  385,  386,   -1,   -1,  389,  390,   -1,   -1,    0,
 
12852
  394,  395,  396,  397,  398,  399,  400,  401,  256,   -1,
 
12853
   -1,   -1,   -1,   -1,  262,   -1,   -1,   -1,   -1,  413,
 
12854
   -1,   -1,  416,   -1,  418,   -1,  420,   -1,   -1,  423,
 
12855
   -1,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,
 
12856
   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12857
  298,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,   -1,
 
12858
  346,  347,  348,  349,  350,  351,  352,  353,  354,  355,
 
12859
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12860
   -1,   -1,  368,   -1,  370,    0,  372,   -1,  374,  375,
 
12861
  376,  339,   -1,   -1,   -1,   -1,  344,   -1,  346,  347,
 
12862
  348,  349,  350,  351,  352,  353,  354,  355,  356,   -1,
 
12863
   -1,   -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,  367,
 
12864
  368,   -1,  370,  371,  372,   -1,  374,  375,  376,   -1,
 
12865
  378,  379,   -1,   -1,  382,  383,  384,  385,   -1,   -1,
 
12866
   -1,  389,  390,  429,   -1,   -1,  394,  395,  396,  397,
 
12867
  398,  399,  400,  401,   -1,   -1,   -1,   -1,   -1,    0,
 
12868
   -1,   -1,   -1,   -1,   -1,  413,  256,  257,  416,   -1,
 
12869
  418,  261,   -1,   -1,   -1,  265,   -1,  267,   -1,   -1,
 
12870
  270,  429,  272,  273,   -1,  275,   -1,  277,   -1,  279,
 
12871
   -1,  281,  282,  283,  284,   -1,   -1,  287,  288,   -1,
 
12872
   -1,   -1,    0,  293,   -1,  295,  296,  297,   -1,   -1,
 
12873
  300,  301,  302,   -1,  304,   -1,   -1,  307,   -1,  309,
 
12874
  310,  311,  312,   -1,   -1,   -1,  316,  317,  318,   -1,
 
12875
   -1,  321,  322,  323,   -1,   -1,   -1,   -1,   -1,   -1,
 
12876
  330,  331,   -1,  333,  334,    0,  336,  337,  338,   -1,
 
12877
   -1,   -1,  342,   -1,   -1,   -1,  257,   -1,   -1,   -1,
 
12878
  261,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12879
   -1,  272,  362,   -1,   -1,   -1,  277,   -1,  368,  369,
 
12880
  281,   -1,   -1,  284,   -1,   -1,   -1,  377,    0,   -1,
 
12881
   -1,   -1,   -1,   -1,   -1,  296,  297,   -1,   -1,  257,
 
12882
  301,  302,   -1,  261,   -1,   -1,  307,   -1,  309,  310,
 
12883
  311,  312,   -1,   -1,  272,   -1,  317,   -1,   -1,  277,
 
12884
  321,   -1,  323,  281,   -1,   -1,  284,   -1,  418,   -1,
 
12885
   -1,    0,  333,   -1,  335,  336,   -1,  338,  296,  297,
 
12886
   -1,  342,  257,  301,  302,   -1,  261,   -1,   -1,  307,
 
12887
   -1,  309,  310,  311,  312,   -1,   -1,  272,   -1,  317,
 
12888
   -1,  362,  277,  321,   -1,  323,  281,   -1,  369,  284,
 
12889
   -1,   -1,   -1,   -1,    0,  333,   -1,   -1,  336,   -1,
 
12890
  338,  296,  297,   -1,  342,   -1,  301,  302,   -1,   -1,
 
12891
   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,
 
12892
   -1,   -1,  317,   -1,  362,   -1,  321,   -1,  323,   -1,
 
12893
  368,  369,   -1,   -1,   -1,   -1,  257,    0,  333,   -1,
 
12894
  261,  336,   -1,  338,   -1,   -1,   -1,  342,   -1,   -1,
 
12895
   -1,  272,   -1,   -1,   -1,   -1,  277,   -1,   -1,   -1,
 
12896
  281,   -1,   -1,  284,   -1,   -1,   -1,  362,   -1,   -1,
 
12897
   -1,   -1,   -1,  368,  369,  296,  297,   -1,   -1,  257,
 
12898
  301,  302,   -1,  261,   -1,   -1,  307,   -1,  309,  310,
 
12899
  311,  312,   -1,   -1,  272,   -1,  317,   -1,   -1,  277,
 
12900
  321,   -1,  323,  281,   -1,   -1,  284,   -1,   -1,   -1,
 
12901
   -1,   -1,  333,   -1,   -1,  336,   -1,  338,  296,  297,
 
12902
   -1,  342,  257,  301,  302,   -1,  261,   -1,   -1,  307,
 
12903
   -1,  309,  310,  311,  312,   -1,   -1,  272,   -1,  317,
 
12904
   -1,  362,  277,  321,   -1,  323,  281,   -1,  369,  284,
 
12905
   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,   -1,
 
12906
  338,  296,  297,   -1,  342,  257,  301,  302,   -1,  261,
 
12907
   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,
 
12908
  272,   -1,  317,   -1,  362,  277,  321,   -1,  323,  281,
 
12909
   -1,   -1,  284,   -1,   -1,   -1,   -1,   -1,  333,   -1,
 
12910
   -1,  336,   -1,  338,  296,  297,   -1,  342,  257,  301,
 
12911
  302,   -1,  261,   -1,   -1,  307,   -1,  309,  310,  311,
 
12912
  312,   -1,   -1,  272,   -1,  317,   -1,  362,  277,  321,
 
12913
   -1,  323,  281,   -1,   -1,  284,   -1,   -1,   -1,   -1,
 
12914
   -1,  333,   -1,   -1,  336,   -1,  338,  296,  297,   -1,
 
12915
  342,  257,  301,  302,   -1,  261,   -1,   -1,  307,   -1,
 
12916
  309,  310,  311,  312,   -1,   -1,  272,   -1,  317,   -1,
 
12917
  362,  277,  321,   -1,  323,  281,   -1,   -1,  284,   -1,
 
12918
   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,   -1,  338,
 
12919
  296,  297,   -1,  342,  257,  301,  302,   -1,  261,   -1,
 
12920
   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,  272,
 
12921
   -1,  317,   -1,  362,  277,  321,   -1,  323,  281,   -1,
 
12922
   -1,  284,   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,
 
12923
  336,   -1,  338,  296,  297,   -1,  342,   -1,  301,  302,
 
12924
   -1,   -1,   -1,   -1,  307,   -1,  309,  310,  311,  312,
 
12925
   -1,   -1,   -1,   -1,  317,   -1,  362,   -1,  321,   -1,
 
12926
  323,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12927
  333,   -1,  256,  336,   -1,  338,   -1,   -1,   -1,  342,
 
12928
  264,  265,  266,  267,   -1,   -1,  270,  271,   -1,  273,
 
12929
  274,  275,  276,  277,  278,  279,   -1,   -1,   -1,  362,
 
12930
   -1,  285,   -1,  287,  288,  289,  290,  291,  292,   -1,
 
12931
   -1,  295,   -1,   -1,   -1,  299,  300,   -1,  302,  303,
 
12932
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12933
  314,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
12934
  324,  325,  326,  327,  328,  329,  330,  331,  332,  333,
 
12935
  334,  335,   -1,  337,   -1,   -1,  340,  341,   -1,  256,
 
12936
  344,  345,   -1,   -1,   -1,  262,   -1,   -1,   -1,   -1,
 
12937
   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,
 
12938
   -1,   -1,   -1,  367,   -1,   -1,   -1,  371,   -1,   -1,
 
12939
   -1,   -1,  376,  377,  378,  379,  380,   -1,   -1,   -1,
 
12940
  384,  298,  386,   -1,   -1,   -1,   -1,   -1,  392,  393,
 
12941
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12942
   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,
 
12943
   -1,  262,   -1,  417,  418,  419,  420,   -1,   -1,   -1,
 
12944
   -1,   -1,  339,   -1,   -1,  429,   -1,  344,   -1,  346,
 
12945
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
12946
  357,   -1,   -1,   -1,   -1,   -1,  363,  298,   -1,   -1,
 
12947
   -1,  368,  369,  370,  371,  372,  373,  374,  375,  376,
 
12948
   -1,  378,  379,   -1,  381,  382,  383,  384,  385,  386,
 
12949
  387,  388,  389,  390,   -1,  392,  393,  394,  395,  396,
 
12950
  397,  398,  399,  400,  401,  402,  403,  404,  405,  406,
 
12951
  407,  408,  409,  410,  411,  412,  413,  414,  256,   -1,
 
12952
   -1,  418,   -1,  420,  262,   -1,  423,   -1,   -1,   -1,
 
12953
   -1,   -1,  429,   -1,   -1,   -1,   -1,  368,   -1,   -1,
 
12954
  371,   -1,  373,  374,   -1,   -1,   -1,  378,  379,   -1,
 
12955
   -1,  382,  383,  384,  385,  386,  387,  388,  389,  390,
 
12956
  298,  392,  393,  394,  395,  396,  397,  398,  399,  400,
 
12957
  401,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12958
   -1,  412,  413,   -1,   -1,   -1,   -1,   -1,   -1,  420,
 
12959
   -1,   -1,  423,   -1,   -1,   -1,   -1,   -1,  429,   -1,
 
12960
   -1,  339,   -1,   -1,   -1,   -1,  344,   -1,  346,  347,
 
12961
  348,  349,  350,  351,  352,  353,  354,  355,  356,  357,
 
12962
   -1,   -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,   -1,
 
12963
  368,  369,  370,  371,  372,  373,  374,  375,  376,   -1,
 
12964
  378,  379,   -1,  381,  382,  383,  384,  385,  386,  387,
 
12965
  388,  389,  390,   -1,  392,  393,  394,  395,  396,  397,
 
12966
  398,  399,  400,  401,  402,  403,  404,  405,  406,  407,
 
12967
  408,  409,  410,  411,  412,  413,   -1,  256,  256,   -1,
 
12968
  418,   -1,  420,  262,   -1,  423,   -1,  265,   -1,  267,
 
12969
   -1,  429,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,
 
12970
   -1,  279,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
12971
  288,   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,  298,
 
12972
   -1,   -1,  300,   -1,   -1,   -1,  304,   -1,   -1,   -1,
 
12973
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,
 
12974
  318,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
 
12975
   -1,   -1,  330,  331,   -1,   -1,  334,   -1,   -1,  337,
 
12976
  339,   -1,   -1,   -1,   -1,  344,   -1,  346,  347,  348,
 
12977
  349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
 
12978
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  367,  368,
 
12979
  369,  370,  371,  372,  373,  374,  375,  376,   -1,  378,
 
12980
  379,   -1,  381,  382,  383,  384,  385,  386,  387,  388,
 
12981
  389,  390,   -1,  392,  393,  394,  395,  396,  397,  398,
 
12982
  399,  400,  401,  402,  403,  404,  405,  406,  407,  408,
 
12983
  409,  410,  411,  412,  413,   -1,  256,  256,   -1,   -1,
 
12984
  418,  420,  262,   -1,   -1,   -1,  265,   -1,  267,   -1,
 
12985
  429,  270,   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,
 
12986
  279,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  288,
 
12987
   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,  298,   -1,
 
12988
   -1,  300,   -1,   -1,   -1,  304,   -1,   -1,   -1,   -1,
 
12989
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
12990
   -1,   -1,   -1,  322,   -1,   -1,   -1,  256,   -1,   -1,
 
12991
   -1,  330,  331,  262,   -1,  334,   -1,   -1,  337,  339,
 
12992
   -1,   -1,   -1,   -1,  344,   -1,  346,  347,  348,  349,
 
12993
  350,  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,
 
12994
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  367,  368,  298,
 
12995
  370,  371,  372,  373,  374,  375,  376,   -1,  378,  379,
 
12996
   -1,  381,  382,  383,  384,  385,  386,  387,  388,  389,
 
12997
  390,   -1,  392,  393,  394,  395,  396,  397,  398,  399,
 
12998
  400,  401,  402,  403,  404,  405,  406,  407,  408,  409,
 
12999
  410,  411,  412,  413,   -1,  256,   -1,   -1,   -1,  418,
 
13000
  420,  262,   -1,  423,   -1,   -1,   -1,   -1,   -1,  429,
 
13001
   -1,   -1,   -1,   -1,  363,   -1,   -1,   -1,   -1,  368,
 
13002
  369,   -1,  371,  372,  373,  374,   -1,  376,   -1,  378,
 
13003
  379,   -1,  381,  382,  383,  384,  385,  298,  387,  388,
 
13004
  389,  390,   -1,  392,  393,  394,  395,  396,  397,  398,
 
13005
  399,  400,  401,  402,  403,  404,  405,  406,  407,  408,
 
13006
  409,  410,  411,  412,  413,   -1,   -1,   -1,   -1,  418,
 
13007
   -1,  420,   -1,   -1,  423,   -1,   -1,   -1,  339,   -1,
 
13008
  429,   -1,   -1,  344,   -1,  346,  347,  348,  349,  350,
 
13009
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13010
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13011
  371,  372,  373,  374,  375,  376,   -1,  378,  379,   -1,
 
13012
  381,  382,  383,  384,  385,  386,  387,  388,  389,  390,
 
13013
   -1,  392,  393,  394,  395,  396,  397,  398,  399,  400,
 
13014
  401,  402,  403,  404,  405,  406,  407,  408,  409,  410,
 
13015
  411,  412,  413,   -1,  256,  256,   -1,   -1,   -1,  420,
 
13016
  262,   -1,  423,   -1,  265,   -1,  267,   -1,  429,  270,
 
13017
   -1,   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,   -1,
 
13018
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  288,   -1,   -1,
 
13019
   -1,   -1,   -1,   -1,  295,   -1,  298,   -1,   -1,  300,
 
13020
   -1,   -1,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
13021
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,   -1,   -1,
 
13022
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
 
13023
  331,   -1,   -1,  334,   -1,   -1,  337,  339,   -1,   -1,
 
13024
   -1,   -1,  344,   -1,  346,  347,  348,  349,  350,  351,
 
13025
  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,   -1,
 
13026
   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,  371,
 
13027
  372,  373,  374,  375,  376,   -1,  378,  379,   -1,  381,
 
13028
  382,  383,  384,  385,  386,  387,  388,  389,  390,   -1,
 
13029
  392,  393,  394,  395,  396,  397,  398,  399,  400,  401,
 
13030
  402,  403,  404,  405,  406,  407,  408,  409,  410,  411,
 
13031
  412,  413,   -1,  256,  256,   -1,   -1,  418,  420,  262,
 
13032
   -1,  423,   -1,  265,   -1,  267,   -1,  429,  270,   -1,
 
13033
   -1,   -1,   -1,  275,   -1,   -1,   -1,  279,   -1,   -1,
 
13034
   -1,   -1,   -1,   -1,   -1,   -1,  288,   -1,   -1,   -1,
 
13035
   -1,   -1,   -1,  295,   -1,  298,   -1,   -1,  300,   -1,
 
13036
   -1,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13037
   -1,   -1,   -1,   -1,  316,   -1,  318,   -1,   -1,   -1,
 
13038
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
 
13039
   -1,   -1,  334,   -1,   -1,  337,  339,   -1,   -1,   -1,
 
13040
   -1,  344,   -1,  346,  347,  348,  349,  350,  351,  352,
 
13041
  353,  354,  355,  356,   -1,   -1,   -1,   -1,   -1,   -1,
 
13042
   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,  371,  372,
 
13043
  373,  374,  375,  376,   -1,  378,  379,   -1,  381,  382,
 
13044
  383,  384,  385,  386,  387,  388,  389,  390,   -1,  392,
 
13045
  393,  394,  395,  396,  397,  398,  399,  400,  401,  402,
 
13046
  403,  404,  405,  406,  407,  408,  409,  410,  411,  412,
 
13047
  413,   -1,  256,   -1,   -1,   -1,  418,  420,  262,  256,
 
13048
  423,   -1,  266,   -1,   -1,   -1,  429,   -1,  265,   -1,
 
13049
  267,   -1,   -1,  270,   -1,   -1,   -1,   -1,  275,   -1,
 
13050
   -1,   -1,  279,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13051
   -1,  288,   -1,   -1,  298,   -1,   -1,   -1,  295,   -1,
 
13052
   -1,   -1,   -1,  300,   -1,   -1,   -1,  304,   -1,   -1,
 
13053
  314,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
13054
   -1,  318,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
 
13055
   -1,   -1,   -1,  330,  331,   -1,   -1,  334,   -1,   -1,
 
13056
  337,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,
 
13057
   -1,  262,   -1,  357,   -1,   -1,   -1,   -1,   -1,  363,
 
13058
   -1,   -1,   -1,   -1,  368,  369,  370,  371,  372,  373,
 
13059
  374,  375,  376,   -1,  378,  379,   -1,  381,  382,  383,
 
13060
  384,  385,  386,  387,  388,  389,  390,  298,  392,  393,
 
13061
  394,  395,  396,  397,  398,  399,  400,  401,  402,  403,
 
13062
  404,  405,  406,  407,  408,  409,  410,  411,  412,  413,
 
13063
   -1,   -1,   -1,   -1,  418,   -1,  420,   -1,   -1,  423,
 
13064
   -1,  418,   -1,   -1,   -1,  429,   -1,   -1,  339,   -1,
 
13065
   -1,   -1,  256,  344,   -1,  346,  347,  348,  349,  350,
 
13066
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13067
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13068
   -1,  372,   -1,  374,  375,  376,   -1,  378,  379,   -1,
 
13069
  381,  382,  383,  384,  385,  386,  387,  388,  389,  390,
 
13070
   -1,   -1,   -1,  394,  395,  396,  397,  398,  399,  400,
 
13071
  401,  402,  403,  404,  405,  406,  407,  408,  409,  410,
 
13072
  411,  256,  413,   -1,   -1,   -1,   -1,  262,   -1,   -1,
 
13073
   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,  429,   -1,
 
13074
  344,   -1,  346,  347,  348,  349,  350,  351,  352,  353,
 
13075
  354,  355,  356,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13076
   -1,   -1,   -1,  298,  368,   -1,  370,   -1,  372,   -1,
 
13077
  374,  375,  376,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13078
   -1,   -1,   -1,   -1,   -1,   -1,  390,   -1,   -1,  256,
 
13079
   -1,   -1,   -1,   -1,   -1,  262,   -1,   -1,   -1,   -1,
 
13080
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13081
   -1,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13082
  355,  356,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,
 
13083
   -1,  298,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13084
  375,  376,   -1,  378,  379,   -1,   -1,  382,  383,  384,
 
13085
  385,  386,  387,  388,  389,  390,   -1,   -1,   -1,  394,
 
13086
  395,  396,  397,  398,  399,  400,  401,   -1,   -1,   -1,
 
13087
   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,  413,  346,
 
13088
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
13089
   -1,   -1,   -1,  256,  429,   -1,   -1,   -1,   -1,  262,
 
13090
   -1,  368,   -1,  370,   -1,  372,   -1,  374,  375,  376,
 
13091
   -1,  378,  379,   -1,   -1,  382,  383,  384,  385,   -1,
 
13092
   -1,   -1,  389,  390,   -1,   -1,   -1,  394,  395,  396,
 
13093
  397,  398,  399,  400,  401,  298,   -1,   -1,   -1,   -1,
 
13094
   -1,   -1,   -1,   -1,   -1,   -1,  413,   -1,   -1,   -1,
 
13095
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13096
   -1,  256,  429,   -1,   -1,   -1,   -1,  262,   -1,   -1,
 
13097
   -1,   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,
 
13098
   -1,  344,   -1,  346,  347,  348,  349,  350,  351,  352,
 
13099
  353,  354,  355,  356,   -1,   -1,   -1,   -1,   -1,   -1,
 
13100
   -1,   -1,   -1,  298,   -1,  368,   -1,  370,   -1,  372,
 
13101
   -1,  374,  375,  376,   -1,  378,  379,   -1,   -1,  382,
 
13102
  383,  384,  385,   -1,   -1,   -1,  389,  390,   -1,  256,
 
13103
   -1,  394,  395,  396,  397,  398,  399,  400,  401,   -1,
 
13104
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13105
  413,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13106
  355,  356,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,
 
13107
   -1,   -1,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13108
  375,  376,   -1,  378,  379,   -1,   -1,  382,  383,  384,
 
13109
  385,   -1,   -1,   -1,  389,  390,   -1,  256,   -1,  394,
 
13110
  395,  396,  397,  398,  399,  400,  401,   -1,   -1,   -1,
 
13111
   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,  413,  346,
 
13112
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
13113
   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,
 
13114
   -1,  368,   -1,  370,   -1,  372,   -1,  374,  375,  376,
 
13115
   -1,   -1,   -1,   -1,   -1,  382,  383,  384,  385,   -1,
 
13116
   -1,   -1,  389,  390,   -1,  256,   -1,  394,  395,  396,
 
13117
  397,  398,  399,  400,  401,   -1,   -1,   -1,   -1,   -1,
 
13118
  339,   -1,   -1,   -1,   -1,  344,  413,  346,  347,  348,
 
13119
  349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
 
13120
   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,
 
13121
   -1,  370,   -1,  372,   -1,  374,  375,  376,   -1,   -1,
 
13122
   -1,   -1,   -1,  382,  383,  384,  385,   -1,   -1,   -1,
 
13123
  389,  390,   -1,  256,   -1,  394,  395,  396,  397,  398,
 
13124
  399,  400,  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,
 
13125
   -1,   -1,   -1,  344,  413,  346,  347,  348,  349,  350,
 
13126
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13127
  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13128
   -1,  372,   -1,  374,  375,  376,   -1,   -1,   -1,   -1,
 
13129
   -1,  382,  383,  384,  385,   -1,   -1,   -1,  389,  390,
 
13130
   -1,  256,   -1,  394,  395,  396,  397,  398,  399,  400,
 
13131
  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,
 
13132
   -1,  344,  413,  346,  347,  348,  349,  350,  351,  352,
 
13133
  353,  354,  355,  356,   -1,   -1,   -1,   -1,  429,   -1,
 
13134
   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,   -1,  372,
 
13135
   -1,  374,  375,  376,   -1,   -1,   -1,   -1,   -1,  382,
 
13136
  383,  384,  385,   -1,   -1,   -1,  389,  390,   -1,  256,
 
13137
   -1,   -1,   -1,  396,  397,  398,  399,  400,  401,   -1,
 
13138
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13139
  413,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13140
  355,  356,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,
 
13141
   -1,   -1,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13142
  375,  376,   -1,   -1,   -1,   -1,   -1,  382,  383,  384,
 
13143
  385,   -1,   -1,   -1,  389,  390,   -1,  256,   -1,   -1,
 
13144
   -1,  396,  397,  398,  399,  400,  401,   -1,   -1,   -1,
 
13145
   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,  413,  346,
 
13146
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
13147
   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,
 
13148
   -1,  368,   -1,  370,   -1,  372,   -1,  374,  375,  376,
 
13149
   -1,   -1,   -1,   -1,   -1,  382,  383,  384,  385,   -1,
 
13150
   -1,   -1,  389,  390,   -1,  256,   -1,   -1,   -1,  396,
 
13151
  397,  398,  399,  400,  401,   -1,   -1,   -1,   -1,   -1,
 
13152
  339,   -1,   -1,   -1,   -1,  344,  413,  346,  347,  348,
 
13153
  349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
 
13154
   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,
 
13155
   -1,  370,   -1,  372,   -1,  374,  375,  376,   -1,   -1,
 
13156
   -1,   -1,   -1,  382,  383,  384,  385,   -1,   -1,   -1,
 
13157
  389,  390,   -1,  256,   -1,   -1,   -1,  396,  397,  398,
 
13158
  399,  400,  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,
 
13159
   -1,   -1,   -1,  344,  413,  346,  347,  348,  349,  350,
 
13160
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13161
  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13162
   -1,  372,   -1,  374,  375,  376,   -1,   -1,   -1,   -1,
 
13163
   -1,  382,  383,  384,  385,   -1,   -1,   -1,  389,  390,
 
13164
   -1,  256,   -1,   -1,   -1,  396,  397,  398,  399,  400,
 
13165
  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,
 
13166
   -1,  344,  413,  346,  347,  348,  349,  350,  351,  352,
 
13167
  353,  354,  355,  356,   -1,   -1,   -1,   -1,  429,   -1,
 
13168
   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,   -1,  372,
 
13169
   -1,  374,  375,  376,   -1,   -1,   -1,   -1,   -1,   -1,
 
13170
   -1,  384,  385,   -1,   -1,   -1,  389,  390,   -1,  256,
 
13171
   -1,   -1,   -1,   -1,   -1,  398,  399,  400,  401,   -1,
 
13172
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13173
  413,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13174
  355,  356,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,
 
13175
   -1,   -1,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13176
  375,  376,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  384,
 
13177
  385,   -1,   -1,   -1,  389,  390,   -1,  256,   -1,   -1,
 
13178
   -1,   -1,   -1,  398,  399,  400,  401,   -1,   -1,   -1,
 
13179
   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,  413,  346,
 
13180
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
13181
   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,
 
13182
   -1,  368,   -1,  370,   -1,  372,   -1,  374,  375,  376,
 
13183
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  384,  385,   -1,
 
13184
   -1,   -1,  389,  390,   -1,  256,   -1,   -1,   -1,   -1,
 
13185
   -1,  398,  399,  400,  401,   -1,   -1,   -1,   -1,   -1,
 
13186
  339,   -1,   -1,   -1,   -1,  344,  413,  346,  347,  348,
 
13187
  349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
 
13188
   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,
 
13189
   -1,  370,   -1,  372,   -1,  374,  375,  376,   -1,   -1,
 
13190
   -1,   -1,   -1,   -1,   -1,  384,  385,   -1,   -1,   -1,
 
13191
  389,  390,   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,
 
13192
   -1,  400,  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,
 
13193
   -1,   -1,   -1,  344,  413,  346,  347,  348,  349,  350,
 
13194
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13195
  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13196
   -1,  372,   -1,  374,  375,  376,   -1,   -1,   -1,   -1,
 
13197
   -1,   -1,   -1,  384,  385,   -1,   -1,   -1,  389,  390,
 
13198
   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  400,
 
13199
  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,
 
13200
   -1,  344,  413,  346,  347,  348,  349,  350,  351,  352,
 
13201
  353,  354,  355,  356,   -1,   -1,   -1,   -1,  429,   -1,
 
13202
   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,   -1,  372,
 
13203
   -1,  374,  375,  376,   -1,   -1,   -1,   -1,   -1,   -1,
 
13204
   -1,   -1,  385,   -1,   -1,   -1,  389,  390,   -1,  256,
 
13205
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  400,  401,   -1,
 
13206
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13207
  413,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13208
  355,  356,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,
 
13209
   -1,   -1,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13210
  375,  376,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13211
  385,   -1,   -1,   -1,  389,  390,   -1,  256,   -1,   -1,
 
13212
   -1,   -1,   -1,   -1,   -1,  400,  401,   -1,   -1,   -1,
 
13213
   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,  413,  346,
 
13214
  347,  348,  349,  350,  351,  352,  353,  354,  355,  356,
 
13215
   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,
 
13216
   -1,  368,   -1,  370,   -1,  372,   -1,  374,  375,  376,
 
13217
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  385,   -1,
 
13218
   -1,   -1,   -1,  390,   -1,  256,   -1,   -1,   -1,   -1,
 
13219
   -1,   -1,   -1,  400,  401,   -1,   -1,   -1,   -1,   -1,
 
13220
  339,   -1,   -1,   -1,   -1,  344,  413,  346,  347,  348,
 
13221
  349,  350,  351,  352,  353,  354,  355,  356,   -1,   -1,
 
13222
   -1,   -1,  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,
 
13223
   -1,  370,   -1,  372,   -1,  374,  375,  376,   -1,   -1,
 
13224
   -1,   -1,   -1,   -1,   -1,   -1,  385,   -1,   -1,   -1,
 
13225
   -1,  390,   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,
 
13226
   -1,  400,  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,
 
13227
   -1,   -1,   -1,  344,  413,  346,  347,  348,  349,  350,
 
13228
  351,  352,  353,  354,  355,  356,   -1,   -1,   -1,   -1,
 
13229
  429,   -1,   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,
 
13230
   -1,  372,   -1,  374,  375,  376,   -1,   -1,   -1,   -1,
 
13231
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  390,
 
13232
   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  400,
 
13233
  401,   -1,   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,
 
13234
   -1,  344,  413,  346,  347,  348,  349,  350,  351,  352,
 
13235
  353,  354,  355,  356,   -1,   -1,   -1,   -1,  429,   -1,
 
13236
   -1,   -1,   -1,   -1,   -1,  368,   -1,  370,   -1,  372,
 
13237
   -1,  374,  375,  376,   -1,   -1,   -1,  256,   -1,   -1,
 
13238
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  390,   -1,   -1,
 
13239
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  400,  401,   -1,
 
13240
   -1,   -1,   -1,   -1,  339,   -1,   -1,   -1,   -1,  344,
 
13241
  413,  346,  347,  348,  349,  350,  351,  352,  353,  354,
 
13242
  355,  356,   -1,   -1,   -1,   -1,  429,   -1,   -1,   -1,
 
13243
   -1,   -1,   -1,  368,   -1,  370,   -1,  372,   -1,  374,
 
13244
  375,  376,   -1,   -1,   -1,   -1,  262,   -1,   -1,   -1,
 
13245
  266,   -1,   -1,   -1,   -1,  390,   -1,   -1,   -1,   -1,
 
13246
  339,   -1,   -1,   -1,   -1,  344,  401,  346,  347,  348,
 
13247
  349,  350,  351,  352,  353,  354,  355,  356,  413,   -1,
 
13248
   -1,   -1,  298,   -1,   -1,   -1,   -1,   -1,   -1,  368,
 
13249
   -1,  370,   -1,  372,  429,  374,  375,  376,  314,   -1,
 
13250
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13251
   -1,  390,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13252
   -1,   -1,  401,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13253
   -1,   -1,   -1,   -1,  413,   -1,   -1,   -1,   -1,   -1,
 
13254
   -1,  357,   -1,   -1,   -1,   -1,   -1,  363,   -1,   -1,
 
13255
  429,   -1,  368,  369,   -1,  371,   -1,  373,   -1,  375,
 
13256
  376,   -1,  378,  379,   -1,  381,  382,  383,  384,  385,
 
13257
  386,  387,  388,  389,  390,   -1,  392,  393,  394,  395,
 
13258
  396,  397,  398,  399,  400,  401,  402,  403,  404,  405,
 
13259
  406,  407,  408,  409,  410,  411,  412,  413,   -1,   -1,
 
13260
  256,   -1,  418,   -1,  420,   -1,   -1,  423,  264,  265,
 
13261
  266,  267,  268,  429,  270,  271,   -1,  273,  274,  275,
 
13262
  276,  277,  278,  279,   -1,   -1,   -1,   -1,   -1,  285,
 
13263
   -1,  287,  288,  289,  290,  291,  292,   -1,   -1,  295,
 
13264
   -1,   -1,   -1,  299,  300,   -1,  302,  303,  304,   -1,
 
13265
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  314,   -1,
 
13266
  316,   -1,  318,  319,   -1,   -1,  322,   -1,  324,  325,
 
13267
  326,  327,  328,  329,  330,  331,  332,  333,  334,  335,
 
13268
   -1,  337,   -1,   -1,  340,  341,   -1,   -1,  344,  345,
 
13269
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13270
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13271
   -1,  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13272
  376,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13273
  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,
 
13274
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13275
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
 
13276
   -1,  417,  418,  419,  420,   -1,  422,  264,  265,  266,
 
13277
  267,   -1,   -1,  270,  271,   -1,  273,  274,  275,  276,
 
13278
  277,  278,  279,   -1,   -1,   -1,   -1,   -1,  285,   -1,
 
13279
  287,  288,  289,  290,  291,  292,   -1,   -1,  295,   -1,
 
13280
   -1,   -1,  299,  300,   -1,  302,  303,  304,   -1,   -1,
 
13281
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  314,   -1,  316,
 
13282
   -1,  318,  319,   -1,   -1,  322,   -1,  324,  325,  326,
 
13283
  327,  328,  329,  330,  331,  332,  333,  334,  335,   -1,
 
13284
  337,   -1,   -1,  340,  341,   -1,   -1,  344,  345,   -1,
 
13285
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13286
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
13287
  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,  376,
 
13288
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
13289
   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,
 
13290
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13291
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
 
13292
  417,  418,  419,  420,  264,  265,  266,  267,   -1,   -1,
 
13293
  270,  271,   -1,  273,  274,  275,  276,  277,  278,  279,
 
13294
   -1,   -1,   -1,   -1,   -1,  285,   -1,  287,  288,  289,
 
13295
  290,  291,  292,   -1,   -1,  295,   -1,   -1,   -1,  299,
 
13296
  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
 
13297
   -1,   -1,   -1,   -1,  314,   -1,  316,   -1,  318,  319,
 
13298
   -1,   -1,  322,   -1,  324,  325,  326,  327,  328,  329,
 
13299
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,   -1,
 
13300
  340,  341,   -1,   -1,  344,  345,   -1,   -1,   -1,   -1,
 
13301
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,
 
13302
  360,  361,  362,  363,   -1,   -1,   -1,  367,   -1,   -1,
 
13303
   -1,  371,   -1,   -1,   -1,   -1,  376,  377,  378,  379,
 
13304
  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,
 
13305
   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,
 
13306
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13307
   -1,   -1,   -1,  256,   -1,   -1,   -1,  417,  418,  419,
 
13308
  420,  264,  265,  266,  267,   -1,   -1,  270,  271,   -1,
 
13309
  273,  274,  275,  276,  277,  278,  279,   -1,   -1,   -1,
 
13310
   -1,   -1,  285,   -1,  287,  288,  289,  290,  291,  292,
 
13311
   -1,   -1,  295,   -1,   -1,   -1,  299,  300,   -1,  302,
 
13312
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13313
   -1,  314,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
13314
   -1,  324,  325,  326,  327,  328,  329,  330,  331,  332,
 
13315
  333,  334,  335,   -1,  337,   -1,   -1,  340,  341,   -1,
 
13316
   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13317
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
13318
  363,   -1,   -1,   -1,  367,   -1,   -1,   -1,  371,   -1,
 
13319
   -1,   -1,   -1,  376,  377,  378,  379,  380,   -1,   -1,
 
13320
   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,
 
13321
  393,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13322
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13323
  256,   -1,   -1,   -1,  417,  418,  419,  420,  264,  265,
 
13324
  266,  267,   -1,   -1,  270,  271,   -1,  273,  274,  275,
 
13325
  276,  277,  278,  279,   -1,   -1,   -1,   -1,   -1,  285,
 
13326
   -1,  287,  288,  289,  290,  291,  292,   -1,   -1,  295,
 
13327
   -1,   -1,   -1,  299,  300,   -1,  302,  303,  304,   -1,
 
13328
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  314,   -1,
 
13329
  316,   -1,  318,  319,   -1,   -1,  322,   -1,  324,  325,
 
13330
  326,  327,  328,  329,  330,  331,  332,  333,  334,  335,
 
13331
   -1,  337,   -1,   -1,  340,  341,   -1,   -1,  344,  345,
 
13332
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13333
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13334
   -1,  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13335
  376,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13336
  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,
 
13337
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13338
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,
 
13339
   -1,  417,  418,  419,  420,  264,  265,   -1,  267,   -1,
 
13340
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
13341
  279,   -1,   -1,  265,   -1,  267,  285,   -1,  270,  288,
 
13342
   -1,   -1,   -1,  275,   -1,   -1,  295,  279,   -1,   -1,
 
13343
   -1,  300,   -1,  302,  303,  304,  288,  306,   -1,   -1,
 
13344
   -1,   -1,   -1,  295,  313,   -1,   -1,  316,  300,  318,
 
13345
  319,   -1,  304,  322,   -1,   -1,  325,   -1,  327,   -1,
 
13346
  329,  330,  331,  332,  316,  334,  318,   -1,   -1,   -1,
 
13347
  322,   -1,  341,   -1,   -1,  344,  345,   -1,  330,  331,
 
13348
   -1,   -1,  334,   -1,   -1,  337,   -1,   -1,   -1,   -1,
 
13349
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
13350
   -1,   -1,  371,   -1,   -1,  374,   -1,   -1,  377,  378,
 
13351
  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,
 
13352
  372,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,
 
13353
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13354
   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,  417,  418,
 
13355
  419,  420,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13356
   -1,   -1,   -1,  275,  276,  277,  418,  279,   -1,   -1,
 
13357
  265,   -1,  267,  285,   -1,  270,  288,   -1,   -1,   -1,
 
13358
  275,   -1,   -1,  295,  279,   -1,   -1,   -1,  300,   -1,
 
13359
  302,  303,  304,  288,   -1,   -1,   -1,   -1,   -1,   -1,
 
13360
  295,   -1,   -1,   -1,  316,  300,  318,  319,   -1,  304,
 
13361
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13362
  332,  316,  334,  318,   -1,   -1,   -1,  322,   -1,  341,
 
13363
   -1,   -1,  344,  345,   -1,  330,  331,   -1,   -1,  334,
 
13364
   -1,   -1,  337,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13365
  362,  363,   -1,   -1,   -1,  367,  368,   -1,   -1,  371,
 
13366
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13367
   -1,   -1,  384,   -1,  386,  370,   -1,   -1,   -1,   -1,
 
13368
  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13369
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13370
   -1,  256,   -1,   -1,   -1,  417,  418,  419,  420,  264,
 
13371
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
13372
  275,  276,  277,  418,  279,   -1,   -1,  265,   -1,  267,
 
13373
  285,   -1,  270,  288,   -1,   -1,   -1,  275,   -1,   -1,
 
13374
  295,  279,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
13375
  288,  306,   -1,   -1,   -1,   -1,   -1,  295,  313,   -1,
 
13376
   -1,  316,  300,  318,  319,   -1,  304,  322,   -1,   -1,
 
13377
  325,   -1,  327,   -1,  329,  330,  331,  332,  316,  334,
 
13378
  318,   -1,   -1,   -1,  322,   -1,  341,   -1,   -1,  344,
 
13379
  345,   -1,  330,  331,   -1,   -1,  334,   -1,   -1,  337,
 
13380
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
13381
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
13382
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
13383
   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
13384
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13385
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,
 
13386
   -1,   -1,  417,  418,  419,  420,  264,  265,   -1,  267,
 
13387
   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,
 
13388
  418,  279,   -1,   -1,  265,   -1,  267,  285,   -1,  270,
 
13389
  288,   -1,   -1,   -1,  275,   -1,   -1,  295,  279,   -1,
 
13390
   -1,   -1,  300,   -1,  302,  303,  304,  288,   -1,   -1,
 
13391
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,  316,  300,
 
13392
  318,  319,  320,  304,  322,   -1,   -1,  325,   -1,  327,
 
13393
   -1,  329,  330,  331,  332,  316,  334,  318,   -1,   -1,
 
13394
   -1,  322,   -1,  341,   -1,   -1,  344,  345,   -1,  330,
 
13395
  331,   -1,   -1,  334,   -1,   -1,  337,   -1,   -1,   -1,
 
13396
   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,  367,
 
13397
   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,
 
13398
  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,
 
13399
   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,
 
13400
   -1,   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13401
   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,  417,
 
13402
  418,  419,  420,  285,   -1,   -1,  288,   -1,   -1,   -1,
 
13403
   -1,   -1,   -1,  295,   -1,   -1,   -1,  418,  300,   -1,
 
13404
  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13405
   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,
 
13406
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13407
  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,  341,
 
13408
   -1,   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,   -1,
 
13409
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13410
  362,  363,   -1,   -1,   -1,  367,  368,   -1,   -1,  371,
 
13411
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13412
   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,
 
13413
  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,  264,  265,
 
13414
   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,
 
13415
  276,  277,   -1,  279,   -1,  417,  418,  419,  420,  285,
 
13416
   -1,   -1,  288,   -1,   -1,   -1,  428,   -1,   -1,  295,
 
13417
   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,
 
13418
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13419
  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,
 
13420
   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,
 
13421
   -1,   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,  345,
 
13422
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13423
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13424
   -1,  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13425
   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13426
  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,
 
13427
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13428
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
 
13429
   -1,  417,  418,  419,  420,   -1,   -1,  264,  265,   -1,
 
13430
  267,   -1,  428,  270,  271,   -1,   -1,   -1,  275,  276,
 
13431
  277,   -1,  279,   -1,   -1,  265,   -1,  267,  285,   -1,
 
13432
  270,  288,   -1,   -1,   -1,  275,   -1,   -1,  295,  279,
 
13433
   -1,   -1,   -1,  300,   -1,  302,  303,  304,  288,   -1,
 
13434
   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,  316,
 
13435
  300,  318,  319,   -1,  304,  322,   -1,   -1,  325,   -1,
 
13436
  327,   -1,  329,  330,  331,  332,  316,  334,  318,   -1,
 
13437
   -1,   -1,  322,   -1,  341,   -1,   -1,  344,  345,   -1,
 
13438
  330,  331,   -1,   -1,  334,   -1,   -1,  337,   -1,   -1,
 
13439
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
13440
  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
13441
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
13442
   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,
 
13443
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13444
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
 
13445
  417,  418,  419,  420,  264,  265,   -1,  267,   -1,   -1,
 
13446
  270,  271,   -1,   -1,   -1,  275,  276,  277,  418,  279,
 
13447
   -1,   -1,  265,   -1,  267,  285,   -1,  270,  288,   -1,
 
13448
   -1,   -1,  275,   -1,   -1,  295,  279,   -1,   -1,   -1,
 
13449
  300,   -1,  302,  303,  304,  288,   -1,   -1,   -1,   -1,
 
13450
   -1,   -1,  295,   -1,   -1,   -1,  316,  300,  318,  319,
 
13451
   -1,  304,  322,   -1,   -1,  325,   -1,  327,   -1,  329,
 
13452
  330,  331,  332,  316,  334,  318,   -1,   -1,   -1,  322,
 
13453
   -1,  341,   -1,   -1,  344,  345,   -1,  330,  331,   -1,
 
13454
   -1,  334,   -1,   -1,  337,   -1,   -1,   -1,   -1,  359,
 
13455
  360,  361,  362,  363,   -1,   -1,   -1,   -1,  368,   -1,
 
13456
   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,
 
13457
  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,
 
13458
   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,
 
13459
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13460
   -1,   -1,   -1,  256,   -1,   -1,   -1,  417,  418,  419,
 
13461
  420,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
13462
   -1,   -1,  275,  276,  277,  418,  279,   -1,   -1,  265,
 
13463
   -1,  267,  285,   -1,  270,  288,   -1,   -1,   -1,  275,
 
13464
   -1,   -1,  295,  279,   -1,   -1,   -1,  300,   -1,  302,
 
13465
  303,  304,  288,   -1,   -1,   -1,   -1,   -1,   -1,  295,
 
13466
   -1,   -1,   -1,  316,  300,  318,  319,   -1,  304,  322,
 
13467
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
13468
  316,  334,  318,   -1,   -1,   -1,  322,   -1,  341,   -1,
 
13469
   -1,  344,  345,   -1,  330,  331,   -1,   -1,  334,   -1,
 
13470
   -1,  337,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
13471
  363,   -1,   -1,   -1,   -1,  368,   -1,   -1,  371,   -1,
 
13472
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
13473
   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,
 
13474
  393,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13475
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13476
  256,   -1,   -1,   -1,  417,  418,  419,  420,  264,  265,
 
13477
   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,
 
13478
  276,  277,  418,  279,   -1,   -1,  265,   -1,  267,  285,
 
13479
   -1,  270,  288,   -1,   -1,   -1,  275,   -1,   -1,  295,
 
13480
  279,   -1,   -1,   -1,  300,   -1,  302,  303,  304,  288,
 
13481
   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
13482
  316,  300,  318,  319,   -1,  304,  322,   -1,   -1,  325,
 
13483
   -1,  327,   -1,  329,  330,  331,  332,  316,  334,  318,
 
13484
   -1,   -1,   -1,  322,   -1,  341,   -1,   -1,  344,  345,
 
13485
   -1,  330,  331,   -1,   -1,  334,   -1,   -1,  337,   -1,
 
13486
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13487
   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13488
   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13489
  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,
 
13490
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13491
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,
 
13492
   -1,  417,  418,  419,  420,  264,  265,   -1,  267,   -1,
 
13493
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,  418,
 
13494
  279,   -1,   -1,  265,   -1,  267,  285,   -1,  270,  288,
 
13495
   -1,   -1,   -1,  275,   -1,   -1,  295,  279,   -1,   -1,
 
13496
   -1,  300,   -1,  302,  303,  304,  288,   -1,   -1,   -1,
 
13497
   -1,   -1,   -1,  295,   -1,   -1,   -1,  316,  300,  318,
 
13498
  319,   -1,  304,  322,   -1,   -1,  325,   -1,  327,   -1,
 
13499
  329,  330,  331,  332,  316,  334,  318,   -1,   -1,   -1,
 
13500
  322,   -1,  341,   -1,   -1,  344,  345,   -1,  330,  331,
 
13501
   -1,   -1,  334,   -1,   -1,  337,   -1,   -1,   -1,   -1,
 
13502
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
13503
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
13504
  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,
 
13505
   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,
 
13506
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13507
   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,  417,  418,
 
13508
  419,  420,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13509
   -1,   -1,   -1,  275,  276,  277,  418,  279,   -1,   -1,
 
13510
  265,   -1,  267,  285,   -1,  270,  288,   -1,   -1,   -1,
 
13511
  275,   -1,   -1,  295,  279,   -1,   -1,   -1,  300,   -1,
 
13512
  302,  303,  304,  288,   -1,   -1,   -1,   -1,   -1,   -1,
 
13513
  295,   -1,   -1,   -1,  316,  300,  318,  319,   -1,  304,
 
13514
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13515
  332,  316,  334,  318,   -1,   -1,   -1,  322,   -1,  341,
 
13516
   -1,   -1,  344,  345,   -1,  330,  331,   -1,   -1,  334,
 
13517
   -1,   -1,  337,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13518
  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,
 
13519
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13520
   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,
 
13521
  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13522
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13523
   -1,  256,   -1,   -1,   -1,  417,  418,  419,  420,  264,
 
13524
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
13525
  275,  276,  277,  418,  279,   -1,   -1,   -1,   -1,   -1,
 
13526
  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,   -1,   -1,
 
13527
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
13528
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13529
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
13530
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
13531
   -1,   -1,   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,
 
13532
  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13533
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
13534
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
13535
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
13536
   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
13537
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13538
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,
 
13539
   -1,   -1,  417,  418,  419,  420,  264,  265,   -1,  267,
 
13540
   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,
 
13541
   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,   -1,   -1,
 
13542
  288,   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,
 
13543
   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,
 
13544
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,
 
13545
  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,
 
13546
   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,
 
13547
   -1,   -1,   -1,  341,   -1,   -1,  344,  345,   -1,   -1,
 
13548
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13549
   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,
 
13550
   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,
 
13551
  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,
 
13552
   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,
 
13553
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13554
   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,  417,
 
13555
  418,  419,  420,  264,  265,   -1,  267,   -1,   -1,  270,
 
13556
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
13557
   -1,   -1,   -1,   -1,  285,   -1,   -1,  288,   -1,   -1,
 
13558
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
13559
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
13560
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,
 
13561
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
13562
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
13563
  341,   -1,   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,
 
13564
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
13565
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13566
  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,
 
13567
   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,
 
13568
   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13569
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13570
   -1,   -1,  256,   -1,   -1,   -1,  417,  418,  419,  420,
 
13571
  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,
 
13572
   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,
 
13573
   -1,  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,   -1,
 
13574
   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,
 
13575
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13576
   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
13577
   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,
 
13578
  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  343,
 
13579
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13580
   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,
 
13581
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,
 
13582
   -1,   -1,   -1,  377,  378,  379,  380,  381,   -1,   -1,
 
13583
  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,
 
13584
   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
13585
   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,
 
13586
   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,
 
13587
   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,
 
13588
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13589
   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
13590
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
13591
   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13592
  343,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13593
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
13594
  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,
 
13595
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
13596
   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,
 
13597
  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13598
   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,
 
13599
   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,
 
13600
   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,
 
13601
  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13602
   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,
 
13603
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13604
  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13605
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13606
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13607
  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,
 
13608
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13609
   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,
 
13610
  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,
 
13611
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
13612
   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,
 
13613
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
13614
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
13615
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,
 
13616
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
13617
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
13618
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13619
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
13620
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13621
  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,
 
13622
   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,
 
13623
   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,
 
13624
  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,
 
13625
   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,
 
13626
   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,
 
13627
  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
 
13628
   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,
 
13629
   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,
 
13630
  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,
 
13631
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13632
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,
 
13633
  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,
 
13634
   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,
 
13635
  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,
 
13636
   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,
 
13637
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
13638
  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,
 
13639
  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
13640
   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,
 
13641
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
13642
  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,
 
13643
  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,
 
13644
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13645
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13646
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
13647
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
13648
  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,
 
13649
   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,
 
13650
   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,
 
13651
   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,
 
13652
  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,
 
13653
   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,
 
13654
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,
 
13655
  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,
 
13656
   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,
 
13657
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13658
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13659
   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,
 
13660
   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,
 
13661
  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,
 
13662
   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,
 
13663
  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,
 
13664
  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,
 
13665
  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,
 
13666
   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,
 
13667
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
13668
   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,
 
13669
  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,
 
13670
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13671
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13672
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
13673
   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
13674
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
13675
  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,
 
13676
   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,
 
13677
  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,
 
13678
  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,
 
13679
   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,
 
13680
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13681
  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,
 
13682
   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,
 
13683
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13684
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13685
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13686
   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13687
   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13688
  386,  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,
 
13689
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
13690
  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,
 
13691
  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,
 
13692
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
13693
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13694
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
13695
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
13696
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13697
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13698
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
13699
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
13700
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
13701
   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
13702
  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,
 
13703
   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,
 
13704
   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,
 
13705
   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,
 
13706
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13707
   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
13708
   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,
 
13709
  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13710
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13711
   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,
 
13712
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,
 
13713
   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,
 
13714
  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,
 
13715
   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
13716
   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,
 
13717
   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,
 
13718
   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,
 
13719
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13720
   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
13721
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
13722
   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13723
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13724
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
13725
  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,
 
13726
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
13727
   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,
 
13728
  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13729
   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,
 
13730
   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,
 
13731
   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,
 
13732
  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13733
   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,
 
13734
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13735
  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13736
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13737
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13738
  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,
 
13739
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13740
   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,
 
13741
  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,
 
13742
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
13743
   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,
 
13744
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
13745
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
13746
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,
 
13747
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
13748
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
13749
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13750
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
13751
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13752
  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,
 
13753
   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,
 
13754
   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,
 
13755
  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,
 
13756
   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,
 
13757
   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,
 
13758
  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
 
13759
   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,
 
13760
   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,
 
13761
  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,
 
13762
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13763
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,
 
13764
  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,
 
13765
   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,
 
13766
  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,
 
13767
   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,
 
13768
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
13769
  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,
 
13770
  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
13771
   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,
 
13772
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
13773
  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,
 
13774
  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,
 
13775
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13776
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13777
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
13778
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
13779
  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,
 
13780
   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,
 
13781
   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,
 
13782
   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,
 
13783
  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,
 
13784
   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,
 
13785
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,
 
13786
  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,
 
13787
   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,
 
13788
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13789
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13790
   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,
 
13791
   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,
 
13792
  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,
 
13793
   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,
 
13794
  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,
 
13795
  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,
 
13796
  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,
 
13797
   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,
 
13798
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
13799
   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,
 
13800
  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,
 
13801
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13802
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13803
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
13804
   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
13805
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
13806
  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,
 
13807
   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,
 
13808
  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,
 
13809
  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,
 
13810
   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,
 
13811
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13812
  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,
 
13813
   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,
 
13814
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13815
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13816
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13817
   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13818
   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13819
  386,  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,
 
13820
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
13821
  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,
 
13822
  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,
 
13823
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
13824
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13825
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
13826
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
13827
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13828
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13829
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
13830
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
13831
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
13832
   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
13833
  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,
 
13834
   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,
 
13835
   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,
 
13836
   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,
 
13837
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13838
   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
13839
   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,
 
13840
  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13841
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13842
   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,
 
13843
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,
 
13844
   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,
 
13845
  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,
 
13846
   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
13847
   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,
 
13848
   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,
 
13849
   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,
 
13850
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13851
   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
13852
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
13853
   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13854
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13855
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
13856
  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,
 
13857
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
13858
   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,  392,
 
13859
  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,
 
13860
   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,   -1,
 
13861
   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,   -1,
 
13862
   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,
 
13863
  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13864
   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,
 
13865
  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,
 
13866
  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13867
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13868
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,
 
13869
  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,
 
13870
   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,
 
13871
   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,   -1,
 
13872
  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,  270,
 
13873
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
13874
   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,   -1,
 
13875
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
13876
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
13877
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,
 
13878
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
13879
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
13880
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13881
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
13882
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13883
  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,
 
13884
   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,   -1,
 
13885
   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,   -1,
 
13886
  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,
 
13887
   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,  420,
 
13888
   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,
 
13889
  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
 
13890
   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,
 
13891
   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,
 
13892
  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,
 
13893
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13894
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,
 
13895
  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,
 
13896
   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,
 
13897
  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,   -1,
 
13898
   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,   -1,
 
13899
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
13900
  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,  288,
 
13901
  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
13902
   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,
 
13903
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
13904
  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,
 
13905
  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,
 
13906
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13907
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13908
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
13909
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
13910
  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,   -1,
 
13911
   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,  267,
 
13912
   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,
 
13913
   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,  418,
 
13914
  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,
 
13915
   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,
 
13916
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,
 
13917
  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,
 
13918
   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,
 
13919
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13920
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13921
   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,
 
13922
   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,
 
13923
  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,  256,
 
13924
   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,   -1,
 
13925
  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,
 
13926
  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,  417,
 
13927
  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,   -1,
 
13928
   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,
 
13929
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
13930
   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,
 
13931
  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,
 
13932
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13933
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13934
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
13935
   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
13936
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
13937
  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,  265,
 
13938
   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,
 
13939
  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,  285,
 
13940
  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,  295,
 
13941
   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,
 
13942
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13943
  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,
 
13944
   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,
 
13945
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13946
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13947
   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,
 
13948
   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,
 
13949
   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,
 
13950
  386,  256,   -1,   -1,   -1,   -1,  392,  393,   -1,  264,
 
13951
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
13952
  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,   -1,
 
13953
  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,   -1,
 
13954
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
13955
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13956
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
13957
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
13958
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13959
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13960
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
13961
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
13962
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
13963
   -1,  386,  256,   -1,   -1,   -1,   -1,  392,  393,  262,
 
13964
  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,
 
13965
   -1,  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,
 
13966
   -1,  285,  417,  418,  288,  420,   -1,   -1,   -1,   -1,
 
13967
   -1,  295,   -1,   -1,   -1,  298,  300,   -1,  302,  303,
 
13968
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13969
   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
13970
   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,
 
13971
  334,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13972
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13973
   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,
 
13974
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,  371,  372,
 
13975
  373,  374,  375,   -1,   -1,  378,  379,   -1,   -1,  382,
 
13976
  383,  384,  385,  386,  387,  388,  389,  390,   -1,  392,
 
13977
  393,  394,  395,  396,  397,  398,  399,  400,  401,  402,
 
13978
  403,  404,  405,  406,  407,  408,  409,  410,  411,  412,
 
13979
  413,   -1,   -1,  417,  418,   -1,   -1,  420,   -1,  261,
 
13980
  423,  263,   -1,  265,   -1,  267,   -1,   -1,  270,   -1,
 
13981
  272,  273,   -1,  275,   -1,  277,   -1,  279,   -1,  281,
 
13982
  282,  283,  284,   -1,   -1,  287,  288,   -1,   -1,   -1,
 
13983
   -1,  293,  294,  295,  296,  297,   -1,   -1,  300,   -1,
 
13984
  302,   -1,  304,   -1,  306,  307,   -1,  309,  310,  311,
 
13985
  312,   -1,   -1,  315,  316,  317,  318,   -1,   -1,  321,
 
13986
  322,  323,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
 
13987
   -1,  333,  334,   -1,  336,  337,  338,   -1,   -1,   -1,
 
13988
  342,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13989
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
13990
  362,   -1,  364,  365,  261,   -1,   -1,   -1,  265,   -1,
 
13991
  267,   -1,   -1,  270,   -1,  272,  273,   -1,  275,   -1,
 
13992
  277,   -1,  279,   -1,  281,  282,  283,  284,   -1,   -1,
 
13993
  287,  288,   -1,   -1,   -1,   -1,  293,   -1,  295,  296,
 
13994
  297,   -1,   -1,  300,   -1,  302,   -1,  304,   -1,   -1,
 
13995
  307,   -1,  309,  310,  311,  312,  418,   -1,   -1,  316,
 
13996
  317,  318,   -1,   -1,  321,  322,  323,   -1,   -1,   -1,
 
13997
   -1,   -1,   -1,  330,  331,   -1,  333,  334,   -1,  336,
 
13998
  337,  338,   -1,   -1,   -1,  342,   -1,   -1,   -1,   -1,
 
13999
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14000
   -1,   -1,   -1,  261,   -1,  362,   -1,  265,   -1,  267,
 
14001
   -1,  368,  270,   -1,  272,  273,   -1,  275,   -1,  277,
 
14002
  377,  279,   -1,  281,  282,  283,  284,   -1,   -1,  287,
 
14003
  288,   -1,   -1,   -1,   -1,  293,   -1,  295,  296,  297,
 
14004
   -1,   -1,  300,   -1,  302,   -1,  304,   -1,   -1,  307,
 
14005
   -1,  309,  310,  311,  312,   -1,   -1,   -1,  316,  317,
 
14006
  318,  418,   -1,  321,  322,  323,   -1,   -1,   -1,   -1,
 
14007
   -1,   -1,  330,  331,   -1,  333,  334,   -1,  336,  337,
 
14008
  338,   -1,   -1,   -1,  342,   -1,   -1,   -1,   -1,   -1,
 
14009
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14010
   -1,   -1,  261,   -1,  362,   -1,  265,   -1,  267,   -1,
 
14011
  368,  270,   -1,  272,  273,   -1,  275,   -1,  277,  377,
 
14012
  279,   -1,  281,  282,  283,  284,   -1,   -1,  287,  288,
 
14013
   -1,   -1,   -1,   -1,  293,   -1,  295,  296,  297,   -1,
 
14014
   -1,  300,   -1,  302,   -1,  304,   -1,   -1,  307,   -1,
 
14015
  309,  310,  311,  312,   -1,   -1,   -1,  316,  317,  318,
 
14016
  418,   -1,  321,  322,  323,   -1,   -1,   -1,   -1,   -1,
 
14017
   -1,  330,  331,   -1,  333,  334,   -1,  336,  337,  338,
 
14018
   -1,   -1,   -1,  342,   -1,   -1,   -1,   -1,  261,   -1,
 
14019
   -1,   -1,  265,   -1,  267,   -1,   -1,  270,   -1,  272,
 
14020
  273,   -1,  275,  362,  277,   -1,  279,   -1,  281,  282,
 
14021
  283,  284,   -1,   -1,  287,  288,   -1,   -1,  377,   -1,
 
14022
  293,   -1,  295,  296,  297,   -1,   -1,  300,   -1,  302,
 
14023
   -1,  304,   -1,   -1,  307,   -1,  309,  310,  311,  312,
 
14024
   -1,   -1,   -1,  316,  317,  318,   -1,   -1,  321,  322,
 
14025
  323,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  418,
 
14026
  333,  334,   -1,  336,  337,  338,   -1,   -1,   -1,  342,
 
14027
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14028
   -1,   -1,  261,   -1,   -1,   -1,  265,   -1,  267,  362,
 
14029
   -1,  270,   -1,  272,  273,  368,  275,   -1,  277,   -1,
 
14030
  279,   -1,  281,  282,  283,  284,   -1,   -1,  287,  288,
 
14031
   -1,   -1,   -1,   -1,  293,   -1,  295,  296,  297,   -1,
 
14032
   -1,  300,   -1,  302,  261,  304,   -1,   -1,  307,   -1,
 
14033
  309,  310,  311,  312,   -1,   -1,   -1,  316,  317,  318,
 
14034
   -1,   -1,  321,  322,  323,  418,   -1,  284,   -1,   -1,
 
14035
   -1,  330,  331,   -1,  333,  334,   -1,  336,  337,  338,
 
14036
  297,   -1,   -1,  342,   -1,  302,   -1,   -1,  305,   -1,
 
14037
  307,   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,
 
14038
  317,   -1,   -1,  362,  321,   -1,   -1,   -1,  325,  368,
 
14039
   -1,   -1,   -1,   -1,  261,   -1,  333,   -1,   -1,  336,
 
14040
   -1,  338,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14041
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  284,   -1,   -1,
 
14042
  357,   -1,   -1,   -1,   -1,  362,   -1,   -1,   -1,   -1,
 
14043
  297,  368,  369,   -1,  371,  302,  373,   -1,  305,  418,
 
14044
  307,   -1,  309,  310,  311,  312,   -1,   -1,   -1,  386,
 
14045
  317,   -1,   -1,   -1,  321,   -1,  261,   -1,  325,   -1,
 
14046
   -1,   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,
 
14047
   -1,  338,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  284,
 
14048
   -1,  418,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14049
   -1,   -1,  297,   -1,  261,  362,   -1,  302,   -1,   -1,
 
14050
  305,  368,  307,   -1,  309,  310,  311,  312,   -1,   -1,
 
14051
   -1,   -1,  317,   -1,   -1,   -1,  321,  284,   -1,   -1,
 
14052
  325,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  333,   -1,
 
14053
  297,  336,  261,  338,   -1,  302,   -1,   -1,   -1,   -1,
 
14054
  307,   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,
 
14055
  317,  418,   -1,   -1,  321,  284,   -1,  362,  325,   -1,
 
14056
   -1,   -1,   -1,  368,   -1,   -1,  333,   -1,  297,  336,
 
14057
  261,  338,   -1,  302,   -1,   -1,   -1,   -1,  307,   -1,
 
14058
  309,  310,  311,  312,   -1,   -1,   -1,   -1,  317,   -1,
 
14059
   -1,   -1,  321,  284,   -1,  362,  325,   -1,   -1,   -1,
 
14060
   -1,  368,   -1,   -1,  333,   -1,  297,  336,   -1,  338,
 
14061
   -1,  302,   -1,  418,   -1,   -1,  307,   -1,  309,  310,
 
14062
  311,  312,   -1,   -1,   -1,   -1,  317,   -1,   -1,   -1,
 
14063
  321,   -1,   -1,  362,   -1,   -1,   -1,   -1,   -1,   -1,
 
14064
   -1,   -1,  333,  264,  265,  336,  267,  338,   -1,  270,
 
14065
  271,  418,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
14066
   -1,   -1,   -1,   -1,  285,   -1,   -1,  288,   -1,   -1,
 
14067
   -1,  362,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
14068
   -1,  302,  303,  304,   -1,  306,   -1,   -1,   -1,  418,
 
14069
   -1,   -1,  313,   -1,   -1,  316,   -1,  318,  319,   -1,
 
14070
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
14071
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
14072
  341,   -1,   -1,  344,  345,   -1,   -1,  418,   -1,   -1,
 
14073
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
14074
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14075
  371,  372,   -1,  374,   -1,   -1,  377,  378,  379,  380,
 
14076
   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,
 
14077
   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,  264,
 
14078
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
14079
  275,  276,  277,   -1,  279,   -1,  417,  418,  419,  420,
 
14080
  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,   -1,   -1,
 
14081
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
14082
   -1,  306,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,
 
14083
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
14084
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
14085
   -1,   -1,   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,
 
14086
  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14087
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
14088
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,  374,
 
14089
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
14090
   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
14091
   -1,   -1,   -1,   -1,   -1,  264,  265,   -1,  267,   -1,
 
14092
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
14093
  279,   -1,  417,  418,  419,  420,  285,   -1,   -1,  288,
 
14094
   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
14095
   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,
 
14096
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
14097
  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,
 
14098
  329,  330,  331,  332,   -1,  334,   -1,   -1,  337,   -1,
 
14099
   -1,   -1,  341,   -1,   -1,  344,  345,   -1,   -1,   -1,
 
14100
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14101
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
14102
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
14103
  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,
 
14104
   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,
 
14105
   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
14106
   -1,   -1,  275,  276,  277,   -1,  279,   -1,  417,  418,
 
14107
  419,  420,  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,
 
14108
   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,
 
14109
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14110
   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
14111
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
14112
   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,  341,   -1,
 
14113
   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14114
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
14115
  363,   -1,   -1,   -1,  367,   -1,   -1,   -1,  371,   -1,
 
14116
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
14117
   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,
 
14118
  393,   -1,   -1,   -1,   -1,   -1,   -1,  264,  265,   -1,
 
14119
  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,
 
14120
  277,   -1,  279,   -1,  417,  418,  419,  420,  285,   -1,
 
14121
   -1,  288,   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,
 
14122
   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,
 
14123
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
14124
   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,
 
14125
  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,
 
14126
   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,  345,   -1,
 
14127
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14128
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
14129
  367,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
14130
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
14131
   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,
 
14132
   -1,   -1,   -1,  264,  265,   -1,  267,   -1,   -1,  270,
 
14133
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
14134
  417,  418,  419,  420,  285,   -1,   -1,  288,   -1,   -1,
 
14135
   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,
 
14136
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
14137
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,   -1,
 
14138
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
14139
  331,  332,   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,
 
14140
  341,   -1,   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,
 
14141
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,
 
14142
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14143
  371,   -1,   -1,   -1,   -1,   -1,  377,  378,  379,  380,
 
14144
   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,
 
14145
   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,   -1,  264,
 
14146
  265,   -1,  267,   -1,   -1,  270,  271,   -1,   -1,   -1,
 
14147
  275,  276,  277,   -1,  279,   -1,  417,  418,  419,  420,
 
14148
  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,   -1,   -1,
 
14149
  295,   -1,   -1,   -1,   -1,  300,   -1,  302,  303,  304,
 
14150
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14151
   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,   -1,
 
14152
  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,  334,
 
14153
   -1,   -1,   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,
 
14154
  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14155
   -1,   -1,   -1,   -1,  359,  360,  361,  362,  363,   -1,
 
14156
   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,
 
14157
   -1,   -1,  377,  378,  379,  380,   -1,   -1,   -1,  384,
 
14158
   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,
 
14159
   -1,   -1,   -1,   -1,   -1,  264,  265,   -1,  267,   -1,
 
14160
   -1,  270,  271,   -1,   -1,   -1,  275,  276,  277,   -1,
 
14161
  279,   -1,  417,  418,  419,  420,  285,   -1,   -1,  288,
 
14162
   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,   -1,   -1,
 
14163
   -1,  300,   -1,  302,  303,  304,   -1,   -1,   -1,   -1,
 
14164
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,
 
14165
  319,   -1,   -1,  322,   -1,   -1,  325,   -1,  327,   -1,
 
14166
  329,  330,  331,  332,   -1,  334,   -1,   -1,   -1,   -1,
 
14167
   -1,   -1,  341,   -1,   -1,  344,  345,   -1,   -1,   -1,
 
14168
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14169
  359,  360,  361,  362,  363,   -1,   -1,   -1,   -1,   -1,
 
14170
   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,  377,  378,
 
14171
  379,  380,   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,
 
14172
   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,   -1,   -1,
 
14173
   -1,  264,  265,   -1,  267,   -1,   -1,  270,  271,   -1,
 
14174
   -1,   -1,  275,  276,  277,   -1,  279,   -1,  417,  418,
 
14175
  419,  420,  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,
 
14176
   -1,   -1,  295,   -1,   -1,   -1,   -1,  300,   -1,  302,
 
14177
  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14178
   -1,   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,
 
14179
   -1,   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,
 
14180
   -1,  334,   -1,   -1,   -1,   -1,   -1,   -1,  341,   -1,
 
14181
   -1,  344,  345,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14182
   -1,   -1,   -1,   -1,   -1,   -1,  359,  360,  361,  362,
 
14183
  363,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  371,   -1,
 
14184
   -1,   -1,   -1,   -1,  377,  378,  379,  380,   -1,   -1,
 
14185
   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,   -1,  392,
 
14186
  393,   -1,   -1,   -1,   -1,   -1,   -1,  264,  265,   -1,
 
14187
  267,   -1,   -1,  270,  271,   -1,   -1,   -1,  275,  276,
 
14188
  277,   -1,  279,   -1,  417,  418,  419,  420,  285,   -1,
 
14189
   -1,  288,   -1,   -1,   -1,   -1,   -1,   -1,  295,   -1,
 
14190
   -1,   -1,   -1,  300,   -1,  302,  303,  304,   -1,   -1,
 
14191
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  316,
 
14192
   -1,  318,  319,   -1,   -1,  322,   -1,   -1,  325,   -1,
 
14193
  327,   -1,  329,  330,  331,  332,   -1,  334,   -1,   -1,
 
14194
   -1,   -1,   -1,   -1,  341,   -1,   -1,  344,  345,   -1,
 
14195
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14196
   -1,   -1,  359,  360,  361,  362,  363,   -1,   -1,   -1,
 
14197
   -1,   -1,   -1,   -1,  371,   -1,   -1,   -1,   -1,   -1,
 
14198
  377,  378,  379,  380,   -1,   -1,   -1,  384,   -1,  386,
 
14199
   -1,   -1,   -1,   -1,   -1,  392,  393,   -1,   -1,   -1,
 
14200
   -1,   -1,   -1,  264,  265,   -1,  267,   -1,   -1,  270,
 
14201
  271,   -1,   -1,   -1,  275,  276,  277,   -1,  279,   -1,
 
14202
  417,  418,  419,  420,  285,   -1,   -1,  288,   -1,   -1,
 
14203
   -1,   -1,   -1,   -1,  295,   -1,  261,   -1,   -1,  300,
 
14204
   -1,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
 
14205
   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,  319,  284,
 
14206
   -1,  322,   -1,   -1,  325,   -1,  327,   -1,  329,  330,
 
14207
  331,  332,  297,  334,   -1,   -1,   -1,  302,   -1,   -1,
 
14208
   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,
 
14209
  315,   -1,  317,   -1,   -1,   -1,  321,   -1,  359,  360,
 
14210
  361,  362,  363,   -1,   -1,   -1,   -1,   -1,  333,   -1,
 
14211
  371,  336,   -1,  338,   -1,   -1,  377,  378,  379,  380,
 
14212
   -1,   -1,   -1,  384,   -1,  386,   -1,   -1,   -1,   -1,
 
14213
   -1,  392,  393,   -1,   -1,   -1,   -1,  362,   -1,   -1,
 
14214
   -1,   -1,   -1,  368,  369,   -1,   -1,   -1,   -1,   -1,
 
14215
   -1,  263,   -1,  265,   -1,  267,  417,  418,  270,  420,
 
14216
  272,  273,   -1,  275,   -1,  277,   -1,  279,   -1,  281,
 
14217
  282,  283,   -1,   -1,   -1,  287,  288,   -1,   -1,   -1,
 
14218
   -1,  293,   -1,  295,  296,   -1,   -1,   -1,  300,   -1,
 
14219
   -1,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14220
   -1,   -1,   -1,  315,  316,   -1,  318,   -1,   -1,   -1,
 
14221
  322,  323,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
 
14222
  264,  265,  334,  267,   -1,  337,  270,  271,   -1,   -1,
 
14223
  342,  275,  276,  277,   -1,  279,   -1,   -1,   -1,   -1,
 
14224
   -1,  285,   -1,   -1,  288,   -1,   -1,   -1,   -1,   -1,
 
14225
   -1,  295,  364,  365,   -1,   -1,  300,   -1,  302,  303,
 
14226
  304,   -1,   -1,   -1,   -1,  377,   -1,   -1,   -1,   -1,
 
14227
   -1,   -1,  316,   -1,  318,  319,   -1,   -1,  322,   -1,
 
14228
   -1,  325,   -1,  327,   -1,  329,  330,  331,  332,   -1,
 
14229
  334,   -1,   -1,  337,   -1,   -1,   -1,   -1,   -1,   -1,
 
14230
  265,   -1,  267,   -1,   -1,  270,  418,  272,   -1,   -1,
 
14231
  275,   -1,   -1,   -1,  279,  359,  360,  361,  362,   -1,
 
14232
   -1,   -1,   -1,  288,  265,   -1,  267,  371,   -1,  270,
 
14233
  295,  272,  273,   -1,  275,  300,  277,  302,  279,  304,
 
14234
  281,  282,  283,   -1,   -1,   -1,  287,  288,   -1,   -1,
 
14235
   -1,  316,  293,  318,  295,  296,   -1,  322,  323,  300,
 
14236
   -1,   -1,   -1,  304,   -1,  330,  331,   -1,   -1,  334,
 
14237
   -1,   -1,  337,  417,  418,  316,   -1,  318,   -1,   -1,
 
14238
   -1,  322,  323,   -1,   -1,   -1,   -1,   -1,   -1,  330,
 
14239
  331,   -1,  265,  334,  267,   -1,  337,  270,   -1,  272,
 
14240
  273,  342,  275,   -1,  277,   -1,  279,   -1,  281,  282,
 
14241
  283,   -1,   -1,   -1,  287,  288,   -1,   -1,   -1,   -1,
 
14242
  293,   -1,  295,  296,   -1,   -1,   -1,  300,   -1,   -1,
 
14243
   -1,  304,   -1,   -1,   -1,   -1,  377,   -1,   -1,   -1,
 
14244
   -1,   -1,   -1,  316,   -1,  318,   -1,   -1,   -1,  322,
 
14245
  323,   -1,   -1,  418,   -1,   -1,   -1,  330,  331,   -1,
 
14246
   -1,  334,   -1,   -1,  337,   -1,  265,   -1,  267,  342,
 
14247
   -1,  270,   -1,   -1,  273,   -1,  275,  418,  277,   -1,
 
14248
  279,   -1,  281,  282,  283,   -1,   -1,   -1,  287,  288,
 
14249
   -1,   -1,   -1,   -1,  293,   -1,  295,   -1,  265,   -1,
 
14250
  267,  300,   -1,  270,   -1,  304,  273,   -1,  275,   -1,
 
14251
  277,   -1,  279,   -1,  281,  282,  283,  316,   -1,  318,
 
14252
  287,  288,   -1,  322,   -1,   -1,  293,   -1,  295,   -1,
 
14253
   -1,  330,  331,  300,   -1,  334,   -1,  304,  337,   -1,
 
14254
   -1,   -1,  265,  342,  267,  418,   -1,  270,   -1,  316,
 
14255
   -1,  318,  275,   -1,   -1,  322,  279,   -1,   -1,   -1,
 
14256
   -1,   -1,   -1,  330,  331,  288,   -1,  334,   -1,   -1,
 
14257
  337,   -1,  295,   -1,  265,  342,  267,  300,  377,  270,
 
14258
   -1,  304,   -1,  306,  275,  308,   -1,   -1,  279,   -1,
 
14259
  313,   -1,   -1,  316,   -1,  318,   -1,  288,   -1,  322,
 
14260
   -1,   -1,  325,   -1,  295,   -1,   -1,  330,  331,  300,
 
14261
   -1,  334,   -1,  304,  337,  306,   -1,  308,  265,  418,
 
14262
  267,   -1,  313,  270,   -1,  316,   -1,  318,  275,   -1,
 
14263
   -1,  322,  279,   -1,  325,   -1,   -1,   -1,   -1,  330,
 
14264
  331,  288,   -1,  334,   -1,   -1,  337,   -1,  295,  372,
 
14265
   -1,  418,   -1,  300,   -1,   -1,   -1,  304,   -1,  306,
 
14266
   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,  316,
 
14267
   -1,  318,   -1,   -1,   -1,  322,   -1,   -1,  325,  370,
 
14268
   -1,   -1,   -1,  330,  331,   -1,   -1,  334,   -1,  265,
 
14269
  337,  267,   -1,   -1,  270,  418,   -1,   -1,   -1,  275,
 
14270
   -1,   -1,   -1,  279,   -1,   -1,   -1,   -1,   -1,   -1,
 
14271
   -1,   -1,  288,   -1,   -1,   -1,  363,   -1,   -1,  295,
 
14272
   -1,  265,   -1,  267,  300,   -1,  270,  418,  304,   -1,
 
14273
  306,  275,  308,   -1,   -1,  279,   -1,  313,   -1,   -1,
 
14274
  316,   -1,  318,   -1,  288,   -1,  322,   -1,   -1,  325,
 
14275
   -1,  295,   -1,   -1,  330,  331,  300,   -1,  334,   -1,
 
14276
  304,  337,  306,   -1,  308,  265,   -1,  267,   -1,  313,
 
14277
  270,  418,  316,   -1,  318,  275,   -1,   -1,  322,  279,
 
14278
   -1,  325,   -1,   -1,   -1,   -1,  330,  331,  288,   -1,
 
14279
  334,   -1,   -1,  337,   -1,  295,   -1,   -1,   -1,   -1,
 
14280
  300,   -1,   -1,   -1,  304,   -1,   -1,   -1,   -1,  261,
 
14281
   -1,   -1,   -1,   -1,   -1,   -1,  316,   -1,  318,   -1,
 
14282
  272,   -1,  322,   -1,   -1,  277,   -1,   -1,   -1,  281,
 
14283
  330,  331,  284,   -1,  334,   -1,   -1,  337,   -1,   -1,
 
14284
   -1,   -1,  418,   -1,  296,  297,   -1,   -1,   -1,  301,
 
14285
  302,   -1,   -1,   -1,   -1,  307,   -1,  309,  310,  311,
 
14286
  312,   -1,   -1,  363,   -1,  317,   -1,   -1,   -1,  321,
 
14287
   -1,  323,   -1,   -1,  418,   -1,   -1,   -1,   -1,   -1,
 
14288
   -1,  333,   -1,  335,  336,  261,  338,   -1,   -1,   -1,
 
14289
  342,   -1,   -1,   -1,   -1,   -1,  272,   -1,   -1,   -1,
 
14290
   -1,  277,   -1,   -1,   -1,  281,   -1,   -1,  284,   -1,
 
14291
  362,   -1,   -1,   -1,   -1,   -1,  368,  369,  418,   -1,
 
14292
  296,  297,   -1,   -1,   -1,  301,  302,  261,   -1,  263,
 
14293
   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,   -1,
 
14294
   -1,  317,   -1,   -1,   -1,  321,   -1,  323,   -1,   -1,
 
14295
  284,   -1,   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,
 
14296
  336,   -1,  338,  297,   -1,   -1,  342,   -1,  302,   -1,
 
14297
   -1,   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,
 
14298
   -1,   -1,   -1,  317,   -1,   -1,  362,  321,   -1,   -1,
 
14299
  261,   -1,  368,  369,   -1,   -1,   -1,   -1,   -1,  333,
 
14300
   -1,  272,  336,   -1,  338,   -1,  277,   -1,   -1,   -1,
 
14301
  281,   -1,   -1,  284,   -1,   -1,   -1,   -1,   -1,   -1,
 
14302
   -1,   -1,   -1,   -1,   -1,  296,  297,   -1,  362,   -1,
 
14303
  301,  302,   -1,  261,  368,  369,  307,   -1,  309,  310,
 
14304
  311,  312,   -1,   -1,  272,   -1,  317,   -1,   -1,  277,
 
14305
  321,   -1,  323,  281,   -1,   -1,  284,   -1,   -1,   -1,
 
14306
   -1,   -1,  333,   -1,   -1,  336,   -1,  338,  296,  297,
 
14307
   -1,  342,   -1,  301,  302,  261,   -1,   -1,   -1,  307,
 
14308
   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,  317,
 
14309
   -1,  362,   -1,  321,   -1,  323,   -1,  368,  284,   -1,
 
14310
   -1,   -1,   -1,   -1,   -1,  333,   -1,   -1,  336,   -1,
 
14311
  338,  297,   -1,  261,  342,   -1,  302,   -1,   -1,   -1,
 
14312
   -1,  307,   -1,  309,  310,  311,  312,   -1,   -1,   -1,
 
14313
   -1,  317,   -1,   -1,  362,  321,  284,   -1,   -1,   -1,
 
14314
  368,   -1,   -1,   -1,   -1,   -1,   -1,  333,   -1,  297,
 
14315
  336,  261,  338,   -1,  302,   -1,   -1,   -1,   -1,  307,
 
14316
   -1,  309,  310,  311,  312,   -1,   -1,   -1,   -1,  317,
 
14317
   -1,   -1,   -1,  321,  284,   -1,  362,   -1,  364,  365,
 
14318
   -1,   -1,  368,   -1,   -1,  333,   -1,  297,  336,  261,
 
14319
  338,  263,  302,   -1,   -1,   -1,   -1,  307,   -1,  309,
 
14320
  310,  311,  312,   -1,   -1,  315,   -1,  317,   -1,   -1,
 
14321
   -1,  321,  284,   -1,  362,   -1,  364,  365,   -1,   -1,
 
14322
  368,   -1,   -1,  333,   -1,  297,  336,  261,  338,   -1,
 
14323
  302,   -1,   -1,   -1,   -1,  307,   -1,  309,  310,  311,
 
14324
  312,   -1,   -1,   -1,   -1,  317,   -1,   -1,   -1,  321,
 
14325
  284,   -1,  362,   -1,   -1,   -1,   -1,  261,  368,  263,
 
14326
   -1,  333,   -1,  297,  336,   -1,  338,   -1,  302,   -1,
 
14327
   -1,   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,
 
14328
  284,   -1,   -1,  317,   -1,   -1,   -1,  321,   -1,   -1,
 
14329
  362,   -1,   -1,  297,   -1,   -1,  368,  261,  302,  333,
 
14330
   -1,   -1,  336,  307,  338,  309,  310,  311,  312,   -1,
 
14331
   -1,  315,   -1,  317,   -1,   -1,   -1,  321,   -1,   -1,
 
14332
  284,   -1,   -1,   -1,   -1,   -1,   -1,  261,  362,  333,
 
14333
  364,  365,  336,  297,  338,   -1,   -1,  301,  302,   -1,
 
14334
   -1,   -1,   -1,  307,   -1,  309,  310,  311,  312,   -1,
 
14335
  284,   -1,   -1,  317,   -1,   -1,   -1,  321,  362,   -1,
 
14336
   -1,   -1,   -1,  297,   -1,   -1,   -1,   -1,  302,  333,
 
14337
   -1,   -1,  336,  307,  338,  309,  310,  311,  312,   -1,
 
14338
   -1,   -1,   -1,  317,   -1,   -1,   -1,  321,   -1,   -1,
 
14339
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  362,  333,
 
14340
   -1,   -1,  336,   -1,  338,   -1,   -1,   -1,   -1,   -1,
 
14341
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
 
14342
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  362,
 
14343
  };
 
14344
 
 
14345
#line 7043 "cs-parser.jay"
 
14346
 
 
14347
// <summary>
 
14348
//  A class used to hold info about an operator declarator
 
14349
// </summary>
 
14350
class OperatorDeclaration {
 
14351
        public readonly Operator.OpType optype;
 
14352
        public readonly FullNamedExpression ret_type;
 
14353
        public readonly Location location;
 
14354
 
 
14355
        public OperatorDeclaration (Operator.OpType op, FullNamedExpression ret_type, Location location)
 
14356
        {
 
14357
                optype = op;
 
14358
                this.ret_type = ret_type;
 
14359
                this.location = location;
 
14360
        }
 
14361
}
 
14362
 
 
14363
void Error_ExpectingTypeName (Expression expr)
 
14364
{
 
14365
        if (expr is Invocation){
 
14366
                report.Error (1002, expr.Location, "Expecting `;'");
 
14367
        } else {
 
14368
                expr.Error_InvalidExpressionStatement (report);
 
14369
        }
 
14370
}
 
14371
 
 
14372
void Error_ParameterModifierNotValid (string modifier, Location loc)
 
14373
{
 
14374
        report.Error (631, loc, "The parameter modifier `{0}' is not valid in this context",
 
14375
                                      modifier);
 
14376
}
 
14377
 
 
14378
void Error_DuplicateParameterModifier (Location loc, Parameter.Modifier mod)
 
14379
{
 
14380
        report.Error (1107, loc, "Duplicate parameter modifier `{0}'",
 
14381
                Parameter.GetModifierSignature (mod));
 
14382
}
 
14383
 
 
14384
void Error_TypeExpected (Location loc)
 
14385
{
 
14386
        report.Error (1031, loc, "Type expected");
 
14387
}
 
14388
 
 
14389
void Error_UnsafeCodeNotAllowed (Location loc)
 
14390
{
 
14391
        report.Error (227, loc, "Unsafe code requires the `unsafe' command line option to be specified");
 
14392
}
 
14393
 
 
14394
void Warning_EmptyStatement (Location loc)
 
14395
{
 
14396
        report.Warning (642, 3, loc, "Possible mistaken empty statement");
 
14397
}
 
14398
 
 
14399
void Error_NamedArgumentExpected (NamedArgument a)
 
14400
{
 
14401
        report.Error (1738, a.Location, "Named arguments must appear after the positional arguments");
 
14402
}
 
14403
 
 
14404
void Error_MissingInitializer (Location loc)
 
14405
{
 
14406
        report.Error (210, loc, "You must provide an initializer in a fixed or using statement declaration");
 
14407
}
 
14408
 
 
14409
object Error_AwaitAsIdentifier (object token)
 
14410
{
 
14411
        if (async_block) {
 
14412
                report.Error (4003, GetLocation (token), "`await' cannot be used as an identifier within an async method or lambda expression");
 
14413
                return new Tokenizer.LocatedToken ("await", GetLocation (token));
 
14414
        }
 
14415
 
 
14416
        return token;
 
14417
}
 
14418
 
 
14419
void push_current_container (TypeDefinition tc, object partial_token)
 
14420
{
 
14421
        if (module.Evaluator != null){
 
14422
                tc.Definition.Modifiers = tc.ModFlags = (tc.ModFlags & ~Modifiers.AccessibilityMask) | Modifiers.PUBLIC;
 
14423
                if (undo == null)
 
14424
                        undo = new Undo ();
 
14425
 
 
14426
                undo.AddTypeContainer (current_container, tc);
 
14427
        }
 
14428
        
 
14429
        if (partial_token != null)
 
14430
                current_container.AddPartial (tc);
 
14431
        else
 
14432
                current_container.AddTypeContainer (tc);
 
14433
                
 
14434
        ++lexer.parsing_declaration;
 
14435
        current_container = tc;
 
14436
        current_type = tc;
 
14437
}
 
14438
 
 
14439
TypeContainer pop_current_class ()
 
14440
{
 
14441
        var retval = current_container;
 
14442
 
 
14443
        current_container = current_container.Parent;
 
14444
        current_type = current_type.Parent as TypeDefinition;
 
14445
 
 
14446
        return retval;
 
14447
}
 
14448
 
 
14449
[System.Diagnostics.Conditional ("FULL_AST")]
 
14450
void StoreModifierLocation (object token, Location loc)
 
14451
{
 
14452
        if (lbag == null)
 
14453
                return;
 
14454
 
 
14455
        if (mod_locations == null)
 
14456
                mod_locations = new List<Tuple<Modifiers, Location>> ();
 
14457
 
 
14458
        mod_locations.Add (Tuple.Create ((Modifiers) token, loc));
 
14459
}
 
14460
 
 
14461
List<Tuple<Modifiers, Location>> GetModifierLocations ()
 
14462
{
 
14463
        var result = mod_locations;
 
14464
        mod_locations = null;
 
14465
        return result;
 
14466
}
 
14467
 
 
14468
[System.Diagnostics.Conditional ("FULL_AST")]
 
14469
void PushLocation (Location loc)
 
14470
{
 
14471
        if (location_stack == null)
 
14472
                location_stack = new Stack<Location> ();
 
14473
 
 
14474
        location_stack.Push (loc);
 
14475
}
 
14476
 
 
14477
Location PopLocation ()
 
14478
{
 
14479
        if (location_stack == null)
 
14480
                return Location.Null;
 
14481
 
 
14482
        return location_stack.Pop ();
 
14483
}
 
14484
 
 
14485
string CheckAttributeTarget (string a, Location l)
 
14486
{
 
14487
        switch (a) {
 
14488
        case "assembly" : case "module" : case "field" : case "method" : case "param" : case "property" : case "type" :
 
14489
                        return a;
 
14490
        }
 
14491
 
 
14492
        report.Warning (658, 1, l,
 
14493
                 "`{0}' is invalid attribute target. All attributes in this attribute section will be ignored", a);
 
14494
        return string.Empty;
 
14495
}
 
14496
 
 
14497
static bool IsUnaryOperator (Operator.OpType op)
 
14498
{
 
14499
        switch (op) {
 
14500
                
 
14501
        case Operator.OpType.LogicalNot: 
 
14502
        case Operator.OpType.OnesComplement: 
 
14503
        case Operator.OpType.Increment:
 
14504
        case Operator.OpType.Decrement:
 
14505
        case Operator.OpType.True: 
 
14506
        case Operator.OpType.False: 
 
14507
        case Operator.OpType.UnaryPlus: 
 
14508
        case Operator.OpType.UnaryNegation:
 
14509
                return true;
 
14510
        }
 
14511
        return false;
 
14512
}
 
14513
 
 
14514
void syntax_error (Location l, string msg)
 
14515
{
 
14516
        report.Error (1003, l, "Syntax error, " + msg);
 
14517
}
 
14518
 
 
14519
Tokenizer lexer;
 
14520
 
 
14521
public Tokenizer Lexer {
 
14522
        get {
 
14523
                return lexer;
 
14524
        }
 
14525
}                  
 
14526
 
 
14527
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, ParserSession session)
 
14528
        : this (reader, file, file.Compiler.Report, session)
 
14529
{
 
14530
}
 
14531
 
 
14532
public CSharpParser (SeekableStreamReader reader, CompilationSourceFile file, Report report, ParserSession session)
 
14533
{
 
14534
        this.file = file;
 
14535
        current_container = current_namespace = file;
 
14536
        
 
14537
        this.module = file.Module;
 
14538
        this.compiler = file.Compiler;
 
14539
        this.settings = compiler.Settings;
 
14540
        this.report = report;
 
14541
        
 
14542
        lang_version = settings.Version;
 
14543
        yacc_verbose_flag = settings.VerboseParserFlag;
 
14544
        doc_support = settings.DocumentationFile != null;
 
14545
        lexer = new Tokenizer (reader, file, session);
 
14546
        oob_stack = new Stack<object> ();
 
14547
        lbag = session.LocationsBag;
 
14548
        use_global_stacks = session.UseJayGlobalArrays;
 
14549
        parameters_bucket = session.ParametersStack;
 
14550
}
 
14551
 
 
14552
public void parse ()
 
14553
{
 
14554
        eof_token = Token.EOF;
 
14555
        
 
14556
        try {
 
14557
                if (yacc_verbose_flag > 1)
 
14558
                        yyparse (lexer, new yydebug.yyDebugSimple ());
 
14559
                else
 
14560
                        yyparse (lexer);
 
14561
                        
 
14562
                Tokenizer tokenizer = lexer as Tokenizer;
 
14563
                tokenizer.cleanup ();           
 
14564
        } catch (Exception e){
 
14565
                if (e is yyParser.yyUnexpectedEof) {
 
14566
                        Error_SyntaxError (yyToken);
 
14567
                        UnexpectedEOF = true;
 
14568
                        return;
 
14569
                }
 
14570
                        
 
14571
                if (e is yyParser.yyException) {
 
14572
                        if (report.Errors == 0)
 
14573
                                report.Error (-25, lexer.Location, "Parsing error");
 
14574
                } else {
 
14575
                        // Used by compiler-tester to test internal errors
 
14576
                        if (yacc_verbose_flag > 0 || e is FatalException)
 
14577
                                throw;
 
14578
                
 
14579
                        report.Error (589, lexer.Location, "Internal compiler error during parsing" + e);
 
14580
                }
 
14581
        }
 
14582
}
 
14583
 
 
14584
void CheckToken (int error, int yyToken, string msg, Location loc)
 
14585
{
 
14586
        if (yyToken >= Token.FIRST_KEYWORD && yyToken <= Token.LAST_KEYWORD)
 
14587
                report.Error (error, loc, "{0}: `{1}' is a keyword", msg, GetTokenName (yyToken));
 
14588
        else
 
14589
                report.Error (error, loc, msg);
 
14590
}
 
14591
 
 
14592
string ConsumeStoredComment ()
 
14593
{
 
14594
        string s = tmpComment;
 
14595
        tmpComment = null;
 
14596
        Lexer.doc_state = XmlCommentState.Allowed;
 
14597
        return s;
 
14598
}
 
14599
 
 
14600
void FeatureIsNotAvailable (Location loc, string feature)
 
14601
{
 
14602
        report.FeatureIsNotAvailable (compiler, loc, feature);
 
14603
}
 
14604
 
 
14605
Location GetLocation (object obj)
 
14606
{
 
14607
        var lt = obj as Tokenizer.LocatedToken;
 
14608
        if (lt != null)
 
14609
                return lt.Location;
 
14610
                
 
14611
        var mn = obj as MemberName;
 
14612
        if (mn != null)
 
14613
                return mn.Location;
 
14614
                
 
14615
        var expr = obj as Expression;
 
14616
        if (expr != null)
 
14617
                return expr.Location;
 
14618
 
 
14619
        return lexer.Location;
 
14620
}
 
14621
 
 
14622
void start_block (Location loc)
 
14623
{
 
14624
        if (current_block == null) {
 
14625
                current_block = new ToplevelBlock (compiler, current_local_parameters, loc);
 
14626
                parsing_anonymous_method = false;
 
14627
        } else if (parsing_anonymous_method) {
 
14628
                current_block = new ParametersBlock (current_block, current_local_parameters, loc);
 
14629
                parsing_anonymous_method = false;
 
14630
        } else {
 
14631
                current_block = new ExplicitBlock (current_block, loc, Location.Null);
 
14632
        }
 
14633
}
 
14634
 
 
14635
Block
 
14636
end_block (Location loc)
 
14637
{
 
14638
        Block retval = current_block.Explicit;
 
14639
        retval.SetEndLocation (loc);
 
14640
        current_block = retval.Parent;
 
14641
        return retval;
 
14642
}
 
14643
 
 
14644
void start_anonymous (bool isLambda, ParametersCompiled parameters, bool isAsync, Location loc)
 
14645
{
 
14646
        oob_stack.Push (current_anonymous_method);
 
14647
        oob_stack.Push (current_local_parameters);
 
14648
        oob_stack.Push (current_variable);
 
14649
        oob_stack.Push (async_block);
 
14650
 
 
14651
        current_local_parameters = parameters;
 
14652
        if (isLambda) {
 
14653
                if (lang_version <= LanguageVersion.ISO_2)
 
14654
                        FeatureIsNotAvailable (loc, "lambda expressions");
 
14655
 
 
14656
                current_anonymous_method = new LambdaExpression (loc);
 
14657
        } else {
 
14658
                if (lang_version == LanguageVersion.ISO_1)
 
14659
                        FeatureIsNotAvailable (loc, "anonymous methods");
 
14660
                        
 
14661
                current_anonymous_method = new AnonymousMethodExpression (loc);
 
14662
        }
 
14663
        current_anonymous_method.IsAsync = isAsync;
 
14664
        
 
14665
        async_block = isAsync;
 
14666
        // Force the next block to be created as a ToplevelBlock
 
14667
        parsing_anonymous_method = true;
 
14668
}
 
14669
 
 
14670
/*
 
14671
 * Completes the anonymous method processing, if lambda_expr is null, this
 
14672
 * means that we have a Statement instead of an Expression embedded 
 
14673
 */
 
14674
AnonymousMethodExpression end_anonymous (ParametersBlock anon_block)
 
14675
{
 
14676
        AnonymousMethodExpression retval;
 
14677
 
 
14678
        if (async_block)
 
14679
                anon_block.IsAsync = true;
 
14680
 
 
14681
        current_anonymous_method.Block = anon_block;
 
14682
        retval = current_anonymous_method;
 
14683
 
 
14684
        async_block = (bool) oob_stack.Pop ();
 
14685
        current_variable = (BlockVariableDeclaration) oob_stack.Pop ();
 
14686
        current_local_parameters = (ParametersCompiled) oob_stack.Pop ();
 
14687
        current_anonymous_method = (AnonymousMethodExpression) oob_stack.Pop ();
 
14688
 
 
14689
        return retval;
 
14690
}
 
14691
 
 
14692
void Error_SyntaxError (int token)
 
14693
{
 
14694
        Error_SyntaxError (0, token);
 
14695
}
 
14696
 
 
14697
void Error_SyntaxError (int error_code, int token)
 
14698
{
 
14699
        Error_SyntaxError (error_code, token, "Unexpected symbol");
 
14700
}
 
14701
 
 
14702
void Error_SyntaxError (int error_code, int token, string msg)
 
14703
{
 
14704
        Lexer.CompleteOnEOF = false;
 
14705
 
 
14706
        // An error message has been reported by tokenizer
 
14707
        if (token == Token.ERROR)
 
14708
                return;
 
14709
        
 
14710
        // Avoid duplicit error message after unterminated string literals
 
14711
        if (token == Token.LITERAL && lexer.Location.Column == 0)
 
14712
                return;
 
14713
 
 
14714
        string symbol = GetSymbolName (token);
 
14715
        string expecting = GetExpecting ();
 
14716
        var loc = lexer.Location - symbol.Length;
 
14717
        
 
14718
        if (error_code == 0) {
 
14719
                if (expecting == "`identifier'") {
 
14720
                        if (token > Token.FIRST_KEYWORD && token < Token.LAST_KEYWORD) {
 
14721
                                report.Error (1041, loc, "Identifier expected, `{0}' is a keyword", symbol);
 
14722
                                return;
 
14723
                        }
 
14724
                        
 
14725
                        error_code = 1001;
 
14726
                        expecting = "identifier";
 
14727
                } else if (expecting == "`)'") {
 
14728
                        error_code = 1026;
 
14729
                } else {
 
14730
                        error_code = 1525;
 
14731
                }
 
14732
        }
 
14733
        
 
14734
        if (string.IsNullOrEmpty (expecting))
 
14735
                report.Error (error_code, loc, "{1} `{0}'", symbol, msg);
 
14736
        else
 
14737
                report.Error (error_code, loc, "{2} `{0}', expecting {1}", symbol, expecting, msg);       
 
14738
}
 
14739
 
 
14740
string GetExpecting ()
 
14741
{
 
14742
        int [] tokens = yyExpectingTokens (yyExpectingState);
 
14743
        var names = new List<string> (tokens.Length);
 
14744
        bool has_type = false;
 
14745
        bool has_identifier = false;
 
14746
        for (int i = 0; i < tokens.Length; i++){
 
14747
                int token = tokens [i];
 
14748
                has_identifier |= token == Token.IDENTIFIER;
 
14749
                
 
14750
                string name = GetTokenName (token);
 
14751
                if (name == "<internal>")
 
14752
                        continue;
 
14753
                        
 
14754
                has_type |= name == "type";
 
14755
                if (names.Contains (name))
 
14756
                        continue;
 
14757
                
 
14758
                names.Add (name);
 
14759
        }
 
14760
 
 
14761
        //
 
14762
        // Too many tokens to enumerate
 
14763
        //
 
14764
        if (names.Count > 8)
 
14765
                return null;
 
14766
 
 
14767
        if (has_type && has_identifier)
 
14768
                names.Remove ("identifier");
 
14769
 
 
14770
        if (names.Count == 1)
 
14771
                return "`" + GetTokenName (tokens [0]) + "'";
 
14772
        
 
14773
        StringBuilder sb = new StringBuilder ();
 
14774
        names.Sort ();
 
14775
        int count = names.Count;
 
14776
        for (int i = 0; i < count; i++){
 
14777
                bool last = i + 1 == count;
 
14778
                if (last)
 
14779
                        sb.Append ("or ");
 
14780
                sb.Append ('`');
 
14781
                sb.Append (names [i]);
 
14782
                sb.Append (last ? "'" : count < 3 ? "' " : "', ");
 
14783
        }
 
14784
        return sb.ToString ();
 
14785
}
 
14786
 
 
14787
 
 
14788
string GetSymbolName (int token)
 
14789
{
 
14790
        switch (token){
 
14791
        case Token.LITERAL:
 
14792
                return ((Constant)lexer.Value).GetValue ().ToString ();
 
14793
        case Token.IDENTIFIER:
 
14794
                return ((Tokenizer.LocatedToken)lexer.Value).Value;
 
14795
 
 
14796
        case Token.BOOL:
 
14797
                return "bool";
 
14798
        case Token.BYTE:
 
14799
                return "byte";
 
14800
        case Token.CHAR:
 
14801
                return "char";
 
14802
        case Token.VOID:
 
14803
                return "void";
 
14804
        case Token.DECIMAL:
 
14805
                return "decimal";
 
14806
        case Token.DOUBLE:
 
14807
                return "double";
 
14808
        case Token.FLOAT:
 
14809
                return "float";
 
14810
        case Token.INT:
 
14811
                return "int";
 
14812
        case Token.LONG:
 
14813
                return "long";
 
14814
        case Token.SBYTE:
 
14815
                return "sbyte";
 
14816
        case Token.SHORT:
 
14817
                return "short";
 
14818
        case Token.STRING:
 
14819
                return "string";
 
14820
        case Token.UINT:
 
14821
                return "uint";
 
14822
        case Token.ULONG:
 
14823
                return "ulong";
 
14824
        case Token.USHORT:
 
14825
                return "ushort";
 
14826
        case Token.OBJECT:
 
14827
                return "object";
 
14828
                
 
14829
        case Token.PLUS:
 
14830
                return "+";
 
14831
        case Token.UMINUS:
 
14832
        case Token.MINUS:
 
14833
                return "-";
 
14834
        case Token.BANG:
 
14835
                return "!";
 
14836
        case Token.BITWISE_AND:
 
14837
                return "&";
 
14838
        case Token.BITWISE_OR:
 
14839
                return "|";
 
14840
        case Token.STAR:
 
14841
                return "*";
 
14842
        case Token.PERCENT:
 
14843
                return "%";
 
14844
        case Token.DIV:
 
14845
                return "/";
 
14846
        case Token.CARRET:
 
14847
                return "^";
 
14848
        case Token.OP_INC:
 
14849
                return "++";
 
14850
        case Token.OP_DEC:
 
14851
                return "--";
 
14852
        case Token.OP_SHIFT_LEFT:
 
14853
                return "<<";
 
14854
        case Token.OP_SHIFT_RIGHT:
 
14855
                return ">>";
 
14856
        case Token.OP_LT:
 
14857
                return "<";
 
14858
        case Token.OP_GT:
 
14859
                return ">";
 
14860
        case Token.OP_LE:
 
14861
                return "<=";
 
14862
        case Token.OP_GE:
 
14863
                return ">=";
 
14864
        case Token.OP_EQ:
 
14865
                return "==";
 
14866
        case Token.OP_NE:
 
14867
                return "!=";
 
14868
        case Token.OP_AND:
 
14869
                return "&&";
 
14870
        case Token.OP_OR:
 
14871
                return "||";
 
14872
        case Token.OP_PTR:
 
14873
                return "->";
 
14874
        case Token.OP_COALESCING:       
 
14875
                return "??";
 
14876
        case Token.OP_MULT_ASSIGN:
 
14877
                return "*=";
 
14878
        case Token.OP_DIV_ASSIGN:
 
14879
                return "/=";
 
14880
        case Token.OP_MOD_ASSIGN:
 
14881
                return "%=";
 
14882
        case Token.OP_ADD_ASSIGN:
 
14883
                return "+=";
 
14884
        case Token.OP_SUB_ASSIGN:
 
14885
                return "-=";
 
14886
        case Token.OP_SHIFT_LEFT_ASSIGN:
 
14887
                return "<<=";
 
14888
        case Token.OP_SHIFT_RIGHT_ASSIGN:
 
14889
                return ">>=";
 
14890
        case Token.OP_AND_ASSIGN:
 
14891
                return "&=";
 
14892
        case Token.OP_XOR_ASSIGN:
 
14893
                return "^=";
 
14894
        case Token.OP_OR_ASSIGN:
 
14895
                return "|=";
 
14896
        }
 
14897
 
 
14898
        return GetTokenName (token);
 
14899
}
 
14900
 
 
14901
static string GetTokenName (int token)
 
14902
{
 
14903
        switch (token){
 
14904
        case Token.ABSTRACT:
 
14905
                return "abstract";
 
14906
        case Token.AS:
 
14907
                return "as";
 
14908
        case Token.ADD:
 
14909
                return "add";
 
14910
        case Token.ASYNC:
 
14911
                return "async";
 
14912
        case Token.BASE:
 
14913
                return "base";
 
14914
        case Token.BREAK:
 
14915
                return "break";
 
14916
        case Token.CASE:
 
14917
                return "case";
 
14918
        case Token.CATCH:
 
14919
                return "catch";
 
14920
        case Token.CHECKED:
 
14921
                return "checked";
 
14922
        case Token.CLASS:
 
14923
                return "class";
 
14924
        case Token.CONST:
 
14925
                return "const";
 
14926
        case Token.CONTINUE:
 
14927
                return "continue";
 
14928
        case Token.DEFAULT:
 
14929
                return "default";
 
14930
        case Token.DELEGATE:
 
14931
                return "delegate";
 
14932
        case Token.DO:
 
14933
                return "do";
 
14934
        case Token.ELSE:
 
14935
                return "else";
 
14936
        case Token.ENUM:
 
14937
                return "enum";
 
14938
        case Token.EVENT:
 
14939
                return "event";
 
14940
        case Token.EXPLICIT:
 
14941
                return "explicit";
 
14942
        case Token.EXTERN:
 
14943
        case Token.EXTERN_ALIAS:
 
14944
                return "extern";
 
14945
        case Token.FALSE:
 
14946
                return "false";
 
14947
        case Token.FINALLY:
 
14948
                return "finally";
 
14949
        case Token.FIXED:
 
14950
                return "fixed";
 
14951
        case Token.FOR:
 
14952
                return "for";
 
14953
        case Token.FOREACH:
 
14954
                return "foreach";
 
14955
        case Token.GOTO:
 
14956
                return "goto";
 
14957
        case Token.IF:
 
14958
                return "if";
 
14959
        case Token.IMPLICIT:
 
14960
                return "implicit";
 
14961
        case Token.IN:
 
14962
                return "in";
 
14963
        case Token.INTERFACE:
 
14964
                return "interface";
 
14965
        case Token.INTERNAL:
 
14966
                return "internal";
 
14967
        case Token.IS:
 
14968
                return "is";
 
14969
        case Token.LOCK:
 
14970
                return "lock";
 
14971
        case Token.NAMESPACE:
 
14972
                return "namespace";
 
14973
        case Token.NEW:
 
14974
                return "new";
 
14975
        case Token.NULL:
 
14976
                return "null";
 
14977
        case Token.OPERATOR:
 
14978
                return "operator";
 
14979
        case Token.OUT:
 
14980
                return "out";
 
14981
        case Token.OVERRIDE:
 
14982
                return "override";
 
14983
        case Token.PARAMS:
 
14984
                return "params";
 
14985
        case Token.PRIVATE:
 
14986
                return "private";
 
14987
        case Token.PROTECTED:
 
14988
                return "protected";
 
14989
        case Token.PUBLIC:
 
14990
                return "public";
 
14991
        case Token.READONLY:
 
14992
                return "readonly";
 
14993
        case Token.REF:
 
14994
                return "ref";
 
14995
        case Token.RETURN:
 
14996
                return "return";
 
14997
        case Token.REMOVE:
 
14998
                return "remove";
 
14999
        case Token.SEALED:
 
15000
                return "sealed";
 
15001
        case Token.SIZEOF:
 
15002
                return "sizeof";
 
15003
        case Token.STACKALLOC:
 
15004
                return "stackalloc";
 
15005
        case Token.STATIC:
 
15006
                return "static";
 
15007
        case Token.STRUCT:
 
15008
                return "struct";
 
15009
        case Token.SWITCH:
 
15010
                return "switch";
 
15011
        case Token.THIS:
 
15012
                return "this";
 
15013
        case Token.THROW:
 
15014
                return "throw";
 
15015
        case Token.TRUE:
 
15016
                return "true";
 
15017
        case Token.TRY:
 
15018
                return "try";
 
15019
        case Token.TYPEOF:
 
15020
                return "typeof";
 
15021
        case Token.UNCHECKED:
 
15022
                return "unchecked";
 
15023
        case Token.UNSAFE:
 
15024
                return "unsafe";
 
15025
        case Token.USING:
 
15026
                return "using";
 
15027
        case Token.VIRTUAL:
 
15028
                return "virtual";
 
15029
        case Token.VOLATILE:
 
15030
                return "volatile";
 
15031
        case Token.WHERE:
 
15032
                return "where";
 
15033
        case Token.WHILE:
 
15034
                return "while";
 
15035
        case Token.ARGLIST:
 
15036
                return "__arglist";
 
15037
        case Token.REFVALUE:
 
15038
                return "__refvalue";
 
15039
        case Token.REFTYPE:
 
15040
                return "__reftype";
 
15041
        case Token.MAKEREF:
 
15042
                return "__makeref";
 
15043
        case Token.PARTIAL:
 
15044
                return "partial";
 
15045
        case Token.ARROW:
 
15046
                return "=>";
 
15047
        case Token.FROM:
 
15048
        case Token.FROM_FIRST:
 
15049
                return "from";
 
15050
        case Token.JOIN:
 
15051
                return "join";
 
15052
        case Token.ON:
 
15053
                return "on";
 
15054
        case Token.EQUALS:
 
15055
                return "equals";
 
15056
        case Token.SELECT:
 
15057
                return "select";
 
15058
        case Token.GROUP:
 
15059
                return "group";
 
15060
        case Token.BY:
 
15061
                return "by";
 
15062
        case Token.LET:
 
15063
                return "let";
 
15064
        case Token.ORDERBY:
 
15065
                return "orderby";
 
15066
        case Token.ASCENDING:
 
15067
                return "ascending";
 
15068
        case Token.DESCENDING:
 
15069
                return "descending";
 
15070
        case Token.INTO:
 
15071
                return "into";
 
15072
        case Token.GET:
 
15073
                return "get";
 
15074
        case Token.SET:
 
15075
                return "set";
 
15076
        case Token.OPEN_BRACE:
 
15077
                return "{";
 
15078
        case Token.CLOSE_BRACE:
 
15079
                return "}";
 
15080
        case Token.OPEN_BRACKET:
 
15081
        case Token.OPEN_BRACKET_EXPR:
 
15082
                return "[";
 
15083
        case Token.CLOSE_BRACKET:
 
15084
                return "]";
 
15085
        case Token.OPEN_PARENS_CAST:
 
15086
        case Token.OPEN_PARENS_LAMBDA:
 
15087
        case Token.OPEN_PARENS:
 
15088
                return "(";
 
15089
        case Token.CLOSE_PARENS:
 
15090
                return ")";
 
15091
        case Token.DOT:
 
15092
                return ".";
 
15093
        case Token.COMMA:
 
15094
                return ",";
 
15095
        case Token.DEFAULT_COLON:
 
15096
                return "default:";
 
15097
        case Token.COLON:
 
15098
                return ":";
 
15099
        case Token.SEMICOLON:
 
15100
                return ";";
 
15101
        case Token.TILDE:
 
15102
                return "~";
 
15103
                
 
15104
        case Token.PLUS:
 
15105
        case Token.UMINUS:
 
15106
        case Token.MINUS:
 
15107
        case Token.BANG:
 
15108
        case Token.OP_LT:
 
15109
        case Token.OP_GT:
 
15110
        case Token.BITWISE_AND:
 
15111
        case Token.BITWISE_OR:
 
15112
        case Token.STAR:
 
15113
        case Token.PERCENT:
 
15114
        case Token.DIV:
 
15115
        case Token.CARRET:
 
15116
        case Token.OP_INC:
 
15117
        case Token.OP_DEC:
 
15118
        case Token.OP_SHIFT_LEFT:
 
15119
        case Token.OP_SHIFT_RIGHT:
 
15120
        case Token.OP_LE:
 
15121
        case Token.OP_GE:
 
15122
        case Token.OP_EQ:
 
15123
        case Token.OP_NE:
 
15124
        case Token.OP_AND:
 
15125
        case Token.OP_OR:
 
15126
        case Token.OP_PTR:
 
15127
        case Token.OP_COALESCING:       
 
15128
        case Token.OP_MULT_ASSIGN:
 
15129
        case Token.OP_DIV_ASSIGN:
 
15130
        case Token.OP_MOD_ASSIGN:
 
15131
        case Token.OP_ADD_ASSIGN:
 
15132
        case Token.OP_SUB_ASSIGN:
 
15133
        case Token.OP_SHIFT_LEFT_ASSIGN:
 
15134
        case Token.OP_SHIFT_RIGHT_ASSIGN:
 
15135
        case Token.OP_AND_ASSIGN:
 
15136
        case Token.OP_XOR_ASSIGN:
 
15137
        case Token.OP_OR_ASSIGN:
 
15138
                return "<operator>";
 
15139
 
 
15140
        case Token.BOOL:
 
15141
        case Token.BYTE:
 
15142
        case Token.CHAR:
 
15143
        case Token.VOID:
 
15144
        case Token.DECIMAL:
 
15145
        case Token.DOUBLE:
 
15146
        case Token.FLOAT:
 
15147
        case Token.INT:
 
15148
        case Token.LONG:
 
15149
        case Token.SBYTE:
 
15150
        case Token.SHORT:
 
15151
        case Token.STRING:
 
15152
        case Token.UINT:
 
15153
        case Token.ULONG:
 
15154
        case Token.USHORT:
 
15155
        case Token.OBJECT:
 
15156
                return "type";
 
15157
        
 
15158
        case Token.ASSIGN:
 
15159
                return "=";
 
15160
        case Token.OP_GENERICS_LT:
 
15161
        case Token.GENERIC_DIMENSION:
 
15162
                return "<";
 
15163
        case Token.OP_GENERICS_GT:
 
15164
                return ">";
 
15165
        case Token.INTERR:
 
15166
        case Token.INTERR_NULLABLE:
 
15167
                return "?";
 
15168
        case Token.DOUBLE_COLON:
 
15169
                return "::";
 
15170
        case Token.LITERAL:
 
15171
                return "value";
 
15172
        case Token.IDENTIFIER:
 
15173
        case Token.AWAIT:
 
15174
                return "identifier";
 
15175
 
 
15176
        case Token.EOF:
 
15177
                return "end-of-file";
 
15178
 
 
15179
                // All of these are internal.
 
15180
        case Token.NONE:
 
15181
        case Token.ERROR:
 
15182
        case Token.FIRST_KEYWORD:
 
15183
        case Token.EVAL_COMPILATION_UNIT_PARSER:
 
15184
        case Token.EVAL_USING_DECLARATIONS_UNIT_PARSER:
 
15185
        case Token.EVAL_STATEMENT_PARSER:
 
15186
        case Token.LAST_KEYWORD:
 
15187
        case Token.GENERATE_COMPLETION:
 
15188
        case Token.COMPLETE_COMPLETION:
 
15189
                return "<internal>";
 
15190
 
 
15191
                // A bit more robust.
 
15192
        default:
 
15193
                return yyNames [token];
 
15194
        }
 
15195
}
 
15196
 
 
15197
/* end end end */
 
15198
}
 
15199
#line default
 
15200
namespace yydebug {
 
15201
        using System;
 
15202
         internal interface yyDebug {
 
15203
                 void push (int state, Object value);
 
15204
                 void lex (int state, int token, string name, Object value);
 
15205
                 void shift (int from, int to, int errorFlag);
 
15206
                 void pop (int state);
 
15207
                 void discard (int state, int token, string name, Object value);
 
15208
                 void reduce (int from, int to, int rule, string text, int len);
 
15209
                 void shift (int from, int to);
 
15210
                 void accept (Object value);
 
15211
                 void error (string message);
 
15212
                 void reject ();
 
15213
         }
 
15214
         
 
15215
         class yyDebugSimple : yyDebug {
 
15216
                 void println (string s){
 
15217
                         Console.Error.WriteLine (s);
 
15218
                 }
 
15219
                 
 
15220
                 public void push (int state, Object value) {
 
15221
                         println ("push\tstate "+state+"\tvalue "+value);
 
15222
                 }
 
15223
                 
 
15224
                 public void lex (int state, int token, string name, Object value) {
 
15225
                         println("lex\tstate "+state+"\treading "+name+"\tvalue "+value);
 
15226
                 }
 
15227
                 
 
15228
                 public void shift (int from, int to, int errorFlag) {
 
15229
                         switch (errorFlag) {
 
15230
                         default:                               // normally
 
15231
                                 println("shift\tfrom state "+from+" to "+to);
 
15232
                                 break;
 
15233
                         case 0: case 1: case 2:                // in error recovery
 
15234
                                 println("shift\tfrom state "+from+" to "+to
 
15235
                                             +"\t"+errorFlag+" left to recover");
 
15236
                                 break;
 
15237
                         case 3:                                // normally
 
15238
                                 println("shift\tfrom state "+from+" to "+to+"\ton error");
 
15239
                                 break;
 
15240
                         }
 
15241
                 }
 
15242
                 
 
15243
                 public void pop (int state) {
 
15244
                         println("pop\tstate "+state+"\ton error");
 
15245
                 }
 
15246
                 
 
15247
                 public void discard (int state, int token, string name, Object value) {
 
15248
                         println("discard\tstate "+state+"\ttoken "+name+"\tvalue "+value);
 
15249
                 }
 
15250
                 
 
15251
                 public void reduce (int from, int to, int rule, string text, int len) {
 
15252
                         println("reduce\tstate "+from+"\tuncover "+to
 
15253
                                     +"\trule ("+rule+") "+text);
 
15254
                 }
 
15255
                 
 
15256
                 public void shift (int from, int to) {
 
15257
                         println("goto\tfrom state "+from+" to "+to);
 
15258
                 }
 
15259
                 
 
15260
                 public void accept (Object value) {
 
15261
                         println("accept\tvalue "+value);
 
15262
                 }
 
15263
                 
 
15264
                 public void error (string message) {
 
15265
                         println("error\t"+message);
 
15266
                 }
 
15267
                 
 
15268
                 public void reject () {
 
15269
                         println("reject");
 
15270
                 }
 
15271
                 
 
15272
         }
 
15273
}
 
15274
// %token constants
 
15275
 class Token {
 
15276
  public const int EOF = 257;
 
15277
  public const int NONE = 258;
 
15278
  public const int ERROR = 259;
 
15279
  public const int FIRST_KEYWORD = 260;
 
15280
  public const int ABSTRACT = 261;
 
15281
  public const int AS = 262;
 
15282
  public const int ADD = 263;
 
15283
  public const int BASE = 264;
 
15284
  public const int BOOL = 265;
 
15285
  public const int BREAK = 266;
 
15286
  public const int BYTE = 267;
 
15287
  public const int CASE = 268;
 
15288
  public const int CATCH = 269;
 
15289
  public const int CHAR = 270;
 
15290
  public const int CHECKED = 271;
 
15291
  public const int CLASS = 272;
 
15292
  public const int CONST = 273;
 
15293
  public const int CONTINUE = 274;
 
15294
  public const int DECIMAL = 275;
 
15295
  public const int DEFAULT = 276;
 
15296
  public const int DELEGATE = 277;
 
15297
  public const int DO = 278;
 
15298
  public const int DOUBLE = 279;
 
15299
  public const int ELSE = 280;
 
15300
  public const int ENUM = 281;
 
15301
  public const int EVENT = 282;
 
15302
  public const int EXPLICIT = 283;
 
15303
  public const int EXTERN = 284;
 
15304
  public const int FALSE = 285;
 
15305
  public const int FINALLY = 286;
 
15306
  public const int FIXED = 287;
 
15307
  public const int FLOAT = 288;
 
15308
  public const int FOR = 289;
 
15309
  public const int FOREACH = 290;
 
15310
  public const int GOTO = 291;
 
15311
  public const int IF = 292;
 
15312
  public const int IMPLICIT = 293;
 
15313
  public const int IN = 294;
 
15314
  public const int INT = 295;
 
15315
  public const int INTERFACE = 296;
 
15316
  public const int INTERNAL = 297;
 
15317
  public const int IS = 298;
 
15318
  public const int LOCK = 299;
 
15319
  public const int LONG = 300;
 
15320
  public const int NAMESPACE = 301;
 
15321
  public const int NEW = 302;
 
15322
  public const int NULL = 303;
 
15323
  public const int OBJECT = 304;
 
15324
  public const int OPERATOR = 305;
 
15325
  public const int OUT = 306;
 
15326
  public const int OVERRIDE = 307;
 
15327
  public const int PARAMS = 308;
 
15328
  public const int PRIVATE = 309;
 
15329
  public const int PROTECTED = 310;
 
15330
  public const int PUBLIC = 311;
 
15331
  public const int READONLY = 312;
 
15332
  public const int REF = 313;
 
15333
  public const int RETURN = 314;
 
15334
  public const int REMOVE = 315;
 
15335
  public const int SBYTE = 316;
 
15336
  public const int SEALED = 317;
 
15337
  public const int SHORT = 318;
 
15338
  public const int SIZEOF = 319;
 
15339
  public const int STACKALLOC = 320;
 
15340
  public const int STATIC = 321;
 
15341
  public const int STRING = 322;
 
15342
  public const int STRUCT = 323;
 
15343
  public const int SWITCH = 324;
 
15344
  public const int THIS = 325;
 
15345
  public const int THROW = 326;
 
15346
  public const int TRUE = 327;
 
15347
  public const int TRY = 328;
 
15348
  public const int TYPEOF = 329;
 
15349
  public const int UINT = 330;
 
15350
  public const int ULONG = 331;
 
15351
  public const int UNCHECKED = 332;
 
15352
  public const int UNSAFE = 333;
 
15353
  public const int USHORT = 334;
 
15354
  public const int USING = 335;
 
15355
  public const int VIRTUAL = 336;
 
15356
  public const int VOID = 337;
 
15357
  public const int VOLATILE = 338;
 
15358
  public const int WHERE = 339;
 
15359
  public const int WHILE = 340;
 
15360
  public const int ARGLIST = 341;
 
15361
  public const int PARTIAL = 342;
 
15362
  public const int ARROW = 343;
 
15363
  public const int FROM = 344;
 
15364
  public const int FROM_FIRST = 345;
 
15365
  public const int JOIN = 346;
 
15366
  public const int ON = 347;
 
15367
  public const int EQUALS = 348;
 
15368
  public const int SELECT = 349;
 
15369
  public const int GROUP = 350;
 
15370
  public const int BY = 351;
 
15371
  public const int LET = 352;
 
15372
  public const int ORDERBY = 353;
 
15373
  public const int ASCENDING = 354;
 
15374
  public const int DESCENDING = 355;
 
15375
  public const int INTO = 356;
 
15376
  public const int INTERR_NULLABLE = 357;
 
15377
  public const int EXTERN_ALIAS = 358;
 
15378
  public const int REFVALUE = 359;
 
15379
  public const int REFTYPE = 360;
 
15380
  public const int MAKEREF = 361;
 
15381
  public const int ASYNC = 362;
 
15382
  public const int AWAIT = 363;
 
15383
  public const int GET = 364;
 
15384
  public const int SET = 365;
 
15385
  public const int LAST_KEYWORD = 366;
 
15386
  public const int OPEN_BRACE = 367;
 
15387
  public const int CLOSE_BRACE = 368;
 
15388
  public const int OPEN_BRACKET = 369;
 
15389
  public const int CLOSE_BRACKET = 370;
 
15390
  public const int OPEN_PARENS = 371;
 
15391
  public const int CLOSE_PARENS = 372;
 
15392
  public const int DOT = 373;
 
15393
  public const int COMMA = 374;
 
15394
  public const int COLON = 375;
 
15395
  public const int SEMICOLON = 376;
 
15396
  public const int TILDE = 377;
 
15397
  public const int PLUS = 378;
 
15398
  public const int MINUS = 379;
 
15399
  public const int BANG = 380;
 
15400
  public const int ASSIGN = 381;
 
15401
  public const int OP_LT = 382;
 
15402
  public const int OP_GT = 383;
 
15403
  public const int BITWISE_AND = 384;
 
15404
  public const int BITWISE_OR = 385;
 
15405
  public const int STAR = 386;
 
15406
  public const int PERCENT = 387;
 
15407
  public const int DIV = 388;
 
15408
  public const int CARRET = 389;
 
15409
  public const int INTERR = 390;
 
15410
  public const int DOUBLE_COLON = 391;
 
15411
  public const int OP_INC = 392;
 
15412
  public const int OP_DEC = 393;
 
15413
  public const int OP_SHIFT_LEFT = 394;
 
15414
  public const int OP_SHIFT_RIGHT = 395;
 
15415
  public const int OP_LE = 396;
 
15416
  public const int OP_GE = 397;
 
15417
  public const int OP_EQ = 398;
 
15418
  public const int OP_NE = 399;
 
15419
  public const int OP_AND = 400;
 
15420
  public const int OP_OR = 401;
 
15421
  public const int OP_MULT_ASSIGN = 402;
 
15422
  public const int OP_DIV_ASSIGN = 403;
 
15423
  public const int OP_MOD_ASSIGN = 404;
 
15424
  public const int OP_ADD_ASSIGN = 405;
 
15425
  public const int OP_SUB_ASSIGN = 406;
 
15426
  public const int OP_SHIFT_LEFT_ASSIGN = 407;
 
15427
  public const int OP_SHIFT_RIGHT_ASSIGN = 408;
 
15428
  public const int OP_AND_ASSIGN = 409;
 
15429
  public const int OP_XOR_ASSIGN = 410;
 
15430
  public const int OP_OR_ASSIGN = 411;
 
15431
  public const int OP_PTR = 412;
 
15432
  public const int OP_COALESCING = 413;
 
15433
  public const int OP_GENERICS_LT = 414;
 
15434
  public const int OP_GENERICS_LT_DECL = 415;
 
15435
  public const int OP_GENERICS_GT = 416;
 
15436
  public const int LITERAL = 417;
 
15437
  public const int IDENTIFIER = 418;
 
15438
  public const int OPEN_PARENS_LAMBDA = 419;
 
15439
  public const int OPEN_PARENS_CAST = 420;
 
15440
  public const int GENERIC_DIMENSION = 421;
 
15441
  public const int DEFAULT_COLON = 422;
 
15442
  public const int OPEN_BRACKET_EXPR = 423;
 
15443
  public const int EVAL_STATEMENT_PARSER = 424;
 
15444
  public const int EVAL_COMPILATION_UNIT_PARSER = 425;
 
15445
  public const int EVAL_USING_DECLARATIONS_UNIT_PARSER = 426;
 
15446
  public const int DOC_SEE = 427;
 
15447
  public const int GENERATE_COMPLETION = 428;
 
15448
  public const int COMPLETE_COMPLETION = 429;
 
15449
  public const int UMINUS = 430;
 
15450
  public const int yyErrorCode = 256;
 
15451
 }
 
15452
 namespace yyParser {
 
15453
  using System;
 
15454
  /** thrown for irrecoverable syntax errors and stack overflow.
 
15455
    */
 
15456
  internal class yyException : System.Exception {
 
15457
    public yyException (string message) : base (message) {
 
15458
    }
 
15459
  }
 
15460
  internal class yyUnexpectedEof : yyException {
 
15461
    public yyUnexpectedEof (string message) : base (message) {
 
15462
    }
 
15463
    public yyUnexpectedEof () : base ("") {
 
15464
    }
 
15465
  }
 
15466
 
 
15467
  /** must be implemented by a scanner object to supply input to the parser.
 
15468
    */
 
15469
  internal interface yyInput {
 
15470
    /** move on to next token.
 
15471
        @return false if positioned beyond tokens.
 
15472
        @throws IOException on input error.
 
15473
      */
 
15474
    bool advance (); // throws java.io.IOException;
 
15475
    /** classifies current token.
 
15476
        Should not be called if advance() returned false.
 
15477
        @return current %token or single character.
 
15478
      */
 
15479
    int token ();
 
15480
    /** associated with current token.
 
15481
        Should not be called if advance() returned false.
 
15482
        @return value for token().
 
15483
      */
 
15484
    Object value ();
 
15485
  }
 
15486
 }
 
15487
} // close outermost namespace, that MUST HAVE BEEN opened in the prolog